<?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>108059</bug_id>
          
          <creation_ts>2013-01-28 00:21:59 -0800</creation_ts>
          <short_desc>[Qt][EFL][WebGL] Webgl doesn&apos;t work on nvidia cards.</short_desc>
          <delta_ts>2013-02-05 01:08:59 -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>WebGL</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="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Viatcheslav Ostapenko">ostap73</assigned_to>
          <cc>kalyan.kondapally</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>rtakacs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>817564</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-01-28 00:21:59 -0800</bug_when>
    <thetext>WebGL canvas is not rendered on some nvidia cards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817565</commentid>
    <comment_count>1</comment_count>
      <attachid>184944</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-01-28 00:23:04 -0800</bug_when>
    <thetext>Created attachment 184944
WIP patch

Use 2 single buffer windows instead of one double buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824388</commentid>
    <comment_count>2</comment_count>
      <attachid>186385</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-04 08:34:10 -0800</bug_when>
    <thetext>Created attachment 186385
WIP patch2

Works on nvidia/ATI fglrx
On mesa doesn&apos;t create canvases with alpha.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824398</commentid>
    <comment_count>3</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2013-02-04 08:42:14 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Works on nvidia/ATI fglrx
&gt; On mesa doesn&apos;t create canvases with alpha.
I applied the patch locally, but I still only get a black canvas.
So I&apos;m afraid, this is not the right fix either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824402</commentid>
    <comment_count>4</comment_count>
      <attachid>186385</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-04 08:45:10 -0800</bug_when>
    <thetext>Comment on attachment 186385
WIP patch2

Attachment 186385 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16371276</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824404</commentid>
    <comment_count>5</comment_count>
      <attachid>186385</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-04 08:46:22 -0800</bug_when>
    <thetext>Comment on attachment 186385
WIP patch2

Attachment 186385 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16376190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824620</commentid>
    <comment_count>6</comment_count>
      <attachid>186426</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-04 11:47:51 -0800</bug_when>
    <thetext>Created attachment 186426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825248</commentid>
    <comment_count>7</comment_count>
      <attachid>186426</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 01:08:55 -0800</bug_when>
    <thetext>Comment on attachment 186426
Patch

Clearing flags on attachment: 186426

Committed r141870: &lt;http://trac.webkit.org/changeset/141870&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825249</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 01:08:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184944</attachid>
            <date>2013-01-28 00:23:04 -0800</date>
            <delta_ts>2013-02-04 08:34:10 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>single_buffer.diff</filename>
            <type>text/plain</type>
            <size>23030</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dy
