<?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>18578</bug_id>
          
          <creation_ts>2008-04-18 04:23:38 -0700</creation_ts>
          <short_desc>Share the printing code between the Gtk and the Qt port</short_desc>
          <delta_ts>2008-04-20 00:31:36 -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>Printing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>christian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78087</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2008-04-18 04:23:38 -0700</bug_when>
    <thetext>This patch moves the PrintContext class into a separate file for sharing between the Gtk and the Qt port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78089</commentid>
    <comment_count>1</comment_count>
      <attachid>20664</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2008-04-18 04:28:23 -0700</bug_when>
    <thetext>Created attachment 20664
first version of patch to share printing code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78294</commentid>
    <comment_count>2</comment_count>
      <attachid>20664</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-20 00:29:27 -0700</bug_when>
    <thetext>Comment on attachment 20664
first version of patch to share printing code

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78295</commentid>
    <comment_count>3</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-04-20 00:31:36 -0700</bug_when>
    <thetext>Landed in r32280. Looking forward to completing this so it can be shared by more ports.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20664</attachid>
            <date>2008-04-18 04:28:23 -0700</date>
            <delta_ts>2008-04-20 00:29:27 -0700</delta_ts>
            <desc>first version of patch to share printing code</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>18825</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGRiYWZlNi4uMGFlZTNhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAwOC0wNC0xOCAgU2ltb24gSGF1c21h
