<?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>121213</bug_id>
          
          <creation_ts>2013-09-11 22:57:08 -0700</creation_ts>
          <short_desc>[CSS Shapes] Remove unnecessarily complex template from ShapeInfo classes</short_desc>
          <delta_ts>2013-09-12 10:08:39 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928162</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-09-11 22:57:08 -0700</bug_when>
    <thetext>[CSS Shapes] Remove unnecessarily complex template from ShapeInfo classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928163</commentid>
    <comment_count>1</comment_count>
      <attachid>211400</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-09-11 22:58:45 -0700</bug_when>
    <thetext>Created attachment 211400
Patch

purge horrid template mess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928283</commentid>
    <comment_count>2</comment_count>
      <attachid>211400</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-12 07:58:26 -0700</bug_when>
    <thetext>Comment on attachment 211400
Patch

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

&gt; Source/WebCore/rendering/shapes/ShapeInfo.h:113
&gt; +    virtual ShapeValue* getShapeValue() const = 0;

In WebKit coding style, functions like this one are supposed to be named just &quot;shapeValue()&quot; without the get prefix.

&gt; Source/WebCore/rendering/shapes/ShapeInsideInfo.h:65
&gt; +class ShapeInsideInfo : public ShapeInfo&lt;RenderBlock&gt; {

Can this class be marked FINAL?

&gt; Source/WebCore/rendering/shapes/ShapeOutsideInfo.h:42
&gt; +class ShapeOutsideInfo : public ShapeInfo&lt;RenderBox&gt;, public MappedInfo&lt;RenderBox, ShapeOutsideInfo&gt; {

Can this class be marked FINAL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928323</commentid>
    <comment_count>3</comment_count>
      <attachid>211434</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-09-12 09:12:53 -0700</bug_when>
    <thetext>Created attachment 211434
Patch

Fix style and add FINAL per review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928349</commentid>
    <comment_count>4</comment_count>
      <attachid>211434</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-12 09:49:39 -0700</bug_when>
    <thetext>Comment on attachment 211434
Patch

Clearing flags on attachment: 211434

Committed r155627: &lt;http://trac.webkit.org/changeset/155627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928350</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-12 09:49:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928362</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-12 10:08:39 -0700</bug_when>
    <thetext>If you liked the compile time aspect of the old solution and wanted to solve this without virtual function call overhead, the appropriate technique probably would be traits.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211400</attachid>
            <date>2013-09-11 22:58:45 -0700</date>
            <delta_ts>2013-09-12 09:12:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121213-20130911225844.patch</filename>
            <type>text/plain</type>
            <size>11633</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1NmQ0YTlkNDQ5M2Yw
M2RiNzdhZTVjZDQ0MmNkNjhkYWM5MTIxMS4uYmZlNmQ3OTIwN2JhOWUzMWUwYzlhY2YzZDVjMmJk
MThjYTUyMDk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA5LTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBS
ZW1vdmUgdW5uZWNlc3NhcmlseSBjb21wbGV4IHRlbXBsYXRlIGZyb20gU2hhcGVJbmZvIGNsYXNz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNl
IGNsYXNzZXMgd2VyZSB0cnlpbmcgdG8gYmUgd2F5IHRvbyBjbGV2ZXIsIGFuZCBhcyBhIHJlc3Vs
dCB3ZXJlCisgICAgICAgIGhhcmQgdG8gcmVhZCBhbmQgaGFyZCB0byBkZWJ1Zy4gUmVwbGFjZSB0
aGUgY29tcGxleCB0ZW1wbGF0ZWQgbWV0aG9kCisgICAgICAgIGNhbGxzIHdpdGggdmlydHVhbCBt
ZXRob2RzIHRvIG1ha2UgdGhlc2UgY2xhc3NlcyBtdWNoIGVhc2llciB0bworICAgICAgICB1bmRl
cnN0YW5kIGFuZCBtYWludGFpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZWRTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjo6OmNv
bXB1dGVTZWdtZW50c0ZvckxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJ
bmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjpnZXRTaGFwZVZhbHVlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXBlSW5zaWRlSW5mbzo6U2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cGVPdXRzaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFwZU91dHNpZGVJbmZvOjpnZXRTaGFwZVZhbHVlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlT3V0c2lk
ZUluZm86OlNoYXBlT3V0c2lkZUluZm8pOgorCiAyMDEzLTA5LTExICBHZW9mZnJleSBHYXJlbiAg
PGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBzb21lIHVudXNlZCBmdW5jdGlv
bnMgZnJvbSB0aGUgZGVidWdnZXIgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKaW5kZXggYmY5NGU0MjBmMzA4NTAxY2IwMTdjNTZjZjgw
NmQyYmVkNGYzZTM4OC4uMDJiOGU0NzBhMzAzYmQwNGZlZWVmNmQ1OTMyYjQ3NTliZjk3MjNkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAt
MzksOCArMzksOCBAQAogI2luY2x1ZGUgIlNoYXBlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LXRlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGUsIFNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KnNo
YXBlR2V0dGVyKSgpIGNvbnN0LCB2b2lkIChTaGFwZTo6KmludGVydmFsR2V0dGVyKShMYXlvdXRV
bml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0PgotY29uc3QgU2hhcGUqIFNoYXBl
SW5mbzxSZW5kZXJUeXBlLCBzaGFwZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+Ojpjb21wdXRlZFNo
YXBlKCkgY29uc3QKK3RlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGU+Citjb25zdCBTaGFwZSogU2hh
cGVJbmZvPFJlbmRlclR5cGU+Ojpjb21wdXRlZFNoYXBlKCkgY29uc3QKIHsKICAgICBpZiAoU2hh
cGUqIHNoYXBlID0gbV9zaGFwZS5nZXQoKSkKICAgICAgICAgcmV0dXJuIHNoYXBlOwpAQCAtNDks
NyArNDksNyBAQCBjb25zdCBTaGFwZSogU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0dGVy
LCBpbnRlcnZhbEdldHRlcj46OmNvbXB1dGVkU2hhcGUoKQogICAgIFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlID0gbV9yZW5kZXJlci0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKTsKICAgICBMZW5ndGgg
bWFyZ2luID0gbV9yZW5kZXJlci0+c3R5bGUoKS0+c2hhcGVNYXJnaW4oKTsKICAgICBMZW5ndGgg
cGFkZGluZyA9IG1fcmVuZGVyZXItPnN0eWxlKCktPnNoYXBlUGFkZGluZygpOwotICAgIGNvbnN0
IFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSAobV9yZW5kZXJlci0+c3R5bGUoKS0+KnNoYXBlR2V0
dGVyKSgpOworICAgIGNvbnN0IFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSBnZXRTaGFwZVZhbHVl
KCk7CiAgICAgQVNTRVJUKHNoYXBlVmFsdWUpOwogCiAgICAgc3dpdGNoIChzaGFwZVZhbHVlLT50
eXBlKCkpIHsKQEAgLTY5LDggKzY5LDggQEAgY29uc3QgU2hhcGUqIFNoYXBlSW5mbzxSZW5kZXJU
eXBlLCBzaGFwZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+Ojpjb21wdXRlZFNoYXBlKCkKICAgICBy
ZXR1cm4gbV9zaGFwZS5nZXQoKTsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgUmVuZGVyVHlwZSwgU2hh
cGVWYWx1ZSogKFJlbmRlclN0eWxlOjoqc2hhcGVHZXR0ZXIpKCkgY29uc3QsIHZvaWQgKFNoYXBl
OjoqaW50ZXJ2YWxHZXR0ZXIpKExheW91dFVuaXQsIExheW91dFVuaXQsIFNlZ21lbnRMaXN0Jikg
Y29uc3Q+Ci1ib29sIFNoYXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFwZUdldHRlciwgaW50ZXJ2YWxH
ZXR0ZXI+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KQordGVtcGxhdGU8Y2xhc3MgUmVuZGVyVHlwZT4KK2Jvb2wgU2hhcGVJ
bmZvPFJlbmRlclR5cGU+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRv
cCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KQogewogICAgIEFTU0VSVChsaW5lSGVpZ2h0ID49IDAp
OwogICAgIG1fc2hhcGVMaW5lVG9wID0gbGluZVRvcCAtIGxvZ2ljYWxUb3BPZmZzZXQoKTsKQEAg
LTc4LDcgKzc4LDcgQEAgYm9vbCBTaGFwZUluZm88UmVuZGVyVHlwZSwgc2hhcGVHZXR0ZXIsIGlu
dGVydmFsR2V0dGVyPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSgKICAgICBtX3NlZ21lbnRzLmNs
ZWFyKCk7CiAKICAgICBpZiAobGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSkKLSAgICAgICAgKGNv
bXB1dGVkU2hhcGUoKS0+KmludGVydmFsR2V0dGVyKShtX3NoYXBlTGluZVRvcCwgc3RkOjptaW4o
bV9saW5lSGVpZ2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRz
KTsKKyAgICAgICAgZ2V0SW50ZXJ2YWxzKG1fc2hhcGVMaW5lVG9wLCBzdGQ6Om1pbihtX2xpbmVI
ZWlnaHQsIHNoYXBlTG9naWNhbEJvdHRvbSgpIC0gbGluZVRvcCksIG1fc2VnbWVudHMpOwogCiAg
ICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldCA9IHRoaXMtPmxvZ2ljYWxMZWZ0T2Zmc2V0
KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsrKSB7
CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0dGVy
LCBpbnRlcnZhbEdldHRlcj46OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoCiAgICAgcmV0dXJuIG1f
c2VnbWVudHMuc2l6ZSgpOwogfQogCi10ZW1wbGF0ZSBjbGFzcyBTaGFwZUluZm88UmVuZGVyQmxv
Y2ssICZSZW5kZXJTdHlsZTo6cmVzb2x2ZWRTaGFwZUluc2lkZSwgJlNoYXBlOjpnZXRJbmNsdWRl
ZEludGVydmFscz47Ci10ZW1wbGF0ZSBjbGFzcyBTaGFwZUluZm88UmVuZGVyQm94LCAmUmVuZGVy
U3R5bGU6OnNoYXBlT3V0c2lkZSwgJlNoYXBlOjpnZXRFeGNsdWRlZEludGVydmFscz47Cit0ZW1w
bGF0ZSBjbGFzcyBTaGFwZUluZm88UmVuZGVyQmxvY2s+OwordGVtcGxhdGUgY2xhc3MgU2hhcGVJ
bmZvPFJlbmRlckJveD47CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlSW5mby5oCmluZGV4IDA0ZWU0NzFhODgwMWEyMTAzYWEzYzc2YTg5ODVmYzFmMzU1
YzFlYTkuLjFhNWMwMTE5YjUwN2ZiOTljMzM5NGYyMDhlZmQ0MGQxZmMyZTczNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaApAQCAtNjQsNyArNjQsNyBA
QCBwcml2YXRlOgogICAgIH0KIH07CiAKLXRlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGUsIFNoYXBl
VmFsdWUqIChSZW5kZXJTdHlsZTo6KnNoYXBlR2V0dGVyKSgpIGNvbnN0LCB2b2lkIChTaGFwZTo6
KmludGVydmFsR2V0dGVyKShMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNv
bnN0PgordGVtcGxhdGU8Y2xhc3MgUmVuZGVyVHlwZT4KIGNsYXNzIFNoYXBlSW5mbyB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMTAsNiArMTEwLDggQEAgcHJv
dGVjdGVkOgogCiAgICAgY29uc3QgU2hhcGUqIGNvbXB1dGVkU2hhcGUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIGdldFNoYXBlVmFsdWUoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEludGVydmFscyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBT
ZWdtZW50TGlzdCYpIGNvbnN0ID0gMDsKIAogICAgIExheW91dFVuaXQgbG9naWNhbFRvcE9mZnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXItPnN0eWxlKCktPmJveFNpemluZygpID09IENP
TlRFTlRfQk9YID8gbV9yZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpIDogTGF5b3V0
VW5pdCgpOyB9OwogICAgIExheW91dFVuaXQgbG9naWNhbExlZnRPZmZzZXQoKSBjb25zdCB7IHJl
dHVybiAobV9yZW5kZXJlci0+c3R5bGUoKS0+Ym94U2l6aW5nKCkgPT0gQ09OVEVOVF9CT1ggJiYg
IW1fcmVuZGVyZXItPmlzUmVuZGVyUmVnaW9uKCkpID8gbV9yZW5kZXJlci0+Ym9yZGVyQW5kUGFk
ZGluZ1N0YXJ0KCkgOiBMYXlvdXRVbml0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmNwcAppbmRleCAxYzhlMTEzOGFhNWJmNDIx
YTEzMDVlMmE2ZjZjY2E5OTk4NGM1ZWI5Li5mZDIzM2EwNDBmZTgyYWU5M2Q3ODU5NDE2MTQ5ODkw
OGViMmExOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlSW5zaWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZUluc2lkZUluZm8uY3BwCkBAIC03Niw1ICs3NiwxMCBAQCBib29sIFNoYXBlSW5zaWRlSW5m
bzo6YWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWluU2VnbWVudFdpZHRoKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorU2hhcGVWYWx1ZSogU2hhcGVJbnNpZGVJbmZvOjpnZXRTaGFwZVZhbHVl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFw
ZUluc2lkZSgpOworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCmluZGV4IDQ0YTc0Y2MwNjJkNWM0NTJlODQyMmFi
NjAyMWFjZjg2ODJmMDE3NGUuLmQ4NjZhMTE5NTdhYmQzNTIwMWUyODJkYjVjYTI3NTNmOTcxYmI0
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNp
ZGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lk
ZUluZm8uaApAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3QgTGluZVNlZ21lbnRSYW5nZSB7CiAKIHR5
cGVkZWYgVmVjdG9yPExpbmVTZWdtZW50UmFuZ2U+IFNlZ21lbnRSYW5nZUxpc3Q7CiAKLWNsYXNz
IFNoYXBlSW5zaWRlSW5mbyA6IHB1YmxpYyBTaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJT
dHlsZTo6cmVzb2x2ZWRTaGFwZUluc2lkZSwgJlNoYXBlOjpnZXRJbmNsdWRlZEludGVydmFscz4g
eworY2xhc3MgU2hhcGVJbnNpZGVJbmZvIDogcHVibGljIFNoYXBlSW5mbzxSZW5kZXJCbG9jaz4g
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlSW5zaWRlSW5mbz4gY3JlYXRl
SW5mbyhjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBT
aGFwZUluc2lkZUluZm8ocmVuZGVyZXIpKTsgfQogCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0U2l6ZSBsaW5lT2Zmc2V0LCBM
YXlvdXRVbml0IGxpbmVIZWlnaHQpCiAgICAgewogICAgICAgICBtX3NlZ21lbnRSYW5nZXMuY2xl
YXIoKTsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBTaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5k
ZXJTdHlsZTo6cmVzb2x2ZWRTaGFwZUluc2lkZSwgJlNoYXBlOjpnZXRJbmNsdWRlZEludGVydmFs
cz46OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZU9mZnNldC5oZWlnaHQoKSwgbGluZUhlaWdo
dCk7CisgICAgICAgIGJvb2wgcmVzdWx0ID0gU2hhcGVJbmZvPFJlbmRlckJsb2NrPjo6Y29tcHV0
ZVNlZ21lbnRzRm9yTGluZShsaW5lT2Zmc2V0LmhlaWdodCgpLCBsaW5lSGVpZ2h0KTsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsrKSB7CiAgICAg
ICAgICAgICBtX3NlZ21lbnRzW2ldLmxvZ2ljYWxMZWZ0IC09IGxpbmVPZmZzZXQud2lkdGgoKTsK
ICAgICAgICAgICAgIG1fc2VnbWVudHNbaV0ubG9naWNhbFJpZ2h0IC09IGxpbmVPZmZzZXQud2lk
dGgoKTsKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb21wdXRl
U2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KSBPVkVSUklERQogICAgIHsKICAgICAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7Ci0gICAg
ICAgIHJldHVybiBTaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJTdHlsZTo6cmVzb2x2ZWRT
aGFwZUluc2lkZSwgJlNoYXBlOjpnZXRJbmNsdWRlZEludGVydmFscz46OmNvbXB1dGVTZWdtZW50
c0ZvckxpbmUobGluZVRvcCwgbGluZUhlaWdodCk7CisgICAgICAgIHJldHVybiBTaGFwZUluZm88
UmVuZGVyQmxvY2s+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVIZWlnaHQp
OwogICAgIH0KIAogICAgIGJvb2wgaGFzU2VnbWVudHMoKSBjb25zdApAQCAtMTEwLDEwICsxMTAs
MTUgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1
dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBjb21w
dXRlZFNoYXBlKCktPnNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpOyB9CisgICAgdmly
dHVhbCBTaGFwZVZhbHVlKiBnZXRTaGFwZVZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGdldEludGVydmFscyhMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGlu
ZUhlaWdodCwgU2VnbWVudExpc3QmIHNlZ21lbnRzKSBjb25zdCBPVkVSUklERQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+Z2V0SW5jbHVkZWRJbnRlcnZhbHMobGluZVRv
cCwgbGluZUhlaWdodCwgc2VnbWVudHMpOworICAgIH0KIAogcHJpdmF0ZToKICAgICBTaGFwZUlu
c2lkZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKQotICAgIDogU2hhcGVJbmZvPFJl
bmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNpZGUsICZTaGFwZTo6Z2V0
SW5jbHVkZWRJbnRlcnZhbHM+IChyZW5kZXJlcikKKyAgICA6IFNoYXBlSW5mbzxSZW5kZXJCbG9j
az4gKHJlbmRlcmVyKQogICAgICwgbV9uZWVkc0xheW91dChmYWxzZSkKICAgICB7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKaW5kZXggMDZjNzkwODNmNjIwNDViZTRkZWFlYmU4YTJjMDU5NTZlODI1NDAxMC4uOTcwNGIw
OTUwMTY5Njg2ZDliZjZjZjNiZDkzNGUwYjFiNjk2ZGUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwCkBAIC02MSw3ICs2
MSw3IEBAIGJvb2wgU2hhcGVPdXRzaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yQ29udGFpbmlu
Z0Jsb2NrTGluZShMYXlvdXRVbml0IGxpbmVUb3AsCiBib29sIFNoYXBlT3V0c2lkZUluZm86OmNv
bXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVI
ZWlnaHQpCiB7CiAgICAgaWYgKHNoYXBlU2l6ZURpcnR5KCkgfHwgbV9saW5lVG9wICE9IGxpbmVU
b3AgfHwgbV9saW5lSGVpZ2h0ICE9IGxpbmVIZWlnaHQpIHsKLSAgICAgICAgaWYgKFNoYXBlSW5m
bzxSZW5kZXJCb3gsICZSZW5kZXJTdHlsZTo6c2hhcGVPdXRzaWRlLCAmU2hhcGU6OmdldEV4Y2x1
ZGVkSW50ZXJ2YWxzPjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0
KSkgeworICAgICAgICBpZiAoU2hhcGVJbmZvPFJlbmRlckJveD46OmNvbXB1dGVTZWdtZW50c0Zv
ckxpbmUobGluZVRvcCwgbGluZUhlaWdodCkpIHsKICAgICAgICAgICAgIG1fbGVmdFNlZ21lbnRN
YXJnaW5Cb3hEZWx0YSA9IG1fc2VnbWVudHNbMF0ubG9naWNhbExlZnQgKyBtX3JlbmRlcmVyLT5t
YXJnaW5TdGFydCgpOwogICAgICAgICAgICAgbV9yaWdodFNlZ21lbnRNYXJnaW5Cb3hEZWx0YSA9
IG1fc2VnbWVudHNbbV9zZWdtZW50cy5zaXplKCktMV0ubG9naWNhbFJpZ2h0IC0gbV9yZW5kZXJl
ci0+bG9naWNhbFdpZHRoKCkgLSBtX3JlbmRlcmVyLT5tYXJnaW5FbmQoKTsKICAgICAgICAgfSBl
bHNlIHsKQEAgLTc0LDUgKzc0LDEwIEBAIGJvb2wgU2hhcGVPdXRzaWRlSW5mbzo6Y29tcHV0ZVNl
Z21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluCiAgICAgcmV0
dXJuIG1fc2VnbWVudHMuc2l6ZSgpOwogfQogCitTaGFwZVZhbHVlKiBTaGFwZU91dHNpZGVJbmZv
OjpnZXRTaGFwZVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUo
KS0+c2hhcGVPdXRzaWRlKCk7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaAppbmRleCA2ODViMGY5NGM2MDFj
NmY2NGUzM2QzODhkNmExOWUxM2ZiM2MwYzNjLi40MjVlYjFjMzZhOWJiZTNjNDVkMTM0ODA1NzIx
ZTgxMjQ0NzVjOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlT3V0c2lkZUluZm8uaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFJlbmRlckJveDsKIAotY2xhc3MgU2hhcGVPdXRzaWRlSW5mbyA6IHB1YmxpYyBT
aGFwZUluZm88UmVuZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZSwgJlNoYXBlOjpn
ZXRFeGNsdWRlZEludGVydmFscz4sIHB1YmxpYyBNYXBwZWRJbmZvPFJlbmRlckJveCwgU2hhcGVP
dXRzaWRlSW5mbz4geworY2xhc3MgU2hhcGVPdXRzaWRlSW5mbyA6IHB1YmxpYyBTaGFwZUluZm88
UmVuZGVyQm94PiwgcHVibGljIE1hcHBlZEluZm88UmVuZGVyQm94LCBTaGFwZU91dHNpZGVJbmZv
PiB7CiBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBsZWZ0U2VnbWVudE1hcmdpbkJveERlbHRhKCkg
Y29uc3QgeyByZXR1cm4gbV9sZWZ0U2VnbWVudE1hcmdpbkJveERlbHRhOyB9CiAgICAgTGF5b3V0
VW5pdCByaWdodFNlZ21lbnRNYXJnaW5Cb3hEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHRT
ZWdtZW50TWFyZ2luQm94RGVsdGE7IH0KQEAgLTUyLDkgKzUyLDE0IEBAIHB1YmxpYzoKIAogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlTG9naWNhbEJvdW5k
aW5nQm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5zaGFwZU1h
cmdpbkxvZ2ljYWxCb3VuZGluZ0JveCgpOyB9CisgICAgdmlydHVhbCBTaGFwZVZhbHVlKiBnZXRT
aGFwZVZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVydmFs
cyhMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCwgU2VnbWVudExpc3Qm
IHNlZ21lbnRzKSBjb25zdCBPVkVSUklERQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVk
U2hhcGUoKS0+Z2V0RXhjbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgbGluZUhlaWdodCwgc2VnbWVu
dHMpOworICAgIH0KIAogcHJpdmF0ZToKLSAgICBTaGFwZU91dHNpZGVJbmZvKGNvbnN0IFJlbmRl
ckJveCogcmVuZGVyZXIpIDogU2hhcGVJbmZvPFJlbmRlckJveCwgJlJlbmRlclN0eWxlOjpzaGFw
ZU91dHNpZGUsICZTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHM+KHJlbmRlcmVyKSB7IH0KKyAg
ICBTaGFwZU91dHNpZGVJbmZvKGNvbnN0IFJlbmRlckJveCogcmVuZGVyZXIpIDogU2hhcGVJbmZv
PFJlbmRlckJveD4ocmVuZGVyZXIpIHsgfQogCiAgICAgTGF5b3V0VW5pdCBtX2xlZnRTZWdtZW50
TWFyZ2luQm94RGVsdGE7CiAgICAgTGF5b3V0VW5pdCBtX3JpZ2h0U2VnbWVudE1hcmdpbkJveERl
bHRhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211434</attachid>
            <date>2013-09-12 09:12:53 -0700</date>
            <delta_ts>2013-09-12 09:49:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121213-20130912091253.patch</filename>
            <type>text/plain</type>
            <size>11616</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVjMmYyOTUxNzgwNTk3
NWNiMDYxNWQwZjJiNWQ2ZDY4Nzg3Y2FiMC4uNTAxYTljMDM5NDY4NmI5MjNhYTc2OWEyMzM2NmMx
NjZiN2ZmNTVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA5LTExICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhcGVzXSBS
ZW1vdmUgdW5uZWNlc3NhcmlseSBjb21wbGV4IHRlbXBsYXRlIGZyb20gU2hhcGVJbmZvIGNsYXNz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTIx
MworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoZXNlIGNs
YXNzZXMgd2VyZSB0cnlpbmcgdG8gYmUgd2F5IHRvbyBjbGV2ZXIsIGFuZCBhcyBhIHJlc3VsdCB3
ZXJlCisgICAgICAgIGhhcmQgdG8gcmVhZCBhbmQgaGFyZCB0byBkZWJ1Zy4gUmVwbGFjZSB0aGUg
Y29tcGxleCB0ZW1wbGF0ZWQgbWV0aG9kCisgICAgICAgIGNhbGxzIHdpdGggdmlydHVhbCBtZXRo
b2RzIHRvIG1ha2UgdGhlc2UgY2xhc3NlcyBtdWNoIGVhc2llciB0bworICAgICAgICB1bmRlcnN0
YW5kIGFuZCBtYWludGFpbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZWRTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjo6OmNvbXB1
dGVTZWdtZW50c0ZvckxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZv
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGVJbnNpZGVJbmZvOjpnZXRTaGFwZVZhbHVlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXBlSW5zaWRlSW5mbzo6U2hhcGVJbnNpZGVJbmZvKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVP
dXRzaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpT
aGFwZU91dHNpZGVJbmZvOjpnZXRTaGFwZVZhbHVlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hh
cGVzL1NoYXBlT3V0c2lkZUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlT3V0c2lkZUlu
Zm86OlNoYXBlT3V0c2lkZUluZm8pOgorCiAyMDEzLTA5LTEyICBNaWtoYWlsIFBvemRueWFrb3Yg
IDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFJlbW92ZSBob21lLWJy
ZXdlZCBudWxscHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5m
by5jcHAKaW5kZXggYmY5NGU0MjBmMzA4NTAxY2IwMTdjNTZjZjgwNmQyYmVkNGYzZTM4OC4uZDdk
NTBjNmY2MDFiZGJhZjVmYWNlMzVmMjQ0NmIzZTVhNTJiY2RlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcApAQCAtMzksOCArMzksOCBAQAogI2lu
Y2x1ZGUgIlNoYXBlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLXRlbXBsYXRlPGNsYXNzIFJl
bmRlclR5cGUsIFNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KnNoYXBlR2V0dGVyKSgpIGNvbnN0
LCB2b2lkIChTaGFwZTo6KmludGVydmFsR2V0dGVyKShMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBT
ZWdtZW50TGlzdCYpIGNvbnN0PgotY29uc3QgU2hhcGUqIFNoYXBlSW5mbzxSZW5kZXJUeXBlLCBz
aGFwZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+Ojpjb21wdXRlZFNoYXBlKCkgY29uc3QKK3RlbXBs
YXRlPGNsYXNzIFJlbmRlclR5cGU+Citjb25zdCBTaGFwZSogU2hhcGVJbmZvPFJlbmRlclR5cGU+
Ojpjb21wdXRlZFNoYXBlKCkgY29uc3QKIHsKICAgICBpZiAoU2hhcGUqIHNoYXBlID0gbV9zaGFw
ZS5nZXQoKSkKICAgICAgICAgcmV0dXJuIHNoYXBlOwpAQCAtNDksNyArNDksNyBAQCBjb25zdCBT
aGFwZSogU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0dGVyLCBpbnRlcnZhbEdldHRlcj46
OmNvbXB1dGVkU2hhcGUoKQogICAgIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlID0gbV9yZW5kZXJl
ci0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKTsKICAgICBMZW5ndGggbWFyZ2luID0gbV9yZW5kZXJl
ci0+c3R5bGUoKS0+c2hhcGVNYXJnaW4oKTsKICAgICBMZW5ndGggcGFkZGluZyA9IG1fcmVuZGVy
ZXItPnN0eWxlKCktPnNoYXBlUGFkZGluZygpOwotICAgIGNvbnN0IFNoYXBlVmFsdWUqIHNoYXBl
VmFsdWUgPSAobV9yZW5kZXJlci0+c3R5bGUoKS0+KnNoYXBlR2V0dGVyKSgpOworICAgIGNvbnN0
IFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSB0aGlzLT5zaGFwZVZhbHVlKCk7CiAgICAgQVNTRVJU
KHNoYXBlVmFsdWUpOwogCiAgICAgc3dpdGNoIChzaGFwZVZhbHVlLT50eXBlKCkpIHsKQEAgLTY5
LDggKzY5LDggQEAgY29uc3QgU2hhcGUqIFNoYXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFwZUdldHRl
ciwgaW50ZXJ2YWxHZXR0ZXI+Ojpjb21wdXRlZFNoYXBlKCkKICAgICByZXR1cm4gbV9zaGFwZS5n
ZXQoKTsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgUmVuZGVyVHlwZSwgU2hhcGVWYWx1ZSogKFJlbmRl
clN0eWxlOjoqc2hhcGVHZXR0ZXIpKCkgY29uc3QsIHZvaWQgKFNoYXBlOjoqaW50ZXJ2YWxHZXR0
ZXIpKExheW91dFVuaXQsIExheW91dFVuaXQsIFNlZ21lbnRMaXN0JikgY29uc3Q+Ci1ib29sIFNo
YXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFwZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+Ojpjb21wdXRl
U2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KQordGVtcGxhdGU8Y2xhc3MgUmVuZGVyVHlwZT4KK2Jvb2wgU2hhcGVJbmZvPFJlbmRlclR5cGU+
Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBs
aW5lSGVpZ2h0KQogewogICAgIEFTU0VSVChsaW5lSGVpZ2h0ID49IDApOwogICAgIG1fc2hhcGVM
aW5lVG9wID0gbGluZVRvcCAtIGxvZ2ljYWxUb3BPZmZzZXQoKTsKQEAgLTc4LDcgKzc4LDcgQEAg
Ym9vbCBTaGFwZUluZm88UmVuZGVyVHlwZSwgc2hhcGVHZXR0ZXIsIGludGVydmFsR2V0dGVyPjo6
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSgKICAgICBtX3NlZ21lbnRzLmNsZWFyKCk7CiAKICAgICBp
ZiAobGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSkKLSAgICAgICAgKGNvbXB1dGVkU2hhcGUoKS0+
KmludGVydmFsR2V0dGVyKShtX3NoYXBlTGluZVRvcCwgc3RkOjptaW4obV9saW5lSGVpZ2h0LCBz
aGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRzKTsKKyAgICAgICAgZ2V0
SW50ZXJ2YWxzKG1fc2hhcGVMaW5lVG9wLCBzdGQ6Om1pbihtX2xpbmVIZWlnaHQsIHNoYXBlTG9n
aWNhbEJvdHRvbSgpIC0gbGluZVRvcCksIG1fc2VnbWVudHMpOwogCiAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldCA9IHRoaXMtPmxvZ2ljYWxMZWZ0T2Zmc2V0KCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgaSsrKSB7CkBAIC04OSw3ICs4OSw3
IEBAIGJvb2wgU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0dGVyLCBpbnRlcnZhbEdldHRl
cj46OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoCiAgICAgcmV0dXJuIG1fc2VnbWVudHMuc2l6ZSgp
OwogfQogCi10ZW1wbGF0ZSBjbGFzcyBTaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJTdHls
ZTo6cmVzb2x2ZWRTaGFwZUluc2lkZSwgJlNoYXBlOjpnZXRJbmNsdWRlZEludGVydmFscz47Ci10
ZW1wbGF0ZSBjbGFzcyBTaGFwZUluZm88UmVuZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0
c2lkZSwgJlNoYXBlOjpnZXRFeGNsdWRlZEludGVydmFscz47Cit0ZW1wbGF0ZSBjbGFzcyBTaGFw
ZUluZm88UmVuZGVyQmxvY2s+OwordGVtcGxhdGUgY2xhc3MgU2hhcGVJbmZvPFJlbmRlckJveD47
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5o
CmluZGV4IDA0ZWU0NzFhODgwMWEyMTAzYWEzYzc2YTg5ODVmYzFmMzU1YzFlYTkuLmZhZWE0ZDFk
NDEzMWQxYWQwYjJhYWE1OGY3MGUxN2JkZjMyNDRkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAg
IH0KIH07CiAKLXRlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGUsIFNoYXBlVmFsdWUqIChSZW5kZXJT
dHlsZTo6KnNoYXBlR2V0dGVyKSgpIGNvbnN0LCB2b2lkIChTaGFwZTo6KmludGVydmFsR2V0dGVy
KShMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0PgordGVtcGxhdGU8
Y2xhc3MgUmVuZGVyVHlwZT4KIGNsYXNzIFNoYXBlSW5mbyB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMTAsNiArMTEwLDggQEAgcHJvdGVjdGVkOgogCiAgICAg
Y29uc3QgU2hhcGUqIGNvbXB1dGVkU2hhcGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGdldEludGVydmFscyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0
ID0gMDsKIAogICAgIExheW91dFVuaXQgbG9naWNhbFRvcE9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVuZGVyZXItPnN0eWxlKCktPmJveFNpemluZygpID09IENPTlRFTlRfQk9YID8gbV9yZW5k
ZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpIDogTGF5b3V0VW5pdCgpOyB9OwogICAgIExh
eW91dFVuaXQgbG9naWNhbExlZnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiAobV9yZW5kZXJlci0+
c3R5bGUoKS0+Ym94U2l6aW5nKCkgPT0gQ09OVEVOVF9CT1ggJiYgIW1fcmVuZGVyZXItPmlzUmVu
ZGVyUmVnaW9uKCkpID8gbV9yZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ1N0YXJ0KCkgOiBMYXlv
dXRVbml0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
U2hhcGVJbnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGVJbnNpZGVJbmZvLmNwcAppbmRleCAxYzhlMTEzOGFhNWJmNDIxYTEzMDVlMmE2ZjZjY2E5OTk4
NGM1ZWI5Li5jYmVmOTRjNzQ4NmU2ZWZlMTRkZjViYTY1YjI3OWQ1YjM4ZWEyYzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uY3Bw
CkBAIC03Niw1ICs3NiwxMCBAQCBib29sIFNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9naWNhbExp
bmVUb3AoZmxvYXQgbWluU2VnbWVudFdpZHRoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorU2hh
cGVWYWx1ZSogU2hhcGVJbnNpZGVJbmZvOjpzaGFwZVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9yZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgpOworfQorCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJ
bnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRl
SW5mby5oCmluZGV4IDQ0YTc0Y2MwNjJkNWM0NTJlODQyMmFiNjAyMWFjZjg2ODJmMDE3NGUuLmM5
YzI3MjBmZDYxMDVkMTM0YzZkZTk3ZjNlMGY2NTI2MjIwZmYzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaApAQCAtNjIsNyArNjIs
NyBAQCBzdHJ1Y3QgTGluZVNlZ21lbnRSYW5nZSB7CiAKIHR5cGVkZWYgVmVjdG9yPExpbmVTZWdt
ZW50UmFuZ2U+IFNlZ21lbnRSYW5nZUxpc3Q7CiAKLWNsYXNzIFNoYXBlSW5zaWRlSW5mbyA6IHB1
YmxpYyBTaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJTdHlsZTo6cmVzb2x2ZWRTaGFwZUlu
c2lkZSwgJlNoYXBlOjpnZXRJbmNsdWRlZEludGVydmFscz4geworY2xhc3MgU2hhcGVJbnNpZGVJ
bmZvIEZJTkFMIDogcHVibGljIFNoYXBlSW5mbzxSZW5kZXJCbG9jaz4geyAKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxTaGFwZUluc2lkZUluZm8+IGNyZWF0ZUluZm8oY29uc3QgUmVu
ZGVyQmxvY2sqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU2hhcGVJbnNpZGVJbmZv
KHJlbmRlcmVyKSk7IH0KIApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb21w
dXRlU2VnbWVudHNGb3JMaW5lKExheW91dFNpemUgbGluZU9mZnNldCwgTGF5b3V0VW5pdCBsaW5l
SGVpZ2h0KQogICAgIHsKICAgICAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7Ci0gICAgICAg
IGJvb2wgcmVzdWx0ID0gU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29s
dmVkU2hhcGVJbnNpZGUsICZTaGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpjb21wdXRlU2Vn
bWVudHNGb3JMaW5lKGxpbmVPZmZzZXQuaGVpZ2h0KCksIGxpbmVIZWlnaHQpOworICAgICAgICBi
b29sIHJlc3VsdCA9IFNoYXBlSW5mbzxSZW5kZXJCbG9jaz46OmNvbXB1dGVTZWdtZW50c0Zvckxp
bmUobGluZU9mZnNldC5oZWlnaHQoKSwgbGluZUhlaWdodCk7CiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7IGkrKykgewogICAgICAgICAgICAgbV9zZWdt
ZW50c1tpXS5sb2dpY2FsTGVmdCAtPSBsaW5lT2Zmc2V0LndpZHRoKCk7CiAgICAgICAgICAgICBt
X3NlZ21lbnRzW2ldLmxvZ2ljYWxSaWdodCAtPSBsaW5lT2Zmc2V0LndpZHRoKCk7CkBAIC04Miw3
ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkgT1ZFUlJJREUKICAg
ICB7CiAgICAgICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwotICAgICAgICByZXR1cm4gU2hh
cGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNpZGUsICZT
aGFwZTo6Z2V0SW5jbHVkZWRJbnRlcnZhbHM+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVU
b3AsIGxpbmVIZWlnaHQpOworICAgICAgICByZXR1cm4gU2hhcGVJbmZvPFJlbmRlckJsb2NrPjo6
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lSGVpZ2h0KTsKICAgICB9CiAKICAg
ICBib29sIGhhc1NlZ21lbnRzKCkgY29uc3QKQEAgLTExMCwxMCArMTEwLDE1IEBAIHB1YmxpYzoK
IAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlTG9naWNh
bEJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5z
aGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKTsgfQorICAgIHZpcnR1YWwgU2hhcGVWYWx1
ZSogc2hhcGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRl
cnZhbHMoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQsIFNlZ21lbnRM
aXN0JiBzZWdtZW50cykgY29uc3QgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIHJldHVybiBjb21w
dXRlZFNoYXBlKCktPmdldEluY2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVIZWlnaHQsIHNl
Z21lbnRzKTsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgU2hhcGVJbnNpZGVJbmZvKGNvbnN0IFJl
bmRlckJsb2NrKiByZW5kZXJlcikKLSAgICA6IFNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRl
clN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlLCAmU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxz
PiAocmVuZGVyZXIpCisgICAgOiBTaGFwZUluZm88UmVuZGVyQmxvY2s+IChyZW5kZXJlcikKICAg
ICAsIG1fbmVlZHNMYXlvdXQoZmFsc2UpCiAgICAgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwCmluZGV4IDA2Yzc5MDgz
ZjYyMDQ1YmU0ZGVhZWJlOGEyYzA1OTU2ZTgyNTQwMTAuLmVjMGQzZWMyMTNkMzA4MjI5MjFhOGEx
YzQwYjllOTgyZjlkMTBjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcApAQCAtNjEsNyArNjEsNyBAQCBib29sIFNoYXBl
T3V0c2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckNvbnRhaW5pbmdCbG9ja0xpbmUoTGF5b3V0
VW5pdCBsaW5lVG9wLAogYm9vbCBTaGFwZU91dHNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JM
aW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KQogewogICAgIGlm
IChzaGFwZVNpemVEaXJ0eSgpIHx8IG1fbGluZVRvcCAhPSBsaW5lVG9wIHx8IG1fbGluZUhlaWdo
dCAhPSBsaW5lSGVpZ2h0KSB7Ci0gICAgICAgIGlmIChTaGFwZUluZm88UmVuZGVyQm94LCAmUmVu
ZGVyU3R5bGU6OnNoYXBlT3V0c2lkZSwgJlNoYXBlOjpnZXRFeGNsdWRlZEludGVydmFscz46OmNv
bXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUhlaWdodCkpIHsKKyAgICAgICAgaWYg
KFNoYXBlSW5mbzxSZW5kZXJCb3g+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxp
bmVIZWlnaHQpKSB7CiAgICAgICAgICAgICBtX2xlZnRTZWdtZW50TWFyZ2luQm94RGVsdGEgPSBt
X3NlZ21lbnRzWzBdLmxvZ2ljYWxMZWZ0ICsgbV9yZW5kZXJlci0+bWFyZ2luU3RhcnQoKTsKICAg
ICAgICAgICAgIG1fcmlnaHRTZWdtZW50TWFyZ2luQm94RGVsdGEgPSBtX3NlZ21lbnRzW21fc2Vn
bWVudHMuc2l6ZSgpLTFdLmxvZ2ljYWxSaWdodCAtIG1fcmVuZGVyZXItPmxvZ2ljYWxXaWR0aCgp
IC0gbV9yZW5kZXJlci0+bWFyZ2luRW5kKCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC03NCw1ICs3
NCwxMCBAQCBib29sIFNoYXBlT3V0c2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5
b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbgogICAgIHJldHVybiBtX3NlZ21lbnRzLnNp
emUoKTsKIH0KIAorU2hhcGVWYWx1ZSogU2hhcGVPdXRzaWRlSW5mbzo6c2hhcGVWYWx1ZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcmVuZGVyZXItPnN0eWxlKCktPnNoYXBlT3V0c2lkZSgpOwor
fQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGVPdXRzaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZU91dHNpZGVJbmZvLmgKaW5kZXggNjg1YjBmOTRjNjAxYzZmNjRlMzNkMzg4ZDZhMTllMTNm
YjNjMGMzYy4uNzZiMjIwZWUyZTBiOTZhMWFkZmI1ZGZjYTFiZmY1NjFlYjMwYjU1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmgK
QEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJCb3g7
CiAKLWNsYXNzIFNoYXBlT3V0c2lkZUluZm8gOiBwdWJsaWMgU2hhcGVJbmZvPFJlbmRlckJveCwg
JlJlbmRlclN0eWxlOjpzaGFwZU91dHNpZGUsICZTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHM+
LCBwdWJsaWMgTWFwcGVkSW5mbzxSZW5kZXJCb3gsIFNoYXBlT3V0c2lkZUluZm8+IHsKK2NsYXNz
IFNoYXBlT3V0c2lkZUluZm8gRklOQUwgOiBwdWJsaWMgU2hhcGVJbmZvPFJlbmRlckJveD4sIHB1
YmxpYyBNYXBwZWRJbmZvPFJlbmRlckJveCwgU2hhcGVPdXRzaWRlSW5mbz4gewogcHVibGljOgog
ICAgIExheW91dFVuaXQgbGVmdFNlZ21lbnRNYXJnaW5Cb3hEZWx0YSgpIGNvbnN0IHsgcmV0dXJu
IG1fbGVmdFNlZ21lbnRNYXJnaW5Cb3hEZWx0YTsgfQogICAgIExheW91dFVuaXQgcmlnaHRTZWdt
ZW50TWFyZ2luQm94RGVsdGEoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0U2VnbWVudE1hcmdpbkJv
eERlbHRhOyB9CkBAIC01Miw5ICs1MiwxNCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIExheW91dFJlY3QgY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVNYXJnaW5Mb2dpY2FsQm91
bmRpbmdCb3goKTsgfQorICAgIHZpcnR1YWwgU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsaW5l
VG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQsIFNlZ21lbnRMaXN0JiBzZWdtZW50cykgY29uc3Qg
T1ZFUlJJREUKKyAgICB7CisgICAgICAgIHJldHVybiBjb21wdXRlZFNoYXBlKCktPmdldEV4Y2x1
ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVIZWlnaHQsIHNlZ21lbnRzKTsKKyAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgU2hhcGVPdXRzaWRlSW5mbyhjb25zdCBSZW5kZXJCb3gqIHJlbmRlcmVyKSA6
IFNoYXBlSW5mbzxSZW5kZXJCb3gsICZSZW5kZXJTdHlsZTo6c2hhcGVPdXRzaWRlLCAmU2hhcGU6
OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzPihyZW5kZXJlcikgeyB9CisgICAgU2hhcGVPdXRzaWRlSW5m
byhjb25zdCBSZW5kZXJCb3gqIHJlbmRlcmVyKSA6IFNoYXBlSW5mbzxSZW5kZXJCb3g+KHJlbmRl
cmVyKSB7IH0KIAogICAgIExheW91dFVuaXQgbV9sZWZ0U2VnbWVudE1hcmdpbkJveERlbHRhOwog
ICAgIExheW91dFVuaXQgbV9yaWdodFNlZ21lbnRNYXJnaW5Cb3hEZWx0YTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>