YXBoaWNzU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCmluZGV4IDU2ODhjZTkuLmJhZWZhOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmNwcApAQCAtODUsOCArODUsNiBAQCBJbnRTaXplIEdyYXBoaWNzU3Vy
ZmFjZTo6c2l6ZSgpIGNvbnN0CiAKIEdyYXBoaWNzU3VyZmFjZTo6R3JhcGhpY3NTdXJmYWNlKGNv
bnN0IEludFNpemUmLCBGbGFncyBmbGFncykKICAgICA6IG1fZmxhZ3MoZmxhZ3MpCi0gICAgLCBt
X3BsYXRmb3JtU3VyZmFjZSgwKQotICAgICwgbV90ZXh0dXJlKDApCiAgICAgLCBtX2ZibygwKQog
ICAgICwgbV9wcml2YXRlKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCmluZGV4IDU0OWU4MDQu
LmRhNDkzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCkBAIC03Myw3ICs3Myw2IEBAIHB1Ymxp
YzoKICAgICB0eXBlZGVmIGludCBMb2NrT3B0aW9uczsKIAogICAgIEZsYWdzIGZsYWdzKCkgY29u
c3QgeyByZXR1cm4gbV9mbGFnczsgfQotICAgIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlIHBsYXRm
b3JtU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1TdXJmYWNlOyB9CiAgICAgSW50
U2l6ZSBzaXplKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZh
Y2U+IGNyZWF0ZShjb25zdCBJbnRTaXplJiwgRmxhZ3MsIGNvbnN0IFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0Qgc2hhcmVDb250ZXh0ID0gMCk7CkBAIC0xMTksOCArMTE4LDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlIG1fcGxhdGZv
cm1TdXJmYWNlOwotICAgIHVpbnQzMl90IG1fdGV4dHVyZTsKICAgICB1aW50MzJfdCBtX2ZibzsK
ICAgICBHcmFwaGljc1N1cmZhY2VQcml2YXRlKiBtX3ByaXZhdGU7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNl
VG9rZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBo
aWNzU3VyZmFjZVRva2VuLmgKaW5kZXggYzk3ZjM2OC4uNmVhMDgzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlVG9r
ZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFw
aGljc1N1cmZhY2VUb2tlbi5oCkBAIC00MSwyNCArNDEsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJm
YWNlVG9rZW4gewogICAgIHR5cGVkZWYgSEFORExFIEJ1ZmZlckhhbmRsZTsKICNlbmRpZgogCi0j
aWYgSEFWRShHTFgpCi0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4odWludDMyX3Qgd2luZG93SUQg
PSAwKQotICAgICAgICA6IGZyb250QnVmZmVySGFuZGxlKHdpbmRvd0lEKQotICAgIHsgfQotCi0g
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdyYXBoaWNzU3VyZmFjZVRva2VuICZyaHMpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gZnJvbnRCdWZmZXJIYW5kbGUgIT0gcmhzLmZyb250QnVm
ZmVySGFuZGxlOwotICAgIH0KLQotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gZnJvbnRCdWZmZXJIYW5kbGU7Ci0gICAgfQotCi0jZW5kaWYKLQotI2lmIE9T
KERBUldJTikgfHwgT1MoV0lORE9XUykKICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbihCdWZmZXJI
YW5kbGUgZnJvbnRCdWZmZXIgPSAwLCBCdWZmZXJIYW5kbGUgYmFja0J1ZmZlciA9IDApCiAgICAg
ICAgIDogZnJvbnRCdWZmZXJIYW5kbGUoZnJvbnRCdWZmZXIpCiAgICAgICAgICwgYmFja0J1ZmZl
ckhhbmRsZShiYWNrQnVmZmVyKQpAQCAtNzQsMTAgKzU2LDggQEAgc3RydWN0IEdyYXBoaWNzU3Vy
ZmFjZVRva2VuIHsKICAgICAgICAgcmV0dXJuIGZyb250QnVmZmVySGFuZGxlICYmIGJhY2tCdWZm
ZXJIYW5kbGU7CiAgICAgfQogCi0gICAgQnVmZmVySGFuZGxlIGJhY2tCdWZmZXJIYW5kbGU7Ci0j
ZW5kaWYKLQogICAgIEJ1ZmZlckhhbmRsZSBmcm9udEJ1ZmZlckhhbmRsZTsKKyAgICBCdWZmZXJI
YW5kbGUgYmFja0J1ZmZlckhhbmRsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNz
U3VyZmFjZUdMWC5jcHAKaW5kZXggYTU3YjYzOC4uODUwYzE5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdM
WC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGludCBhdHRy
aWJ1dGVzW10gPSB7CiAgICAgR0xYX0FMUEhBX1NJWkUsICAgIDEsCiAgICAgR0xYX0RFUFRIX1NJ
WkUsICAgIDEsCiAgICAgR0xYX1hfVklTVUFMX1RZUEUsIEdMWF9UUlVFX0NPTE9SLAotICAgIEdM
WF9ET1VCTEVCVUZGRVIsICBUcnVlLAorICAgIEdMWF9ET1VCTEVCVUZGRVIsICBGYWxzZSwKICAg
ICBOb25lCiB9OwogCkBAIC0yMDYsMjAgKzIwNiwxOTkgQEAgc3RhdGljIGNvbnN0IGludCBnbHhB
dHRyaWJ1dGVzW10gPSB7CiAgICAgMAogfTsKIAotc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZh
dGUgeworY2xhc3MgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB7CisgICAgc3RydWN0IFdpbmRvd0J1
ZmZlciB7CisgICAgICAgIFdpbmRvd0J1ZmZlcihHcmFwaGljc1N1cmZhY2VQcml2YXRlKiBzdXJm
YWNlUHJpdmF0ZSkKKyAgICAgICAgICAgIDogbV9zdXJmYWNlUHJpdmF0ZShzdXJmYWNlUHJpdmF0
ZSkKKyAgICAgICAgICAgICwgbV94UGl4bWFwKDApCisgICAgICAgICAgICAsIG1fZ2x4UGl4bWFw
KDApCisgICAgICAgICAgICAsIG1fc3VyZmFjZSgwKQorICAgICAgICAgICAgLCBtX2dseFN1cmZh
Y2UoMCkKKyAgICAgICAgICAgICwgbV90ZXh0dXJlSXNZSW52ZXJ0ZWQoZmFsc2UpCisgICAgICAg
ICAgICAsIG1faGFzQWxwaGEoZmFsc2UpCisgICAgICAgICAgICAsIG1fdGV4dHVyZSgwKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICBXaW5kb3dCdWZmZXIoR3JhcGhpY3NTdXJmYWNl
UHJpdmF0ZSogc3VyZmFjZVByaXZhdGUsIHVpbnQzMl90IHdpbklkKQorICAgICAgICAgICAgOiBt
X3N1cmZhY2VQcml2YXRlKHN1cmZhY2VQcml2YXRlKQorICAgICAgICAgICAgLCBtX3hQaXhtYXAo
MCkKKyAgICAgICAgICAgICwgbV9nbHhQaXhtYXAoMCkKKyAgICAgICAgICAgICwgbV9zdXJmYWNl
KHdpbklkKQorICAgICAgICAgICAgLCBtX2dseFN1cmZhY2UoMCkKKyAgICAgICAgICAgICwgbV90
ZXh0dXJlSXNZSW52ZXJ0ZWQoZmFsc2UpCisgICAgICAgICAgICAsIG1faGFzQWxwaGEoZmFsc2Up
CisgICAgICAgICAgICAsIG1fdGV4dHVyZSgwKQorICAgICAgICB7CisgICAgICAgIH0KKworICAg
ICAgICB+V2luZG93QnVmZmVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgY2xlYXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IGNyZWF0ZVN1cmZhY2UoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKKyAgICAgICAgeworICAgICAgICAgICAgWFZpc3VhbEluZm8qIHZpc3VhbEluZm8gPSBn
bFhHZXRWaXN1YWxGcm9tRkJDb25maWcoZGlzcGxheSgpLCBtX3N1cmZhY2VQcml2YXRlLT5tX2Zi
Q29uZmlnKTsKKyAgICAgICAgICAgIGlmICghdmlzdWFsSW5mbykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKKworICAgICAgICAgICAgQ29sb3JtYXAgY21hcCA9IFhDcmVhdGVDb2xvcm1hcChk
aXNwbGF5KCksIG1fc3VyZmFjZVByaXZhdGUtPm1fb2ZmU2NyZWVuV2luZG93LT5nZXRYV2luZG93
KCksIHZpc3VhbEluZm8tPnZpc3VhbCwgQWxsb2NOb25lKTsKKworICAgICAgICAgICAgWFNldFdp
bmRvd0F0dHJpYnV0ZXMgYTsKKyAgICAgICAgICAgIGEuYmFja2dyb3VuZF9waXhlbCA9IFdoaXRl
UGl4ZWwoZGlzcGxheSgpLCAwKTsKKyAgICAgICAgICAgIGEuYm9yZGVyX3BpeGVsID0gQmxhY2tQ
aXhlbChkaXNwbGF5KCksIDApOworICAgICAgICAgICAgYS5jb2xvcm1hcCA9IGNtYXA7CisgICAg
ICAgICAgICBtX3N1cmZhY2UgPSBYQ3JlYXRlV2luZG93KGRpc3BsYXkoKSwgbV9zdXJmYWNlUHJp
dmF0ZS0+bV9vZmZTY3JlZW5XaW5kb3ctPmdldFhXaW5kb3coKSwgMCwgMCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpLAorICAgICAgICAgICAgICAgIDAsIHZpc3VhbEluZm8tPmRlcHRoLCBJ
bnB1dE91dHB1dCwgdmlzdWFsSW5mby0+dmlzdWFsLAorICAgICAgICAgICAgICAgIENXQmFja1Bp
eGVsIHwgQ1dCb3JkZXJQaXhlbCB8IENXQ29sb3JtYXAsICZhKTsKKyAgICAgICAgICAgIFhTZXRX
aW5kb3dCYWNrZ3JvdW5kUGl4bWFwKGRpc3BsYXkoKSwgbV9zdXJmYWNlLCAwKTsKKyAgICAgICAg
ICAgIFhDb21wb3NpdGVSZWRpcmVjdFdpbmRvdyhkaXNwbGF5KCksIG1fc3VyZmFjZSwgQ29tcG9z
aXRlUmVkaXJlY3RNYW51YWwpOworICAgICAgICAgICAgbV9nbHhTdXJmYWNlID0gZ2xYQ3JlYXRl
V2luZG93KGRpc3BsYXkoKSwgbV9zdXJmYWNlUHJpdmF0ZS0+bV9mYkNvbmZpZywgbV9zdXJmYWNl
LCAwKTsKKyAgICAgICAgICAgIFhGcmVlKHZpc3VhbEluZm8pOworCisgICAgICAgICAgICAvLyBN
YWtlIHN1cmUgdGhlIFhSZW5kZXIgRXh0ZW5zaW9uIGlzIGF2YWlsYWJsZS4KKyAgICAgICAgICAg
IGludCBldmVudEJhc2VwLCBlcnJvckJhc2VwOworICAgICAgICAgICAgaWYgKCFYUmVuZGVyUXVl
cnlFeHRlbnNpb24oZGlzcGxheSgpLCAmZXZlbnRCYXNlcCwgJmVycm9yQmFzZXApKQorICAgICAg
ICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgICAgICBYTWFwV2luZG93KGRpc3BsYXkoKSwg
bV9zdXJmYWNlKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N1cmZhY2U7CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIG1ha2VDdXJyZW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1f
c3VyZmFjZSkKKyAgICAgICAgICAgICAgICBnbFhNYWtlQ3VycmVudChkaXNwbGF5KCksIG1fc3Vy
ZmFjZSwgbV9zdXJmYWNlUHJpdmF0ZS0+bV9nbENvbnRleHQpOworICAgICAgICB9CisKKyAgICAg
ICAgSW50U2l6ZSBzaXplKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fc2l6
ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBYV2luZG93QXR0cmlidXRlcyBhdHRyOwor
ICAgICAgICAgICAgICAgIGlmIChYR2V0V2luZG93QXR0cmlidXRlcyhkaXNwbGF5KCksIG1fc3Vy
ZmFjZSwgJmF0dHIpKQorICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PFdpbmRvd0J1ZmZl
cio+KHRoaXMpLT5tX3NpemUgPSBJbnRTaXplKGF0dHIud2lkdGgsIGF0dHIuaGVpZ2h0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX3NpemU7CisgICAgICAgIH0KKworICAg
ICAgICB1aW50MzJfdCBzdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlOyB9CisKKyAg
ICAgICAgdWludDMyX3QgdGV4dHVyZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghbV90ZXh0dXJlKSB7CisgICAgICAgICAgICAgICAgR0xYUGl4bWFwIHBpeG1hcCA9IGdseFBp
eG1hcCgpOworICAgICAgICAgICAgICAgIGlmICghcGl4bWFwKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKKworICAgICAgICAgICAgICAgIGdsR2VuVGV4dHVyZXMoMSwgJihjb25zdF9j
YXN0PFdpbmRvd0J1ZmZlcio+KHRoaXMpLT5tX3RleHR1cmUpKTsKKyAgICAgICAgICAgICAgICBn
bEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CisgICAgICAgICAgICAgICAg
Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xf
TElORUFSKTsKKyAgICAgICAgICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICAgICAgICAgIGdsVGV4
UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9f
RURHRSk7CisgICAgICAgICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgICAgICAgICBwR2xY
QmluZFRleEltYWdlRVhUKGRpc3BsYXkoKSwgcGl4bWFwLCBHTFhfRlJPTlRfRVhULCAwKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dHVyZTsKKyAgICAgICAgfQor
CisgICAgICAgIGJvb2wgdGV4dHVyZUlzWUludmVydGVkKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIG1fdGV4dHVyZUlzWUludmVydGVkOworICAgICAgICB9CisKKyAgICBwcml2YXRl
OgorICAgICAgICB2b2lkIGNsZWFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fdGV4
dHVyZSkgeworICAgICAgICAgICAgICAgIHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQoZGlzcGxheSgp
LCBtX2dseFBpeG1hcCwgR0xYX0ZST05UX0VYVCk7CisgICAgICAgICAgICAgICAgZ2xEZWxldGVU
ZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KG1fZ2x4UGl4bWFwKSB7CisgICAgICAgICAgICAgICAgZ2xYRGVzdHJveVBpeG1hcChkaXNwbGF5
KCksIG1fZ2x4UGl4bWFwKTsKKyAgICAgICAgICAgICAgICBtX2dseFBpeG1hcCA9IDA7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3hQaXhtYXApIHsKKyAgICAgICAgICAgICAg
ICBYRnJlZVBpeG1hcChkaXNwbGF5KCksIG1feFBpeG1hcCk7CisgICAgICAgICAgICAgICAgbV94
UGl4bWFwID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2xpZW50IGRvZXNu
J3Qgb3duIHRoZSB3aW5kb3cuIERlbGV0ZSBzdXJmYWNlIG9ubHkgb24gd3JpdGluZyBzaWRlLgor
ICAgICAgICAgICAgaWYgKCFtX3N1cmZhY2VQcml2YXRlLT5tX2lzUmVjZWl2ZXIgJiYgbV9zdXJm
YWNlKSB7CisgICAgICAgICAgICAgICAgWERlc3Ryb3lXaW5kb3coZGlzcGxheSgpLCBtX3N1cmZh
Y2UpOworICAgICAgICAgICAgICAgIG1fc3VyZmFjZSA9IDA7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICB2b2lkIGNyZWF0ZVBpeG1hcCh1aW50MzJfdCB3aW5JZCkKKyAgICAg
ICAgeworICAgICAgICAgICAgWFdpbmRvd0F0dHJpYnV0ZXMgYXR0cjsKKyAgICAgICAgICAgIGlm
ICghWEdldFdpbmRvd0F0dHJpYnV0ZXMoZGlzcGxheSgpLCB3aW5JZCwgJmF0dHIpKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHdpbmRv
dyBpcyBtYXBwZWQuCisgICAgICAgICAgICBpZiAoYXR0ci5tYXBfc3RhdGUgPT0gSXNVbm1hcHBl
ZCB8fCBhdHRyLm1hcF9zdGF0ZSA9PSBJc1Vudmlld2FibGUpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBTY29wZWRYUGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIgaGFu
ZGxlcihkaXNwbGF5KCkpOworICAgICAgICAgICAgbV9zaXplID0gSW50U2l6ZShhdHRyLndpZHRo
LCBhdHRyLmhlaWdodCk7CisKKyAgICAgICAgICAgIFhSZW5kZXJQaWN0Rm9ybWF0KiBmb3JtYXQg
PSBYUmVuZGVyRmluZFZpc3VhbEZvcm1hdChkaXNwbGF5KCksIGF0dHIudmlzdWFsKTsKKyAgICAg
ICAgICAgIG1faGFzQWxwaGEgPSAoZm9ybWF0LT50eXBlID09IFBpY3RUeXBlRGlyZWN0ICYmIGZv
cm1hdC0+ZGlyZWN0LmFscGhhTWFzayk7CisKKyAgICAgICAgICAgIGludCBudW1iZXJPZkNvbmZp
Z3M7CisgICAgICAgICAgICBHTFhGQkNvbmZpZyogY29uZmlncyA9IGdsWENob29zZUZCQ29uZmln
KGRpc3BsYXkoKSwgWERlZmF1bHRTY3JlZW4oZGlzcGxheSgpKSwgZ2x4U3BlYywgJm51bWJlck9m
Q29uZmlncyk7CisKKyAgICAgICAgICAgIC8vIElmIG9yaWdpbiB3aW5kb3cgaGFzIGFscGhhIHRo
ZW4gZmluZCBjb25maWcgd2l0aCBhbHBoYS4KKyAgICAgICAgICAgIEdMWEZCQ29uZmlnJiBjb25m
aWcgPSBtX2hhc0FscGhhID8gbV9zdXJmYWNlUHJpdmF0ZS0+ZmluZEZCQ29uZmlnV2l0aEFscGhh
KGNvbmZpZ3MsIG51bWJlck9mQ29uZmlncykgOiBjb25maWdzWzBdOworCisgICAgICAgICAgICBt
X3hQaXhtYXAgPSBYQ29tcG9zaXRlTmFtZVdpbmRvd1BpeG1hcChkaXNwbGF5KCksIHdpbklkKTsK
KyAgICAgICAgICAgIG1fZ2x4UGl4bWFwID0gZ2xYQ3JlYXRlUGl4bWFwKGRpc3BsYXkoKSwgY29u
ZmlnLCBtX3hQaXhtYXAsIGdseEF0dHJpYnV0ZXMpOworCisgICAgICAgICAgICBpZiAoIWhhbmRs
ZXIuaXNWYWxpZE9wZXJhdGlvbigpKQorICAgICAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB1aW50IGludmVydGVkID0gMDsKKyAgICAgICAg
ICAgICAgICBnbFhRdWVyeURyYXdhYmxlKGRpc3BsYXkoKSwgbV9nbHhQaXhtYXAsIEdMWF9ZX0lO
VkVSVEVEX0VYVCwgJmludmVydGVkKTsKKyAgICAgICAgICAgICAgICBtX3RleHR1cmVJc1lJbnZl
cnRlZCA9ICEhaW52ZXJ0ZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFhGcmVlKGNv
bmZpZ3MpOworICAgICAgICB9CisKKyAgICAgICAgR0xYUGl4bWFwIGdseFBpeG1hcCgpIGNvbnN0
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9nbHhQaXhtYXAgJiYgbV9zdXJmYWNlKQor
ICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8V2luZG93QnVmZmVyKj4odGhpcyktPmNyZWF0ZVBp
eG1hcChtX3N1cmZhY2UpOworICAgICAgICAgICAgcmV0dXJuIG1fZ2x4UGl4bWFwOworICAgICAg
ICB9CisKKyAgICAgICAgRGlzcGxheSogZGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIE9mZlNjcmVl
blJvb3RXaW5kb3c6OmRpc3BsYXkoKTsgfQorCisgICAgICAgIEdyYXBoaWNzU3VyZmFjZVByaXZh
dGUqIG1fc3VyZmFjZVByaXZhdGU7CisgICAgICAgIEludFNpemUgbV9zaXplOworICAgICAgICBQ
aXhtYXAgbV94UGl4bWFwOworICAgICAgICBHTFhQaXhtYXAgbV9nbHhQaXhtYXA7CisgICAgICAg
IFdpbmRvdyBtX3N1cmZhY2U7CisgICAgICAgIFdpbmRvdyBtX2dseFN1cmZhY2U7CisgICAgICAg
IGJvb2wgbV90ZXh0dXJlSXNZSW52ZXJ0ZWQ7CisgICAgICAgIGJvb2wgbV9oYXNBbHBoYTsKKyAg
ICAgICAgdWludDMyX3QgbV90ZXh0dXJlOworICAgIH07CisKK3B1YmxpYzoKICAgICBHcmFwaGlj
c1N1cmZhY2VQcml2YXRlKGNvbnN0IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qgc2hhcmVDb250
ZXh0ID0gMCkKICAgICAgICAgOiBtX29mZlNjcmVlbldpbmRvdyhhZG9wdFB0cihuZXcgT2ZmU2Ny
ZWVuUm9vdFdpbmRvdygpKSkKLSAgICAgICAgLCBtX3hQaXhtYXAoMCkKLSAgICAgICAgLCBtX2ds
eFBpeG1hcCgwKQotICAgICAgICAsIG1fc3VyZmFjZSgwKQotICAgICAgICAsIG1fZ2x4U3VyZmFj
ZSgwKQogICAgICAgICAsIG1fZ2xDb250ZXh0KDApCiAgICAgICAgICwgbV9kZXRhY2hlZENvbnRl
eHQoMCkKICAgICAgICAgLCBtX2RldGFjaGVkU3VyZmFjZSgwKQogICAgICAgICAsIG1fZmJDb25m
aWcoMCkKLSAgICAgICAgLCBtX3RleHR1cmVJc1lJbnZlcnRlZChmYWxzZSkKLSAgICAgICAgLCBt
X2hhc0FscGhhKGZhbHNlKQogICAgICAgICAsIG1faXNSZWNlaXZlcihmYWxzZSkKKyAgICAgICAg
LCBtX2Zyb250QnVmZmVyKGFkb3B0UHRyKG5ldyBXaW5kb3dCdWZmZXIodGhpcykpKQorICAgICAg
ICAsIG1fYmFja0J1ZmZlcihhZG9wdFB0cihuZXcgV2luZG93QnVmZmVyKHRoaXMpKSkKICAgICB7
CiAgICAgICAgIEdMWENvbnRleHQgc2hhcmVDb250ZXh0T2JqZWN0ID0gMDsKIApAQCAtMjQ2LDEw
MSArNDI1LDM3IEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKICAgICAgICAgbV9n
bENvbnRleHQgPSBnbFhDcmVhdGVOZXdDb250ZXh0KGRpc3BsYXkoKSwgbV9mYkNvbmZpZywgR0xY
X1JHQkFfVFlQRSwgc2hhcmVDb250ZXh0T2JqZWN0LCB0cnVlKTsKICAgICB9CiAKLSAgICBHcmFw
aGljc1N1cmZhY2VQcml2YXRlKHVpbnQzMl90IHdpbklkKQotICAgICAgICA6IG1feFBpeG1hcCgw
KQotICAgICAgICAsIG1fZ2x4UGl4bWFwKDApCi0gICAgICAgICwgbV9zdXJmYWNlKHdpbklkKQot
ICAgICAgICAsIG1fZ2x4U3VyZmFjZSgwKQotICAgICAgICAsIG1fZ2xDb250ZXh0KDApCisgICAg
R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZShjb25zdCBHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4p
CisgICAgICAgIDogbV9nbENvbnRleHQoMCkKICAgICAgICAgLCBtX2RldGFjaGVkQ29udGV4dCgw
KQogICAgICAgICAsIG1fZGV0YWNoZWRTdXJmYWNlKDApCiAgICAgICAgICwgbV9mYkNvbmZpZygw
KQotICAgICAgICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQotICAgICAgICAsIG1faGFz
QWxwaGEoZmFsc2UpCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKHRydWUpCi0gICAgeyB9Ci0KLSAg
ICB+R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSgpCisgICAgICAgICwgbV9mcm9udEJ1ZmZlcihhZG9w
dFB0cihuZXcgV2luZG93QnVmZmVyKHRoaXMsIHRva2VuLmZyb250QnVmZmVySGFuZGxlKSkpCisg
ICAgICAgICwgbV9iYWNrQnVmZmVyKGFkb3B0UHRyKG5ldyBXaW5kb3dCdWZmZXIodGhpcywgdG9r
ZW4uYmFja0J1ZmZlckhhbmRsZSkpKQogICAgIHsKLSAgICAgICAgY2xlYXIoKTsKICAgICB9CiAK
LSAgICB1aW50MzJfdCBjcmVhdGVTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgewot
ICAgICAgICBYVmlzdWFsSW5mbyogdmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZp
ZyhkaXNwbGF5KCksIG1fZmJDb25maWcpOwotICAgICAgICBpZiAoIXZpc3VhbEluZm8pCi0gICAg
ICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICBDb2xvcm1hcCBjbWFwID0gWENyZWF0ZUNvbG9y
bWFwKGRpc3BsYXkoKSwgbV9vZmZTY3JlZW5XaW5kb3ctPmdldFhXaW5kb3coKSwgdmlzdWFsSW5m
by0+dmlzdWFsLCBBbGxvY05vbmUpOwotCi0gICAgICAgIFhTZXRXaW5kb3dBdHRyaWJ1dGVzIGE7
Ci0gICAgICAgIGEuYmFja2dyb3VuZF9waXhlbCA9IFdoaXRlUGl4ZWwoZGlzcGxheSgpLCAwKTsK
LSAgICAgICAgYS5ib3JkZXJfcGl4ZWwgPSBCbGFja1BpeGVsKGRpc3BsYXkoKSwgMCk7Ci0gICAg
ICAgIGEuY29sb3JtYXAgPSBjbWFwOwotICAgICAgICBtX3N1cmZhY2UgPSBYQ3JlYXRlV2luZG93
KGRpc3BsYXkoKSwgbV9vZmZTY3JlZW5XaW5kb3ctPmdldFhXaW5kb3coKSwgMCwgMCwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpLAotICAgICAgICAgICAgMCwgdmlzdWFsSW5mby0+ZGVwdGgs
IElucHV0T3V0cHV0LCB2aXN1YWxJbmZvLT52aXN1YWwsCi0gICAgICAgICAgICBDV0JhY2tQaXhl
bCB8IENXQm9yZGVyUGl4ZWwgfCBDV0NvbG9ybWFwLCAmYSk7Ci0gICAgICAgIFhTZXRXaW5kb3dC
YWNrZ3JvdW5kUGl4bWFwKGRpc3BsYXkoKSwgbV9zdXJmYWNlLCAwKTsKLSAgICAgICAgWENvbXBv
c2l0ZVJlZGlyZWN0V2luZG93KGRpc3BsYXkoKSwgbV9zdXJmYWNlLCBDb21wb3NpdGVSZWRpcmVj
dE1hbnVhbCk7Ci0gICAgICAgIG1fZ2x4U3VyZmFjZSA9IGdsWENyZWF0ZVdpbmRvdyhkaXNwbGF5
KCksIG1fZmJDb25maWcsIG1fc3VyZmFjZSwgMCk7Ci0gICAgICAgIFhGcmVlKHZpc3VhbEluZm8p
OwotCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgWFJlbmRlciBFeHRlbnNpb24gaXMgYXZhaWxh
YmxlLgotICAgICAgICBpbnQgZXZlbnRCYXNlcCwgZXJyb3JCYXNlcDsKLSAgICAgICAgaWYgKCFY
UmVuZGVyUXVlcnlFeHRlbnNpb24oZGlzcGxheSgpLCAmZXZlbnRCYXNlcCwgJmVycm9yQmFzZXAp
KQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5KCks
IG1fc3VyZmFjZSk7Ci0gICAgICAgIHJldHVybiBtX3N1cmZhY2U7Ci0gICAgfQotCi0gICAgdm9p
ZCBjcmVhdGVQaXhtYXAodWludDMyX3Qgd2luSWQpCisgICAgfkdyYXBoaWNzU3VyZmFjZVByaXZh
dGUoKQogICAgIHsKLSAgICAgICAgWFdpbmRvd0F0dHJpYnV0ZXMgYXR0cjsKLSAgICAgICAgaWYg
KCFYR2V0V2luZG93QXR0cmlidXRlcyhkaXNwbGF5KCksIHdpbklkLCAmYXR0cikpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHdpbmRvdyBpcyBtYXBw
ZWQuCi0gICAgICAgIGlmIChhdHRyLm1hcF9zdGF0ZSA9PSBJc1VubWFwcGVkIHx8IGF0dHIubWFw
X3N0YXRlID09IElzVW52aWV3YWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBT
Y29wZWRYUGl4bWFwQ3JlYXRpb25FcnJvckhhbmRsZXIgaGFuZGxlcihkaXNwbGF5KCkpOwotICAg
ICAgICBtX3NpemUgPSBJbnRTaXplKGF0dHIud2lkdGgsIGF0dHIuaGVpZ2h0KTsKLQotICAgICAg
ICBYUmVuZGVyUGljdEZvcm1hdCogZm9ybWF0ID0gWFJlbmRlckZpbmRWaXN1YWxGb3JtYXQoZGlz
cGxheSgpLCBhdHRyLnZpc3VhbCk7Ci0gICAgICAgIG1faGFzQWxwaGEgPSAoZm9ybWF0LT50eXBl
ID09IFBpY3RUeXBlRGlyZWN0ICYmIGZvcm1hdC0+ZGlyZWN0LmFscGhhTWFzayk7Ci0KLSAgICAg
ICAgaW50IG51bWJlck9mQ29uZmlnczsKLSAgICAgICAgR0xYRkJDb25maWcqIGNvbmZpZ3MgPSBn
bFhDaG9vc2VGQkNvbmZpZyhkaXNwbGF5KCksIFhEZWZhdWx0U2NyZWVuKGRpc3BsYXkoKSksIGds
eFNwZWMsICZudW1iZXJPZkNvbmZpZ3MpOwotCi0gICAgICAgIC8vIElmIG9yaWdpbiB3aW5kb3cg
aGFzIGFscGhhIHRoZW4gZmluZCBjb25maWcgd2l0aCBhbHBoYS4KLSAgICAgICAgR0xYRkJDb25m
aWcmIGNvbmZpZyA9IG1faGFzQWxwaGEgPyBmaW5kRkJDb25maWdXaXRoQWxwaGEoY29uZmlncywg
bnVtYmVyT2ZDb25maWdzKSA6IGNvbmZpZ3NbMF07Ci0KLSAgICAgICAgbV94UGl4bWFwID0gWENv
bXBvc2l0ZU5hbWVXaW5kb3dQaXhtYXAoZGlzcGxheSgpLCB3aW5JZCk7Ci0gICAgICAgIG1fZ2x4
UGl4bWFwID0gZ2xYQ3JlYXRlUGl4bWFwKGRpc3BsYXkoKSwgY29uZmlnLCBtX3hQaXhtYXAsIGds
eEF0dHJpYnV0ZXMpOwotCi0gICAgICAgIGlmICghaGFuZGxlci5pc1ZhbGlkT3BlcmF0aW9uKCkp
Ci0gICAgICAgICAgICBjbGVhcigpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHVpbnQg
aW52ZXJ0ZWQgPSAwOwotICAgICAgICAgICAgZ2xYUXVlcnlEcmF3YWJsZShkaXNwbGF5KCksIG1f
Z2x4UGl4bWFwLCBHTFhfWV9JTlZFUlRFRF9FWFQsICZpbnZlcnRlZCk7Ci0gICAgICAgICAgICBt
X3RleHR1cmVJc1lJbnZlcnRlZCA9ICEhaW52ZXJ0ZWQ7CisgICAgICAgIGlmIChtX2dsQ29udGV4
dCkgeworICAgICAgICAgICAgZ2xYRGVzdHJveUNvbnRleHQoZGlzcGxheSgpLCBtX2dsQ29udGV4
dCk7CisgICAgICAgICAgICBtX2dsQ29udGV4dCA9IDA7CiAgICAgICAgIH0KLQotICAgICAgICBY
RnJlZShjb25maWdzKTsKICAgICB9CiAKLSAgICBib29sIHRleHR1cmVJc1lJbnZlcnRlZCgpCisg
ICAgdm9pZCBjcmVhdGVTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewotICAgICAg
ICByZXR1cm4gbV90ZXh0dXJlSXNZSW52ZXJ0ZWQ7CisgICAgICAgIG1fZnJvbnRCdWZmZXItPmNy
ZWF0ZVN1cmZhY2Uoc2l6ZSk7CisgICAgICAgIG1fYmFja0J1ZmZlci0+Y3JlYXRlU3VyZmFjZShz
aXplKTsKICAgICB9CiAKICAgICB2b2lkIG1ha2VDdXJyZW50KCkKICAgICB7CiAgICAgICAgIG1f
ZGV0YWNoZWRDb250ZXh0ID0gZ2xYR2V0Q3VycmVudENvbnRleHQoKTsKICAgICAgICAgbV9kZXRh
Y2hlZFN1cmZhY2UgPSBnbFhHZXRDdXJyZW50RHJhd2FibGUoKTsKLSAgICAgICAgaWYgKG1fc3Vy
ZmFjZSAmJiBtX2dsQ29udGV4dCkKLSAgICAgICAgICAgIGdsWE1ha2VDdXJyZW50KGRpc3BsYXko
KSwgbV9zdXJmYWNlLCBtX2dsQ29udGV4dCk7CisgICAgICAgIGlmIChtX2dsQ29udGV4dCkKKyAg
ICAgICAgICAgIG1fYmFja0J1ZmZlci0+bWFrZUN1cnJlbnQoKTsKICAgICB9CiAKICAgICB2b2lk
IGRvbmVDdXJyZW50KCkKQEAgLTM1MCwyNCArNDY1LDE1IEBAIHN0cnVjdCBHcmFwaGljc1N1cmZh
Y2VQcml2YXRlIHsKICAgICAgICAgbV9kZXRhY2hlZENvbnRleHQgPSAwOwogICAgIH0KIAotICAg
IHZvaWQgc3dhcEJ1ZmZlcnMoKQorICAgIHVpbnQzMl90IHN3YXBCdWZmZXJzKCkKICAgICB7Ci0g
ICAgICAgIC8vIFRoZSBidWZmZXJzIGFyZSBiZWluZyBzd2l0Y2hlZCBvbiB0aGUgd3JpdGluZyBz
aWRlLCB0aGUgcmVhZGluZyBzaWRlIGp1c3QgcmVhZHMKLSAgICAgICAgLy8gd2hhdGV2ZXIgdGV4
dHVyZSB0aGUgWFdpbmRvdyBjb250YWlucy4KLSAgICAgICAgaWYgKG1faXNSZWNlaXZlcikKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBHTFhDb250ZXh0IGdsQ29udGV4dCA9IGdsWEdl
dEN1cnJlbnRDb250ZXh0KCk7CisgICAgICAgIG1fYmFja0J1ZmZlci5zd2FwKG1fZnJvbnRCdWZm
ZXIpOwogCi0gICAgICAgIGlmIChtX3N1cmZhY2UgJiYgZ2xDb250ZXh0KSB7Ci0gICAgICAgICAg
ICBHTGludCBvbGRGQk87Ci0gICAgICAgICAgICBnbEdldEludGVnZXJ2KEdMX0ZSQU1FQlVGRkVS
X0JJTkRJTkcsICZvbGRGQk8pOwotICAgICAgICAgICAgcEdsQmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCAwKTsKLSAgICAgICAgICAgIGdsWFN3YXBCdWZmZXJzKGRpc3BsYXkoKSwgbV9z
dXJmYWNlKTsKLSAgICAgICAgICAgIHBHbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwg
b2xkRkJPKTsKLSAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9mcm9udEJ1ZmZlci0+c3VyZmFj
ZSgpOwogICAgIH0KIAorICAgIHVpbnQzMl90IHN3YXBCdWZmZXJzKCkgY29uc3QgeyByZXR1cm4g
bV9mcm9udEJ1ZmZlci0+c3VyZmFjZSgpOyB9CisKICAgICB2b2lkIGNvcHlGcm9tVGV4dHVyZSh1
aW50MzJfdCB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0KQogICAgIHsKICAgICAg
ICAgbWFrZUN1cnJlbnQoKTsKQEAgLTM5NiwzMCArNTAyLDQwIEBAIHN0cnVjdCBHcmFwaGljc1N1
cmZhY2VQcml2YXRlIHsKIAogICAgICAgICBnbFBvcEF0dHJpYigpOwogCi0gICAgICAgIHN3YXBC
dWZmZXJzKCk7CisvLyAgICAgICAgZ2xGbHVzaCgpOwogICAgICAgICBkb25lQ3VycmVudCgpOwor
ICAgICAgICBzd2FwQnVmZmVycygpOwogICAgIH0KIAogICAgIERpc3BsYXkqIGRpc3BsYXkoKSBj
b25zdCB7IHJldHVybiBPZmZTY3JlZW5Sb290V2luZG93OjpkaXNwbGF5KCk7IH0KIAotICAgIEdM
WFBpeG1hcCBnbHhQaXhtYXAoKSBjb25zdAorICAgIEludFNpemUgc2l6ZSgpIGNvbnN0CiAgICAg
ewotICAgICAgICBpZiAoIW1fZ2x4UGl4bWFwICYmIG1fc3VyZmFjZSkKLSAgICAgICAgICAgIGNv
bnN0X2Nhc3Q8R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSo+KHRoaXMpLT5jcmVhdGVQaXhtYXAobV9z
dXJmYWNlKTsKLSAgICAgICAgcmV0dXJuIG1fZ2x4UGl4bWFwOworICAgICAgICByZXR1cm4gbV9m
cm9udEJ1ZmZlci0+c2l6ZSgpOwogICAgIH0KIAotICAgIEludFNpemUgc2l6ZSgpIGNvbnN0Cisg
ICAgYm9vbCBpc1JlY2VpdmVyKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY2VpdmVyOyB9CisKKyAg
ICB1aW50MzJfdCBmcm9udEJ1ZmZlcigpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAobV9zaXpl
LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgWFdpbmRvd0F0dHJpYnV0ZXMgYXR0cjsKLSAgICAg
ICAgICAgIGlmIChYR2V0V2luZG93QXR0cmlidXRlcyhkaXNwbGF5KCksIG1fc3VyZmFjZSwgJmF0
dHIpKQotICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSo+
KHRoaXMpLT5tX3NpemUgPSBJbnRTaXplKGF0dHIud2lkdGgsIGF0dHIuaGVpZ2h0KTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gbV9zaXplOworICAgICAgICByZXR1cm4gbV9mcm9udEJ1ZmZl
ci0+c3VyZmFjZSgpOworICAgIH0KKworICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIHRva2VuKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBHcmFwaGljc1N1cmZhY2VUb2tlbihtX2Zyb250
QnVmZmVyLT5zdXJmYWNlKCksIG1fYmFja0J1ZmZlci0+c3VyZmFjZSgpKTsKKyAgICB9CisKKyAg
ICB1aW50MzJfdCB0ZXh0dXJlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Zyb250
QnVmZmVyLT50ZXh0dXJlKCk7CisgICAgfQorCisgICAgYm9vbCB0ZXh0dXJlSXNZSW52ZXJ0ZWQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnJvbnRCdWZmZXItPnRleHR1cmVJc1lJbnZlcnRl
ZCgpOwogICAgIH0KIAotICAgIGJvb2wgaXNSZWNlaXZlcigpIGNvbnN0IHsgcmV0dXJuIG1faXNS
ZWNlaXZlcjsgfQogcHJpdmF0ZToKICAgICBHTFhGQkNvbmZpZyYgZmluZEZCQ29uZmlnV2l0aEFs
cGhhKEdMWEZCQ29uZmlnKiBmYkNvbmZpZ3MsIGludCBudW1iZXJPZkNvbmZpZ3MpCiAgICAgewpA
QCAtNDM5LDQzICs1NTUsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGZiQ29uZmlnc1sw
XTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2dseFBp
eG1hcCkgewotICAgICAgICAgICAgZ2xYRGVzdHJveVBpeG1hcChkaXNwbGF5KCksIG1fZ2x4UGl4
bWFwKTsKLSAgICAgICAgICAgIG1fZ2x4UGl4bWFwID0gMDsKLSAgICAgICAgfQotCi0gICAgICAg
IGlmIChtX3hQaXhtYXApIHsKLSAgICAgICAgICAgIFhGcmVlUGl4bWFwKGRpc3BsYXkoKSwgbV94
UGl4bWFwKTsKLSAgICAgICAgICAgIG1feFBpeG1hcCA9IDA7Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyBDbGllbnQgZG9lc24ndCBvd24gdGhlIHdpbmRvdy4gRGVsZXRlIHN1cmZhY2Ugb25seSBv
biB3cml0aW5nIHNpZGUuCi0gICAgICAgIGlmICghbV9pc1JlY2VpdmVyICYmIG1fc3VyZmFjZSkg
ewotICAgICAgICAgICAgWERlc3Ryb3lXaW5kb3coZGlzcGxheSgpLCBtX3N1cmZhY2UpOwotICAg
ICAgICAgICAgbV9zdXJmYWNlID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtX2dsQ29u
dGV4dCkgewotICAgICAgICAgICAgZ2xYRGVzdHJveUNvbnRleHQoZGlzcGxheSgpLCBtX2dsQ29u
dGV4dCk7Ci0gICAgICAgICAgICBtX2dsQ29udGV4dCA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci0K
ICAgICBPd25QdHI8T2ZmU2NyZWVuUm9vdFdpbmRvdz4gbV9vZmZTY3JlZW5XaW5kb3c7Ci0gICAg
SW50U2l6ZSBtX3NpemU7Ci0gICAgUGl4bWFwIG1feFBpeG1hcDsKLSAgICBHTFhQaXhtYXAgbV9n
bHhQaXhtYXA7Ci0gICAgV2luZG93IG1fc3VyZmFjZTsKLSAgICBXaW5kb3cgbV9nbHhTdXJmYWNl
OwogICAgIEdMWENvbnRleHQgbV9nbENvbnRleHQ7CiAgICAgR0xYQ29udGV4dCBtX2RldGFjaGVk
Q29udGV4dDsKICAgICBHTFhEcmF3YWJsZSBtX2RldGFjaGVkU3VyZmFjZTsKICAgICBHTFhGQkNv
bmZpZyBtX2ZiQ29uZmlnOwotICAgIGJvb2wgbV90ZXh0dXJlSXNZSW52ZXJ0ZWQ7Ci0gICAgYm9v
bCBtX2hhc0FscGhhOwogICAgIGJvb2wgbV9pc1JlY2VpdmVyOworICAgIE93blB0cjxXaW5kb3dC
dWZmZXI+IG1fZnJvbnRCdWZmZXI7CisgICAgT3duUHRyPFdpbmRvd0J1ZmZlcj4gbV9iYWNrQnVm
ZmVyOwogfTsKIAogc3RhdGljIGJvb2wgcmVzb2x2ZUdMTWV0aG9kcygpCkBAIC00OTgsMjYgKzU4
NSwxMiBAQCBzdGF0aWMgYm9vbCByZXNvbHZlR0xNZXRob2RzKCkKIAogR3JhcGhpY3NTdXJmYWNl
VG9rZW4gR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUV4cG9ydCgpCiB7Ci0gICAgcmV0dXJuIEdy
YXBoaWNzU3VyZmFjZVRva2VuKG1fcGxhdGZvcm1TdXJmYWNlKTsKKyAgICByZXR1cm4gbV9wcml2
YXRlLT50b2tlbigpOwogfQogCiB1aW50MzJfdCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtR2V0
VGV4dHVyZUlEKCkKIHsKLSAgICBpZiAoIW1fdGV4dHVyZSkgewotICAgICAgICBHTFhQaXhtYXAg
cGl4bWFwID0gbV9wcml2YXRlLT5nbHhQaXhtYXAoKTsKLSAgICAgICAgaWYgKCFwaXhtYXApCi0g
ICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICBnbEdlblRleHR1cmVzKDEsICZtX3RleHR1
cmUpOwotICAgICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7Ci0g
ICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxU
RVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsVGV4UGFyYW1ldGVy
aShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7Ci0g
ICAgICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwg
R0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIHBHbFhCaW5kVGV4SW1hZ2VFWFQobV9wcml2YXRl
LT5kaXNwbGF5KCksIHBpeG1hcCwgR0xYX0ZST05UX0VYVCwgMCk7Ci0gICAgfQotCi0gICAgcmV0
dXJuIG1fdGV4dHVyZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT50ZXh0dXJlKCk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNvcHlUb0dMVGV4dHVyZSh1aW50MzJfdCAvKnRh
cmdldCovLCB1aW50MzJfdCAvKmlkKi8sIGNvbnN0IEludFJlY3QmIC8qdGFyZ2V0UmVjdCovLCBj
b25zdCBJbnRQb2ludCYgLypvZmZzZXQqLykKQEAgLTU1MCwyMiArNjIzLDEyIEBAIHZvaWQgR3Jh
cGhpY3NTdXJmYWNlOjpwbGF0Zm9ybVBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIq
IHRleHR1cmVNYXBwZXIsCiAKIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Gcm9u
dEJ1ZmZlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
ZnJvbnRCdWZmZXIoKTsKIH0KIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybVN3
YXBCdWZmZXJzKCkKIHsKLSAgICBpZiAobV9wcml2YXRlLT5pc1JlY2VpdmVyKCkgJiYgcGxhdGZv
cm1HZXRUZXh0dXJlSUQoKSkgewotICAgICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQs
IHBsYXRmb3JtR2V0VGV4dHVyZUlEKCkpOwotICAgICAgICAvLyBSZWxlYXNlIHByZXZpb3VzIGxv
Y2sgYW5kIHJlYmluZCB0ZXh0dXJlIHRvIHN1cmZhY2UgdG8gZ2V0IGZyYW1lIHVwZGF0ZS4KLSAg
ICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRpc3BsYXkoKSwgbV9wcml2
YXRlLT5nbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCk7Ci0gICAgICAgIHBHbFhCaW5kVGV4SW1h
Z2VFWFQobV9wcml2YXRlLT5kaXNwbGF5KCksIG1fcHJpdmF0ZS0+Z2x4UGl4bWFwKCksIEdMWF9G
Uk9OVF9FWFQsIDApOwotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIG1fcHJpdmF0
ZS0+c3dhcEJ1ZmZlcnMoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5z
d2FwQnVmZmVycygpOwogfQogCiBJbnRTaXplIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1TaXpl
KCkgY29uc3QKQEAgLTU4Nyw3ICs2NTAsNyBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4g
R3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUNyZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLAogICAg
IGlmICghcmVzb2x2ZUdMTWV0aG9kcygpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxHcmFw
aGljc1N1cmZhY2U+KCk7CiAKLSAgICBzdXJmYWNlLT5tX3BsYXRmb3JtU3VyZmFjZSA9IHN1cmZh
Y2UtPm1fcHJpdmF0ZS0+Y3JlYXRlU3VyZmFjZShzaXplKTsKKyAgICBzdXJmYWNlLT5tX3ByaXZh
dGUtPmNyZWF0ZVN1cmZhY2Uoc2l6ZSk7CiAKICAgICByZXR1cm4gc3VyZmFjZTsKIH0KQEAgLTYw
MSw5ICs2NjQsOCBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gR3JhcGhpY3NTdXJmYWNl
OjpwbGF0Zm9ybUltcG9ydChjb25zdCBJbnRTaXplJiBzaXplLAogICAgICAgICByZXR1cm4gUGFz
c1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KCk7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNl
PiBzdXJmYWNlID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzU3VyZmFjZShzaXplLCBmbGFncykpOwot
ICAgIHN1cmZhY2UtPm1fcGxhdGZvcm1TdXJmYWNlID0gdG9rZW4uZnJvbnRCdWZmZXJIYW5kbGU7
CiAKLSAgICBzdXJmYWNlLT5tX3ByaXZhdGUgPSBuZXcgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZShz
dXJmYWNlLT5tX3BsYXRmb3JtU3VyZmFjZSk7CisgICAgc3VyZmFjZS0+bV9wcml2YXRlID0gbmV3
IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUodG9rZW4pOwogICAgIGlmICghcmVzb2x2ZUdMTWV0aG9k
cygpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KCk7CiAKQEAg
LTYyMywxMSArNjg1LDYgQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtVW5sb2NrKCkK
IAogdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtRGVzdHJveSgpCiB7Ci0gICAgaWYgKG1f
dGV4dHVyZSkgewotICAgICAgICBwR2xYUmVsZWFzZVRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlz
cGxheSgpLCBtX3ByaXZhdGUtPmdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKLSAgICAgICAg
Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICB9Ci0KICAgICBkZWxldGUgbV9w
cml2YXRlOwogICAgIG1fcHJpdmF0ZSA9IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggMzEwNmRmMi4uMzgxMTE5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcApAQCAtMzksOSArMzksOSBAQCB2b2lkIFRleHR1cmVN
YXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlOjpzZXRHcmFwaGljc1N1cmZhY2UoUGFzc1JlZlB0cjxH
cmFwaGljc1N1cgogICAgIG1fZ3JhcGhpY3NTdXJmYWNlID0gc3VyZmFjZTsKIH0KIAotdm9pZCBU
ZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZTo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCh1aW50
MzJfdCkKK3ZvaWQgVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OnN3YXBCdWZmZXJz
SWZOZWVkZWQodWludDMyX3QgZnJvbnRCdWZmZXIpCiB7Ci0gICAgaWYgKG1fZ3JhcGhpY3NTdXJm
YWNlKQorICAgIGlmIChtX2dyYXBoaWNzU3VyZmFjZSAmJiBtX2dyYXBoaWNzU3VyZmFjZS0+ZnJv
bnRCdWZmZXIoKSAhPSBmcm9udEJ1ZmZlcikKICAgICAgICAgbV9ncmFwaGljc1N1cmZhY2UtPnN3
YXBCdWZmZXJzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDllODg4ZTUuLjE3NjMzNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcApAQCAt
NzgzLDYgKzc4Myw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2VUb2tlbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kCiAgICAgZW5jb2RlciA8PCBy
ZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih0b2tlbi5iYWNrQnVmZmVySGFuZGxlKTsKICNlbGlm
IE9TKExJTlVYKQogICAgIGVuY29kZXIgPDwgdG9rZW4uZnJvbnRCdWZmZXJIYW5kbGU7CisgICAg
ZW5jb2RlciA8PCB0b2tlbi5iYWNrQnVmZmVySGFuZGxlOwogI2VuZGlmCiB9CiAKQEAgLTgwOCw2
ICs4MDksOCBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9r
ZW4+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZAogI2VsaWYgT1MoTElOVVgpCiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUodG9rZW4uZnJvbnRCdWZmZXJIYW5kbGUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodG9rZW4uYmFja0J1ZmZlckhh
bmRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIHJldHVybiB0cnVlOwog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186385</attachid>
            <date>2013-02-04 08:34:10 -0800</date>
            <delta_ts>2013-02-04 11:47:18 -0800</delta_ts>
            <desc>WIP patch2</desc>
            <filename>single_buffer_02.diff</filename>
            <type>text/plain</type>
            <size>20593</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dy
