<?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>53154</bug_id>
          
          <creation_ts>2011-01-25 18:58:28 -0800</creation_ts>
          <short_desc>Fix multisampling support in DrawingBuffer</short_desc>
          <delta_ts>2011-01-26 14:52:22 -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>Canvas</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>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>eric</cc>
    
    <cc>gman</cc>
    
    <cc>jamesr</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340087</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-25 18:58:28 -0800</bug_when>
    <thetext>Recent changes to the DrawingBuffer class to add antialiasing support to the accelerated 2D canvas code path had some bugs and were illegally using certain enums. These issues need to be fixed and the Chromium port implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340090</commentid>
    <comment_count>1</comment_count>
      <attachid>80159</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-25 19:11:15 -0800</bug_when>
    <thetext>Created attachment 80159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340130</commentid>
    <comment_count>2</comment_count>
      <attachid>80159</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-01-25 21:25:06 -0800</bug_when>
    <thetext>Comment on attachment 80159
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340131</commentid>
    <comment_count>3</comment_count>
      <attachid>80159</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-01-25 21:26:57 -0800</bug_when>
    <thetext>Comment on attachment 80159
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=80159&amp;action=review

&gt; Source/WebKit/chromium/ChangeLog:10
&gt; +        GL_CHROMIUM_framebuffer_multisample) through WebGraphicsContext3D.

Not a blocker, but I&apos;m not sure I understand why we don&apos;t plumb through the ANGLE extensions verbatim.  Feel free to de-confuse me at your convenience.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340161</commentid>
    <comment_count>4</comment_count>
      <attachid>80159</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-25 22:52:01 -0800</bug_when>
    <thetext>Comment on attachment 80159
Patch

R=me.  I&apos;m also curious about the extension name mapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340455</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-26 14:07:04 -0800</bug_when>
    <thetext>Committed r76717: &lt;http://trac.webkit.org/changeset/76717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340461</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-26 14:12:09 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 80159 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80159&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/ChangeLog:10
&gt; &gt; +        GL_CHROMIUM_framebuffer_multisample) through WebGraphicsContext3D.
&gt; 
&gt; Not a blocker, but I&apos;m not sure I understand why we don&apos;t plumb through the ANGLE extensions verbatim.  Feel free to de-confuse me at your convenience.  :)

I don&apos;t remember why we decided to expose a different extension than GL_ANGLE_framebuffer_multisample and GL_ANGLE_framebuffer_blit from the command buffer code. The ANGLE extension is written against OpenGL ES 2.0, and maybe we wanted slightly different or relaxed semantics so that we didn&apos;t have to have absolutely identical behavior between desktop and OpenGL ES 2.0 implementations.

CC&apos;ing Gregg in case he remembers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340489</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-26 14:52:22 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76717 might have broken Qt Linux Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80159</attachid>
            <date>2011-01-25 19:11:15 -0800</date>
            <delta_ts>2011-01-25 22:52:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53154-20110125191113.patch</filename>
            <type>text/plain</type>
            <size>16727</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NjU4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDEtMjUgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBtdWx0aXNhbXBsaW5nIHN1cHBvcnQgaW4gRHJhd2luZ0J1
ZmZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMx
NTQKKworICAgICAgICBJbiBEcmF3aW5nQnVmZmVyJ3MgbXVsdGlzYW1wbGluZyBjb2RlIHBhdGgs
IGZpeGVkIGVudW0gdXNhZ2UgYW5kIGEKKyAgICAgICAgYnVnIHdoZXJlIGl0IHdvdWxkIGluY29y
cmVjdGx5IHJlZGVmaW5lIHRoZSBkZXB0aCBhbmQgc3RlbmNpbAorICAgICAgICBidWZmZXJzLiBI
b29rZWQgdXAgbXVsdGlzYW1wbGluZyBjb2RlIHBhdGggaW4gQ2hyb21pdW0gcG9ydC4KKworICAg
ICAgICBUZXN0ZWQgbWFudWFsbHkgd2l0aCBzb21lIGFjY2VsZXJhdGVkIDJEIGNhbnZhcyBjb250
ZW50LgorICAgICAgICBNdWx0aXNhbXBsaW5nIGlzbid0IGJlaW5nIHN3aXRjaGVkIG9uIGZvciB0
aGUgYWNjZWxlcmF0ZWQgMkQKKyAgICAgICAgY2FudmFzIGF0IHRoZSBjdXJyZW50IHRpbWUgYmVj
YXVzZSBpdCB3aWxsIGluY3JlYXNlIGZpbGwgcmF0ZQorICAgICAgICByZXF1aXJlbWVudHMgYW5k
IGNhdXNlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlYmFzZWxpbmVzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6
OnJlc2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9y
dHMpOgorCiAyMDExLTAxLTI1ICBNaWtlIFJlZWQgIDxyZWVkQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkocmV2aXNpb24gNzY2NTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkod29ya2luZyBj
b3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgLy8gICBHTF9BTkdMRV9mcmFtZWJ1
ZmZlcl9ibGl0IC8gR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUKICAgICAvLyAgIEdM
X09FU190ZXh0dXJlX2Zsb2F0CiAgICAgLy8gICBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMK
KyAgICAvLyAgIEdMX09FU19yZ2I4X3JnYmE4CiAKICAgICAvLyBUYWtlcyBmdWxsIG5hbWUgb2Yg
ZXh0ZW5zaW9uOyBmb3IgZXhhbXBsZSwKICAgICAvLyAiR0xfRVhUX3RleHR1cmVfZm9ybWF0X0JH
UkE4ODg4Ii4KQEAgLTg3LDYgKzg4LDEwIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBHTF9PRVNf
c3RhbmRhcmRfZGVyaXZhdGl2ZXMgbmFtZXMKICAgICAgICAgRlJBR01FTlRfU0hBREVSX0RFUklW
QVRJVkVfSElOVF9PRVMgPSAweDhCOEIsCisKKyAgICAgICAgLy8gR0xfT0VTX3JnYjhfcmdiYTgg
bmFtZXMKKyAgICAgICAgUkdCOF9PRVMgPSAweDgwNTEsCisgICAgICAgIFJHQkE4X09FUyA9IDB4
ODA1OCwKICAgICB9OwogCiAgICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcAkocmV2aXNpb24gNzY2NTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EcmF3aW5nQnVmZmVyQ2hyb21pdW0u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDggQEAgdm9pZCBEcmF3aW5nQnVmZmVy
OjpwdWJsaXNoVG9QbGF0Zm9ybUxheQogICAgICAgICAKICAgICBpZiAobV9jYWxsYmFjaykKICAg
ICAgICAgbV9jYWxsYmFjay0+d2lsbFB1Ymxpc2goKTsKKyAgICBpZiAobXVsdGlzYW1wbGUoKSkK
KyAgICAgICAgY29tbWl0KCk7CiAgICAgdW5zaWduZWQgcGFyZW50VGV4dHVyZSA9IG1faW50ZXJu
YWwtPnBsYXRmb3JtTGF5ZXItPnRleHR1cmVJZCgpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0aGUg
Y29weSBpbiB0aGUgY2FudmFzJyAoY2hpbGQpIGNvbnRleHQgc28gdGhhdCBpdCBleGVjdXRlcyBp
biB0aGUgY29ycmVjdCBvcmRlciByZWxhdGl2ZSB0bwogICAgIC8vIG90aGVyIGNvbW1hbmRzIGlu
IHRoZSBjaGlsZCBjb250ZXh0LiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHBhcmVudCB0ZXh0dXJl
IGFsd2F5cyBjb250YWlucyBhIGNvbXBsZXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENo
cm9taXVtLmgJKHJldmlzaW9uIDc2NjU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAt
NDQsOCArNDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0IFN0
cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBlbnN1cmVFbmFibGVkKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZpcnR1YWwgaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgYmxpdEZyYW1lYnVmZmVyKGxvbmcgc3JjWDAsIGxvbmcgc3JjWTAsIGxvbmcgc3JjWDEs
IGxvbmcgc3JjWTEsIGxvbmcgZHN0WDAsIGxvbmcgZHN0WTAsIGxvbmcgZHN0WDEsIGxvbmcgZHN0
WTEsIHVuc2lnbmVkIGxvbmcgbWFzaywgdW5zaWduZWQgbG9uZyBmaWx0ZXIpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUodW5zaWduZWQgbG9uZyB0
YXJnZXQsIHVuc2lnbmVkIGxvbmcgc2FtcGxlcywgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1h
dCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBibGl0RnJhbWVidWZmZXIobG9uZyBzcmNYMCwgbG9uZyBzcmNZMCwgbG9uZyBz
cmNYMSwgbG9uZyBzcmNZMSwgbG9uZyBkc3RYMCwgbG9uZyBkc3RZMCwgbG9uZyBkc3RYMSwgbG9u
ZyBkc3RZMSwgdW5zaWduZWQgbG9uZyBtYXNrLCB1bnNpZ25lZCBsb25nIGZpbHRlcik7CisgICAg
dmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh1bnNpZ25lZCBsb25n
IHRhcmdldCwgdW5zaWduZWQgbG9uZyBzYW1wbGVzLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9y
bWF0LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7CiAKICAgICBl
bnVtIHsKICAgICAgICAgLy8gR0xfQ0hST01JVU1fbWFwX3N1YiAoZW51bXMgaW5oZXJpdGVkIGZy
b20gR0xfQVJCX3ZlcnRleF9idWZmZXJfb2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcAkocmV2aXNp
b24gNzY2NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2lu
Z0J1ZmZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEwICs0MSwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBQYXNzUmVmUHRyPERyYXdpbmdCdWZmZXI+IERyYXdpbmdCdWZmZXI6OmNyZWF0
ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAg
ICBFeHRlbnNpb25zM0QqIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7Ci0g
ICAgYm9vbCBtdWx0aXNhbXBsZVN1cHBvcnRlZCA9IGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJHTF9B
TkdMRV9mcmFtZWJ1ZmZlcl9ibGl0IikgJiYgZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0FOR0xF
X2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIik7CisgICAgYm9vbCBtdWx0aXNhbXBsZVN1cHBvcnRl
ZCA9IGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0IikgJiYg
ZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikg
JiYgZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX09FU19yZ2I4X3JnYmE4Iik7CiAgICAgaWYgKG11
bHRpc2FtcGxlU3VwcG9ydGVkKSB7CiAgICAgICAgIGV4dGVuc2lvbnMtPmVuc3VyZUVuYWJsZWQo
IkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKTsKICAgICAgICAgZXh0ZW5zaW9ucy0+ZW5zdXJl
RW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsKKyAgICAgICAgZXh0
ZW5zaW9ucy0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKICAgICB9CiAgICAg
Ym9vbCBwYWNrZWREZXB0aFN0ZW5jaWxTdXBwb3J0ZWQgPSBleHRlbnNpb25zLT5zdXBwb3J0cygi
R0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2lsIik7CiAgICAgaWYgKHBhY2tlZERlcHRoU3RlbmNp
bFN1cHBvcnRlZCkKQEAgLTE1MywxMyArMTU0LDE1IEBAIHZvaWQgRHJhd2luZ0J1ZmZlcjo6cmVz
ZXQoY29uc3QgSW50U2l6ZSYKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIAogICAgIGNvbnN0IEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVz
ID0gbV9jb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAgIHVuc2lnbmVkIGxvbmcg
aW50ZXJuYWxDb2xvckZvcm1hdCwgY29sb3JGb3JtYXQ7CisgICAgdW5zaWduZWQgbG9uZyBpbnRl
cm5hbENvbG9yRm9ybWF0LCBjb2xvckZvcm1hdCwgaW50ZXJuYWxSZW5kZXJidWZmZXJGb3JtYXQ7
CiAgICAgaWYgKGF0dHJpYnV0ZXMuYWxwaGEpIHsKICAgICAgICAgaW50ZXJuYWxDb2xvckZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOwogICAgICAgICBjb2xvckZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBOworICAgICAgICBpbnRlcm5hbFJlbmRlcmJ1ZmZlckZvcm1hdCA9
IEV4dGVuc2lvbnMzRDo6UkdCQThfT0VTOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGludGVybmFs
Q29sb3JGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOwogICAgICAgICBjb2xvckZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I7CisgICAgICAgIGludGVybmFsUmVuZGVyYnVmZmVy
Rm9ybWF0ID0gRXh0ZW5zaW9uczNEOjpSR0I4X09FUzsKICAgICB9CiAKIApAQCAtMTczLDcgKzE3
Niw3IEBAIHZvaWQgRHJhd2luZ0J1ZmZlcjo6cmVzZXQoY29uc3QgSW50U2l6ZSYKICAgICAgICAg
bV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIAogICAgICAgICBtX2NvbnRleHQtPmJpbmRSZW5kZXJidWZm
ZXIoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZUNvbG9yQnVm
ZmVyKTsKLSAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnJlbmRlcmJ1ZmZlclN0
b3JhZ2VNdWx0aXNhbXBsZShHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSLCBzYW1wbGVD
b3VudCwgaW50ZXJuYWxDb2xvckZvcm1hdCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQo
KSk7CisgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5yZW5kZXJidWZmZXJTdG9y
YWdlTXVsdGlzYW1wbGUoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgc2FtcGxlQ291
bnQsIGludGVybmFsUmVuZGVyYnVmZmVyRm9ybWF0LCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhl
aWdodCgpKTsKICAgICAgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZUNv
bG9yQnVmZmVyKTsKICAgICAgICAgcmVzaXplRGVwdGhTdGVuY2lsKHNhbXBsZUNvdW50KTsKICAg
ICAgICAgaWYgKG1fY29udGV4dC0+Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIpICE9IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9DT01Q
TEVURSkgewpAQCAtMTkwLDcgKzE5Myw4IEBAIHZvaWQgRHJhd2luZ0J1ZmZlcjo6cmVzZXQoY29u
c3QgSW50U2l6ZSYKICAgICBtX2NvbnRleHQtPnRleEltYWdlMkRSZXNvdXJjZVNhZmUoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIGludGVybmFsQ29sb3JGb3JtYXQsIG1fc2l6ZS53
aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCksIDAsIGNvbG9yRm9ybWF0LCBHcmFwaGljc0NvbnRleHQz
RDo6VU5TSUdORURfQllURSk7CiAgICAgbV9jb250ZXh0LT5mcmFtZWJ1ZmZlclRleHR1cmUyRChH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9B
VFRBQ0hNRU5UMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1fY29sb3JCdWZmZXIs
IDApOwogICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQsIDApOwotICAgIHJlc2l6ZURlcHRoU3RlbmNpbCgwKTsKKyAgICBpZiAoIW11bHRpc2Ft
cGxlKCkpCisgICAgICAgIHJlc2l6ZURlcHRoU3RlbmNpbCgwKTsKICAgICBpZiAobV9jb250ZXh0
LT5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUikg
IT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CiAgICAgICAgIC8v
IENsZWFudXAKICAgICAgICAgY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
Y3BwCShyZXZpc2lvbiA3NjY1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3
OSwxMCBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5HTDo6c3VwcG9ydHMoY29uc3QgCiAgICAgaWYg
KG5hbWUgPT0gIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikKICAgICAgICAgcmV0
dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfRVhUX2ZyYW1lYnVmZmVyX211
bHRpc2FtcGxlIik7CiAKKyAgICAvLyBEZXNrdG9wIEdMIGFsd2F5cyBzdXBwb3J0cyBHTF9PRVNf
cmdiOF9yZ2JhOC4KKyAgICBpZiAobmFtZSA9PSAiR0xfT0VTX3JnYjhfcmdiYTgiKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKwogICAgIC8vIElmIEdMX0FSQl90ZXh0dXJlX2Zsb2F0IGlzIGF2YWls
YWJsZSB0aGVuIHdlIHJlcG9ydCBHTF9PRVNfdGV4dHVyZV9mbG9hdCBhbmQKICAgICAvLyBHTF9P
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0IGFzIGF2YWlsYWJsZS4KICAgICBpZiAobmFtZSA9PSAiR0xf
T0VTX3RleHR1cmVfZmxvYXQiIHx8IG5hbWUgPT0gIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NjU4KQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
NiBAQAorMjAxMS0wMS0yNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IG11bHRpc2Ft
cGxpbmcgc3VwcG9ydCBpbiBEcmF3aW5nQnVmZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzE1NAorCisgICAgICAgIFBsdW1iZWQgR0xfQU5HTEVf
ZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUgYW5kCisgICAgICAgIEdMX0FOR0xFX2ZyYW1lYnVmZmVy
X2JsaXQgKGV4cG9zZWQgYXMgdGhlIHVuaWZpZWQgZXh0ZW5zaW9uCisgICAgICAgIEdMX0NIUk9N
SVVNX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlKSB0aHJvdWdoIFdlYkdyYXBoaWNzQ29udGV4dDNE
LgorICAgICAgICBSb2xsZWQgZm9yd2FyZCBDaHJvbWl1bSBERVBTIHRvIHBpY2sgdXAgZG93bnN0
cmVhbSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgb2YgbmV3IHZpcnR1YWxzLgorCisgICAgICAg
ICogREVQUzoKKyAgICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAg
ICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0
ZW5zaW9uczNEQ2hyb21pdW06OmJsaXRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpF
eHRlbnNpb25zM0RDaHJvbWl1bTo6cmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKToKKyAg
ICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpzdXBwb3J0c0V4dGVuc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzREludGVybmFsOjplbnN1cmVFeHRlbnNpb25F
bmFibGVkKToKKyAgICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbC5oOgorCiAy
MDExLTAxLTI1ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9E
RVBTCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQUwkocmV2aXNpb24g
NzY2NTgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0RFUFMJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDcgQEAKIAogdmFycyA9IHsKICAgJ2Nocm9taXVtX3N2bic6ICdodHRwOi8vc3Jj
LmNocm9taXVtLm9yZy9zdm4vdHJ1bmsvc3JjJywKLSAgJ2Nocm9taXVtX3Jldic6ICc3MjE4MScK
KyAgJ2Nocm9taXVtX3Jldic6ICc3MjU5NicKIH0KIAogZGVwcyA9IHsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAko
cmV2aXNpb24gNzY2NTgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFw
aGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRSZXF1ZXN0YWJsZUV4dGVuc2lvbnNDSFJPTUlV
TSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEV4dGVuc2lvbkNIUk9NSVVNKGNvbnN0
IGNoYXIqKSA9IDA7CiAKKyAgICAvLyBHTF9DSFJPTUlVTV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBs
ZQorICAgIHZpcnR1YWwgdm9pZCBibGl0RnJhbWVidWZmZXJDSFJPTUlVTShpbnQgc3JjWDAsIGlu
dCBzcmNZMCwgaW50IHNyY1gxLCBpbnQgc3JjWTEsIGludCBkc3RYMCwgaW50IGRzdFkwLCBpbnQg
ZHN0WDEsIGludCBkc3RZMSwgdW5zaWduZWQgbWFzaywgdW5zaWduZWQgZmlsdGVyKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUNIUk9NSVVNKHVu
c2lnbmVkIGxvbmcgdGFyZ2V0LCBpbnQgc2FtcGxlcywgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQs
IHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpID0gMDsKKwogICAgIC8vIFRoZSBlbnRy
eSBwb2ludHMgYmVsb3cgbWFwIGRpcmVjdGx5IHRvIHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KICAg
ICAvLyBTZWU6IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvZ2xlcy8KICAgICAvLyBh
bmQ6IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvb3BlbmdsZXMvc2RrL2RvY3MvbWFuLwpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVt
LmNwcAkocmV2aXNpb24gNzY2NTgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRl
bnNpb25zM0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDE2IEBAIGlu
dCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0R3JhcGhpY3NSZXMKICAgICByZXR1cm4gbV9pbnRl
cm5hbC0+aXNDb250ZXh0TG9zdCgpID8gc3RhdGljX2Nhc3Q8aW50PihFeHRlbnNpb25zM0Q6OlVO
S05PV05fQ09OVEVYVF9SRVNFVF9BUkIpIDogc3RhdGljX2Nhc3Q8aW50PihHcmFwaGljc0NvbnRl
eHQzRDo6Tk9fRVJST1IpOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpibGl0RnJh
bWVidWZmZXIobG9uZyBzcmNYMCwgbG9uZyBzcmNZMCwgbG9uZyBzcmNYMSwgbG9uZyBzcmNZMSwg
bG9uZyBkc3RYMCwgbG9uZyBkc3RZMCwgbG9uZyBkc3RYMSwgbG9uZyBkc3RZMSwgdW5zaWduZWQg
bG9uZyBtYXNrLCB1bnNpZ25lZCBsb25nIGZpbHRlcikKK3sKKyAgICBtX2ludGVybmFsLT5ibGl0
RnJhbWVidWZmZXJDSFJPTUlVTShzcmNYMCwgc3JjWTAsIHNyY1gxLCBzcmNZMSwgZHN0WDAsIGRz
dFkwLCBkc3RYMSwgZHN0WTEsIG1hc2ssIGZpbHRlcik7Cit9CisKK3ZvaWQgRXh0ZW5zaW9uczNE
Q2hyb21pdW06OnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh1bnNpZ25lZCBsb25nIHRh
cmdldCwgdW5zaWduZWQgbG9uZyBzYW1wbGVzLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0
LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkKK3sKKyAgICBtX2lu
dGVybmFsLT5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVDSFJPTUlVTSh0YXJnZXQsIHNh
bXBsZXMsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKK30KKwogdm9pZCogRXh0ZW5z
aW9uczNEQ2hyb21pdW06Om1hcEJ1ZmZlclN1YkRhdGFDSFJPTUlVTSh1bnNpZ25lZCB0YXJnZXQs
IGludCBvZmZzZXQsIGludCBzaXplLCB1bnNpZ25lZCBhY2Nlc3MpCiB7CiAgICAgcmV0dXJuIG1f
aW50ZXJuYWwtPm1hcEJ1ZmZlclN1YkRhdGFDSFJPTUlVTSh0YXJnZXQsIG9mZnNldCwgc2l6ZSwg
YWNjZXNzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4
dDNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA3NjY1OCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNjQsNiArMzY0LDEyIEBAIHJ0IEdyYXBoaWNzQ29udGV4dDNESW50ZXJu
YWw6Om5hbWUodDEgYTEKICAgICByZXR1cm4gbV9pbXBsLT5uYW1lKGExLCBhMiwgYTMsIGE0LCBh
NSwgYTYsIGE3LCBhOCwgYTkpOyAgIFwKIH0KIAorI2RlZmluZSBERUxFR0FURV9UT19JTVBMXzEw
KG5hbWUsIHQxLCB0MiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0OCwgdDksIHQxMCkgXAordm9pZCBH
cmFwaGljc0NvbnRleHQzREludGVybmFsOjpuYW1lKHQxIGExLCB0MiBhMiwgdDMgYTMsIHQ0IGE0
LCB0NSBhNSwgdDYgYTYsIHQ3IGE3LCB0OCBhOCwgdDkgYTksIHQxMCBhMTApIFwKK3sgXAorICAg
IG1faW1wbC0+bmFtZShhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTApOyBc
Cit9CisKIERFTEVHQVRFX1RPX0lNUExfUihtYWtlQ29udGV4dEN1cnJlbnQsIGJvb2wpCiAKIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CkBA
IC02OTEsNiArNjk3LDE0IEBAIHZvaWQgc3BsaXRTdHJpbmdIZWxwZXIoY29uc3QgU3RyaW5nJiBz
dHIKICAgICAgICAgc2V0LmFkZChzdWJzdHJpbmdzW2ldKTsKIH0KIAorU3RyaW5nIG1hcEV4dGVu
c2lvbk5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJHTF9BTkdM
RV9mcmFtZWJ1ZmZlcl9ibGl0IgorICAgICAgICB8fCBuYW1lID09ICJHTF9BTkdMRV9mcmFtZWJ1
ZmZlcl9tdWx0aXNhbXBsZSIpCisgICAgICAgIHJldHVybiAiR0xfQ0hST01JVU1fZnJhbWVidWZm
ZXJfbXVsdGlzYW1wbGUiOworICAgIHJldHVybiBuYW1lOworfQorCiB9IC8vIGFub255bW91cyBu
YW1lc3BhY2UKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzREludGVybmFsOjppbml0aWFsaXplRXh0
ZW5zaW9ucygpCkBAIC03MTAsMjUgKzcyNCwyNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNESW50
ZXJuYWw6OmluaXRpYWxpCiBib29sIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OnN1cHBvcnRz
RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBpbml0aWFsaXplRXh0ZW5zaW9u
cygpOwotICAgIHJldHVybiBtX2VuYWJsZWRFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpIHx8IG1f
cmVxdWVzdGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKG5hbWUpOworICAgIFN0cmluZyBtYXBwZWRO
YW1lID0gbWFwRXh0ZW5zaW9uTmFtZShuYW1lKTsKKyAgICByZXR1cm4gbV9lbmFibGVkRXh0ZW5z
aW9ucy5jb250YWlucyhtYXBwZWROYW1lKSB8fCBtX3JlcXVlc3RhYmxlRXh0ZW5zaW9ucy5jb250
YWlucyhtYXBwZWROYW1lKTsKIH0KIAogYm9vbCBHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpl
bnN1cmVFeHRlbnNpb25FbmFibGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBpbml0aWFs
aXplRXh0ZW5zaW9ucygpOwogCi0gICAgaWYgKG1fZW5hYmxlZEV4dGVuc2lvbnMuY29udGFpbnMo
bmFtZSkpCisgICAgU3RyaW5nIG1hcHBlZE5hbWUgPSBtYXBFeHRlbnNpb25OYW1lKG5hbWUpOwor
ICAgIGlmIChtX2VuYWJsZWRFeHRlbnNpb25zLmNvbnRhaW5zKG1hcHBlZE5hbWUpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX3JlcXVlc3RhYmxlRXh0ZW5zaW9ucy5jb250YWlu
cyhuYW1lKSkgewotICAgICAgICBtX2ltcGwtPnJlcXVlc3RFeHRlbnNpb25DSFJPTUlVTShuYW1l
LmFzY2lpKCkuZGF0YSgpKTsKKyAgICBpZiAobV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnMuY29udGFp
bnMobWFwcGVkTmFtZSkpIHsKKyAgICAgICAgbV9pbXBsLT5yZXF1ZXN0RXh0ZW5zaW9uQ0hST01J
VU0obWFwcGVkTmFtZS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgIG1fZW5hYmxlZEV4dGVuc2lv
bnMuY2xlYXIoKTsKICAgICAgICAgbV9yZXF1ZXN0YWJsZUV4dGVuc2lvbnMuY2xlYXIoKTsKICAg
ICAgICAgbV9pbml0aWFsaXplZEF2YWlsYWJsZUV4dGVuc2lvbnMgPSBmYWxzZTsKICAgICB9CiAK
ICAgICBpbml0aWFsaXplRXh0ZW5zaW9ucygpOwotICAgIHJldHVybiBtX2VuYWJsZWRFeHRlbnNp
b25zLmNvbnRhaW5zKG5hbWUpOworICAgIHJldHVybiBtX2VuYWJsZWRFeHRlbnNpb25zLmNvbnRh
aW5zKG1hcHBlZE5hbWUpOwogfQogCiBERUxFR0FURV9UT19JTVBMXzRSKG1hcEJ1ZmZlclN1YkRh
dGFDSFJPTUlVTSwgR0MzRGVudW0sIEdDM0RzaXplaXB0ciwgR0MzRHNpemVpLCBHQzNEZW51bSwg
dm9pZCopCkBAIC03MzYsNiArNzUyLDggQEAgREVMRUdBVEVfVE9fSU1QTF8xKHVubWFwQnVmZmVy
U3ViRGF0YUNIUgogREVMRUdBVEVfVE9fSU1QTF85UihtYXBUZXhTdWJJbWFnZTJEQ0hST01JVU0s
IEdDM0RlbnVtLCBHQzNEaW50LCBHQzNEaW50LCBHQzNEaW50LCBHQzNEc2l6ZWksIEdDM0RzaXpl
aSwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgdm9pZCopCiBERUxFR0FURV9UT19JTVBM
XzEodW5tYXBUZXhTdWJJbWFnZTJEQ0hST01JVU0sIGNvbnN0IHZvaWQqKQogREVMRUdBVEVfVE9f
SU1QTF8yKGNvcHlUZXh0dXJlVG9QYXJlbnRUZXh0dXJlQ0hST01JVU0sIFBsYXRmb3JtM0RPYmpl
Y3QsIFBsYXRmb3JtM0RPYmplY3QpCitERUxFR0FURV9UT19JTVBMXzEwKGJsaXRGcmFtZWJ1ZmZl
ckNIUk9NSVVNLCBHQzNEaW50LCBHQzNEaW50LCBHQzNEaW50LCBHQzNEaW50LCBHQzNEaW50LCBH
QzNEaW50LCBHQzNEaW50LCBHQzNEaW50LCBHQzNEYml0ZmllbGQsIEdDM0RlbnVtKQorREVMRUdB
VEVfVE9fSU1QTF81KHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUNIUk9NSVVNLCBHQzNE
ZW51bSwgR0MzRHNpemVpLCBHQzNEZW51bSwgR0MzRHNpemVpLCBHQzNEc2l6ZWkpCiAKIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogLy8gR3JhcGhpY3NDb250ZXh0M0QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNESW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzREludGVybmFsLmgJKHJldmlz
aW9uIDc2NjU4KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0
M0RJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDEwIEBAIHB1YmxpYzoK
ICAgICBib29sIHN1cHBvcnRzQ29weVRleHR1cmVUb1BhcmVudFRleHR1cmVDSFJPTUlVTSgpOwog
ICAgIHZvaWQgY29weVRleHR1cmVUb1BhcmVudFRleHR1cmVDSFJPTUlVTShQbGF0Zm9ybTNET2Jq
ZWN0IHRleHR1cmUsIFBsYXRmb3JtM0RPYmplY3QgcGFyZW50VGV4dHVyZSk7CiAKKyAgICAvLyBH
TF9DSFJPTUlVTV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZQorICAgIHZvaWQgYmxpdEZyYW1lYnVm
ZmVyQ0hST01JVU0oR0MzRGludCBzcmNYMCwgR0MzRGludCBzcmNZMCwgR0MzRGludCBzcmNYMSwg
R0MzRGludCBzcmNZMSwgR0MzRGludCBkc3RYMCwgR0MzRGludCBkc3RZMCwgR0MzRGludCBkc3RY
MSwgR0MzRGludCBkc3RZMSwgR0MzRGJpdGZpZWxkIG1hc2ssIEdDM0RlbnVtIGZpbHRlcik7Cisg
ICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVDSFJPTUlVTShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNp
emVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKKwogcHJpdmF0ZToKICAgICBPd25QdHI8V2Vi
S2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4gbV9pbXBsOwogICAgIE93blB0cjxFeHRlbnNpb25z
M0RDaHJvbWl1bT4gbV9leHRlbnNpb25zOwo=
</data>
<flag name="review"
          id="71621"
          type_id="1"
          status="+"
          setter="jamesr"
    />
    <flag name="commit-queue"
          id="71622"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>