bm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNoYXJlIHRoZSBwcmludGluZyBjb2RlIGJldHdlZW4gdGhlIEd0
ayBhbmQgdGhlIFF0IHBvcnQKKyAgICAgICAgYW5kIGFkZGVkIHByaW50aW5nIHRvIHRoZSBRdCBX
ZWJLaXQgQVBJLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogcGFnZS9QcmludENvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlByaW50Q29udGV4dDo6UHJpbnRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlByaW50Q29udGV4dDo6flByaW50Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQcmludENv
bnRleHQ6OnBhZ2VDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OmNvbXB1
dGVQYWdlUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250ZXh0OjpiZWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OnNwb29sUGFnZSk6CisgICAgICAgICogcGFn
ZS9QcmludENvbnRleHQuaDogQWRkZWQuCisKKzIwMDgtMDQtMTggIFNpbW9uIEhhdXNtYW5uICA8
aGF1c21hbm5Ad2Via2l0Lm9yZz4KKwogICAgICAgICBGaXggdGhlIEd0ayBidWlsZCBvbiB0aGUg
YnVpbGQgYm90LgogCiAgICAgICAgICogR05VbWFrZWZpbGUuYW06IEJhY2sgb3V0IHRoZSBwcmV2
aW91cyBMb2NhbFN0b3JhZ2UsIGV0Yy4gYWRkaXRpb25zCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA1N2MyMmU1Li5mZWZl
YTQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KQEAgLTg0NCw2ICs4NDQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvUGFnZS5jcHAgXAogCVdl
YkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIFwKKwlXZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNw
cCBcCiAJV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5ncy5j
cHAgXAogCVdlYkNvcmUvcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMWRmYjYzNi4uMzM3
NzUwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC03NzgsNiArNzc4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9Nb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcCBcCiAgICAgcGFnZS9QYWdlLmNwcCBcCiAgICAgcGFn
ZS9QYWdlR3JvdXAuY3BwIFwKKyAgICBwYWdlL1ByaW50Q29udGV4dC5jcHAgXAogICAgIHBhZ2Uv
U2NyZWVuLmNwcCBcCiAgICAgcGFnZS9TZXR0aW5ncy5jcHAgXAogICAgIHBhZ2UvV2luZG93RmVh
dHVyZXMuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwIGIv
V2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNDVjNTZmMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9QcmludENv
bnRleHQuY3BwCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFs
cCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5j
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCisKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUHJpbnRDb250ZXh0OjpQcmludENvbnRleHQoRnJhbWUqIGZyYW1lKQorICAgIDog
bV9mcmFtZShmcmFtZSkKK3sKK30KKworUHJpbnRDb250ZXh0Ojp+UHJpbnRDb250ZXh0KCkKK3sK
KyAgICBtX3BhZ2VSZWN0cy5jbGVhcigpOworfQorCitpbnQgUHJpbnRDb250ZXh0OjpwYWdlQ291
bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2VSZWN0cy5zaXplKCk7Cit9CisKK3ZvaWQg
UHJpbnRDb250ZXh0Ojpjb21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgcHJpbnRSZWN0
LCBmbG9hdCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNlclNjYWxl
RmFjdG9yLCBmbG9hdCYgb3V0UGFnZUhlaWdodCkKK3sKKyAgICBtX3BhZ2VSZWN0cy5jbGVhcigp
OworICAgIG91dFBhZ2VIZWlnaHQgPSAwOworCisgICAgaWYgKCFtX2ZyYW1lLT5kb2N1bWVudCgp
IHx8ICFtX2ZyYW1lLT52aWV3KCkgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCktPnJlbmRlcmVyKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclZpZXcqIHJvb3QgPSBzdGF0aWNfY2FzdDxS
ZW5kZXJWaWV3Kj4obV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSk7CisKKyAgICBpZiAo
IXJvb3QpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJkb2N1bWVudCB0byBiZSBwcmludGVkIGhhcyBu
byByZW5kZXJlciIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHVzZXJTY2Fs
ZUZhY3RvciA8PSAwKSB7CisgICAgICAgIExPR19FUlJPUigidXNlclNjYWxlRmFjdG9yIGhhcyBi
YWQgdmFsdWUgJS4yZiIsIHVzZXJTY2FsZUZhY3Rvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBmbG9hdCByYXRpbyA9IHByaW50UmVjdC5oZWlnaHQoKSAvIHByaW50UmVjdC53aWR0
aCgpOworCisgICAgZmxvYXQgcGFnZVdpZHRoICA9IChmbG9hdClyb290LT5kb2NXaWR0aCgpOwor
ICAgIGZsb2F0IHBhZ2VIZWlnaHQgPSBwYWdlV2lkdGggKiByYXRpbzsKKyAgICBvdXRQYWdlSGVp
Z2h0ID0gcGFnZUhlaWdodDsgICAvLyB0aGlzIGlzIHRoZSBoZWlnaHQgb2YgdGhlIHBhZ2UgYWRq
dXN0ZWQgYnkgbWFyZ2lucworICAgIHBhZ2VIZWlnaHQgLT0gaGVhZGVySGVpZ2h0ICsgZm9vdGVy
SGVpZ2h0OworCisgICAgaWYgKHBhZ2VIZWlnaHQgPD0gMCkgeworICAgICAgICBMT0dfRVJST1Io
InBhZ2VIZWlnaHQgaGFzIGJhZCB2YWx1ZSAlLjJmIiwgcGFnZUhlaWdodCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBmbG9hdCBjdXJyUGFnZUhlaWdodCA9IHBhZ2VIZWlnaHQgLyB1
c2VyU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgZG9jSGVpZ2h0ID0gcm9vdC0+bGF5ZXIoKS0+aGVp
Z2h0KCk7CisgICAgZmxvYXQgY3VyclBhZ2VXaWR0aCA9IHBhZ2VXaWR0aCAvIHVzZXJTY2FsZUZh
Y3RvcjsKKworICAgIC8vIGFsd2F5cyByZXR1cm4gYXQgbGVhc3Qgb25lIHBhZ2UsIHNpbmNlIGVt
cHR5IGZpbGVzIHNob3VsZCBwcmludCBhIGJsYW5rIHBhZ2UKKyAgICBmbG9hdCBwcmludGVkUGFn
ZXNIZWlnaHQgPSAwLjA7CisgICAgZG8geworICAgICAgICBmbG9hdCBwcm9wb3NlZEJvdHRvbSA9
IHN0ZDo6bWluKGRvY0hlaWdodCwgcHJpbnRlZFBhZ2VzSGVpZ2h0ICsgcGFnZUhlaWdodCk7Cisg
ICAgICAgIG1fZnJhbWUtPmFkanVzdFBhZ2VIZWlnaHQoJnByb3Bvc2VkQm90dG9tLCBwcmludGVk
UGFnZXNIZWlnaHQsIHByb3Bvc2VkQm90dG9tLCBwcmludGVkUGFnZXNIZWlnaHQpOworICAgICAg
ICBjdXJyUGFnZUhlaWdodCA9IG1heCgxLjBmLCBwcm9wb3NlZEJvdHRvbSAtIHByaW50ZWRQYWdl
c0hlaWdodCk7CisKKyAgICAgICAgbV9wYWdlUmVjdHMuYXBwZW5kKEludFJlY3QoMCwgKGludClw
cmludGVkUGFnZXNIZWlnaHQsIChpbnQpY3VyclBhZ2VXaWR0aCwgKGludCljdXJyUGFnZUhlaWdo
dCkpOworICAgICAgICBwcmludGVkUGFnZXNIZWlnaHQgKz0gY3VyclBhZ2VIZWlnaHQ7CisgICAg
fSB3aGlsZSAocHJpbnRlZFBhZ2VzSGVpZ2h0IDwgZG9jSGVpZ2h0KTsKK30KKwordm9pZCBQcmlu
dENvbnRleHQ6OmJlZ2luKGZsb2F0IHdpZHRoKQoreworICAgIC8vIEJ5IGltYWdpbmcgdG8gYSB3
aWR0aCBhIGxpdHRsZSB3aWRlciB0aGFuIHRoZSBhdmFpbGFibGUgcGl4ZWxzLAorICAgIC8vIHRo
aW4gcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBhIGxpdHRsZSwgbWF0Y2hpbmcgdGhlIHdheSB0
aGV5CisgICAgLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4gVGhpcyBsZXRzIHRoZW0gdXNlIGZl
d2VyIHNoZWV0cyB0aGFuIHRoZXkKKyAgICAvLyB3b3VsZCBvdGhlcndpc2UsIHdoaWNoIGlzIHBy
ZXN1bWFibHkgd2h5IG90aGVyIGJyb3dzZXJzIGRvIHRoaXMuCisgICAgLy8gV2lkZSBwYWdlcyB3
aWxsIGJlIHNjYWxlZCBkb3duIG1vcmUgdGhhbiB0aGlzLgorICAgIGNvbnN0IGZsb2F0IFByaW50
aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDEuMjVmOworCisgICAgLy8gVGhpcyBudW1iZXIgZGV0
ZXJtaW5lcyBob3cgc21hbGwgd2UgYXJlIHdpbGxpbmcgdG8gcmVkdWNlIHRoZSBwYWdlIGNvbnRl
bnQKKyAgICAvLyBpbiBvcmRlciB0byBhY2NvbW1vZGF0ZSB0aGUgd2lkZXN0IGxpbmUuIElmIHRo
ZSBwYWdlIHdvdWxkIGhhdmUgdG8gYmUKKyAgICAvLyByZWR1Y2VkIHNtYWxsZXIgdG8gbWFrZSB0
aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBqdXN0IGNsaXAgaW5zdGVhZCAodGhpcworICAgIC8vIGJl
aGF2aW9yIG1hdGNoZXMgTWFjSUUgYW5kIE1vemlsbGEsIGF0IGxlYXN0KQorICAgIGNvbnN0IGZs
b2F0IFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IDIuMGY7CisKKyAgICBmbG9hdCBtaW5M
YXlvdXRXaWR0aCA9IHdpZHRoICogUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yOworICAgIGZs
b2F0IG1heExheW91dFdpZHRoID0gd2lkdGggKiBQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3I7
CisKKyAgICAvLyBGSVhNRTogVGhpcyB3aWxsIG1vZGlmeSB0aGUgcmVuZGVyaW5nIG9mIHRoZSBv
bi1zY3JlZW4gZnJhbWUuCisgICAgLy8gQ291bGQgbGVhZCB0byBmbGlja2VyIGR1cmluZyBwcmlu
dGluZy4KKyAgICBtX2ZyYW1lLT5zZXRQcmludGluZyh0cnVlLCBtaW5MYXlvdXRXaWR0aCwgbWF4
TGF5b3V0V2lkdGgsIHRydWUpOworfQorCit2b2lkIFByaW50Q29udGV4dDo6c3Bvb2xQYWdlKEdy
YXBoaWNzQ29udGV4dCYgY3R4LCBpbnQgcGFnZU51bWJlciwgZmxvYXQgd2lkdGgpCit7CisgICAg
SW50UmVjdCBwYWdlUmVjdCA9IG1fcGFnZVJlY3RzW3BhZ2VOdW1iZXJdOworICAgIGZsb2F0IHNj
YWxlID0gd2lkdGggLyBwYWdlUmVjdC53aWR0aCgpOworCisgICAgY3R4LnNhdmUoKTsKKyAgICBj
dHguc2NhbGUoRmxvYXRTaXplKHNjYWxlLCBzY2FsZSkpOworICAgIGN0eC50cmFuc2xhdGUoLXBh
Z2VSZWN0LngoKSwgLXBhZ2VSZWN0LnkoKSk7CisgICAgY3R4LmNsaXAocGFnZVJlY3QpOworICAg
IG1fZnJhbWUtPnBhaW50KCZjdHgsIHBhZ2VSZWN0KTsKKyAgICBjdHgucmVzdG9yZSgpOworfQor
Cit2b2lkIFByaW50Q29udGV4dDo6ZW5kKCkKK3sKKyAgICBtX2ZyYW1lLT5zZXRQcmludGluZyhm
YWxzZSwgMCwgMCwgdHJ1ZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Qcmlu
dENvbnRleHQuaCBiL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wYjNiMzAzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9w
YWdlL1ByaW50Q29udGV4dC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBB
cHBsZSBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpZm5kZWYgUHJpbnRDb250ZXh0X2gKKyNkZWZpbmUgUHJpbnRDb250ZXh0X2gK
KworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBGcmFtZTsKK2NsYXNzIEZsb2F0UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNz
IEludFJlY3Q7CisKK2NsYXNzIFByaW50Q29udGV4dCB7CitwdWJsaWM6CisgICAgUHJpbnRDb250
ZXh0KEZyYW1lKik7CisgICAgflByaW50Q29udGV4dCgpOworCisgICAgaW50IHBhZ2VDb3VudCgp
IGNvbnN0OworCisgICAgdm9pZCBjb21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgcHJp
bnRSZWN0LCBmbG9hdCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQgdXNl
clNjYWxlRmFjdG9yLCBmbG9hdCYgb3V0UGFnZUhlaWdodCk7CisKKyAgICAvLyBUT0RPOiBlbGlt
aW5hdGUgd2lkdGggcGFyYW0KKyAgICB2b2lkIGJlZ2luKGZsb2F0IHdpZHRoKTsKKworICAgIC8v
IFRPRE86IGVsaW1pbmF0ZSB3aWR0aCBwYXJhbQorICAgIHZvaWQgc3Bvb2xQYWdlKEdyYXBoaWNz
Q29udGV4dCYgY3R4LCBpbnQgcGFnZU51bWJlciwgZmxvYXQgd2lkdGgpOworCisgICAgdm9pZCBl
bmQoKTsKKworcHJvdGVjdGVkOgorICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIFZlY3RvcjxJbnRS
ZWN0PiBtX3BhZ2VSZWN0czsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDgzNTEwNWIuLmU3YTEw
YTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDgtMDQtMTggIFNpbW9uIEhhdXNtYW5uICA8aGF1
c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTaGFyZSB0aGUgcHJpbnRpbmcgY29kZSBiZXR3ZWVuIHRoZSBHdGsgYW5kIHRo
ZSBRdCBwb3J0CisgICAgICAgIGFuZCBhZGRlZCBwcmludGluZyB0byB0aGUgUXQgV2ViS2l0IEFQ
SS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6IFJlbW92ZWQgUHJpbnRD
b250ZXh0IGluIGZhdm91ciBvZgorICAgICAgICBwYWdlL1ByaW50Y29udGV4dC5jcHAvaAorCiAy
MDA4LTA0LTE3ICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAgICAgICBSdWJiZXIt
c3RhbXBlZCBieSBIb2xnZXIgRnJleXRoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5j
cHAKaW5kZXggNjFhMTQ5Ny4uODVmMzgzZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1l
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgImtqc19iaW5kaW5nLmgiCiAjaW5jbHVkZSAia2pzX3Byb3h5LmgiCkBAIC00ODYsMTIx
ICs0ODcsNiBAQCBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfaW5uZXJfdGV4dChXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCiAKICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLDEwLDApCiAKLS8vIFRo
aXMgY291bGQgYmUgc2hhcmVkIGJldHdlZW4gcG9ydHMgb25jZSBpdCdzIGNvbXBsZXRlCi1jbGFz
cyBQcmludENvbnRleHQKLXsKLXB1YmxpYzoKLSAgICBQcmludENvbnRleHQoRnJhbWUqIGZyYW1l
KQotICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCi0gICAgewotICAgIH0KLQotICAgIH5QcmludENv
bnRleHQoKQotICAgIHsKLSAgICAgICAgbV9wYWdlUmVjdHMuY2xlYXIoKTsKLSAgICB9Ci0KLSAg
ICBpbnQgcGFnZUNvdW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3BhZ2VSZWN0cy5zaXpl
KCk7Ci0gICAgfQotCi0gICAgdm9pZCBjb21wdXRlUGFnZVJlY3RzKGNvbnN0IEZsb2F0UmVjdCYg
cHJpbnRSZWN0LCBmbG9hdCBoZWFkZXJIZWlnaHQsIGZsb2F0IGZvb3RlckhlaWdodCwgZmxvYXQg
dXNlclNjYWxlRmFjdG9yLCBmbG9hdCYgb3V0UGFnZUhlaWdodCkKLSAgICB7Ci0gICAgICAgIG1f
cGFnZVJlY3RzLmNsZWFyKCk7Ci0gICAgICAgIG91dFBhZ2VIZWlnaHQgPSAwOwotCi0gICAgICAg
IGlmICghbV9mcmFtZS0+ZG9jdW1lbnQoKSB8fCAhbV9mcmFtZS0+dmlldygpIHx8ICFtX2ZyYW1l
LT5kb2N1bWVudCgpLT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IFJlbmRlclZpZXcqIHJvb3QgPSBzdGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4obV9mcmFtZS0+ZG9j
dW1lbnQoKS0+cmVuZGVyZXIoKSk7Ci0KLSAgICAgICAgaWYgKCFyb290KSB7Ci0gICAgICAgICAg
ICBMT0dfRVJST1IoImRvY3VtZW50IHRvIGJlIHByaW50ZWQgaGFzIG5vIHJlbmRlcmVyIik7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodXNlclNjYWxlRmFj
dG9yIDw9IDApIHsKLSAgICAgICAgICAgIExPR19FUlJPUigidXNlclNjYWxlRmFjdG9yIGhhcyBi
YWQgdmFsdWUgJS4yZiIsIHVzZXJTY2FsZUZhY3Rvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICBmbG9hdCByYXRpbyA9IHByaW50UmVjdC5oZWlnaHQoKSAvIHBy
aW50UmVjdC53aWR0aCgpOwotCi0gICAgICAgIGZsb2F0IHBhZ2VXaWR0aCAgPSAoZmxvYXQpcm9v
dC0+ZG9jV2lkdGgoKTsKLSAgICAgICAgZmxvYXQgcGFnZUhlaWdodCA9IHBhZ2VXaWR0aCAqIHJh
dGlvOwotICAgICAgICBvdXRQYWdlSGVpZ2h0ID0gcGFnZUhlaWdodDsgICAvLyB0aGlzIGlzIHRo
ZSBoZWlnaHQgb2YgdGhlIHBhZ2UgYWRqdXN0ZWQgYnkgbWFyZ2lucwotICAgICAgICBwYWdlSGVp
Z2h0IC09IGhlYWRlckhlaWdodCArIGZvb3RlckhlaWdodDsKLQotICAgICAgICBpZiAocGFnZUhl
aWdodCA8PSAwKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoInBhZ2VIZWlnaHQgaGFzIGJhZCB2
YWx1ZSAlLjJmIiwgcGFnZUhlaWdodCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LQotICAgICAgICBmbG9hdCBjdXJyUGFnZUhlaWdodCA9IHBhZ2VIZWlnaHQgLyB1c2VyU2NhbGVG
YWN0b3I7Ci0gICAgICAgIGZsb2F0IGRvY0hlaWdodCA9IHJvb3QtPmxheWVyKCktPmhlaWdodCgp
OwotICAgICAgICBmbG9hdCBjdXJyUGFnZVdpZHRoID0gcGFnZVdpZHRoIC8gdXNlclNjYWxlRmFj
dG9yOwotCi0gICAgICAgIC8vIGFsd2F5cyByZXR1cm4gYXQgbGVhc3Qgb25lIHBhZ2UsIHNpbmNl
IGVtcHR5IGZpbGVzIHNob3VsZCBwcmludCBhIGJsYW5rIHBhZ2UKLSAgICAgICAgZmxvYXQgcHJp
bnRlZFBhZ2VzSGVpZ2h0ID0gMC4wOwotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBmbG9hdCBw
cm9wb3NlZEJvdHRvbSA9IG1pbihkb2NIZWlnaHQsIHByaW50ZWRQYWdlc0hlaWdodCArIHBhZ2VI
ZWlnaHQpOwotICAgICAgICAgICAgbV9mcmFtZS0+YWRqdXN0UGFnZUhlaWdodCgmcHJvcG9zZWRC
b3R0b20sIHByaW50ZWRQYWdlc0hlaWdodCwgcHJvcG9zZWRCb3R0b20sIHByaW50ZWRQYWdlc0hl
aWdodCk7Ci0gICAgICAgICAgICBjdXJyUGFnZUhlaWdodCA9IG1heCgxLjBmLCBwcm9wb3NlZEJv
dHRvbSAtIHByaW50ZWRQYWdlc0hlaWdodCk7Ci0KLSAgICAgICAgICAgIG1fcGFnZVJlY3RzLmFw
cGVuZChJbnRSZWN0KDAsIChpbnQpcHJpbnRlZFBhZ2VzSGVpZ2h0LCAoaW50KWN1cnJQYWdlV2lk
dGgsIChpbnQpY3VyclBhZ2VIZWlnaHQpKTsKLSAgICAgICAgICAgIHByaW50ZWRQYWdlc0hlaWdo
dCArPSBjdXJyUGFnZUhlaWdodDsKLSAgICAgICAgfSB3aGlsZSAocHJpbnRlZFBhZ2VzSGVpZ2h0
IDwgZG9jSGVpZ2h0KTsKLSAgICB9Ci0KLSAgICAvLyBUT0RPOiBlbGltaW5hdGUgd2lkdGggcGFy
YW0KLSAgICB2b2lkIGJlZ2luKGZsb2F0IHdpZHRoKQotICAgIHsKLSAgICAgICAgLy8gQnkgaW1h
Z2luZyB0byBhIHdpZHRoIGEgbGl0dGxlIHdpZGVyIHRoYW4gdGhlIGF2YWlsYWJsZSBwaXhlbHMs
Ci0gICAgICAgIC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBhIGxpdHRsZSwgbWF0
Y2hpbmcgdGhlIHdheSB0aGV5Ci0gICAgICAgIC8vIHByaW50IGluIElFIGFuZCBDYW1pbm8uIFRo
aXMgbGV0cyB0aGVtIHVzZSBmZXdlciBzaGVldHMgdGhhbiB0aGV5Ci0gICAgICAgIC8vIHdvdWxk
IG90aGVyd2lzZSwgd2hpY2ggaXMgcHJlc3VtYWJseSB3aHkgb3RoZXIgYnJvd3NlcnMgZG8gdGhp
cy4KLSAgICAgICAgLy8gV2lkZSBwYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIG1vcmUgdGhhbiB0
aGlzLgotICAgICAgICBjb25zdCBmbG9hdCBQcmludGluZ01pbmltdW1TaHJpbmtGYWN0b3IgPSAx
LjI1ZjsKLQotICAgICAgICAvLyBUaGlzIG51bWJlciBkZXRlcm1pbmVzIGhvdyBzbWFsbCB3ZSBh
cmUgd2lsbGluZyB0byByZWR1Y2UgdGhlIHBhZ2UgY29udGVudAotICAgICAgICAvLyBpbiBvcmRl
ciB0byBhY2NvbW1vZGF0ZSB0aGUgd2lkZXN0IGxpbmUuIElmIHRoZSBwYWdlIHdvdWxkIGhhdmUg
dG8gYmUKLSAgICAgICAgLy8gcmVkdWNlZCBzbWFsbGVyIHRvIG1ha2UgdGhlIHdpZGVzdCBsaW5l
IGZpdCwgd2UganVzdCBjbGlwIGluc3RlYWQgKHRoaXMKLSAgICAgICAgLy8gYmVoYXZpb3IgbWF0
Y2hlcyBNYWNJRSBhbmQgTW96aWxsYSwgYXQgbGVhc3QpCi0gICAgICAgIGNvbnN0IGZsb2F0IFBy
aW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IDIuMGY7Ci0KLSAgICAgICAgZmxvYXQgbWluTGF5
b3V0V2lkdGggPSB3aWR0aCAqIFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvcjsKLSAgICAgICAg
ZmxvYXQgbWF4TGF5b3V0V2lkdGggPSB3aWR0aCAqIFByaW50aW5nTWF4aW11bVNocmlua0ZhY3Rv
cjsKLQotICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIG1vZGlmeSB0aGUgcmVuZGVyaW5nIG9m
IHRoZSBvbi1zY3JlZW4gZnJhbWUuCi0gICAgICAgIC8vIENvdWxkIGxlYWQgdG8gZmxpY2tlciBk
dXJpbmcgcHJpbnRpbmcuCi0gICAgICAgIG1fZnJhbWUtPnNldFByaW50aW5nKHRydWUsIG1pbkxh
eW91dFdpZHRoLCBtYXhMYXlvdXRXaWR0aCwgdHJ1ZSk7Ci0gICAgfQotCi0gICAgLy8gVE9ETzog
ZWxpbWluYXRlIHdpZHRoIHBhcmFtCi0gICAgdm9pZCBzcG9vbFBhZ2UoR3JhcGhpY3NDb250ZXh0
JiBjdHgsIGludCBwYWdlTnVtYmVyLCBmbG9hdCB3aWR0aCkKLSAgICB7Ci0gICAgICAgIEludFJl
Y3QgcGFnZVJlY3QgPSBtX3BhZ2VSZWN0c1twYWdlTnVtYmVyXTsKLSAgICAgICAgZmxvYXQgc2Nh
bGUgPSB3aWR0aCAvIHBhZ2VSZWN0LndpZHRoKCk7Ci0KLSAgICAgICAgY3R4LnNhdmUoKTsKLSAg
ICAgICAgY3R4LnNjYWxlKEZsb2F0U2l6ZShzY2FsZSwgc2NhbGUpKTsKLSAgICAgICAgY3R4LnRy
YW5zbGF0ZSgtcGFnZVJlY3QueCgpLCAtcGFnZVJlY3QueSgpKTsKLSAgICAgICAgY3R4LmNsaXAo
cGFnZVJlY3QpOwotICAgICAgICBtX2ZyYW1lLT5wYWludCgmY3R4LCBwYWdlUmVjdCk7Ci0gICAg
ICAgIGN0eC5yZXN0b3JlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBlbmQoKQotICAgIHsKLSAgICAg
ICAgbV9mcmFtZS0+c2V0UHJpbnRpbmcoZmFsc2UsIDAsIDAsIHRydWUpOwotICAgIH0KLQotcHJv
dGVjdGVkOgotICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIFZlY3RvcjxJbnRSZWN0PiBtX3BhZ2VS
ZWN0czsKLX07Ci0KIHN0YXRpYyB2b2lkIGJlZ2luX3ByaW50KEd0a1ByaW50T3BlcmF0aW9uKiBv
cCwgR3RrUHJpbnRDb250ZXh0KiBjb250ZXh0LCBncG9pbnRlciB1c2VyX2RhdGEpCiB7CiAgICAg
UHJpbnRDb250ZXh0KiBwcmludENvbnRleHQgPSByZWludGVycHJldF9jYXN0PFByaW50Q29udGV4
dCo+KHVzZXJfZGF0YSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAg
Yi9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggNzBjYjQ2Yy4uODE1MGY3MiAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkv
cXdlYmZyYW1lLmNwcApAQCAtMzUsOCArMzUsMTAgQEAKICNpbmNsdWRlICJJY29uRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVNjcm9sbEJhci5oIgorI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgog
I2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCiAKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTcy
LDYgKzc0LDcgQEAKICNpbmNsdWRlICJxd2VibmV0d29ya2ludGVyZmFjZS5oIgogI2VuZGlmCiAj
aW5jbHVkZSA8cXJlZ2lvbi5oPgorI2luY2x1ZGUgPHFwcmludGVyLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC02MDEsNiArNjA0LDgyIEBAIFFSZWN0IFFXZWJGcmFtZTo6Z2Vv
bWV0cnkoKSBjb25zdAogfQogCiAvKiEKKyAgUHJpbnRzIHRoZSBmcmFtZSB0byB0aGUgZ2l2ZW4g
XGEgcHJpbnRlci4KKyovCit2b2lkIFFXZWJGcmFtZTo6cHJpbnQoUVByaW50ZXIgKnByaW50ZXIp
IGNvbnN0Cit7CisgICAgUHJpbnRDb250ZXh0IHByaW50Q29udGV4dChkLT5mcmFtZSk7CisgICAg
ZmxvYXQgcGFnZUhlaWdodCA9IDA7CisKKyAgICBwcmludENvbnRleHQuYmVnaW4ocHJpbnRlci0+
cGFnZVJlY3QoKS53aWR0aCgpKTsKKworICAgIHByaW50Q29udGV4dC5jb21wdXRlUGFnZVJlY3Rz
KEludFJlY3QocHJpbnRlci0+cGFnZVJlY3QoKSksIC8qaGVhZGVySGVpZ2h0Ki8wLCAvKmZvb3Rl
ckhlaWdodCovMCwgLyp1c2VyU2NhbGVGYWN0b3IqLzEuMCwgcGFnZUhlaWdodCk7CisKKyAgICBp
bnQgZG9jQ29waWVzOworICAgIGludCBwYWdlQ29waWVzOworICAgIGlmIChwcmludGVyLT5jb2xs
YXRlQ29waWVzKCkgPT0gdHJ1ZSl7CisgICAgICAgIGRvY0NvcGllcyA9IDE7CisgICAgICAgIHBh
Z2VDb3BpZXMgPSBwcmludGVyLT5udW1Db3BpZXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBk
b2NDb3BpZXMgPSBwcmludGVyLT5udW1Db3BpZXMoKTsKKyAgICAgICAgcGFnZUNvcGllcyA9IDE7
CisgICAgfQorCisgICAgaW50IGZyb21QYWdlID0gcHJpbnRlci0+ZnJvbVBhZ2UoKTsKKyAgICBp
bnQgdG9QYWdlID0gcHJpbnRlci0+dG9QYWdlKCk7CisgICAgYm9vbCBhc2NlbmRpbmcgPSB0cnVl
OworCisgICAgaWYgKGZyb21QYWdlID09IDAgJiYgdG9QYWdlID09IDApIHsKKyAgICAgICAgZnJv
bVBhZ2UgPSAxOworICAgICAgICB0b1BhZ2UgPSBwcmludENvbnRleHQucGFnZUNvdW50KCk7Cisg
ICAgfQorICAgIC8vIHBhcmFub2lhIGNoZWNrCisgICAgZnJvbVBhZ2UgPSBxTWF4KDEsIGZyb21Q
YWdlKTsKKyAgICB0b1BhZ2UgPSBxTWluKHByaW50Q29udGV4dC5wYWdlQ291bnQoKSwgdG9QYWdl
KTsKKworICAgIGlmIChwcmludGVyLT5wYWdlT3JkZXIoKSA9PSBRUHJpbnRlcjo6TGFzdFBhZ2VG
aXJzdCkgeworICAgICAgICBpbnQgdG1wID0gZnJvbVBhZ2U7CisgICAgICAgIGZyb21QYWdlID0g
dG9QYWdlOworICAgICAgICB0b1BhZ2UgPSB0bXA7CisgICAgICAgIGFzY2VuZGluZyA9IGZhbHNl
OworICAgIH0KKworICAgIFFQYWludGVyIHBhaW50ZXIocHJpbnRlcik7CisgICAgR3JhcGhpY3ND
b250ZXh0IGN0eCgmcGFpbnRlcik7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGRvY0NvcGll
czsgKytpKSB7CisgICAgICAgIGludCBwYWdlID0gZnJvbVBhZ2U7CisgICAgICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHBhZ2VDb3BpZXM7ICsraikg
eworICAgICAgICAgICAgICAgIGlmIChwcmludGVyLT5wcmludGVyU3RhdGUoKSA9PSBRUHJpbnRl
cjo6QWJvcnRlZAorICAgICAgICAgICAgICAgICAgICB8fCBwcmludGVyLT5wcmludGVyU3RhdGUo
KSA9PSBRUHJpbnRlcjo6RXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRDb250ZXh0
LmVuZCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHByaW50Q29udGV4dC5zcG9vbFBhZ2UoY3R4LCBwYWdlIC0gMSwgcHJp
bnRlci0+cGFnZVJlY3QoKS53aWR0aCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoaiA8IHBhZ2VD
b3BpZXMgLSAxKQorICAgICAgICAgICAgICAgICAgICBwcmludGVyLT5uZXdQYWdlKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwYWdlID09IHRvUGFnZSkKKyAgICAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICAgICAgaWYgKGFzY2VuZGluZykKKyAgICAgICAgICAgICAg
ICArK3BhZ2U7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgLS1wYWdlOworCisg
ICAgICAgICAgICBwcmludGVyLT5uZXdQYWdlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
IGkgPCBkb2NDb3BpZXMgLSAxKQorICAgICAgICAgICAgcHJpbnRlci0+bmV3UGFnZSgpOworICAg
IH0KKworICAgIHByaW50Q29udGV4dC5lbmQoKTsKK30KKworLyohCiAgIEV2YWx1YXRlIEphdmFT
Y3JpcHQgZGVmaW5lZCBieSBcYSBzY3JpcHRTb3VyY2UgdXNpbmcgdGhpcyBmcmFtZSBhcyBjb250
ZXh0LgogKi8KIFFTdHJpbmcgUVdlYkZyYW1lOjpldmFsdWF0ZUphdmFTY3JpcHQoY29uc3QgUVN0
cmluZyYgc2NyaXB0U291cmNlKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUu
aCBiL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmgKaW5kZXggMGYwM2RhZi4uOWQ3NzI3MSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaAorKysgYi9XZWJLaXQvcXQvQXBpL3F3
ZWJmcmFtZS5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFFNb3VzZUV2ZW50OwogY2xhc3MgUVdo
ZWVsRXZlbnQ7CiBjbGFzcyBRTmV0d29ya1JlcXVlc3Q7CiBjbGFzcyBRUmVnaW9uOworY2xhc3Mg
UVByaW50ZXI7CiBRVF9FTkRfTkFNRVNQQUNFCiAKIGNsYXNzIFFXZWJOZXR3b3JrUmVxdWVzdDsK
QEAgLTExNCw2ICsxMTUsNyBAQCBwdWJsaWM6CiAKIHB1YmxpYyBRX1NMT1RTOgogICAgIFFTdHJp
bmcgZXZhbHVhdGVKYXZhU2NyaXB0KGNvbnN0IFFTdHJpbmcmIHNjcmlwdFNvdXJjZSk7CisgICAg
dm9pZCBwcmludChRUHJpbnRlciAqcHJpbnRlcikgY29uc3Q7CiAKIFFfU0lHTkFMUzoKICAgICB2
b2lkIGNsZWFyZWQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwIGIv
V2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKaW5kZXggZTYxNTIzMC4uMjJhOTQyOSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vi
dmlldy5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJxd2ViZnJhbWUuaCIKICNpbmNs
dWRlICJxZXZlbnQuaCIKICNpbmNsdWRlICJxcGFpbnRlci5oIgorI2luY2x1ZGUgInFwcmludGVy
LmgiCiAKIGNsYXNzIFFXZWJWaWV3UHJpdmF0ZQogewpAQCAtMzMwLDYgKzMzMSwxNCBAQCBpbnQg
UVdlYlZpZXc6OnRleHRab29tRmFjdG9yKCkgY29uc3QKIH0KIAogLyohCisgIFByaW50cyB0aGUg
bWFpbiBmcmFtZSB0byB0aGUgZ2l2ZW4gXGEgcHJpbnRlci4KKyovCit2b2lkIFFXZWJWaWV3Ojpw
cmludChRUHJpbnRlciAqcHJpbnRlcikgY29uc3QKK3sKKyAgICBwYWdlKCktPm1haW5GcmFtZSgp
LT5wcmludChwcmludGVyKTsKK30KKworLyohCiAgICAgQ29udmVuaWVuY2Ugc2xvdCB0aGF0IHN0
b3BzIGxvYWRpbmcgdGhlIGRvY3VtZW50LgogCiAgICAgSXQgaXMgZXF1aXZhbGVudCB0bwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5oIGIvV2ViS2l0L3F0L0FwaS9xd2Vidmll
dy5oCmluZGV4IGU0NjgzZTguLjAwNTY0MGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdl
YnZpZXcuaAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmgKQEAgLTM1LDYgKzM1LDcgQEAg
UVRfRU5EX05BTUVTUEFDRQogY2xhc3MgUVdlYlBhZ2U7CiBjbGFzcyBRV2ViVmlld1ByaXZhdGU7
CiBjbGFzcyBRV2ViTmV0d29ya1JlcXVlc3Q7CitjbGFzcyBRUHJpbnRlcjsKIAogY2xhc3MgUVdF
QktJVF9FWFBPUlQgUVdlYlZpZXcgOiBwdWJsaWMgUVdpZGdldAogewpAQCAtMTAzLDYgKzEwNCw4
IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgZm9yd2FyZCgpOwogICAgIHZvaWQgcmVsb2Fk
KCk7CiAKKyAgICB2b2lkIHByaW50KFFQcmludGVyICpwcmludGVyKSBjb25zdDsKKwogUV9TSUdO
QUxTOgogICAgIHZvaWQgbG9hZFN0YXJ0ZWQoKTsKICAgICB2b2lkIGxvYWRQcm9ncmVzc0NoYW5n
ZWQoaW50IHByb2dyZXNzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDYwMGYxNTkuLmE5ODkyNGIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDA4LTA0LTE4ICBTaW1vbiBIYXVzbWFubiAgPGhhdXNtYW5uQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hhcmUgdGhlIHBy
aW50aW5nIGNvZGUgYmV0d2VlbiB0aGUgR3RrIGFuZCB0aGUgUXQgcG9ydAorICAgICAgICBhbmQg
YWRkZWQgcHJpbnRpbmcgdG8gdGhlIFF0IFdlYktpdCBBUEkuCisKKyAgICAgICAgKiBBcGkvcXdl
YmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6cHJpbnQpOgorICAgICAgICAqIEFwaS9x
d2ViZnJhbWUuaDoKKyAgICAgICAgKiBBcGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAoUVdlYlZp
ZXc6OnByaW50KToKKyAgICAgICAgKiBBcGkvcXdlYnZpZXcuaDoKKwogMjAwOC0wNC0xNSAgQXJp
eWEgSGlkYXlhdCAgPGFyaXlhLmhpZGF5YXRAdHJvbGx0ZWNoLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbi4K
</data>
<flag name="review"
          id="9019"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>