<?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>61522</bug_id>
          
          <creation_ts>2011-05-26 06:56:20 -0700</creation_ts>
          <short_desc>Rename WebWindowAnimation.m to WebWindowAnimation.mm making easier for other port to use it.</short_desc>
          <delta_ts>2011-06-20 12:43:43 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          
          <blocked>61728</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>410396</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-26 06:56:20 -0700</bug_when>
    <thetext>Rename WebWindowAnimation.m to WebWindowAnimation.mm making easier for other port to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410399</commentid>
    <comment_count>1</comment_count>
      <attachid>94968</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-26 06:59:18 -0700</bug_when>
    <thetext>Created attachment 94968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423870</commentid>
    <comment_count>2</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-06-20 12:43:26 -0700</bug_when>
    <thetext>Obseleted by patch 1 of bug https://bugs.webkit.org/show_bug.cgi?id=61843</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94968</attachid>
            <date>2011-05-26 06:59:18 -0700</date>
            <delta_ts>2011-06-20 12:43:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61522-20110526105915.patch</filename>
            <type>text/plain</type>
            <size>19950</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NzM4MSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDUtMjYgIEFsZXhpcyBNZW5h
cmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFdlYldpbmRvd0FuaW1hdGlvbi5tIHRv
IFdlYldpbmRvd0FuaW1hdGlvbi5tbSBtYWtpbmcgZWFzaWVyIGZvciBvdGhlciBwb3J0IHRvIHVz
ZSBpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NTIyCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogVXBkYXRl
IHRoZSB4Y29kZSBwcm9qZWN0IGZpbGUgYWNjb3JkaW5nbHkuCisKIDIwMTEtMDUtMjAgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA4NzM3MykKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAkJMEZE
M0IwRjQxMDc2QzNFOTAwMDM5Qjk2IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
RDNCMEYwMTA3NkMzRTkwMDAzOUI5NiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250
cm9sbGVyLmggKi87IH07CiAJCTBGRDNCMEY1MTA3NkMzRTkwMDAzOUI5NiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0IwRjExMDc2QzNFOTAwMDM5Qjk2IC8qIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gKi87IH07CiAJCTBGRDNCMEY4MTA3NkMz
RjcwMDAzOUI5NiAvKiBXZWJXaW5kb3dBbmltYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDNCMEY2MTA3NkMzRjcwMDAzOUI5NiAvKiBXZWJX
aW5kb3dBbmltYXRpb24uaCAqLzsgfTsKLQkJMEZEM0IwRjkxMDc2QzNGNzAwMDM5Qjk2IC8qIFdl
YldpbmRvd0FuaW1hdGlvbi5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZEM0IwRjcxMDc2QzNGNzAwMDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5t
ICovOyB9OworCQkwRkQzQjBGOTEwNzZDM0Y3MDAwMzlCOTYgLyogV2ViV2luZG93QW5pbWF0aW9u
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0Iw
RjcxMDc2QzNGNzAwMDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSAqLzsgfTsKIAkJMTRE
ODI1MkYwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREODI1MkQwQUY5NTUwOTAwMDRGMDU3
IC8qIFdlYkNocm9tZUNsaWVudC5oICovOyB9OwogCQkxNEQ4MjUzMDBBRjk1NTA5MDAwNEYwNTcg
LyogV2ViQ2hyb21lQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTREODI1MkUwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5t
bSAqLzsgfTsKIAkJMUEyMEQwOEIwRUQzODRGMjAwNDNGQTlGIC8qIFF1YXJ0ekNvcmUuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEy
MEQwOEEwRUQzODRGMjAwNDNGQTlGIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovOyB9OwpAQCAt
NDA5LDcgKzQwOSw3IEBACiAJCTBGRDNCMEYwMTA3NkMzRTkwMDAzOUI5NiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0IwRjExMDc2QzNFOTAwMDM5Qjk2IC8qIFdlYlZpZGVv
RnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQzQjBGNjEwNzZDM0Y3MDAwMzlCOTYg
LyogV2ViV2luZG93QW5pbWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYldpbmRvd0FuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkQz
QjBGNzEwNzZDM0Y3MDAwMzlCOTYgLyogV2ViV2luZG93QW5pbWF0aW9uLm0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYldpbmRvd0FuaW1hdGlvbi5tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRkQzQjBGNzEwNzZDM0Y3MDAwMzlCOTYgLyogV2ViV2luZG93
QW5pbWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
V2luZG93QW5pbWF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEQ4MjUy
RDBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTREODI1MkUwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMjBEMDhBMEVEMzg0RjIwMDQzRkE5
RiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gUXVhcnR6Q29yZS5m
cmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9RdWFydHpDb3JlLmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTEyNjYsNyArMTI2Niw3
IEBACiAJCQkJOTMwRDAyQkIwNjI3NUY2NDAwNzY3MDFFIC8qIFdlYlZpZXdJbnRlcm5hbC5oICov
LAogCQkJCTUxQThCNTdEMDQyODM1M0EwMENBMkQzQSAvKiBXZWJWaWV3UHJpdmF0ZS5oICovLAog
CQkJCTBGRDNCMEY2MTA3NkMzRjcwMDAzOUI5NiAvKiBXZWJXaW5kb3dBbmltYXRpb24uaCAqLywK
LQkJCQkwRkQzQjBGNzEwNzZDM0Y3MDAwMzlCOTYgLyogV2ViV2luZG93QW5pbWF0aW9uLm0gKi8s
CisJCQkJMEZEM0IwRjcxMDc2QzNGNzAwMDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tbSAq
LywKIAkJCSk7CiAJCQluYW1lID0gV2ViVmlldzsKIAkJCXBhdGggPSBtYWMvV2ViVmlldzsKQEAg
LTIwMTQsNyArMjAxNCw3IEBACiAJCQkJQkMyRTQ2NEUwRkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZp
ZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5N0U3RTIxMDk2M0QyNjAwMTBEMzYxIC8q
IFdlYlZpZXdFdmVudEhhbmRsaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwRTgwODI0
QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZE
M0IwRjkxMDc2QzNGNzAwMDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZEM0IwRjkxMDc2QzNGNzAwMDM5Qjk2IC8qIFdlYldpbmRvd0FuaW1hdGlvbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTQxRjQ0ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3Jr
ZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1REVGQzBBMTFENTMzMUMwMDg4NTI3
MyAvKiBXZWJTZWN1cml0eU9yaWdpbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1REVGQzEwMTFE
NTM0M0UwMDg4NTI3MyAvKiBXZWJEYXRhYmFzZVF1b3RhTWFuYWdlci5tbSBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gODczODEpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNS0y
NiAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgV2ViV2luZG93
QW5pbWF0aW9uLm0gdG8gV2ViV2luZG93QW5pbWF0aW9uLm1tIG1ha2luZyBlYXNpZXIgZm9yIG90
aGVyIHBvcnQgdG8gdXNlIGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjE1MjIKKworICAgICAgICBPYmplY3RpdmUgQysrIG1ha2VzIGVhc2llciBm
b3IgUXQgcG9ydCB0byB1c2UgdGhhdCBmaWxlLiBRTWFrZSBzdXBwb3J0IGZvciBvYmplY3RpdmUg
QyBpcyB2ZXJ5CisgICAgICAgIGxpbWl0ZWQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYldpbmRv
d0FuaW1hdGlvbi5tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViV2luZG93QW5pbWF0
aW9uLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYldpbmRvd0Fu
aW1hdGlvbi5tLgorCiAyMDExLTA1LTI1ICBTdGVwaGFuaWUgTGV3aXMgIDxzbGV3aXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubQkocmV2aXNpb24gODcz
NzMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYldpbmRvd0FuaW1hdGlvbi5tCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDIyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2ltcG9ydCAiV2ViV2lu
ZG93QW5pbWF0aW9uLmgiCi0jaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLXN0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25G
YWN0b3IgPSAxMC47Ci0KLXN0YXRpYyBOU1RpbWVJbnRlcnZhbCBXZWJXaW5kb3dBbmltYXRpb25E
dXJhdGlvbkZyb21EdXJhdGlvbihOU1RpbWVJbnRlcnZhbCBkdXJhdGlvbikKLXsKLSAgICByZXR1
cm4gKFtbTlNBcHAgY3VycmVudEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNr
KSA/IGR1cmF0aW9uICogc2xvd01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOyAgICAgICAgCi19Ci0K
LXN0YXRpYyBOU1JlY3Qgc2NhbGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9m
aW5hbEZyYW1lLCBkb3VibGUgZmFjdG9yKQotewotICAgIE5TUmVjdCBjdXJyZW50UmVjdCA9IF9p
bml0aWFsRnJhbWU7Ci0gICAgY3VycmVudFJlY3Qub3JpZ2luLnggKz0gKE5TTWluWChfZmluYWxG
cmFtZSkgLSBOU01pblgoX2luaXRpYWxGcmFtZSkpICogZmFjdG9yOwotICAgIGN1cnJlbnRSZWN0
Lm9yaWdpbi55ICs9IChOU01pblkoX2ZpbmFsRnJhbWUpIC0gTlNNaW5ZKF9pbml0aWFsRnJhbWUp
KSAqIGZhY3RvcjsKLSAgICBjdXJyZW50UmVjdC5zaXplLndpZHRoICs9IChOU1dpZHRoKF9maW5h
bEZyYW1lKSAtIE5TV2lkdGgoX2luaXRpYWxGcmFtZSkpICogZmFjdG9yOwotICAgIGN1cnJlbnRS
ZWN0LnNpemUuaGVpZ2h0ICs9IChOU0hlaWdodChfZmluYWxGcmFtZSkgLSBOU0hlaWdodChfaW5p
dGlhbEZyYW1lKSkgKiBmYWN0b3I7Ci0gICAgcmV0dXJuIGN1cnJlbnRSZWN0OwotfQotCi1zdGF0
aWMgQ0dGbG9hdCBzcXVhcmVkRGlzdGFuY2UoTlNQb2ludCBwb2ludDEsIE5TUG9pbnQgcG9pbnQy
KQotewotICAgIENHRmxvYXQgZGVsdGFYID0gcG9pbnQxLnggLSBwb2ludDIueDsKLSAgICBDR0Zs
b2F0IGRlbHRhWSA9IHBvaW50MS55IC0gcG9pbnQyLnk7Ci0gICAgcmV0dXJuIGRlbHRhWCAqIGRl
bHRhWCArIGRlbHRhWSAqIGRlbHRhWTsKLX0KLQotQGltcGxlbWVudGF0aW9uIFdlYldpbmRvd1Nj
YWxlQW5pbWF0aW9uCi0KLS0gKGlkKWluaXQKLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwot
ICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBbc2VsZiBzZXRBbmltYXRp
b25CbG9ja2luZ01vZGU6TlNBbmltYXRpb25Ob25ibG9ja2luZ1RocmVhZGVkXTsKLSAgICBbc2Vs
ZiBzZXRGcmFtZVJhdGU6NjAuXTsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoaWQpaW5pdFdp
dGhIaW50ZWREdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24gd2luZG93OihOU1dpbmRv
dyAqKXdpbmRvdyBpbml0YWxGcmFtZTooTlNSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihO
U1JlY3QpZmluYWxGcmFtZQotewotICAgIHNlbGYgPSBbc2VsZiBpbml0XTsKLSAgICBpZiAoIXNl
bGYpCi0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgX2hpbnRlZER1cmF0aW9uID0gZHVyYXRpb247
Ci0gICAgX3dpbmRvdyA9IHdpbmRvdzsKLSAgICBfaW5pdGlhbEZyYW1lID0gaW5pdGlhbEZyYW1l
OwotICAgIF9maW5hbEZyYW1lID0gZmluYWxGcmFtZTsKLSAgICBfcmVhbEZyYW1lID0gW3dpbmRv
dyBmcmFtZV07Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpIGRlYWxsb2MKLXsKLSAg
ICBbX3N1YkFuaW1hdGlvbiByZWxlYXNlXTsKLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KLS0g
KHZvaWQpc2V0RHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uCi17Ci0gICAgW3N1cGVy
IHNldER1cmF0aW9uOldlYldpbmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKGR1cmF0
aW9uKV07Ci19Ci0KLS0gKHZvaWQpc2V0V2luZG93OihOU1dpbmRvdyAqKXdpbmRvdwotewotICAg
IF93aW5kb3cgPSB3aW5kb3c7Ci19Ci0KLS0gKGZsb2F0KWN1cnJlbnRWYWx1ZQotewotICAgIHJl
dHVybiAwLjUgLSAwLjUgKiBjb3MoTV9QSSAqICgxIC0gW3NlbGYgY3VycmVudFByb2dyZXNzXSkp
OwotfQotCi0tIChOU1JlY3QpY3VycmVudEZyYW1lCi17Ci0gICAgcmV0dXJuIHNjYWxlZFJlY3Qo
X2ZpbmFsRnJhbWUsIF9pbml0aWFsRnJhbWUsIFtzZWxmIGN1cnJlbnRWYWx1ZV0pOwotfQotCi0t
ICh2b2lkKXNldEN1cnJlbnRQcm9ncmVzczooTlNBbmltYXRpb25Qcm9ncmVzcylwcm9ncmVzcwot
ewotICAgIGlmICghX3dpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW3N1cGVyIHNldEN1
cnJlbnRQcm9ncmVzczpwcm9ncmVzc107Ci0KLSAgICBOU1JlY3QgY3VycmVudFJlY3QgPSBbc2Vs
ZiBjdXJyZW50RnJhbWVdOwotICAgIFdLV2luZG93U2V0U2NhbGVkRnJhbWUoX3dpbmRvdywgY3Vy
cmVudFJlY3QsIF9yZWFsRnJhbWUpOwotICAgIFtfc3ViQW5pbWF0aW9uIHNldEN1cnJlbnRQcm9n
cmVzczpwcm9ncmVzc107Ci19Ci0KLS0gKHZvaWQpc2V0U3ViQW5pbWF0aW9uOihOU0FuaW1hdGlv
biAqKWFuaW1hdGlvbgotewotICAgIGlkIG9sZEFuaW1hdGlvbiA9IF9zdWJBbmltYXRpb247Ci0g
ICAgX3N1YkFuaW1hdGlvbiA9IFthbmltYXRpb24gcmV0YWluXTsKLSAgICBbb2xkQW5pbWF0aW9u
IHJlbGVhc2VdOwotfQotCi0tIChOU1RpbWVJbnRlcnZhbClhZGRpdGlvbmFsRHVyYXRpb25OZWVk
ZWRUb1JlYWNoRmluYWxGcmFtZQotewotICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IG1heEFkZGl0
aW9uYWxEdXJhdGlvbiA9IDEuMDsKLSAgICBzdGF0aWMgY29uc3QgQ0dGbG9hdCBzcGVlZEZhY3Rv
ciA9IDAuMDAwMTsKLSAgICAKLSAgICBDR0Zsb2F0IG1heERpc3QgPSBzcXVhcmVkRGlzdGFuY2Uo
X2luaXRpYWxGcmFtZS5vcmlnaW4sIF9maW5hbEZyYW1lLm9yaWdpbik7Ci0gICAgQ0dGbG9hdCBk
aXN0OwotICAgIAotICAgIGRpc3QgPSBzcXVhcmVkRGlzdGFuY2UoTlNNYWtlUG9pbnQoTlNNYXhY
KF9pbml0aWFsRnJhbWUpLCBOU01pblkoX2luaXRpYWxGcmFtZSkpLCBOU01ha2VQb2ludChOU01h
eFgoX2ZpbmFsRnJhbWUpLCBOU01pblkoX2ZpbmFsRnJhbWUpKSk7Ci0gICAgaWYgKGRpc3QgPiBt
YXhEaXN0KQotICAgICAgICBtYXhEaXN0ID0gZGlzdDsKLSAgICAKLSAgICBkaXN0ID0gc3F1YXJl
ZERpc3RhbmNlKE5TTWFrZVBvaW50KE5TTWF4WChfaW5pdGlhbEZyYW1lKSwgTlNNYXhZKF9pbml0
aWFsRnJhbWUpKSwgTlNNYWtlUG9pbnQoTlNNYXhYKF9maW5hbEZyYW1lKSwgTlNNYXhZKF9maW5h
bEZyYW1lKSkpOwotICAgIGlmIChkaXN0ID4gbWF4RGlzdCkKLSAgICAgICAgbWF4RGlzdCA9IGRp
c3Q7Ci0gICAgCi0gICAgZGlzdCA9IHNxdWFyZWREaXN0YW5jZShOU01ha2VQb2ludChOU01pblgo
X2luaXRpYWxGcmFtZSksIE5TTWluWShfaW5pdGlhbEZyYW1lKSksIE5TTWFrZVBvaW50KE5TTWlu
WChfZmluYWxGcmFtZSksIE5TTWluWShfZmluYWxGcmFtZSkpKTsKLSAgICBpZiAoZGlzdCA+IG1h
eERpc3QpCi0gICAgICAgIG1heERpc3QgPSBkaXN0OwotICAgIAotICAgIHJldHVybiBNSU4oc3Fy
dChtYXhEaXN0KSAqIHNwZWVkRmFjdG9yLCBtYXhBZGRpdGlvbmFsRHVyYXRpb24pOyAgICAKLX0K
LQotLSAodm9pZClzdGFydEFuaW1hdGlvbgotewotICAgIC8vIENvbXB1dGUgZXh0cmEgdGltZQot
ICAgIGlmIChfaGludGVkRHVyYXRpb24pCi0gICAgICAgIFtzZWxmIHNldER1cmF0aW9uOl9oaW50
ZWREdXJhdGlvbiArIFtzZWxmIGFkZGl0aW9uYWxEdXJhdGlvbk5lZWRlZFRvUmVhY2hGaW5hbEZy
YW1lXV07Ci0gICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsKLX0KLQotLSAodm9pZClzdG9wQW5p
bWF0aW9uCi17Ci0gICAgX3dpbmRvdyA9IG5pbDsKLSAgICBbc3VwZXIgc3RvcEFuaW1hdGlvbl07
Ci0gICAgW19zdWJBbmltYXRpb24gc3RvcEFuaW1hdGlvbl07Ci19Ci0KLUBlbmQKLQotQGltcGxl
bWVudGF0aW9uIFdlYldpbmRvd0ZhZGVBbmltYXRpb24KLQotLSAoaWQpaW5pdAotewotICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKCFzZWxmKQotICAgICAgICByZXR1cm4gbmlsOwot
ICAgIFtzZWxmIHNldEFuaW1hdGlvbkJsb2NraW5nTW9kZTpOU0FuaW1hdGlvbk5vbmJsb2NraW5n
VGhyZWFkZWRdOwotICAgIFtzZWxmIHNldEZyYW1lUmF0ZTo2MF07Ci0gICAgW3NlbGYgc2V0QW5p
bWF0aW9uQ3VydmU6TlNBbmltYXRpb25FYXNlSW5PdXRdOwotICAgIHJldHVybiBzZWxmOwotfQot
Ci0tIChpZClpbml0V2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbiB3aW5kb3c6
KE5TV2luZG93ICopd2luZG93IGluaXRpYWxBbHBoYTooQ0dGbG9hdClpbml0aWFsQWxwaGEgZmlu
YWxBbHBoYTooQ0dGbG9hdClmaW5hbEFscGhhCi17Ci0gICAgc2VsZiA9IFtzZWxmIGluaXRdOwot
ICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsgICAgCi0gICAgX3dpbmRvdyA9IHdp
bmRvdzsKLSAgICBfaW5pdGlhbEFscGhhID0gaW5pdGlhbEFscGhhOwotICAgIF9maW5hbEFscGhh
ID0gZmluYWxBbHBoYTsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClzZXREdXJhdGlv
bjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KLXsKLSAgICBbc3VwZXIgc2V0RHVyYXRpb246V2Vi
V2luZG93QW5pbWF0aW9uRHVyYXRpb25Gcm9tRHVyYXRpb24oZHVyYXRpb24pXTsKLX0KLQotLSAo
Q0dGbG9hdCljdXJyZW50QWxwaGEKLXsKLSAgICByZXR1cm4gTUFYKDAuMCwgTUlOKDEuMCwgX2lu
aXRpYWxBbHBoYSArIFtzZWxmIGN1cnJlbnRWYWx1ZV0gKiAoX2ZpbmFsQWxwaGEgLSBfaW5pdGlh
bEFscGhhKSkpOwotfQotCi0tICh2b2lkKXNldEN1cnJlbnRQcm9ncmVzczooTlNBbmltYXRpb25Q
cm9ncmVzcylwcm9ncmVzcwotewotICAgIGlmIChfaXNTdG9wcGVkKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBBU1NFUlQoX3dpbmRvdyk7Ci0gICAgW3N1cGVyIHNldEN1cnJlbnRQcm9ncmVzczpw
cm9ncmVzc107Ci0KLSAgICBXS1dpbmRvd1NldEFscGhhKF93aW5kb3csIFtzZWxmIGN1cnJlbnRB
bHBoYV0pOwotfQotCi0tICh2b2lkKXNldFdpbmRvdzooTlNXaW5kb3cqKXdpbmRvdwotewotICAg
IF93aW5kb3cgPSB3aW5kb3c7Ci19Ci0KLS0gKHZvaWQpc3RvcEFuaW1hdGlvbgotewotICAgIC8v
IFRoaXMgaXMgcmVsZXZhbnQgd2hlbiB3ZSBhcmUgYSBzdWIgYW5pbWF0aW9uIG9mIGEgc2NhbGUg
YW5pbWF0aW9uLgotICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBhcmUgaG9zdGVkIGluIHRoZSBhbmlt
YXRlZCB0aHJlYWQgb2YgdGhlIHBhcmVudAotICAgIC8vIGFuZCBldmVuIGFmdGVyIFtzdXBlciBz
dG9wQW5pbWF0aW9uXSwgdGhlIHBhcmVudCBtaWdodCBjYWxsCi0gICAgLy8gc2V0Q3VycnJlbnRQ
cm9ncmVzcy4KLSAgICBfaXNTdG9wcGVkID0gWUVTOwotCi0gICAgW3N1cGVyIHN0b3BBbmltYXRp
b25dOwotfQotCi1AZW5kCi0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViV2lu
ZG93QW5pbWF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViV2luZG93QW5pbWF0aW9uLm1tCShyZXZpc2lvbiA4NzM3MykJKGZyb20gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJXaW5kb3dBbmltYXRpb24ubTo4NzM3MykKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViV2luZG93QW5pbWF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiV2ViV2luZG93QW5pbWF0aW9uLmgiCisj
aW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CisKK3N0YXRpYyBjb25zdCBDR0Zsb2F0IHNsb3dNb3Rpb25GYWN0b3IgPSAxMC47CisKK3N0
YXRpYyBOU1RpbWVJbnRlcnZhbCBXZWJXaW5kb3dBbmltYXRpb25EdXJhdGlvbkZyb21EdXJhdGlv
bihOU1RpbWVJbnRlcnZhbCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gKFtbTlNBcHAgY3VycmVu
dEV2ZW50XSBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKSA/IGR1cmF0aW9uICogc2xv
d01vdGlvbkZhY3RvciA6IGR1cmF0aW9uOyAgICAgICAgCit9CisKK3N0YXRpYyBOU1JlY3Qgc2Nh
bGVkUmVjdChOU1JlY3QgX2luaXRpYWxGcmFtZSwgTlNSZWN0IF9maW5hbEZyYW1lLCBkb3VibGUg
ZmFjdG9yKQoreworICAgIE5TUmVjdCBjdXJyZW50UmVjdCA9IF9pbml0aWFsRnJhbWU7CisgICAg
Y3VycmVudFJlY3Qub3JpZ2luLnggKz0gKE5TTWluWChfZmluYWxGcmFtZSkgLSBOU01pblgoX2lu
aXRpYWxGcmFtZSkpICogZmFjdG9yOworICAgIGN1cnJlbnRSZWN0Lm9yaWdpbi55ICs9IChOU01p
blkoX2ZpbmFsRnJhbWUpIC0gTlNNaW5ZKF9pbml0aWFsRnJhbWUpKSAqIGZhY3RvcjsKKyAgICBj
dXJyZW50UmVjdC5zaXplLndpZHRoICs9IChOU1dpZHRoKF9maW5hbEZyYW1lKSAtIE5TV2lkdGgo
X2luaXRpYWxGcmFtZSkpICogZmFjdG9yOworICAgIGN1cnJlbnRSZWN0LnNpemUuaGVpZ2h0ICs9
IChOU0hlaWdodChfZmluYWxGcmFtZSkgLSBOU0hlaWdodChfaW5pdGlhbEZyYW1lKSkgKiBmYWN0
b3I7CisgICAgcmV0dXJuIGN1cnJlbnRSZWN0OworfQorCitzdGF0aWMgQ0dGbG9hdCBzcXVhcmVk
RGlzdGFuY2UoTlNQb2ludCBwb2ludDEsIE5TUG9pbnQgcG9pbnQyKQoreworICAgIENHRmxvYXQg
ZGVsdGFYID0gcG9pbnQxLnggLSBwb2ludDIueDsKKyAgICBDR0Zsb2F0IGRlbHRhWSA9IHBvaW50
MS55IC0gcG9pbnQyLnk7CisgICAgcmV0dXJuIGRlbHRhWCAqIGRlbHRhWCArIGRlbHRhWSAqIGRl
bHRhWTsKK30KKworQGltcGxlbWVudGF0aW9uIFdlYldpbmRvd1NjYWxlQW5pbWF0aW9uCisKKy0g
KGlkKWluaXQKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICBbc2VsZiBzZXRBbmltYXRpb25CbG9ja2luZ01vZGU6TlNB
bmltYXRpb25Ob25ibG9ja2luZ1RocmVhZGVkXTsKKyAgICBbc2VsZiBzZXRGcmFtZVJhdGU6NjAu
XTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoaWQpaW5pdFdpdGhIaW50ZWREdXJhdGlvbjoo
TlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24gd2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBpbml0YWxG
cmFtZTooTlNSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOihOU1JlY3QpZmluYWxGcmFtZQor
eworICAgIHNlbGYgPSBbc2VsZiBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVy
biBuaWw7CisgICAgX2hpbnRlZER1cmF0aW9uID0gZHVyYXRpb247CisgICAgX3dpbmRvdyA9IHdp
bmRvdzsKKyAgICBfaW5pdGlhbEZyYW1lID0gaW5pdGlhbEZyYW1lOworICAgIF9maW5hbEZyYW1l
ID0gZmluYWxGcmFtZTsKKyAgICBfcmVhbEZyYW1lID0gW3dpbmRvdyBmcmFtZV07CisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpIGRlYWxsb2MKK3sKKyAgICBbX3N1YkFuaW1hdGlvbiBy
ZWxlYXNlXTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHZvaWQpc2V0RHVyYXRpb246
KE5TVGltZUludGVydmFsKWR1cmF0aW9uCit7CisgICAgW3N1cGVyIHNldER1cmF0aW9uOldlYldp
bmRvd0FuaW1hdGlvbkR1cmF0aW9uRnJvbUR1cmF0aW9uKGR1cmF0aW9uKV07Cit9CisKKy0gKHZv
aWQpc2V0V2luZG93OihOU1dpbmRvdyAqKXdpbmRvdworeworICAgIF93aW5kb3cgPSB3aW5kb3c7
Cit9CisKKy0gKGZsb2F0KWN1cnJlbnRWYWx1ZQoreworICAgIHJldHVybiAwLjUgLSAwLjUgKiBj
b3MoTV9QSSAqICgxIC0gW3NlbGYgY3VycmVudFByb2dyZXNzXSkpOworfQorCistIChOU1JlY3Qp
Y3VycmVudEZyYW1lCit7CisgICAgcmV0dXJuIHNjYWxlZFJlY3QoX2ZpbmFsRnJhbWUsIF9pbml0
aWFsRnJhbWUsIFtzZWxmIGN1cnJlbnRWYWx1ZV0pOworfQorCistICh2b2lkKXNldEN1cnJlbnRQ
cm9ncmVzczooTlNBbmltYXRpb25Qcm9ncmVzcylwcm9ncmVzcworeworICAgIGlmICghX3dpbmRv
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgW3N1cGVyIHNldEN1cnJlbnRQcm9ncmVzczpwcm9n
cmVzc107CisKKyAgICBOU1JlY3QgY3VycmVudFJlY3QgPSBbc2VsZiBjdXJyZW50RnJhbWVdOwor
ICAgIFdLV2luZG93U2V0U2NhbGVkRnJhbWUoX3dpbmRvdywgY3VycmVudFJlY3QsIF9yZWFsRnJh
bWUpOworICAgIFtfc3ViQW5pbWF0aW9uIHNldEN1cnJlbnRQcm9ncmVzczpwcm9ncmVzc107Cit9
CisKKy0gKHZvaWQpc2V0U3ViQW5pbWF0aW9uOihOU0FuaW1hdGlvbiAqKWFuaW1hdGlvbgorewor
ICAgIGlkIG9sZEFuaW1hdGlvbiA9IF9zdWJBbmltYXRpb247CisgICAgX3N1YkFuaW1hdGlvbiA9
IFthbmltYXRpb24gcmV0YWluXTsKKyAgICBbb2xkQW5pbWF0aW9uIHJlbGVhc2VdOworfQorCist
IChOU1RpbWVJbnRlcnZhbClhZGRpdGlvbmFsRHVyYXRpb25OZWVkZWRUb1JlYWNoRmluYWxGcmFt
ZQoreworICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IG1heEFkZGl0aW9uYWxEdXJhdGlvbiA9IDEu
MDsKKyAgICBzdGF0aWMgY29uc3QgQ0dGbG9hdCBzcGVlZEZhY3RvciA9IDAuMDAwMTsKKyAgICAK
KyAgICBDR0Zsb2F0IG1heERpc3QgPSBzcXVhcmVkRGlzdGFuY2UoX2luaXRpYWxGcmFtZS5vcmln
aW4sIF9maW5hbEZyYW1lLm9yaWdpbik7CisgICAgQ0dGbG9hdCBkaXN0OworICAgIAorICAgIGRp
c3QgPSBzcXVhcmVkRGlzdGFuY2UoTlNNYWtlUG9pbnQoTlNNYXhYKF9pbml0aWFsRnJhbWUpLCBO
U01pblkoX2luaXRpYWxGcmFtZSkpLCBOU01ha2VQb2ludChOU01heFgoX2ZpbmFsRnJhbWUpLCBO
U01pblkoX2ZpbmFsRnJhbWUpKSk7CisgICAgaWYgKGRpc3QgPiBtYXhEaXN0KQorICAgICAgICBt
YXhEaXN0ID0gZGlzdDsKKyAgICAKKyAgICBkaXN0ID0gc3F1YXJlZERpc3RhbmNlKE5TTWFrZVBv
aW50KE5TTWF4WChfaW5pdGlhbEZyYW1lKSwgTlNNYXhZKF9pbml0aWFsRnJhbWUpKSwgTlNNYWtl
UG9pbnQoTlNNYXhYKF9maW5hbEZyYW1lKSwgTlNNYXhZKF9maW5hbEZyYW1lKSkpOworICAgIGlm
IChkaXN0ID4gbWF4RGlzdCkKKyAgICAgICAgbWF4RGlzdCA9IGRpc3Q7CisgICAgCisgICAgZGlz
dCA9IHNxdWFyZWREaXN0YW5jZShOU01ha2VQb2ludChOU01pblgoX2luaXRpYWxGcmFtZSksIE5T
TWluWShfaW5pdGlhbEZyYW1lKSksIE5TTWFrZVBvaW50KE5TTWluWChfZmluYWxGcmFtZSksIE5T
TWluWShfZmluYWxGcmFtZSkpKTsKKyAgICBpZiAoZGlzdCA+IG1heERpc3QpCisgICAgICAgIG1h
eERpc3QgPSBkaXN0OworICAgIAorICAgIHJldHVybiBNSU4oc3FydChtYXhEaXN0KSAqIHNwZWVk
RmFjdG9yLCBtYXhBZGRpdGlvbmFsRHVyYXRpb24pOyAgICAKK30KKworLSAodm9pZClzdGFydEFu
aW1hdGlvbgoreworICAgIC8vIENvbXB1dGUgZXh0cmEgdGltZQorICAgIGlmIChfaGludGVkRHVy
YXRpb24pCisgICAgICAgIFtzZWxmIHNldER1cmF0aW9uOl9oaW50ZWREdXJhdGlvbiArIFtzZWxm
IGFkZGl0aW9uYWxEdXJhdGlvbk5lZWRlZFRvUmVhY2hGaW5hbEZyYW1lXV07CisgICAgW3N1cGVy
IHN0YXJ0QW5pbWF0aW9uXTsKK30KKworLSAodm9pZClzdG9wQW5pbWF0aW9uCit7CisgICAgX3dp
bmRvdyA9IG5pbDsKKyAgICBbc3VwZXIgc3RvcEFuaW1hdGlvbl07CisgICAgW19zdWJBbmltYXRp
b24gc3RvcEFuaW1hdGlvbl07Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYldpbmRv
d0ZhZGVBbmltYXRpb24KKworLSAoaWQpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07
CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworICAgIFtzZWxmIHNldEFuaW1h
dGlvbkJsb2NraW5nTW9kZTpOU0FuaW1hdGlvbk5vbmJsb2NraW5nVGhyZWFkZWRdOworICAgIFtz
ZWxmIHNldEZyYW1lUmF0ZTo2MF07CisgICAgW3NlbGYgc2V0QW5pbWF0aW9uQ3VydmU6TlNBbmlt
YXRpb25FYXNlSW5PdXRdOworICAgIHJldHVybiBzZWxmOworfQorCistIChpZClpbml0V2l0aER1
cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbiB3aW5kb3c6KE5TV2luZG93ICopd2luZG93
IGluaXRpYWxBbHBoYTooQ0dGbG9hdClpbml0aWFsQWxwaGEgZmluYWxBbHBoYTooQ0dGbG9hdClm
aW5hbEFscGhhCit7CisgICAgc2VsZiA9IFtzZWxmIGluaXRdOworICAgIGlmICghc2VsZikKKyAg
ICAgICAgcmV0dXJuIG5pbDsgICAgCisgICAgX3dpbmRvdyA9IHdpbmRvdzsKKyAgICBfaW5pdGlh
bEFscGhhID0gaW5pdGlhbEFscGhhOworICAgIF9maW5hbEFscGhhID0gZmluYWxBbHBoYTsKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzZXREdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwp
ZHVyYXRpb24KK3sKKyAgICBbc3VwZXIgc2V0RHVyYXRpb246V2ViV2luZG93QW5pbWF0aW9uRHVy
YXRpb25Gcm9tRHVyYXRpb24oZHVyYXRpb24pXTsKK30KKworLSAoQ0dGbG9hdCljdXJyZW50QWxw
aGEKK3sKKyAgICByZXR1cm4gTUFYKDAuMCwgTUlOKDEuMCwgX2luaXRpYWxBbHBoYSArIFtzZWxm
IGN1cnJlbnRWYWx1ZV0gKiAoX2ZpbmFsQWxwaGEgLSBfaW5pdGlhbEFscGhhKSkpOworfQorCist
ICh2b2lkKXNldEN1cnJlbnRQcm9ncmVzczooTlNBbmltYXRpb25Qcm9ncmVzcylwcm9ncmVzcwor
eworICAgIGlmIChfaXNTdG9wcGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoX3dp
bmRvdyk7CisgICAgW3N1cGVyIHNldEN1cnJlbnRQcm9ncmVzczpwcm9ncmVzc107CisKKyAgICBX
S1dpbmRvd1NldEFscGhhKF93aW5kb3csIFtzZWxmIGN1cnJlbnRBbHBoYV0pOworfQorCistICh2
b2lkKXNldFdpbmRvdzooTlNXaW5kb3cqKXdpbmRvdworeworICAgIF93aW5kb3cgPSB3aW5kb3c7
Cit9CisKKy0gKHZvaWQpc3RvcEFuaW1hdGlvbgoreworICAgIC8vIFRoaXMgaXMgcmVsZXZhbnQg
d2hlbiB3ZSBhcmUgYSBzdWIgYW5pbWF0aW9uIG9mIGEgc2NhbGUgYW5pbWF0aW9uLgorICAgIC8v
IEluIHRoaXMgY2FzZSB3ZSBhcmUgaG9zdGVkIGluIHRoZSBhbmltYXRlZCB0aHJlYWQgb2YgdGhl
IHBhcmVudAorICAgIC8vIGFuZCBldmVuIGFmdGVyIFtzdXBlciBzdG9wQW5pbWF0aW9uXSwgdGhl
IHBhcmVudCBtaWdodCBjYWxsCisgICAgLy8gc2V0Q3VycnJlbnRQcm9ncmVzcy4KKyAgICBfaXNT
dG9wcGVkID0gWUVTOworCisgICAgW3N1cGVyIHN0b3BBbmltYXRpb25dOworfQorCitAZW5kCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>