YXBoaWNzU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCmluZGV4IDU2ODhjZTkuLmJhZWZhOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmNwcApAQCAtODUsOCArODUsNiBAQCBJbnRTaXplIEdyYXBoaWNzU3Vy
ZmFjZTo6c2l6ZSgpIGNvbnN0CiAKIEdyYXBoaWNzU3VyZmFjZTo6R3JhcGhpY3NTdXJmYWNlKGNv
bnN0IEludFNpemUmLCBGbGFncyBmbGFncykKICAgICA6IG1fZmxhZ3MoZmxhZ3MpCi0gICAgLCBt
X3BsYXRmb3JtU3VyZmFjZSgwKQotICAgICwgbV90ZXh0dXJlKDApCiAgICAgLCBtX2ZibygwKQog
ICAgICwgbV9wcml2YXRlKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCmluZGV4IDU0OWU4MDQu
LmRhNDkzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5oCkBAIC03Myw3ICs3Myw2IEBAIHB1Ymxp
YzoKICAgICB0eXBlZGVmIGludCBMb2NrT3B0aW9uczsKIAogICAgIEZsYWdzIGZsYWdzKCkgY29u
c3QgeyByZXR1cm4gbV9mbGFnczsgfQotICAgIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlIHBsYXRm
b3JtU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1TdXJmYWNlOyB9CiAgICAgSW50
U2l6ZSBzaXplKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZh
Y2U+IGNyZWF0ZShjb25zdCBJbnRTaXplJiwgRmxhZ3MsIGNvbnN0IFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0Qgc2hhcmVDb250ZXh0ID0gMCk7CkBAIC0xMTksOCArMTE4LDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlIG1fcGxhdGZv
cm1TdXJmYWNlOwotICAgIHVpbnQzMl90IG1fdGV4dHVyZTsKICAgICB1aW50MzJfdCBtX2ZibzsK
ICAgICBHcmFwaGljc1N1cmZhY2VQcml2YXRlKiBtX3ByaXZhdGU7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNl
VG9rZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBo
aWNzU3VyZmFjZVRva2VuLmgKaW5kZXggYzk3ZjM2OC4uNmVhMDgzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlVG9r
ZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFw
aGljc1N1cmZhY2VUb2tlbi5oCkBAIC00MSwyNCArNDEsNiBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJm
YWNlVG9rZW4gewogICAgIHR5cGVkZWYgSEFORExFIEJ1ZmZlckhhbmRsZTsKICNlbmRpZgogCi0j
aWYgSEFWRShHTFgpCi0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4odWludDMyX3Qgd2luZG93SUQg
PSAwKQotICAgICAgICA6IGZyb250QnVmZmVySGFuZGxlKHdpbmRvd0lEKQotICAgIHsgfQotCi0g
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdyYXBoaWNzU3VyZmFjZVRva2VuICZyaHMpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gZnJvbnRCdWZmZXJIYW5kbGUgIT0gcmhzLmZyb250QnVm
ZmVySGFuZGxlOwotICAgIH0KLQotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gZnJvbnRCdWZmZXJIYW5kbGU7Ci0gICAgfQotCi0jZW5kaWYKLQotI2lmIE9T
KERBUldJTikgfHwgT1MoV0lORE9XUykKICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbihCdWZmZXJI
YW5kbGUgZnJvbnRCdWZmZXIgPSAwLCBCdWZmZXJIYW5kbGUgYmFja0J1ZmZlciA9IDApCiAgICAg
ICAgIDogZnJvbnRCdWZmZXJIYW5kbGUoZnJvbnRCdWZmZXIpCiAgICAgICAgICwgYmFja0J1ZmZl
ckhhbmRsZShiYWNrQnVmZmVyKQpAQCAtNzQsMTAgKzU2LDggQEAgc3RydWN0IEdyYXBoaWNzU3Vy
ZmFjZVRva2VuIHsKICAgICAgICAgcmV0dXJuIGZyb250QnVmZmVySGFuZGxlICYmIGJhY2tCdWZm
ZXJIYW5kbGU7CiAgICAgfQogCi0gICAgQnVmZmVySGFuZGxlIGJhY2tCdWZmZXJIYW5kbGU7Ci0j
ZW5kaWYKLQogICAgIEJ1ZmZlckhhbmRsZSBmcm9udEJ1ZmZlckhhbmRsZTsKKyAgICBCdWZmZXJI
YW5kbGUgYmFja0J1ZmZlckhhbmRsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNz
U3VyZmFjZUdMWC5jcHAKaW5kZXggYTU3YjYzOC4uZGNmMGYwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdM
WC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGludCBhdHRy
aWJ1dGVzW10gPSB7CiAgICAgR0xYX0FMUEhBX1NJWkUsICAgIDEsCiAgICAgR0xYX0RFUFRIX1NJ
WkUsICAgIDEsCiAgICAgR0xYX1hfVklTVUFMX1RZUEUsIEdMWF9UUlVFX0NPTE9SLAotICAgIEdM
WF9ET1VCTEVCVUZGRVIsICBUcnVlLAorICAgIEdMWF9ET1VCTEVCVUZGRVIsICBGYWxzZSwKICAg
ICBOb25lCiB9OwogCkBAIC0yMDYsMjAgKzIwNiwxNDQgQEAgc3RhdGljIGNvbnN0IGludCBnbHhB
dHRyaWJ1dGVzW10gPSB7CiAgICAgMAogfTsKIAotc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZh
dGUgeworY2xhc3MgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB7CisgICAgc3RydWN0IFdpbmRvd0J1
ZmZlciB7CisgICAgICAgIFdpbmRvd0J1ZmZlcihHcmFwaGljc1N1cmZhY2VQcml2YXRlKiBzdXJm
YWNlUHJpdmF0ZSkKKyAgICAgICAgICAgIDogbV9zdXJmYWNlUHJpdmF0ZShzdXJmYWNlUHJpdmF0
ZSkKKyAgICAgICAgICAgICwgbV94UGl4bWFwKDApCisgICAgICAgICAgICAsIG1fZ2x4UGl4bWFw
KDApCisgICAgICAgICAgICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQorICAgICAgICAg
ICAgLCBtX2hhc0FscGhhKGZhbHNlKQorICAgICAgICAgICAgLCBtX3RleHR1cmUoMCkKKyAgICAg
ICAgeworICAgICAgICB9CisKKyAgICAgICAgV2luZG93QnVmZmVyKEdyYXBoaWNzU3VyZmFjZVBy
aXZhdGUqIHN1cmZhY2VQcml2YXRlLCB1aW50MzJfdCBwaXhtYXBJZCwgSW50U2l6ZSBzaXplKQor
ICAgICAgICAgICAgOiBtX3N1cmZhY2VQcml2YXRlKHN1cmZhY2VQcml2YXRlKQorICAgICAgICAg
ICAgLCBtX3NpemUoc2l6ZSkKKyAgICAgICAgICAgICwgbV94UGl4bWFwKHBpeG1hcElkKQorICAg
ICAgICAgICAgLCBtX2dseFBpeG1hcCgwKQorICAgICAgICAgICAgLCBtX3RleHR1cmVJc1lJbnZl
cnRlZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9oYXNBbHBoYShmYWxzZSkKKyAgICAgICAgICAg
ICwgbV90ZXh0dXJlKDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIH5XaW5kb3dC
dWZmZXIoKQorICAgICAgICB7CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCBjcmVhdGVQaXhtYXAoY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgU2NvcGVkWFBpeG1hcENyZWF0aW9uRXJyb3JIYW5kbGVyIGhhbmRsZXIoZGlz
cGxheSgpKTsKKyAgICAgICAgICAgIG1fc2l6ZSA9IHNpemU7CisKKyAgICAgICAgICAgIGludCBu
dW1iZXJPZkNvbmZpZ3M7CisgICAgICAgICAgICBHTFhGQkNvbmZpZyogY29uZmlncyA9IGdsWENo
b29zZUZCQ29uZmlnKGRpc3BsYXkoKSwgWERlZmF1bHRTY3JlZW4oZGlzcGxheSgpKSwgZ2x4U3Bl
YywgJm51bWJlck9mQ29uZmlncyk7CisKKyAgICAgICAgICAgIEdMWEZCQ29uZmlnJiBjb25maWcg
PSBtX3N1cmZhY2VQcml2YXRlLT5maW5kRkJDb25maWdXaXRoQWxwaGEoY29uZmlncywgbnVtYmVy
T2ZDb25maWdzKTsKKworICAgICAgICAgICAgaWYgKCFtX3hQaXhtYXApCisgICAgICAgICAgICAg
ICAgbV94UGl4bWFwID0gWENyZWF0ZVBpeG1hcChkaXNwbGF5KCksIFhEZWZhdWx0U2NyZWVuKGRp
c3BsYXkoKSksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgMzIpOworICAgICAgICAgICAg
bV9nbHhQaXhtYXAgPSBnbFhDcmVhdGVQaXhtYXAoZGlzcGxheSgpLCBjb25maWcsIG1feFBpeG1h
cCwgZ2x4QXR0cmlidXRlcyk7CisKKyAgICAgICAgICAgIGlmICghaGFuZGxlci5pc1ZhbGlkT3Bl
cmF0aW9uKCkpCisgICAgICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgIHVpbnQgaW52ZXJ0ZWQgPSAwOworICAgICAgICAgICAgICAgIGdsWFF1
ZXJ5RHJhd2FibGUoZGlzcGxheSgpLCBtX2dseFBpeG1hcCwgR0xYX1lfSU5WRVJURURfRVhULCAm
aW52ZXJ0ZWQpOworICAgICAgICAgICAgICAgIG1fdGV4dHVyZUlzWUludmVydGVkID0gISFpbnZl
cnRlZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgWEZyZWUoY29uZmlncyk7CisgICAg
ICAgIH0KKworICAgICAgICB2b2lkIG1ha2VDdXJyZW50KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKGdseFBpeG1hcCgpKQorICAgICAgICAgICAgICAgIGdsWE1ha2VDdXJyZW50KGRpc3Bs
YXkoKSwgZ2x4UGl4bWFwKCksIG1fc3VyZmFjZVByaXZhdGUtPm1fZ2xDb250ZXh0KTsKKyAgICAg
ICAgfQorCisgICAgICAgIEdMWFBpeG1hcCBnbHhQaXhtYXAoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIW1fZ2x4UGl4bWFwKQorICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8
V2luZG93QnVmZmVyKj4odGhpcyktPmNyZWF0ZVBpeG1hcChtX3NpemUpOworICAgICAgICAgICAg
cmV0dXJuIG1fZ2x4UGl4bWFwOworICAgICAgICB9CisKKyAgICAgICAgSW50U2l6ZSBzaXplKCkg
Y29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fc2l6ZTsKKyAgICAgICAgfQor
CisgICAgICAgIHVpbnQzMl90IHN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3hQaXhtYXA7IH0K
KworICAgICAgICB1aW50MzJfdCB0ZXh0dXJlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX3RleHR1cmUpIHsKKyAgICAgICAgICAgICAgICBHTFhQaXhtYXAgcGl4bWFwID0g
Z2x4UGl4bWFwKCk7CisgICAgICAgICAgICAgICAgaWYgKCFwaXhtYXApCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAwOworCisgICAgICAgICAgICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmKGNv
bnN0X2Nhc3Q8V2luZG93QnVmZmVyKj4odGhpcyktPm1fdGV4dHVyZSkpOworICAgICAgICAgICAg
ICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKKyAgICAgICAgICAg
ICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVS
LCBHTF9MSU5FQVIpOworICAgICAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJF
XzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgICAgICAgICAg
Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFN
UF9UT19FREdFKTsKKyAgICAgICAgICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgICAgICAgICAgICAg
IHBHbFhCaW5kVGV4SW1hZ2VFWFQoZGlzcGxheSgpLCBwaXhtYXAsIEdMWF9GUk9OVF9FWFQsIDAp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbV90ZXh0dXJlOworICAgICAg
ICB9CisKKyAgICAgICAgYm9vbCB0ZXh0dXJlSXNZSW52ZXJ0ZWQoKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gbV90ZXh0dXJlSXNZSW52ZXJ0ZWQ7CisgICAgICAgIH0KKworICAgIHBy
aXZhdGU6CisgICAgICAgIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
bV90ZXh0dXJlKSB7CisgICAgICAgICAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChkaXNw
bGF5KCksIG1fZ2x4UGl4bWFwLCBHTFhfRlJPTlRfRVhUKTsKKyAgICAgICAgICAgICAgICBnbERl
bGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAobV9nbHhQaXhtYXApIHsKKyAgICAgICAgICAgICAgICBnbFhEZXN0cm95UGl4bWFwKGRp
c3BsYXkoKSwgbV9nbHhQaXhtYXApOworICAgICAgICAgICAgICAgIG1fZ2x4UGl4bWFwID0gMDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2xpZW50IGRvZXNuJ3Qgb3duIHRoZSB3
aW5kb3cuIERlbGV0ZSBzdXJmYWNlIG9ubHkgb24gd3JpdGluZyBzaWRlLgorICAgICAgICAgICAg
aWYgKCFtX3N1cmZhY2VQcml2YXRlLT5tX2lzUmVjZWl2ZXIgJiYgbV94UGl4bWFwKSB7CisgICAg
ICAgICAgICAgICAgWEZyZWVQaXhtYXAoZGlzcGxheSgpLCBtX3hQaXhtYXApOworICAgICAgICAg
ICAgICAgIG1feFBpeG1hcCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBEaXNwbGF5KiBkaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gT2ZmU2NyZWVuUm9vdFdpbmRvdzo6
ZGlzcGxheSgpOyB9CisKKyAgICAgICAgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSogbV9zdXJmYWNl
UHJpdmF0ZTsKKyAgICAgICAgSW50U2l6ZSBtX3NpemU7CisgICAgICAgIFBpeG1hcCBtX3hQaXht
YXA7CisgICAgICAgIEdMWFBpeG1hcCBtX2dseFBpeG1hcDsKKyAgICAgICAgYm9vbCBtX3RleHR1
cmVJc1lJbnZlcnRlZDsKKyAgICAgICAgYm9vbCBtX2hhc0FscGhhOworICAgICAgICB1aW50MzJf
dCBtX3RleHR1cmU7CisgICAgfTsKKworcHVibGljOgogICAgIEdyYXBoaWNzU3VyZmFjZVByaXZh
dGUoY29uc3QgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBzaGFyZUNvbnRleHQgPSAwKQogICAg
ICAgICA6IG1fb2ZmU2NyZWVuV2luZG93KGFkb3B0UHRyKG5ldyBPZmZTY3JlZW5Sb290V2luZG93
KCkpKQotICAgICAgICAsIG1feFBpeG1hcCgwKQotICAgICAgICAsIG1fZ2x4UGl4bWFwKDApCi0g
ICAgICAgICwgbV9zdXJmYWNlKDApCi0gICAgICAgICwgbV9nbHhTdXJmYWNlKDApCiAgICAgICAg
ICwgbV9nbENvbnRleHQoMCkKICAgICAgICAgLCBtX2RldGFjaGVkQ29udGV4dCgwKQogICAgICAg
ICAsIG1fZGV0YWNoZWRTdXJmYWNlKDApCiAgICAgICAgICwgbV9mYkNvbmZpZygwKQotICAgICAg
ICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQotICAgICAgICAsIG1faGFzQWxwaGEoZmFs
c2UpCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKGZhbHNlKQorICAgICAgICAsIG1fZnJvbnRCdWZm
ZXIoYWRvcHRQdHIobmV3IFdpbmRvd0J1ZmZlcih0aGlzKSkpCisgICAgICAgICwgbV9iYWNrQnVm
ZmVyKGFkb3B0UHRyKG5ldyBXaW5kb3dCdWZmZXIodGhpcykpKQogICAgIHsKICAgICAgICAgR0xY
Q29udGV4dCBzaGFyZUNvbnRleHRPYmplY3QgPSAwOwogCkBAIC0yNDYsMTAxICszNzAsMzkgQEAg
c3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICBtX2dsQ29udGV4dCA9IGds
WENyZWF0ZU5ld0NvbnRleHQoZGlzcGxheSgpLCBtX2ZiQ29uZmlnLCBHTFhfUkdCQV9UWVBFLCBz
aGFyZUNvbnRleHRPYmplY3QsIHRydWUpOwogICAgIH0KIAotICAgIEdyYXBoaWNzU3VyZmFjZVBy
aXZhdGUodWludDMyX3Qgd2luSWQpCi0gICAgICAgIDogbV94UGl4bWFwKDApCi0gICAgICAgICwg
bV9nbHhQaXhtYXAoMCkKLSAgICAgICAgLCBtX3N1cmZhY2Uod2luSWQpCi0gICAgICAgICwgbV9n
bHhTdXJmYWNlKDApCi0gICAgICAgICwgbV9nbENvbnRleHQoMCkKKyAgICBHcmFwaGljc1N1cmZh
Y2VQcml2YXRlKGNvbnN0IEdyYXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbiwgSW50U2l6ZSBzaXpl
KQorICAgICAgICA6IG1fZ2xDb250ZXh0KDApCiAgICAgICAgICwgbV9kZXRhY2hlZENvbnRleHQo
MCkKICAgICAgICAgLCBtX2RldGFjaGVkU3VyZmFjZSgwKQogICAgICAgICAsIG1fZmJDb25maWco
MCkKLSAgICAgICAgLCBtX3RleHR1cmVJc1lJbnZlcnRlZChmYWxzZSkKLSAgICAgICAgLCBtX2hh
c0FscGhhKGZhbHNlKQogICAgICAgICAsIG1faXNSZWNlaXZlcih0cnVlKQotICAgIHsgfQotCi0g
ICAgfkdyYXBoaWNzU3VyZmFjZVByaXZhdGUoKQorICAgICAgICAsIG1fZnJvbnRCdWZmZXIoYWRv
cHRQdHIobmV3IFdpbmRvd0J1ZmZlcih0aGlzLCB0b2tlbi5mcm9udEJ1ZmZlckhhbmRsZSwgc2l6
ZSkpKQorICAgICAgICAsIG1fYmFja0J1ZmZlcihhZG9wdFB0cihuZXcgV2luZG93QnVmZmVyKHRo
aXMsIHRva2VuLmJhY2tCdWZmZXJIYW5kbGUsIHNpemUpKSkKKyAgICAgICAgLCBtX3Rva2VuKHRv
a2VuKQogICAgIHsKLSAgICAgICAgY2xlYXIoKTsKICAgICB9CiAKLSAgICB1aW50MzJfdCBjcmVh
dGVTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgewotICAgICAgICBYVmlzdWFsSW5m
byogdmlzdWFsSW5mbyA9IGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhkaXNwbGF5KCksIG1fZmJD
b25maWcpOwotICAgICAgICBpZiAoIXZpc3VhbEluZm8pCi0gICAgICAgICAgICByZXR1cm4gMDsK
LQotICAgICAgICBDb2xvcm1hcCBjbWFwID0gWENyZWF0ZUNvbG9ybWFwKGRpc3BsYXkoKSwgbV9v
ZmZTY3JlZW5XaW5kb3ctPmdldFhXaW5kb3coKSwgdmlzdWFsSW5mby0+dmlzdWFsLCBBbGxvY05v
bmUpOwotCi0gICAgICAgIFhTZXRXaW5kb3dBdHRyaWJ1dGVzIGE7Ci0gICAgICAgIGEuYmFja2dy
b3VuZF9waXhlbCA9IFdoaXRlUGl4ZWwoZGlzcGxheSgpLCAwKTsKLSAgICAgICAgYS5ib3JkZXJf
cGl4ZWwgPSBCbGFja1BpeGVsKGRpc3BsYXkoKSwgMCk7Ci0gICAgICAgIGEuY29sb3JtYXAgPSBj
bWFwOwotICAgICAgICBtX3N1cmZhY2UgPSBYQ3JlYXRlV2luZG93KGRpc3BsYXkoKSwgbV9vZmZT
Y3JlZW5XaW5kb3ctPmdldFhXaW5kb3coKSwgMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpLAotICAgICAgICAgICAgMCwgdmlzdWFsSW5mby0+ZGVwdGgsIElucHV0T3V0cHV0LCB2aXN1
YWxJbmZvLT52aXN1YWwsCi0gICAgICAgICAgICBDV0JhY2tQaXhlbCB8IENXQm9yZGVyUGl4ZWwg
fCBDV0NvbG9ybWFwLCAmYSk7Ci0gICAgICAgIFhTZXRXaW5kb3dCYWNrZ3JvdW5kUGl4bWFwKGRp
c3BsYXkoKSwgbV9zdXJmYWNlLCAwKTsKLSAgICAgICAgWENvbXBvc2l0ZVJlZGlyZWN0V2luZG93
KGRpc3BsYXkoKSwgbV9zdXJmYWNlLCBDb21wb3NpdGVSZWRpcmVjdE1hbnVhbCk7Ci0gICAgICAg
IG1fZ2x4U3VyZmFjZSA9IGdsWENyZWF0ZVdpbmRvdyhkaXNwbGF5KCksIG1fZmJDb25maWcsIG1f
c3VyZmFjZSwgMCk7Ci0gICAgICAgIFhGcmVlKHZpc3VhbEluZm8pOwotCi0gICAgICAgIC8vIE1h
a2Ugc3VyZSB0aGUgWFJlbmRlciBFeHRlbnNpb24gaXMgYXZhaWxhYmxlLgotICAgICAgICBpbnQg
ZXZlbnRCYXNlcCwgZXJyb3JCYXNlcDsKLSAgICAgICAgaWYgKCFYUmVuZGVyUXVlcnlFeHRlbnNp
b24oZGlzcGxheSgpLCAmZXZlbnRCYXNlcCwgJmVycm9yQmFzZXApKQotICAgICAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5KCksIG1fc3VyZmFjZSk7Ci0gICAg
ICAgIHJldHVybiBtX3N1cmZhY2U7Ci0gICAgfQotCi0gICAgdm9pZCBjcmVhdGVQaXhtYXAodWlu
dDMyX3Qgd2luSWQpCisgICAgfkdyYXBoaWNzU3VyZmFjZVByaXZhdGUoKQogICAgIHsKLSAgICAg
ICAgWFdpbmRvd0F0dHJpYnV0ZXMgYXR0cjsKLSAgICAgICAgaWYgKCFYR2V0V2luZG93QXR0cmli
dXRlcyhkaXNwbGF5KCksIHdpbklkLCAmYXR0cikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHdpbmRvdyBpcyBtYXBwZWQuCi0gICAgICAgIGlmIChh
dHRyLm1hcF9zdGF0ZSA9PSBJc1VubWFwcGVkIHx8IGF0dHIubWFwX3N0YXRlID09IElzVW52aWV3
YWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBTY29wZWRYUGl4bWFwQ3JlYXRp
b25FcnJvckhhbmRsZXIgaGFuZGxlcihkaXNwbGF5KCkpOwotICAgICAgICBtX3NpemUgPSBJbnRT
aXplKGF0dHIud2lkdGgsIGF0dHIuaGVpZ2h0KTsKLQotICAgICAgICBYUmVuZGVyUGljdEZvcm1h
dCogZm9ybWF0ID0gWFJlbmRlckZpbmRWaXN1YWxGb3JtYXQoZGlzcGxheSgpLCBhdHRyLnZpc3Vh
bCk7Ci0gICAgICAgIG1faGFzQWxwaGEgPSAoZm9ybWF0LT50eXBlID09IFBpY3RUeXBlRGlyZWN0
ICYmIGZvcm1hdC0+ZGlyZWN0LmFscGhhTWFzayk7Ci0KLSAgICAgICAgaW50IG51bWJlck9mQ29u
ZmlnczsKLSAgICAgICAgR0xYRkJDb25maWcqIGNvbmZpZ3MgPSBnbFhDaG9vc2VGQkNvbmZpZyhk
aXNwbGF5KCksIFhEZWZhdWx0U2NyZWVuKGRpc3BsYXkoKSksIGdseFNwZWMsICZudW1iZXJPZkNv
bmZpZ3MpOwotCi0gICAgICAgIC8vIElmIG9yaWdpbiB3aW5kb3cgaGFzIGFscGhhIHRoZW4gZmlu
ZCBjb25maWcgd2l0aCBhbHBoYS4KLSAgICAgICAgR0xYRkJDb25maWcmIGNvbmZpZyA9IG1faGFz
QWxwaGEgPyBmaW5kRkJDb25maWdXaXRoQWxwaGEoY29uZmlncywgbnVtYmVyT2ZDb25maWdzKSA6
IGNvbmZpZ3NbMF07Ci0KLSAgICAgICAgbV94UGl4bWFwID0gWENvbXBvc2l0ZU5hbWVXaW5kb3dQ
aXhtYXAoZGlzcGxheSgpLCB3aW5JZCk7Ci0gICAgICAgIG1fZ2x4UGl4bWFwID0gZ2xYQ3JlYXRl
UGl4bWFwKGRpc3BsYXkoKSwgY29uZmlnLCBtX3hQaXhtYXAsIGdseEF0dHJpYnV0ZXMpOwotCi0g
ICAgICAgIGlmICghaGFuZGxlci5pc1ZhbGlkT3BlcmF0aW9uKCkpCi0gICAgICAgICAgICBjbGVh
cigpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHVpbnQgaW52ZXJ0ZWQgPSAwOwotICAg
ICAgICAgICAgZ2xYUXVlcnlEcmF3YWJsZShkaXNwbGF5KCksIG1fZ2x4UGl4bWFwLCBHTFhfWV9J
TlZFUlRFRF9FWFQsICZpbnZlcnRlZCk7Ci0gICAgICAgICAgICBtX3RleHR1cmVJc1lJbnZlcnRl
ZCA9ICEhaW52ZXJ0ZWQ7CisgICAgICAgIGlmIChtX2dsQ29udGV4dCkgeworICAgICAgICAgICAg
Z2xYRGVzdHJveUNvbnRleHQoZGlzcGxheSgpLCBtX2dsQ29udGV4dCk7CisgICAgICAgICAgICBt
X2dsQ29udGV4dCA9IDA7CiAgICAgICAgIH0KLQotICAgICAgICBYRnJlZShjb25maWdzKTsKICAg
ICB9CiAKLSAgICBib29sIHRleHR1cmVJc1lJbnZlcnRlZCgpCisgICAgdm9pZCBjcmVhdGVTdXJm
YWNlKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgewotICAgICAgICByZXR1cm4gbV90ZXh0dXJl
SXNZSW52ZXJ0ZWQ7CisgICAgICAgIG1fZnJvbnRCdWZmZXItPmNyZWF0ZVBpeG1hcChzaXplKTsK
KyAgICAgICAgbV9iYWNrQnVmZmVyLT5jcmVhdGVQaXhtYXAoc2l6ZSk7CisgICAgICAgIG1fdG9r
ZW4gPSBHcmFwaGljc1N1cmZhY2VUb2tlbihtX2Zyb250QnVmZmVyLT5zdXJmYWNlKCksIG1fYmFj
a0J1ZmZlci0+c3VyZmFjZSgpKTsKICAgICB9CiAKICAgICB2b2lkIG1ha2VDdXJyZW50KCkKICAg
ICB7CiAgICAgICAgIG1fZGV0YWNoZWRDb250ZXh0ID0gZ2xYR2V0Q3VycmVudENvbnRleHQoKTsK
ICAgICAgICAgbV9kZXRhY2hlZFN1cmZhY2UgPSBnbFhHZXRDdXJyZW50RHJhd2FibGUoKTsKLSAg
ICAgICAgaWYgKG1fc3VyZmFjZSAmJiBtX2dsQ29udGV4dCkKLSAgICAgICAgICAgIGdsWE1ha2VD
dXJyZW50KGRpc3BsYXkoKSwgbV9zdXJmYWNlLCBtX2dsQ29udGV4dCk7CisgICAgICAgIGlmICht
X2dsQ29udGV4dCkKKyAgICAgICAgICAgIG1fYmFja0J1ZmZlci0+bWFrZUN1cnJlbnQoKTsKICAg
ICB9CiAKICAgICB2b2lkIGRvbmVDdXJyZW50KCkKQEAgLTM1MCwyNCArNDEyLDE1IEBAIHN0cnVj
dCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKICAgICAgICAgbV9kZXRhY2hlZENvbnRleHQgPSAw
OwogICAgIH0KIAotICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKQorICAgIHVpbnQzMl90IHN3YXBCdWZm
ZXJzKCkKICAgICB7Ci0gICAgICAgIC8vIFRoZSBidWZmZXJzIGFyZSBiZWluZyBzd2l0Y2hlZCBv
biB0aGUgd3JpdGluZyBzaWRlLCB0aGUgcmVhZGluZyBzaWRlIGp1c3QgcmVhZHMKLSAgICAgICAg
Ly8gd2hhdGV2ZXIgdGV4dHVyZSB0aGUgWFdpbmRvdyBjb250YWlucy4KLSAgICAgICAgaWYgKG1f
aXNSZWNlaXZlcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBHTFhDb250ZXh0IGds
Q29udGV4dCA9IGdsWEdldEN1cnJlbnRDb250ZXh0KCk7CisgICAgICAgIG1fYmFja0J1ZmZlci5z
d2FwKG1fZnJvbnRCdWZmZXIpOwogCi0gICAgICAgIGlmIChtX3N1cmZhY2UgJiYgZ2xDb250ZXh0
KSB7Ci0gICAgICAgICAgICBHTGludCBvbGRGQk87Ci0gICAgICAgICAgICBnbEdldEludGVnZXJ2
KEdMX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZvbGRGQk8pOwotICAgICAgICAgICAgcEdsQmluZEZy
YW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCAwKTsKLSAgICAgICAgICAgIGdsWFN3YXBCdWZmZXJz
KGRpc3BsYXkoKSwgbV9zdXJmYWNlKTsKLSAgICAgICAgICAgIHBHbEJpbmRGcmFtZWJ1ZmZlcihH
TF9GUkFNRUJVRkZFUiwgb2xkRkJPKTsKLSAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9mcm9u
dEJ1ZmZlci0+c3VyZmFjZSgpOwogICAgIH0KIAorICAgIHVpbnQzMl90IGZyb250QnVmZmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9mcm9udEJ1ZmZlci0+c3VyZmFjZSgpOyB9CisKICAgICB2b2lkIGNv
cHlGcm9tVGV4dHVyZSh1aW50MzJfdCB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
KQogICAgIHsKICAgICAgICAgbWFrZUN1cnJlbnQoKTsKQEAgLTM5NiwzMCArNDQ5LDM1IEBAIHN0
cnVjdCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKIAogICAgICAgICBnbFBvcEF0dHJpYigpOwog
Ci0gICAgICAgIHN3YXBCdWZmZXJzKCk7CisvLyAgICAgICAgZ2xGbHVzaCgpOwogICAgICAgICBk
b25lQ3VycmVudCgpOworICAgICAgICBzd2FwQnVmZmVycygpOwogICAgIH0KIAogICAgIERpc3Bs
YXkqIGRpc3BsYXkoKSBjb25zdCB7IHJldHVybiBPZmZTY3JlZW5Sb290V2luZG93OjpkaXNwbGF5
KCk7IH0KIAotICAgIEdMWFBpeG1hcCBnbHhQaXhtYXAoKSBjb25zdAorICAgIEludFNpemUgc2l6
ZSgpIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoIW1fZ2x4UGl4bWFwICYmIG1fc3VyZmFjZSkK
LSAgICAgICAgICAgIGNvbnN0X2Nhc3Q8R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSo+KHRoaXMpLT5j
cmVhdGVQaXhtYXAobV9zdXJmYWNlKTsKLSAgICAgICAgcmV0dXJuIG1fZ2x4UGl4bWFwOworICAg
ICAgICByZXR1cm4gbV9mcm9udEJ1ZmZlci0+c2l6ZSgpOwogICAgIH0KIAotICAgIEludFNpemUg
c2l6ZSgpIGNvbnN0CisgICAgYm9vbCBpc1JlY2VpdmVyKCkgY29uc3QgeyByZXR1cm4gbV9pc1Jl
Y2VpdmVyOyB9CisKKyAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiB0b2tlbigpIGNvbnN0CiAgICAg
ewotICAgICAgICBpZiAobV9zaXplLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgWFdpbmRvd0F0
dHJpYnV0ZXMgYXR0cjsKLSAgICAgICAgICAgIGlmIChYR2V0V2luZG93QXR0cmlidXRlcyhkaXNw
bGF5KCksIG1fc3VyZmFjZSwgJmF0dHIpKQotICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8R3Jh
cGhpY3NTdXJmYWNlUHJpdmF0ZSo+KHRoaXMpLT5tX3NpemUgPSBJbnRTaXplKGF0dHIud2lkdGgs
IGF0dHIuaGVpZ2h0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbV9zaXplOworICAgICAg
ICByZXR1cm4gbV90b2tlbjsKKyAgICB9CisKKyAgICB1aW50MzJfdCB0ZXh0dXJlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2Zyb250QnVmZmVyLT50ZXh0dXJlKCk7CisgICAgfQor
CisgICAgYm9vbCB0ZXh0dXJlSXNZSW52ZXJ0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
ZnJvbnRCdWZmZXItPnRleHR1cmVJc1lJbnZlcnRlZCgpOwogICAgIH0KIAotICAgIGJvb2wgaXNS
ZWNlaXZlcigpIGNvbnN0IHsgcmV0dXJuIG1faXNSZWNlaXZlcjsgfQogcHJpdmF0ZToKICAgICBH
TFhGQkNvbmZpZyYgZmluZEZCQ29uZmlnV2l0aEFscGhhKEdMWEZCQ29uZmlnKiBmYkNvbmZpZ3Ms
IGludCBudW1iZXJPZkNvbmZpZ3MpCiAgICAgewpAQCAtNDM5LDQzICs0OTcsMTUgQEAgcHJpdmF0
ZToKICAgICAgICAgcmV0dXJuIGZiQ29uZmlnc1swXTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFy
KCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2dseFBpeG1hcCkgewotICAgICAgICAgICAgZ2xYRGVz
dHJveVBpeG1hcChkaXNwbGF5KCksIG1fZ2x4UGl4bWFwKTsKLSAgICAgICAgICAgIG1fZ2x4UGl4
bWFwID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtX3hQaXhtYXApIHsKLSAgICAgICAg
ICAgIFhGcmVlUGl4bWFwKGRpc3BsYXkoKSwgbV94UGl4bWFwKTsKLSAgICAgICAgICAgIG1feFBp
eG1hcCA9IDA7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDbGllbnQgZG9lc24ndCBvd24gdGhl
IHdpbmRvdy4gRGVsZXRlIHN1cmZhY2Ugb25seSBvbiB3cml0aW5nIHNpZGUuCi0gICAgICAgIGlm
ICghbV9pc1JlY2VpdmVyICYmIG1fc3VyZmFjZSkgewotICAgICAgICAgICAgWERlc3Ryb3lXaW5k
b3coZGlzcGxheSgpLCBtX3N1cmZhY2UpOwotICAgICAgICAgICAgbV9zdXJmYWNlID0gMDsKLSAg
ICAgICAgfQotCi0gICAgICAgIGlmIChtX2dsQ29udGV4dCkgewotICAgICAgICAgICAgZ2xYRGVz
dHJveUNvbnRleHQoZGlzcGxheSgpLCBtX2dsQ29udGV4dCk7Ci0gICAgICAgICAgICBtX2dsQ29u
dGV4dCA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBPd25QdHI8T2ZmU2NyZWVuUm9vdFdp
bmRvdz4gbV9vZmZTY3JlZW5XaW5kb3c7Ci0gICAgSW50U2l6ZSBtX3NpemU7Ci0gICAgUGl4bWFw
IG1feFBpeG1hcDsKLSAgICBHTFhQaXhtYXAgbV9nbHhQaXhtYXA7Ci0gICAgV2luZG93IG1fc3Vy
ZmFjZTsKLSAgICBXaW5kb3cgbV9nbHhTdXJmYWNlOwogICAgIEdMWENvbnRleHQgbV9nbENvbnRl
eHQ7CiAgICAgR0xYQ29udGV4dCBtX2RldGFjaGVkQ29udGV4dDsKICAgICBHTFhEcmF3YWJsZSBt
X2RldGFjaGVkU3VyZmFjZTsKICAgICBHTFhGQkNvbmZpZyBtX2ZiQ29uZmlnOwotICAgIGJvb2wg
bV90ZXh0dXJlSXNZSW52ZXJ0ZWQ7Ci0gICAgYm9vbCBtX2hhc0FscGhhOwogICAgIGJvb2wgbV9p
c1JlY2VpdmVyOworICAgIE93blB0cjxXaW5kb3dCdWZmZXI+IG1fZnJvbnRCdWZmZXI7CisgICAg
T3duUHRyPFdpbmRvd0J1ZmZlcj4gbV9iYWNrQnVmZmVyOworICAgIEdyYXBoaWNzU3VyZmFjZVRv
a2VuIG1fdG9rZW47CiB9OwogCiBzdGF0aWMgYm9vbCByZXNvbHZlR0xNZXRob2RzKCkKQEAgLTQ5
OCwyNiArNTI4LDEyIEBAIHN0YXRpYyBib29sIHJlc29sdmVHTE1ldGhvZHMoKQogCiBHcmFwaGlj
c1N1cmZhY2VUb2tlbiBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtRXhwb3J0KCkKIHsKLSAgICBy
ZXR1cm4gR3JhcGhpY3NTdXJmYWNlVG9rZW4obV9wbGF0Zm9ybVN1cmZhY2UpOworICAgIHJldHVy
biBtX3ByaXZhdGUtPnRva2VuKCk7CiB9CiAKIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6cGxh
dGZvcm1HZXRUZXh0dXJlSUQoKQogewotICAgIGlmICghbV90ZXh0dXJlKSB7Ci0gICAgICAgIEdM
WFBpeG1hcCBwaXhtYXAgPSBtX3ByaXZhdGUtPmdseFBpeG1hcCgpOwotICAgICAgICBpZiAoIXBp
eG1hcCkKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIGdsR2VuVGV4dHVyZXMoMSwg
Jm1fdGV4dHVyZSk7Ci0gICAgICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0
dXJlKTsKLSAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
TUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRV
UkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKLSAgICAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
V1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgcEdsWEJpbmRUZXhJbWFnZUVYVCht
X3ByaXZhdGUtPmRpc3BsYXkoKSwgcGl4bWFwLCBHTFhfRlJPTlRfRVhULCAwKTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gbV90ZXh0dXJlOworICAgIHJldHVybiBtX3ByaXZhdGUtPnRleHR1cmUoKTsK
IH0KIAogdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ29weVRvR0xUZXh0dXJlKHVpbnQz
Ml90IC8qdGFyZ2V0Ki8sIHVpbnQzMl90IC8qaWQqLywgY29uc3QgSW50UmVjdCYgLyp0YXJnZXRS
ZWN0Ki8sIGNvbnN0IEludFBvaW50JiAvKm9mZnNldCovKQpAQCAtNTUwLDIyICs1NjYsMTIgQEAg
dm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtUGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlciwKIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0
Zm9ybUZyb250QnVmZmVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5mcm9udEJ1ZmZlcigpOwogfQogCiB1aW50MzJfdCBHcmFwaGljc1N1cmZhY2U6OnBs
YXRmb3JtU3dhcEJ1ZmZlcnMoKQogewotICAgIGlmIChtX3ByaXZhdGUtPmlzUmVjZWl2ZXIoKSAm
JiBwbGF0Zm9ybUdldFRleHR1cmVJRCgpKSB7Ci0gICAgICAgIGdsQmluZFRleHR1cmUoR0xfVEVY
VFVSRV8yRCwgcGxhdGZvcm1HZXRUZXh0dXJlSUQoKSk7Ci0gICAgICAgIC8vIFJlbGVhc2UgcHJl
dmlvdXMgbG9jayBhbmQgcmViaW5kIHRleHR1cmUgdG8gc3VyZmFjZSB0byBnZXQgZnJhbWUgdXBk
YXRlLgotICAgICAgICBwR2xYUmVsZWFzZVRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgp
LCBtX3ByaXZhdGUtPmdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKLSAgICAgICAgcEdsWEJp
bmRUZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRpc3BsYXkoKSwgbV9wcml2YXRlLT5nbHhQaXhtYXAo
KSwgR0xYX0ZST05UX0VYVCwgMCk7Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAg
bV9wcml2YXRlLT5zd2FwQnVmZmVycygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX3By
aXZhdGUtPnN3YXBCdWZmZXJzKCk7CiB9CiAKIEludFNpemUgR3JhcGhpY3NTdXJmYWNlOjpwbGF0
Zm9ybVNpemUoKSBjb25zdApAQCAtNTg3LDcgKzU5Myw3IEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NT
dXJmYWNlPiBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ3JlYXRlKGNvbnN0IEludFNpemUmIHNp
emUsCiAgICAgaWYgKCFyZXNvbHZlR0xNZXRob2RzKCkpCiAgICAgICAgIHJldHVybiBQYXNzUmVm
UHRyPEdyYXBoaWNzU3VyZmFjZT4oKTsKIAotICAgIHN1cmZhY2UtPm1fcGxhdGZvcm1TdXJmYWNl
ID0gc3VyZmFjZS0+bV9wcml2YXRlLT5jcmVhdGVTdXJmYWNlKHNpemUpOworICAgIHN1cmZhY2Ut
Pm1fcHJpdmF0ZS0+Y3JlYXRlU3VyZmFjZShzaXplKTsKIAogICAgIHJldHVybiBzdXJmYWNlOwog
fQpAQCAtNjAxLDkgKzYwNyw4IEBAIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBHcmFwaGlj
c1N1cmZhY2U6OnBsYXRmb3JtSW1wb3J0KGNvbnN0IEludFNpemUmIHNpemUsCiAgICAgICAgIHJl
dHVybiBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4oKTsKIAogICAgIFJlZlB0cjxHcmFwaGlj
c1N1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NTdXJmYWNlKHNpemUsIGZs
YWdzKSk7Ci0gICAgc3VyZmFjZS0+bV9wbGF0Zm9ybVN1cmZhY2UgPSB0b2tlbi5mcm9udEJ1ZmZl
ckhhbmRsZTsKIAotICAgIHN1cmZhY2UtPm1fcHJpdmF0ZSA9IG5ldyBHcmFwaGljc1N1cmZhY2VQ
cml2YXRlKHN1cmZhY2UtPm1fcGxhdGZvcm1TdXJmYWNlKTsKKyAgICBzdXJmYWNlLT5tX3ByaXZh
dGUgPSBuZXcgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSh0b2tlbiwgc2l6ZSk7CiAgICAgaWYgKCFy
ZXNvbHZlR0xNZXRob2RzKCkpCiAgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPEdyYXBoaWNzU3Vy
ZmFjZT4oKTsKIApAQCAtNjIzLDExICs2MjgsNiBAQCB2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxh
dGZvcm1VbmxvY2soKQogCiB2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1EZXN0cm95KCkK
IHsKLSAgICBpZiAobV90ZXh0dXJlKSB7Ci0gICAgICAgIHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQo
bV9wcml2YXRlLT5kaXNwbGF5KCksIG1fcHJpdmF0ZS0+Z2x4UGl4bWFwKCksIEdMWF9GUk9OVF9F
WFQpOwotICAgICAgICBnbERlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOwotICAgIH0KLQog
ICAgIGRlbGV0ZSBtX3ByaXZhdGU7CiAgICAgbV9wcml2YXRlID0gMDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFj
a2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcAppbmRleCAzMTA2ZGYyLi4zODExMTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCkBAIC0zOSw5ICszOSw5IEBA
IHZvaWQgVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OnNldEdyYXBoaWNzU3VyZmFj
ZShQYXNzUmVmUHRyPEdyYXBoaWNzU3VyCiAgICAgbV9ncmFwaGljc1N1cmZhY2UgPSBzdXJmYWNl
OwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlOjpzd2FwQnVmZmVy
c0lmTmVlZGVkKHVpbnQzMl90KQordm9pZCBUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9y
ZTo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCh1aW50MzJfdCBmcm9udEJ1ZmZlcikKIHsKLSAgICBpZiAo
bV9ncmFwaGljc1N1cmZhY2UpCisgICAgaWYgKG1fZ3JhcGhpY3NTdXJmYWNlICYmIG1fZ3JhcGhp
Y3NTdXJmYWNlLT5mcm9udEJ1ZmZlcigpICE9IGZyb250QnVmZmVyKQogICAgICAgICBtX2dyYXBo
aWNzU3VyZmFjZS0+c3dhcEJ1ZmZlcnMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggOWU4ODhlNS4uMTc2MzM2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC03ODMsNiArNzgzLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2QKICAg
ICBlbmNvZGVyIDw8IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHRva2VuLmJhY2tCdWZmZXJI
YW5kbGUpOwogI2VsaWYgT1MoTElOVVgpCiAgICAgZW5jb2RlciA8PCB0b2tlbi5mcm9udEJ1ZmZl
ckhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IHRva2VuLmJhY2tCdWZmZXJIYW5kbGU7CiAjZW5kaWYK
IH0KIApAQCAtODA4LDYgKzgwOSw4IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFw
aGljc1N1cmZhY2VUb2tlbj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kCiAjZWxpZiBP
UyhMSU5VWCkKICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0b2tlbi5mcm9udEJ1ZmZlckhhbmRs
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0b2tl
bi5iYWNrQnVmZmVySGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAg
cmV0dXJuIHRydWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186426</attachid>
            <date>2013-02-04 11:47:51 -0800</date>
            <delta_ts>2013-02-05 01:08:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108059-20130204144423.patch</filename>
            <type>text/plain</type>
            <size>2964</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRjODhkZDU0ZDM4OWRj
