<?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>44455</bug_id>
          
          <creation_ts>2010-08-23 14:01:47 -0700</creation_ts>
          <short_desc>Remove references to ArrayBuffer and ArrayBufferView from GraphicsContext3D</short_desc>
          <delta_ts>2010-08-23 16:07:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268093</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-08-23 14:01:47 -0700</bug_when>
    <thetext>The fact that GraphicsContext3D references the ArrayBuffer and ArrayBufferView types makes it difficult to reuse outside of WebGL, and is also a layering violation. GraphicsContext3D should refer only to void* (and a size argument) in these situations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268135</commentid>
    <comment_count>1</comment_count>
      <attachid>65168</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-08-23 15:52:25 -0700</bug_when>
    <thetext>Created attachment 65168
Patch

From the ChangeLog:

Updated Safari, Qt and Chromium WebGL ports to avoid referencing ArrayBuffer and ArrayBufferView types from GraphicsContext3D. Ran all WebGL layout tests; no new regressions. Built and tested WebKit on Mac OS X; built Chromium on Mac OS X and Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268137</commentid>
    <comment_count>2</comment_count>
      <attachid>65168</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-08-23 15:59:37 -0700</bug_when>
    <thetext>Comment on attachment 65168
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268142</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-08-23 16:07:37 -0700</bug_when>
    <thetext>Committed r65839: &lt;http://trac.webkit.org/changeset/65839&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65168</attachid>
            <date>2010-08-23 15:52:25 -0700</date>
            <delta_ts>2010-08-23 15:59:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>array-buffer-removal.patch</filename>
            <type>text/plain</type>
            <size>20049</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTgzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMjMgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSByZWZlcmVuY2VzIHRvIEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgZnJvbSBH
cmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQ0NTUKKworICAgICAgICBVcGRhdGVkIFNhZmFyaSwgUXQgYW5kIENocm9taXVt
IFdlYkdMIHBvcnRzIHRvIGF2b2lkIHJlZmVyZW5jaW5nCisgICAgICAgIEFycmF5QnVmZmVyIGFu
ZCBBcnJheUJ1ZmZlclZpZXcgdHlwZXMgZnJvbSBHcmFwaGljc0NvbnRleHQzRC4KKworICAgICAg
ICBSYW4gYWxsIFdlYkdMIGxheW91dCB0ZXN0czsgbm8gbmV3IHJlZ3Jlc3Npb25zLiBCdWlsdCBh
bmQgdGVzdGVkCisgICAgICAgIFdlYktpdCBvbiBNYWMgT1MgWDsgYnVpbHQgQ2hyb21pdW0gb24g
TWFjIE9TIFggYW5kIExpbnV4LgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
Y3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmg6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6YnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlclN1YkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnNpbXVsYXRlVmVydGV4QXR0cmliMCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RUZXh0dXJlRGF0YSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTEVTMkNh
bnZhczo6Z2V0UXVhZFZlcnRpY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
R3JhcGhpY3NDb250ZXh0M0RNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6YnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
YnVmZmVyU3ViRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3ND
b250ZXh0M0RRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6YnVm
ZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6YnVmZmVyU3Vi
RGF0YSk6CisKIDIwMTAtMDgtMjAgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAJKHJldmlzaW9uIDY1ODM3KQorKysgV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZp
ZXcuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgJKHJldmlzaW9uIDY1
ODM3KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwogCiBjbGFzcyBXZWJHTEJ1ZmZl
ciA6IHB1YmxpYyBXZWJHTE9iamVjdCB7CiBwdWJsaWM6CkluZGV4OiBXZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA2NTgzNykKKysrIFdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpidWZmZXJE
YXRhKHUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dC0+YnVmZmVyRGF0
YSh0YXJnZXQsIGRhdGEsIHVzYWdlKTsKKyAgICBtX2NvbnRleHQtPmJ1ZmZlckRhdGEodGFyZ2V0
LCBkYXRhLT5ieXRlTGVuZ3RoKCksIGRhdGEtPmRhdGEoKSwgdXNhZ2UpOwogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKQEAgLTQxMCw3ICs0MTAsNyBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6YnVmZmVyRGF0YSh1CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2NvbnRleHQtPmJ1ZmZlckRhdGEodGFyZ2V0LCBkYXRhLCB1c2FnZSk7CisgICAg
bV9jb250ZXh0LT5idWZmZXJEYXRhKHRhcmdldCwgZGF0YS0+Ynl0ZUxlbmd0aCgpLCBkYXRhLT5i
YXNlQWRkcmVzcygpLCB1c2FnZSk7CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNl
KTsKIH0KIApAQCAtNDI1LDcgKzQyNSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpi
dWZmZXJTdWJEYXQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dC0+YnVm
ZmVyU3ViRGF0YSh0YXJnZXQsIG9mZnNldCwgZGF0YSk7CisgICAgbV9jb250ZXh0LT5idWZmZXJT
dWJEYXRhKHRhcmdldCwgb2Zmc2V0LCBkYXRhLT5ieXRlTGVuZ3RoKCksIGRhdGEtPmRhdGEoKSk7
CiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKIH0KIApAQCAtNDQwLDcgKzQ0
MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpidWZmZXJTdWJEYXQKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dC0+YnVmZmVyU3ViRGF0YSh0YXJnZXQsIG9m
ZnNldCwgZGF0YSk7CisgICAgbV9jb250ZXh0LT5idWZmZXJTdWJEYXRhKHRhcmdldCwgb2Zmc2V0
LCBkYXRhLT5ieXRlTGVuZ3RoKCksIGRhdGEtPmJhc2VBZGRyZXNzKCkpOwogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CiAKQEAgLTIxMzEsMTEgKzIxMzEsMTEgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleEltYWdlMkQodQogICAgIHZvaWQqIGRhdGEgPSBw
aXhlbHMgPyBwaXhlbHMtPmJhc2VBZGRyZXNzKCkgOiAwOwogICAgIFZlY3Rvcjx1aW50OF90PiB0
ZW1wRGF0YTsKICAgICBib29sIGNoYW5nZVVucGFja0FsaWdubWVudCA9IGZhbHNlOwotICAgIGlm
IChwaXhlbHMgJiYgKG1fdW5wYWNrRmxpcFkgfHwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKSkg
eworICAgIGlmIChkYXRhICYmIChtX3VucGFja0ZsaXBZIHx8IG1fdW5wYWNrUHJlbXVsdGlwbHlB
bHBoYSkpIHsKICAgICAgICAgaWYgKCFtX2NvbnRleHQtPmV4dHJhY3RUZXh0dXJlRGF0YSh3aWR0
aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV91bnBhY2tBbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVscywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgZGF0YSA9IHRlbXBEYXRhLmRhdGEoKTsKQEAgLTIzMDAsMTEgKzIz
MDAsMTEgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRleFN1YkltYWdlMgogICAgIHZv
aWQqIGRhdGEgPSBwaXhlbHMgPyBwaXhlbHMtPmJhc2VBZGRyZXNzKCkgOiAwOwogICAgIFZlY3Rv
cjx1aW50OF90PiB0ZW1wRGF0YTsKICAgICBib29sIGNoYW5nZVVucGFja0FsaWdubWVudCA9IGZh
bHNlOwotICAgIGlmIChwaXhlbHMgJiYgKG1fdW5wYWNrRmxpcFkgfHwgbV91bnBhY2tQcmVtdWx0
aXBseUFscGhhKSkgeworICAgIGlmIChkYXRhICYmIChtX3VucGFja0ZsaXBZIHx8IG1fdW5wYWNr
UHJlbXVsdGlwbHlBbHBoYSkpIHsKICAgICAgICAgaWYgKCFtX2NvbnRleHQtPmV4dHJhY3RUZXh0
dXJlRGF0YSh3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV91bnBhY2tBbGlnbm1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVt
dWx0aXBseUFscGhhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGF0YSA9IHRlbXBEYXRhLmRhdGEoKTsKQEAg
LTM1NDcsMTQgKzM1NDcsMTQgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNpbXVsYXRl
VmVydAogICAgICAgICB8fCBzdGF0ZS52YWx1ZVsxXSAhPSBtX3ZlcnRleEF0dHJpYjBCdWZmZXJW
YWx1ZVsxXQogICAgICAgICB8fCBzdGF0ZS52YWx1ZVsyXSAhPSBtX3ZlcnRleEF0dHJpYjBCdWZm
ZXJWYWx1ZVsyXQogICAgICAgICB8fCBzdGF0ZS52YWx1ZVszXSAhPSBtX3ZlcnRleEF0dHJpYjBC
dWZmZXJWYWx1ZVszXSkgewotICAgICAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBidWZmZXJEYXRh
ID0gRmxvYXQzMkFycmF5OjpjcmVhdGUoKG51bVZlcnRleCArIDEpICogNCk7CisgICAgICAgIE93
bkFycmF5UHRyPGZsb2F0PiBidWZmZXJEYXRhKG5ldyBmbG9hdFsobnVtVmVydGV4ICsgMSkgKiA0
XSk7CiAgICAgICAgIGZvciAobG9uZyBpaSA9IDA7IGlpIDwgbnVtVmVydGV4ICsgMTsgKytpaSkg
ewotICAgICAgICAgICAgYnVmZmVyRGF0YS0+c2V0KGlpICogNCwgc3RhdGUudmFsdWVbMF0pOwot
ICAgICAgICAgICAgYnVmZmVyRGF0YS0+c2V0KGlpICogNCArIDEsIHN0YXRlLnZhbHVlWzFdKTsK
LSAgICAgICAgICAgIGJ1ZmZlckRhdGEtPnNldChpaSAqIDQgKyAyLCBzdGF0ZS52YWx1ZVsyXSk7
Ci0gICAgICAgICAgICBidWZmZXJEYXRhLT5zZXQoaWkgKiA0ICsgMywgc3RhdGUudmFsdWVbM10p
OworICAgICAgICAgICAgYnVmZmVyRGF0YVtpaSAqIDRdID0gc3RhdGUudmFsdWVbMF07CisgICAg
ICAgICAgICBidWZmZXJEYXRhW2lpICogNCArIDFdID0gc3RhdGUudmFsdWVbMV07CisgICAgICAg
ICAgICBidWZmZXJEYXRhW2lpICogNCArIDJdID0gc3RhdGUudmFsdWVbMl07CisgICAgICAgICAg
ICBidWZmZXJEYXRhW2lpICogNCArIDNdID0gc3RhdGUudmFsdWVbM107CiAgICAgICAgIH0KLSAg
ICAgICAgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZG
RVIsIGJ1ZmZlckRhdGEuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpEWU5BTUlDX0RSQVcpOwor
ICAgICAgICBtX2NvbnRleHQtPmJ1ZmZlckRhdGEoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JV
RkZFUiwgYnVmZmVyRGF0YVNpemUsIGJ1ZmZlckRhdGEuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNE
OjpEWU5BTUlDX0RSQVcpOwogICAgICAgICBtX3ZlcnRleEF0dHJpYjBCdWZmZXJTaXplID0gYnVm
ZmVyRGF0YVNpemU7CiAgICAgICAgIG1fdmVydGV4QXR0cmliMEJ1ZmZlclZhbHVlWzBdID0gc3Rh
dGUudmFsdWVbMF07CiAgICAgICAgIG1fdmVydGV4QXR0cmliMEJ1ZmZlclZhbHVlWzFdID0gc3Rh
dGUudmFsdWVbMV07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gNjU4MzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDcgKzE0
NCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmV4dHJhY3RUZXh0dXJlRGEKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZm9ybWF0LCB1
bnNpZ25lZCBpbnQgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgdW5wYWNrQWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheUJ1ZmZlclZp
ZXcqIHBpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCB2b2lkKiBwaXhlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQogewogICAgIC8vIEFzc3VtZXMgZm9ybWF0LCB0
eXBlLCBldGMuIGhhdmUgYWxyZWFkeSBiZWVuIHZhbGlkYXRlZC4KQEAgLTE5Myw3ICsxOTMsNyBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhCiAgICAgdW5zaWduZWQg
bG9uZyBieXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25l
bnQ7CiAgICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAot
ICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDx1aW50OF90Kj4ocGl4ZWxzLT5iYXNlQWRk
cmVzcygpKSwKKyAgICBpZiAoIXBhY2tQaXhlbHMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KHBpeGVscyksCiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZURhdGFGb3JtYXQsCiAgICAgICAg
ICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIHVucGFja0FsaWdubWVudCwKICAgICAgICAgICAg
ICAgICAgICAgZm9ybWF0LCB0eXBlLApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gNjU4MzcpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDE1
ICs3NywxMCBAQCBjb25zdCBQbGF0Zm9ybTNET2JqZWN0IE51bGxQbGF0Zm9ybTNET2JqCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQXJyYXlCdWZmZXI7Ci1jbGFzcyBBcnJh
eUJ1ZmZlclZpZXc7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0OwotY2xhc3MgRmxvYXQz
MkFycmF5OwogY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VEYXRh
OwotY2xhc3MgSW50MzJBcnJheTsKLWNsYXNzIFVpbnQ4QXJyYXk7CiBjbGFzcyBXZWJHTEFjdGl2
ZUluZm87CiAKIHN0cnVjdCBBY3RpdmVJbmZvIHsKQEAgLTUxMiw3ICs1MDcsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZvcm1hdCwgdW5zaWdu
ZWQgaW50IHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHVu
cGFja0FsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXlC
dWZmZXJWaWV3KiBwaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9p
ZCogcGl4ZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiYg
ZGF0YSk7CiAKICAgICAvLyBGbGlwcyB0aGUgZ2l2ZW4gaW1hZ2UgZGF0YSB2ZXJ0aWNhbGx5LCBp
bi1wbGFjZS4KQEAgLTU1NiwxMCArNTUxLDggQEAgcHVibGljOgogICAgIHZvaWQgYmxlbmRGdW5j
U2VwYXJhdGUodW5zaWduZWQgbG9uZyBzcmNSR0IsIHVuc2lnbmVkIGxvbmcgZHN0UkdCLCB1bnNp
Z25lZCBsb25nIHNyY0FscGhhLCB1bnNpZ25lZCBsb25nIGRzdEFscGhhKTsKIAogICAgIHZvaWQg
YnVmZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgaW50IHNpemUsIHVuc2lnbmVkIGxvbmcg
dXNhZ2UpOwotICAgIHZvaWQgYnVmZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgQXJyYXlC
dWZmZXIqIGRhdGEsIHVuc2lnbmVkIGxvbmcgdXNhZ2UpOwotICAgIHZvaWQgYnVmZmVyRGF0YSh1
bnNpZ25lZCBsb25nIHRhcmdldCwgQXJyYXlCdWZmZXJWaWV3KiBkYXRhLCB1bnNpZ25lZCBsb25n
IHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxv
bmcgb2Zmc2V0LCBBcnJheUJ1ZmZlciogZGF0YSk7Ci0gICAgdm9pZCBidWZmZXJTdWJEYXRhKHVu
c2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwgQXJyYXlCdWZmZXJWaWV3KiBkYXRhKTsK
KyAgICB2b2lkIGJ1ZmZlckRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGludCBzaXplLCBjb25z
dCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsb25nIHVzYWdlKTsKKyAgICB2b2lkIGJ1ZmZlclN1YkRh
dGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBpbnQgc2l6ZSwgY29uc3Qgdm9p
ZCogZGF0YSk7CiAKICAgICB1bnNpZ25lZCBsb25nIGNoZWNrRnJhbWVidWZmZXJTdGF0dXModW5z
aWduZWQgbG9uZyB0YXJnZXQpOwogICAgIHZvaWQgY2xlYXIodW5zaWduZWQgbG9uZyBtYXNrKTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xFUzJDYW52YXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xFUzJD
YW52YXMuY3BwCShyZXZpc2lvbiA2NTgzNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR0xFUzJDYW52YXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMyArMzQsMTEg
QEAKIAogI2luY2x1ZGUgIkdMRVMyQ2FudmFzLmgiCiAKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXku
aCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHTEVTMlRleHR1cmUuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlVpbnQxNkFycmF5LmgiCiAKICNkZWZp
bmUgX1VTRV9NQVRIX0RFRklORVMKICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0zNTAsOSArMzQ4LDgg
QEAgdW5zaWduZWQgR0xFUzJDYW52YXM6OmdldFF1YWRWZXJ0aWNlcygpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAuMGYsIDEuMGYsIDEuMGYsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuMGYsIDEuMGYsIDEuMGYgfTsKICAgICAgICAgbV9xdWFkVmVydGljZXMgPSBtX2Nv
bnRleHQtPmNyZWF0ZUJ1ZmZlcigpOwotICAgICAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiB2ZXJ0
ZXhBcnJheSA9IEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZlcnRpY2VzLCBzaXplb2YodmVydGljZXMp
IC8gc2l6ZW9mKGZsb2F0KSk7CiAgICAgICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGlj
c0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCBtX3F1YWRWZXJ0aWNlcyk7Ci0gICAgICAgIG1fY29u
dGV4dC0+YnVmZmVyRGF0YShHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCB2ZXJ0ZXhB
cnJheS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXKTsKKyAgICAgICAgbV9j
b250ZXh0LT5idWZmZXJEYXRhKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIHNpemVv
Zih2ZXJ0aWNlcyksIHZlcnRpY2VzLCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpOwog
ICAgIH0KICAgICByZXR1cm4gbV9xdWFkVmVydGljZXM7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbQkocmV2
aXNpb24gNjU4MzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0Nv
bnRleHQzRE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTU3LDQwICs1NTcsMTYgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6YnVmZmVyRGF0YSh1bnNpZwogICAgIDo6Z2xCdWZmZXJEYXRhKHRh
cmdldCwgc2l6ZSwgMCwgdXNhZ2UpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpidWZm
ZXJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBBcnJheUJ1ZmZlciogYXJyYXksIHVuc2lnbmVk
IGxvbmcgdXNhZ2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpidWZmZXJEYXRhKHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBpbnQgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgbG9uZyB1
c2FnZSkKIHsKLSAgICBpZiAoIWFycmF5IHx8ICFhcnJheS0+Ynl0ZUxlbmd0aCgpKQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwotICAgIDo6
Z2xCdWZmZXJEYXRhKHRhcmdldCwgYXJyYXktPmJ5dGVMZW5ndGgoKSwgYXJyYXktPmRhdGEoKSwg
dXNhZ2UpOwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpidWZmZXJEYXRhKHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCBBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCB1bnNpZ25lZCBsb25nIHVzYWdl
KQotewotICAgIGlmICghYXJyYXkgfHwgIWFycmF5LT5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJu
OwotICAgIAogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKLSAgICA6OmdsQnVmZmVy
RGF0YSh0YXJnZXQsIGFycmF5LT5ieXRlTGVuZ3RoKCksIGFycmF5LT5iYXNlQWRkcmVzcygpLCB1
c2FnZSk7CisgICAgOjpnbEJ1ZmZlckRhdGEodGFyZ2V0LCBzaXplLCBkYXRhLCB1c2FnZSk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0
YXJnZXQsIGxvbmcgb2Zmc2V0LCBBcnJheUJ1ZmZlciogYXJyYXkpCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpidWZmZXJTdWJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwg
aW50IHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpCiB7Ci0gICAgaWYgKCFhcnJheSB8fCAhYXJyYXkt
PmJ5dGVMZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGVuc3VyZUNvbnRleHQo
bV9jb250ZXh0T2JqKTsKLSAgICA6OmdsQnVmZmVyU3ViRGF0YSh0YXJnZXQsIG9mZnNldCwgYXJy
YXktPmJ5dGVMZW5ndGgoKSwgYXJyYXktPmRhdGEoKSk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBB
cnJheUJ1ZmZlclZpZXcqIGFycmF5KQotewotICAgIGlmICghYXJyYXkgfHwgIWFycmF5LT5sZW5n
dGgoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0
T2JqKTsKLSAgICA6OmdsQnVmZmVyU3ViRGF0YSh0YXJnZXQsIG9mZnNldCwgYXJyYXktPmJ5dGVM
ZW5ndGgoKSwgYXJyYXktPmJhc2VBZGRyZXNzKCkpOworICAgIDo6Z2xCdWZmZXJTdWJEYXRhKHRh
cmdldCwgb2Zmc2V0LCBzaXplLCBkYXRhKTsKIH0KIAogdW5zaWduZWQgbG9uZyBHcmFwaGljc0Nv
bnRleHQzRDo6Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyh1bnNpZ25lZCBsb25nIHRhcmdldCkKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRl
eHQzRFF0LmNwcAkocmV2aXNpb24gNjU4MzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxOCArMjAs
MTQgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAKLSNpbmNsdWRlICJBcnJh
eUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJXZWJHTE9iamVjdC5oIgogI2luY2x1ZGUgIkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUg
IkludDMyQXJyYXkuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlFX
ZWJQYWdlQ2xpZW50LmgiCi0jaW5jbHVkZSAiVWludDhBcnJheS5oIgogI2luY2x1ZGUgPFFBYnN0
cmFjdFNjcm9sbEFyZWE+CiAjaW5jbHVkZSA8UUdMQ29udGV4dD4KICNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KQEAgLTY3Miw0MCArNjY4LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmJ1ZmZlckRhdGEodW5zaWcKICAgICBtX2ludGVybmFsLT5idWZmZXJEYXRhKHRhcmdldCwgc2l6
ZSwgLyogZGF0YSAqLyAwLCB1c2FnZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJ1
ZmZlckRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIEFycmF5QnVmZmVyKiBhcnJheSwgdW5zaWdu
ZWQgbG9uZyB1c2FnZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJ1ZmZlckRhdGEodW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIGludCBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsb25n
IHVzYWdlKQogewotICAgIGlmICghYXJyYXkgfHwgIWFycmF5LT5ieXRlTGVuZ3RoKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1faW50ZXJuYWwtPm1fZ2xXaWRnZXQtPm1ha2VDdXJyZW50KCk7
Ci0gICAgbV9pbnRlcm5hbC0+YnVmZmVyRGF0YSh0YXJnZXQsIGFycmF5LT5ieXRlTGVuZ3RoKCks
IGFycmF5LT5kYXRhKCksIHVzYWdlKTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YnVm
ZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgQXJyYXlCdWZmZXJWaWV3KiBhcnJheSwgdW5z
aWduZWQgbG9uZyB1c2FnZSkKLXsKLSAgICBpZiAoIWFycmF5IHx8ICFhcnJheS0+bGVuZ3RoKCkp
Ci0gICAgICAgIHJldHVybjsKLSAgICAKICAgICBtX2ludGVybmFsLT5tX2dsV2lkZ2V0LT5tYWtl
Q3VycmVudCgpOwotICAgIG1faW50ZXJuYWwtPmJ1ZmZlckRhdGEodGFyZ2V0LCBhcnJheS0+Ynl0
ZUxlbmd0aCgpLCBhcnJheS0+YmFzZUFkZHJlc3MoKSwgdXNhZ2UpOworICAgIG1faW50ZXJuYWwt
PmJ1ZmZlckRhdGEodGFyZ2V0LCBzaXplLCBkYXRhLCB1c2FnZSk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zm
c2V0LCBBcnJheUJ1ZmZlciogYXJyYXkpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpidWZmZXJT
dWJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwgaW50IHNpemUsIGNvbnN0
IHZvaWQqIGRhdGEpCiB7Ci0gICAgaWYgKCFhcnJheSB8fCAhYXJyYXktPmJ5dGVMZW5ndGgoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pbnRlcm5hbC0+bV9nbFdpZGdldC0+bWFrZUN1cnJl
bnQoKTsKLSAgICBtX2ludGVybmFsLT5idWZmZXJTdWJEYXRhKHRhcmdldCwgb2Zmc2V0LCBhcnJh
eS0+Ynl0ZUxlbmd0aCgpLCBhcnJheS0+ZGF0YSgpKTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6YnVmZmVyU3ViRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgbG9uZyBvZmZzZXQsIEFy
cmF5QnVmZmVyVmlldyogYXJyYXkpCi17Ci0gICAgaWYgKCFhcnJheSB8fCAhYXJyYXktPmxlbmd0
aCgpKQotICAgICAgICByZXR1cm47Ci0gICAgCiAgICAgbV9pbnRlcm5hbC0+bV9nbFdpZGdldC0+
bWFrZUN1cnJlbnQoKTsKLSAgICBtX2ludGVybmFsLT5idWZmZXJTdWJEYXRhKHRhcmdldCwgb2Zm
c2V0LCBhcnJheS0+Ynl0ZUxlbmd0aCgpLCBhcnJheS0+YmFzZUFkZHJlc3MoKSk7CisgICAgbV9p
bnRlcm5hbC0+YnVmZmVyU3ViRGF0YSh0YXJnZXQsIG9mZnNldCwgc2l6ZSwgZGF0YSk7CiB9CiAK
IHVuc2lnbmVkIGxvbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
dW5zaWduZWQgbG9uZyB0YXJnZXQpCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1ODM3KQor
KysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDEwLTA4LTIzICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgcmVmZXJl
bmNlcyB0byBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IGZyb20gR3JhcGhpY3NDb250
ZXh0M0QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0
NDU1CisKKyAgICAgICAgVXBkYXRlZCBTYWZhcmksIFF0IGFuZCBDaHJvbWl1bSBXZWJHTCBwb3J0
cyB0byBhdm9pZCByZWZlcmVuY2luZworICAgICAgICBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZm
ZXJWaWV3IHR5cGVzIGZyb20gR3JhcGhpY3NDb250ZXh0M0QuCisKKyAgICAgICAgUmFuIGFsbCBX
ZWJHTCBsYXlvdXQgdGVzdHM7IG5vIG5ldyByZWdyZXNzaW9ucy4gQnVpbHQgYW5kIHRlc3RlZAor
ICAgICAgICBXZWJLaXQgb24gTWFjIE9TIFg7IGJ1aWx0IENocm9taXVtIG9uIE1hYyBPUyBYIGFu
ZCBMaW51eC4KKworICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpidWZmZXJEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmJ1ZmZlclN1YkRhdGEpOgor
CiAyMDEwLTA4LTIzICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhp
Y3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhp
Y3NDb250ZXh0M0QuY3BwCShyZXZpc2lvbiA2NTgzNykKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMv
R3JhcGhpY3NDb250ZXh0M0QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNCArMzksMTAgQEAK
ICNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50SW1wbC5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5o
IgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxl
bWVudC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgi
Ci0jaW5jbHVkZSAiSW50MzJBcnJheS5oIgotI2luY2x1ZGUgIkludDhBcnJheS5oIgotI2luY2x1
ZGUgIlVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2lu
Y2x1ZGUgIldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuaCIKICNpbmNsdWRlICJXZWJL
aXQuaCIKQEAgLTEyOCwxMCArMTI0LDggQEAgcHVibGljOgogICAgIHZvaWQgYmxlbmRGdW5jU2Vw
YXJhdGUodW5zaWduZWQgbG9uZyBzcmNSR0IsIHVuc2lnbmVkIGxvbmcgZHN0UkdCLCB1bnNpZ25l
ZCBsb25nIHNyY0FscGhhLCB1bnNpZ25lZCBsb25nIGRzdEFscGhhKTsKIAogICAgIHZvaWQgYnVm
ZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgaW50IHNpemUsIHVuc2lnbmVkIGxvbmcgdXNh
Z2UpOwotICAgIHZvaWQgYnVmZmVyRGF0YSh1bnNpZ25lZCBsb25nIHRhcmdldCwgQXJyYXlCdWZm
ZXIqIGRhdGEsIHVuc2lnbmVkIGxvbmcgdXNhZ2UpOwotICAgIHZvaWQgYnVmZmVyRGF0YSh1bnNp
Z25lZCBsb25nIHRhcmdldCwgQXJyYXlCdWZmZXJWaWV3KiBkYXRhLCB1bnNpZ25lZCBsb25nIHVz
YWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcg
b2Zmc2V0LCBBcnJheUJ1ZmZlciogZGF0YSk7Ci0gICAgdm9pZCBidWZmZXJTdWJEYXRhKHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwgQXJyYXlCdWZmZXJWaWV3KiBkYXRhKTsKKyAg
ICB2b2lkIGJ1ZmZlckRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGludCBzaXplLCBjb25zdCB2
b2lkKiBkYXRhLCB1bnNpZ25lZCBsb25nIHVzYWdlKTsKKyAgICB2b2lkIGJ1ZmZlclN1YkRhdGEo
dW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBpbnQgc2l6ZSwgY29uc3Qgdm9pZCog
ZGF0YSk7CiAKICAgICB1bnNpZ25lZCBsb25nIGNoZWNrRnJhbWVidWZmZXJTdGF0dXModW5zaWdu
ZWQgbG9uZyB0YXJnZXQpOwogICAgIHZvaWQgY2xlYXIodW5zaWduZWQgbG9uZyBtYXNrKTsKQEAg
LTYxMCwyNCArNjA0LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6YnVmZmVy
RGEKICAgICBtX2ltcGwtPmJ1ZmZlckRhdGEodGFyZ2V0LCBzaXplLCAwLCB1c2FnZSk7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6YnVmZmVyRGF0YSh1bnNpZ25lZCBsb25n
IHRhcmdldCwgQXJyYXlCdWZmZXIqIGFycmF5LCB1bnNpZ25lZCBsb25nIHVzYWdlKQordm9pZCBH
cmFwaGljc0NvbnRleHQzREludGVybmFsOjpidWZmZXJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCBpbnQgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgbG9uZyB1c2FnZSkKIHsKLSAg
ICBtX2ltcGwtPmJ1ZmZlckRhdGEodGFyZ2V0LCBhcnJheS0+Ynl0ZUxlbmd0aCgpLCBhcnJheS0+
ZGF0YSgpLCB1c2FnZSk7CisgICAgbV9pbXBsLT5idWZmZXJEYXRhKHRhcmdldCwgc2l6ZSwgZGF0
YSwgdXNhZ2UpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmJ1ZmZlckRh
dGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIEFycmF5QnVmZmVyVmlldyogYXJyYXksIHVuc2lnbmVk
IGxvbmcgdXNhZ2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmJ1ZmZlclN1YkRh
dGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBpbnQgc2l6ZSwgY29uc3Qgdm9p
ZCogZGF0YSkKIHsKLSAgICBtX2ltcGwtPmJ1ZmZlckRhdGEodGFyZ2V0LCBhcnJheS0+Ynl0ZUxl
bmd0aCgpLCBhcnJheS0+YmFzZUFkZHJlc3MoKSwgdXNhZ2UpOwotfQotCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNESW50ZXJuYWw6OmJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxv
bmcgb2Zmc2V0LCBBcnJheUJ1ZmZlciogYXJyYXkpCi17Ci0gICAgbV9pbXBsLT5idWZmZXJTdWJE
YXRhKHRhcmdldCwgb2Zmc2V0LCBhcnJheS0+Ynl0ZUxlbmd0aCgpLCBhcnJheS0+ZGF0YSgpKTsK
LX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpidWZmZXJTdWJEYXRhKHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCBsb25nIG9mZnNldCwgQXJyYXlCdWZmZXJWaWV3KiBhcnJheSkKLXsK
LSAgICBtX2ltcGwtPmJ1ZmZlclN1YkRhdGEodGFyZ2V0LCBvZmZzZXQsIGFycmF5LT5ieXRlTGVu
Z3RoKCksIGFycmF5LT5iYXNlQWRkcmVzcygpKTsKKyAgICBtX2ltcGwtPmJ1ZmZlclN1YkRhdGEo
dGFyZ2V0LCBvZmZzZXQsIHNpemUsIGRhdGEpOwogfQogCiBERUxFR0FURV9UT19JTVBMXzFSKGNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpCkBAIC0x
MDY4LDEwICsxMDUyLDggQEAgREVMRUdBVEVfVE9fSU5URVJOQUxfMihibGVuZEZ1bmMsIHVuc2ln
bgogREVMRUdBVEVfVE9fSU5URVJOQUxfNChibGVuZEZ1bmNTZXBhcmF0ZSwgdW5zaWduZWQgbG9u
ZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZykKIAogREVMRUdB
VEVfVE9fSU5URVJOQUxfMyhidWZmZXJEYXRhLCB1bnNpZ25lZCBsb25nLCBpbnQsIHVuc2lnbmVk
IGxvbmcpCi1ERUxFR0FURV9UT19JTlRFUk5BTF8zKGJ1ZmZlckRhdGEsIHVuc2lnbmVkIGxvbmcs
IEFycmF5QnVmZmVyKiwgdW5zaWduZWQgbG9uZykKLURFTEVHQVRFX1RPX0lOVEVSTkFMXzMoYnVm
ZmVyRGF0YSwgdW5zaWduZWQgbG9uZywgQXJyYXlCdWZmZXJWaWV3KiwgdW5zaWduZWQgbG9uZykK
LURFTEVHQVRFX1RPX0lOVEVSTkFMXzMoYnVmZmVyU3ViRGF0YSwgdW5zaWduZWQgbG9uZywgbG9u
ZywgQXJyYXlCdWZmZXIqKQotREVMRUdBVEVfVE9fSU5URVJOQUxfMyhidWZmZXJTdWJEYXRhLCB1
bnNpZ25lZCBsb25nLCBsb25nLCBBcnJheUJ1ZmZlclZpZXcqKQorREVMRUdBVEVfVE9fSU5URVJO
QUxfNChidWZmZXJEYXRhLCB1bnNpZ25lZCBsb25nLCBpbnQsIGNvbnN0IHZvaWQqLCB1bnNpZ25l
ZCBsb25nKQorREVMRUdBVEVfVE9fSU5URVJOQUxfNChidWZmZXJTdWJEYXRhLCB1bnNpZ25lZCBs
b25nLCBsb25nLCBpbnQsIGNvbnN0IHZvaWQqKQogCiBERUxFR0FURV9UT19JTlRFUk5BTF8xUihj
aGVja0ZyYW1lYnVmZmVyU3RhdHVzLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKQogREVM
RUdBVEVfVE9fSU5URVJOQUxfMShjbGVhciwgdW5zaWduZWQgbG9uZykK
</data>
<flag name="review"
          id="53865"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="53866"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>