MTJmMDgyMjdjNDEzMWIwODBiNjFhNjlmMi4uN2JjYWUwOGFmNjJkNDc0ODNjNzVkNDFmMGEzZDU0
ZTRiNGVmMWEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTA0ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W1F0XVtFRkxdW1dlYkdMXSBXZWJnbCBkb2Vzbid0IHdvcmsgb24gbnZpZGlhIGNhcmRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwNTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21taXQgcjEzODMy
NyBmaXhlZCByZXBhaW50aW5nIGlzc3VlcyBvbiBtZXNhM2QgR0wgbGlicmFyeSBieSByZS1iaW5k
aW5nCisgICAgICAgIHRleHR1cmUgdG8gdGhlIHdpbmRvdyBhZnRlciBldmVyeSBnbFhTd2FwQnVm
ZmVyLiBVbmZvcnR1bmF0ZWxseSByZS1iaW5kCisgICAgICAgIGJyZWFrcyByZW5kZXJpbmcgb24g
TlZpZGlhIGNhcmRzIHdpdGggTlZpZGlhIHByb3BpZXJ0YXJ5IGRyaXZlcnMuCisgICAgICAgIFRo
aXMgY2hhbmdlIGxpbWl0cyB0ZXh0dXJlIHJlLWJpbmRpbmcgb25seSBmb3IgbWVzYTNkIEdMIGxp
YnJhcnkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBIVyBzcGVjaWZpYyBmaXguCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZlNjcmVlblJvb3RXaW5kb3c6OmlzTWVzYUdMWCk6Cisg
ICAgICAgIChPZmZTY3JlZW5Sb290V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZTo6cGxhdGZvcm1Td2FwQnVmZmVycyk6CisKIDIwMTMtMDItMDQgIERhbiBDYXJuZXkg
IDxkY2FybmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgW3Y4XSBleHBsaWNpdCBpc29sYXRlIHBh
cmFtZXRlciBmb3IgTWFrZVdlYWsgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFj
ZUdMWC5jcHAKaW5kZXggYTU3YjYzODY5Njg5MmZhMTVkYjQ3OWY2OGE1YzMyZDVlN2I4ZWExZi4u
Nzc1N2U2ODA5ZjJkMDJiMzVmYzNjM2Q3YWM0OGYyMTVhNWRmODVjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFj
ZUdMWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHAKQEAgLTE4MSw2ICsxODEsMTIgQEAgcHVibGljOgog
ICAgICAgICB9CiAgICAgfQogCisgICAgc3RhdGljIGJvb2wgaXNNZXNhR0xYKCkKKyAgICB7Cisg
ICAgICAgIHN0YXRpYyBib29sIGlzTWVzYSA9ICEhc3Ryc3RyKGdsWEdldENsaWVudFN0cmluZyhk
aXNwbGF5KCksIEdMWF9WRU5ET1IpLCAiTWVzYSIpOworICAgICAgICByZXR1cm4gaXNNZXNhOwor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBzdGF0aWMgaW50IG1fcmVmQ291bnQ7CiAgICAgc3RhdGlj
IFdpbmRvdyBtX3dpbmRvdzsKQEAgLTU1NSwxMiArNTYxLDE0IEBAIHVpbnQzMl90IEdyYXBoaWNz
U3VyZmFjZTo6cGxhdGZvcm1Gcm9udEJ1ZmZlcigpIGNvbnN0CiAKIHVpbnQzMl90IEdyYXBoaWNz
U3VyZmFjZTo6cGxhdGZvcm1Td2FwQnVmZmVycygpCiB7Ci0gICAgaWYgKG1fcHJpdmF0ZS0+aXNS
ZWNlaXZlcigpICYmIHBsYXRmb3JtR2V0VGV4dHVyZUlEKCkpIHsKLSAgICAgICAgZ2xCaW5kVGV4
dHVyZShHTF9URVhUVVJFXzJELCBwbGF0Zm9ybUdldFRleHR1cmVJRCgpKTsKLSAgICAgICAgLy8g
UmVsZWFzZSBwcmV2aW91cyBsb2NrIGFuZCByZWJpbmQgdGV4dHVyZSB0byBzdXJmYWNlIHRvIGdl
dCBmcmFtZSB1cGRhdGUuCi0gICAgICAgIHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQobV9wcml2YXRl
LT5kaXNwbGF5KCksIG1fcHJpdmF0ZS0+Z2x4UGl4bWFwKCksIEdMWF9GUk9OVF9FWFQpOwotICAg
ICAgICBwR2xYQmluZFRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBtX3ByaXZhdGUt
PmdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhULCAwKTsKLQorICAgIGlmIChtX3ByaXZhdGUtPmlz
UmVjZWl2ZXIoKSkgeworICAgICAgICBpZiAoT2ZmU2NyZWVuUm9vdFdpbmRvdzo6aXNNZXNhR0xY
KCkgJiYgcGxhdGZvcm1HZXRUZXh0dXJlSUQoKSkgeworICAgICAgICAgICAgZ2xCaW5kVGV4dHVy
ZShHTF9URVhUVVJFXzJELCBwbGF0Zm9ybUdldFRleHR1cmVJRCgpKTsKKyAgICAgICAgICAgIC8v
IE1lc2EgZG9lc24ndCByZS1iaW5kIHRleHR1cmUgdG8gdGhlIGZyb250IGJ1ZmZlciBvbiBnbFhT
d2FwQnVmZXIKKyAgICAgICAgICAgIC8vIE1hbnVhbGx5IHJlbGVhc2UgcHJldmlvdXMgbG9jayBh
bmQgcmViaW5kIHRleHR1cmUgdG8gc3VyZmFjZSB0byBnZXQgZnJhbWUgdXBkYXRlLgorICAgICAg
ICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRpc3BsYXkoKSwgbV9wcml2
YXRlLT5nbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCk7CisgICAgICAgICAgICBwR2xYQmluZFRl
eEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBtX3ByaXZhdGUtPmdseFBpeG1hcCgpLCBH
TFhfRlJPTlRfRVhULCAwKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>