<?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>108094</bug_id>
          
          <creation_ts>2013-01-28 11:13:12 -0800</creation_ts>
          <short_desc>Rename TextBreakIteratorWinCE to TextBreakIteratorWchar</short_desc>
          <delta_ts>2013-01-29 13:16:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>92539</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>817889</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-01-28 11:13:12 -0800</bug_when>
    <thetext>Rename TextBreakIteratorWinCE to TextBreakIteratorWchar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817892</commentid>
    <comment_count>1</comment_count>
      <attachid>185017</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-01-28 11:14:18 -0800</bug_when>
    <thetext>Created attachment 185017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819197</commentid>
    <comment_count>2</comment_count>
      <attachid>185017</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-29 12:26:54 -0800</bug_when>
    <thetext>Comment on attachment 185017
Patch

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819263</commentid>
    <comment_count>3</comment_count>
      <attachid>185017</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 13:16:30 -0800</bug_when>
    <thetext>Comment on attachment 185017
Patch

Clearing flags on attachment: 185017

Committed r141156: &lt;http://trac.webkit.org/changeset/141156&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819264</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 13:16:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185017</attachid>
            <date>2013-01-28 11:14:18 -0800</date>
            <delta_ts>2013-01-29 13:16:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108094.patch</filename>
            <type>text/plain</type>
            <size>18560</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMjVkYTA1Li5kMjNkNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDEtMjggIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmVuYW1lIFRleHRCcmVha0l0ZXJhdG9yV2luQ0UgdG8gVGV4dEJyZWFrSXRlcmF0
b3JXY2hhcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA4MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGV4dEJyZWFrSXRlcmF0b3JXaW5DRSBkb2VzIG5vdCBjb250YWluIGFueSBXaW5kb3dzIENFIHNw
ZWNpZmljIGNvZGUuCisgICAgICAgIFJlbmFtZSBpdCB0byBUZXh0QnJlYWtJdGVyYXRvcldjaGFy
IHRvIG1hdGNoIHRoZSBuYW1lIGluIHd0Zi91bmljb2RlLgorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRvcldjaGFyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luY2UvVGV4dEJyZWFrSXRlcmF0b3JXaW5DRS5jcHAu
CisKIDIwMTMtMDEtMjcgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQ2hlY2sgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIGluIHRoZSBzaG93KCkgbWV0
aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRC
cmVha0l0ZXJhdG9yV2NoYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93Y2hh
ci9UZXh0QnJlYWtJdGVyYXRvcldjaGFyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xYzZjNWM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRvcldjaGFyLmNwcApAQCAtMCwwICsxLDM0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBMYXJzIEtub2xsIDxsYXJzQHRyb2xsdGVjaC5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0
ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCisKKyNpbmNsdWRl
IDx3dGYvQXRvbWljcy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7Cit1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwor
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBIYWNrLCBu
b3QgZW50aXJlbHkgY29ycmVjdAorc3RhdGljIGlubGluZSBib29sIGlzQ2hhclN0b3AoVUNoYXIg
YykKK3sKKyAgICBDaGFyQ2F0ZWdvcnkgY2hhckNhdGVnb3J5ID0gY2F0ZWdvcnkoYyk7CisgICAg
cmV0dXJuIGNoYXJDYXRlZ29yeSAhPSBNYXJrX05vblNwYWNpbmcgJiYgKGNoYXJDYXRlZ29yeSAh
PSBPdGhlcl9TdXJyb2dhdGUgfHwgKGMgPCAweGQ4MDAgfHwgYyA+PSAweGRjMDApKTsKK30KKwor
c3RhdGljIGlubGluZSBib29sIGlzTGluZVN0b3AoVUNoYXIgYykKK3sKKyAgICByZXR1cm4gY2F0
ZWdvcnkoYykgIT0gU2VwYXJhdG9yX0xpbmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1Nl
bnRlbmNlU3RvcChVQ2hhciBjKQoreworICAgIHJldHVybiBpc1B1bmN0KGMpOworfQorCitjbGFz
cyBUZXh0QnJlYWtJdGVyYXRvciB7CitwdWJsaWM6CisgICAgdm9pZCByZXNldChjb25zdCBVQ2hh
ciogc3RyLCBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgc3RyaW5nID0gc3RyOworICAgICAgICBs
ZW5ndGggPSBsZW47CisgICAgICAgIGN1cnJlbnRQb3MgPSAwOworICAgIH0KKyAgICBpbnQgZmly
c3QoKQorICAgIHsKKyAgICAgICAgY3VycmVudFBvcyA9IDA7CisgICAgICAgIHJldHVybiBjdXJy
ZW50UG9zOworICAgIH0KKyAgICBpbnQgbGFzdCgpCisgICAgeworICAgICAgICBjdXJyZW50UG9z
ID0gbGVuZ3RoOworICAgICAgICByZXR1cm4gY3VycmVudFBvczsKKyAgICB9CisgICAgdmlydHVh
bCBpbnQgbmV4dCgpID0gMDsKKyAgICB2aXJ0dWFsIGludCBwcmV2aW91cygpID0gMDsKKyAgICBp
bnQgZm9sbG93aW5nKGludCBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIGN1cnJlbnRQb3MgPSBw
b3NpdGlvbjsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisgICAgaW50IHByZWNlZGlu
ZyhpbnQgcG9zaXRpb24pCisgICAgeworICAgICAgICBjdXJyZW50UG9zID0gcG9zaXRpb247Cisg
ICAgICAgIHJldHVybiBwcmV2aW91cygpOworICAgIH0KKworICAgIGludCBjdXJyZW50UG9zOwor
ICAgIGNvbnN0IFVDaGFyKiBzdHJpbmc7CisgICAgaW50IGxlbmd0aDsKK307CisKK3N0cnVjdCBX
b3JkQnJlYWtJdGVyYXRvcjogVGV4dEJyZWFrSXRlcmF0b3IgeworICAgIHZpcnR1YWwgaW50IG5l
eHQoKTsKKyAgICB2aXJ0dWFsIGludCBwcmV2aW91cygpOworfTsKKworc3RydWN0IENoYXJCcmVh
a0l0ZXJhdG9yOiBUZXh0QnJlYWtJdGVyYXRvciB7CisgICAgdmlydHVhbCBpbnQgbmV4dCgpOwor
ICAgIHZpcnR1YWwgaW50IHByZXZpb3VzKCk7Cit9OworCitzdHJ1Y3QgTGluZUJyZWFrSXRlcmF0
b3I6IFRleHRCcmVha0l0ZXJhdG9yIHsKKyAgICB2aXJ0dWFsIGludCBuZXh0KCk7CisgICAgdmly
dHVhbCBpbnQgcHJldmlvdXMoKTsKK307CisKK3N0cnVjdCBTZW50ZW5jZUJyZWFrSXRlcmF0b3Ig
OiBUZXh0QnJlYWtJdGVyYXRvciB7CisgICAgdmlydHVhbCBpbnQgbmV4dCgpOworICAgIHZpcnR1
YWwgaW50IHByZXZpb3VzKCk7Cit9OworCitpbnQgV29yZEJyZWFrSXRlcmF0b3I6Om5leHQoKQor
eworICAgIGlmIChjdXJyZW50UG9zID09IGxlbmd0aCkgeworICAgICAgICBjdXJyZW50UG9zID0g
LTE7CisgICAgICAgIHJldHVybiBjdXJyZW50UG9zOworICAgIH0KKyAgICBib29sIGhhdmVTcGFj
ZSA9IGZhbHNlOworICAgIHdoaWxlIChjdXJyZW50UG9zIDwgbGVuZ3RoKSB7CisgICAgICAgIGlm
IChoYXZlU3BhY2UgJiYgIWlzU3BhY2Uoc3RyaW5nW2N1cnJlbnRQb3NdKSkKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBpZiAoaXNTcGFjZShzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAg
ICAgICAgaGF2ZVNwYWNlID0gdHJ1ZTsKKyAgICAgICAgKytjdXJyZW50UG9zOworICAgIH0KKyAg
ICByZXR1cm4gY3VycmVudFBvczsKK30KKworaW50IFdvcmRCcmVha0l0ZXJhdG9yOjpwcmV2aW91
cygpCit7CisgICAgaWYgKCFjdXJyZW50UG9zKSB7CisgICAgICAgIGN1cnJlbnRQb3MgPSAtMTsK
KyAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3M7CisgICAgfQorICAgIGJvb2wgaGF2ZVNwYWNlID0g
ZmFsc2U7CisgICAgd2hpbGUgKGN1cnJlbnRQb3MgPiAwKSB7CisgICAgICAgIGlmIChoYXZlU3Bh
Y2UgJiYgIWlzU3BhY2Uoc3RyaW5nW2N1cnJlbnRQb3NdKSkKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBpZiAoaXNTcGFjZShzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAgICAgICAgaGF2
ZVNwYWNlID0gdHJ1ZTsKKyAgICAgICAgLS1jdXJyZW50UG9zOworICAgIH0KKyAgICByZXR1cm4g
Y3VycmVudFBvczsKK30KKworaW50IENoYXJCcmVha0l0ZXJhdG9yOjpuZXh0KCkKK3sKKyAgICBp
ZiAoY3VycmVudFBvcyA+PSBsZW5ndGgpCisgICAgICAgIHJldHVybiAtMTsKKyAgICArK2N1cnJl
bnRQb3M7CisgICAgd2hpbGUgKGN1cnJlbnRQb3MgPCBsZW5ndGggJiYgIWlzQ2hhclN0b3Aoc3Ry
aW5nW2N1cnJlbnRQb3NdKSkKKyAgICAgICAgKytjdXJyZW50UG9zOworICAgIHJldHVybiBjdXJy
ZW50UG9zOworfQorCitpbnQgQ2hhckJyZWFrSXRlcmF0b3I6OnByZXZpb3VzKCkKK3sKKyAgICBp
ZiAoY3VycmVudFBvcyA8PSAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGN1cnJlbnRQ
b3MgPiBsZW5ndGgpCisgICAgICAgIGN1cnJlbnRQb3MgPSBsZW5ndGg7CisgICAgLS1jdXJyZW50
UG9zOworICAgIHdoaWxlIChjdXJyZW50UG9zID4gMCAmJiAhaXNDaGFyU3RvcChzdHJpbmdbY3Vy
cmVudFBvc10pKQorICAgICAgICAtLWN1cnJlbnRQb3M7CisgICAgcmV0dXJuIGN1cnJlbnRQb3M7
Cit9CisKK2ludCBMaW5lQnJlYWtJdGVyYXRvcjo6bmV4dCgpCit7CisgICAgaWYgKGN1cnJlbnRQ
b3MgPT0gbGVuZ3RoKSB7CisgICAgICAgIGN1cnJlbnRQb3MgPSAtMTsKKyAgICAgICAgcmV0dXJu
IGN1cnJlbnRQb3M7CisgICAgfQorICAgIGJvb2wgaGF2ZVNwYWNlID0gZmFsc2U7CisgICAgd2hp
bGUgKGN1cnJlbnRQb3MgPCBsZW5ndGgpIHsKKyAgICAgICAgaWYgKGhhdmVTcGFjZSAmJiAhaXNM
aW5lU3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGlmIChpc0xpbmVTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAgICAgICBoYXZlU3Bh
Y2UgPSB0cnVlOworICAgICAgICArK2N1cnJlbnRQb3M7CisgICAgfQorICAgIHJldHVybiBjdXJy
ZW50UG9zOworfQorCitpbnQgTGluZUJyZWFrSXRlcmF0b3I6OnByZXZpb3VzKCkKK3sKKyAgICBp
ZiAoIWN1cnJlbnRQb3MpIHsKKyAgICAgICAgY3VycmVudFBvcyA9IC0xOworICAgICAgICByZXR1
cm4gY3VycmVudFBvczsKKyAgICB9CisgICAgYm9vbCBoYXZlU3BhY2UgPSBmYWxzZTsKKyAgICB3
aGlsZSAoY3VycmVudFBvcyA+IDApIHsKKyAgICAgICAgaWYgKGhhdmVTcGFjZSAmJiAhaXNMaW5l
U3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlm
IChpc0xpbmVTdG9wKHN0cmluZ1tjdXJyZW50UG9zXSkpCisgICAgICAgICAgICBoYXZlU3BhY2Ug
PSB0cnVlOworICAgICAgICAtLWN1cnJlbnRQb3M7CisgICAgfQorICAgIHJldHVybiBjdXJyZW50
UG9zOworfQorCitpbnQgU2VudGVuY2VCcmVha0l0ZXJhdG9yOjpuZXh0KCkKK3sKKyAgICBpZiAo
Y3VycmVudFBvcyA9PSBsZW5ndGgpIHsKKyAgICAgICAgY3VycmVudFBvcyA9IC0xOworICAgICAg
ICByZXR1cm4gY3VycmVudFBvczsKKyAgICB9CisgICAgYm9vbCBoYXZlU3BhY2UgPSBmYWxzZTsK
KyAgICB3aGlsZSAoY3VycmVudFBvcyA8IGxlbmd0aCkgeworICAgICAgICBpZiAoaGF2ZVNwYWNl
ICYmICFpc1NlbnRlbmNlU3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGlmIChpc1NlbnRlbmNlU3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAg
ICAgICAgICAgaGF2ZVNwYWNlID0gdHJ1ZTsKKyAgICAgICAgKytjdXJyZW50UG9zOworICAgIH0K
KyAgICByZXR1cm4gY3VycmVudFBvczsKK30KKworaW50IFNlbnRlbmNlQnJlYWtJdGVyYXRvcjo6
cHJldmlvdXMoKQoreworICAgIGlmICghY3VycmVudFBvcykgeworICAgICAgICBjdXJyZW50UG9z
ID0gLTE7CisgICAgICAgIHJldHVybiBjdXJyZW50UG9zOworICAgIH0KKyAgICBib29sIGhhdmVT
cGFjZSA9IGZhbHNlOworICAgIHdoaWxlIChjdXJyZW50UG9zID4gMCkgeworICAgICAgICBpZiAo
aGF2ZVNwYWNlICYmICFpc1NlbnRlbmNlU3RvcChzdHJpbmdbY3VycmVudFBvc10pKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGlmIChpc1NlbnRlbmNlU3RvcChzdHJpbmdbY3VycmVudFBv
c10pKQorICAgICAgICAgICAgaGF2ZVNwYWNlID0gdHJ1ZTsKKyAgICAgICAgLS1jdXJyZW50UG9z
OworICAgIH0KKyAgICByZXR1cm4gY3VycmVudFBvczsKK30KKworVGV4dEJyZWFrSXRlcmF0b3Iq
IHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChXb3JkQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsK
KyAgICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7CisgICAgcmV0dXJuICZpdGVyYXRv
cjsKK30KKworc3RhdGljIENoYXJCcmVha0l0ZXJhdG9yKiBub25TaGFyZWRDaGFyYWN0ZXJCcmVh
a0l0ZXJhdG9yOworCitOb25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yOjpOb25TaGFyZWRD
aGFyYWN0ZXJCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBidWZmZXIsIGludCBsZW5ndGgpCit7
CisgICAgbV9pdGVyYXRvciA9IG5vblNoYXJlZENoYXJhY3RlckJyZWFrSXRlcmF0b3I7CisgICAg
Ym9vbCBjcmVhdGVkSXRlcmF0b3IgPSBtX2l0ZXJhdG9yICYmIHdlYWtDb21wYXJlQW5kU3dhcChy
ZWludGVycHJldF9jYXN0PHZvaWQqKj4oJm5vblNoYXJlZENoYXJhY3RlckJyZWFrSXRlcmF0b3Ip
LCBtX2l0ZXJhdG9yLCAwKTsKKyAgICBpZiAoIWNyZWF0ZWRJdGVyYXRvcikKKyAgICAgICAgbV9p
dGVyYXRvciA9IG5ldyBDaGFyQnJlYWtJdGVyYXRvcjsKKyAgICBtX2l0ZXJhdG9yLT5yZXNldChi
dWZmZXIsIGxlbmd0aCk7Cit9CisKK05vblNoYXJlZENoYXJhY3RlckJyZWFrSXRlcmF0b3I6On5O
b25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKCkKK3sKKyAgICBpZiAoIXdlYWtDb21wYXJl
QW5kU3dhcChyZWludGVycHJldF9jYXN0PHZvaWQqKj4oJm5vblNoYXJlZENoYXJhY3RlckJyZWFr
SXRlcmF0b3IpLCAwLCBtX2l0ZXJhdG9yKSkKKyAgICAgICAgZGVsZXRlIG1faXRlcmF0b3I7Cit9
CisKK3N0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisK
K1RleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIq
IHN0cmluZywgaW50IGxlbmd0aCwgY29uc3QgQXRvbWljU3RyaW5nJikKK3sKKyAgICBUZXh0QnJl
YWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IgPSAwOworICAgIGlmIChzdGF0aWNMaW5lQnJl
YWtJdGVyYXRvcikgeworICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvci0+cmVzZXQoc3Ry
aW5nLCBsZW5ndGgpOworICAgICAgICBzd2FwKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBsaW5l
QnJlYWtJdGVyYXRvcik7CisgICAgfQorCisgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvciAmJiBz
dHJpbmcgJiYgbGVuZ3RoKSB7CisgICAgICAgIGxpbmVCcmVha0l0ZXJhdG9yID0gbmV3IExpbmVC
cmVha0l0ZXJhdG9yOworICAgICAgICBsaW5lQnJlYWtJdGVyYXRvci0+cmVzZXQoc3RyaW5nLCBs
ZW5ndGgpOworICAgIH0KKworICAgIHJldHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKK30KKwordm9p
ZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQor
eworICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICBpZiAoIXN0YXRpY0xpbmVCcmVha0l0ZXJh
dG9yKQorICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgIGVs
c2UKKyAgICAgICAgZGVsZXRlIGl0ZXJhdG9yOworfQorCitUZXh0QnJlYWtJdGVyYXRvciogc2Vu
dGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAo
KSk7CisgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOworICAgIHJldHVybiAmaXRl
cmF0b3I7Cit9CisKK2ludCB0ZXh0QnJlYWtGaXJzdChUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJ
dGVyYXRvcikKK3sKKyAgICByZXR1cm4gYnJlYWtJdGVyYXRvci0+Zmlyc3QoKTsKK30KKworaW50
IHRleHRCcmVha0xhc3QoVGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IpCit7CisgICAg
cmV0dXJuIGJyZWFrSXRlcmF0b3ItPmxhc3QoKTsKK30KKworaW50IHRleHRCcmVha05leHQoVGV4
dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IpCit7CisgICAgcmV0dXJuIGJyZWFrSXRlcmF0
b3ItPm5leHQoKTsKK30KKworaW50IHRleHRCcmVha1ByZXZpb3VzKFRleHRCcmVha0l0ZXJhdG9y
KiBicmVha0l0ZXJhdG9yKQoreworICAgIHJldHVybiBicmVha0l0ZXJhdG9yLT5wcmV2aW91cygp
OworfQorCitpbnQgdGV4dEJyZWFrUHJlY2VkaW5nKFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0
ZXJhdG9yLCBpbnQgcG9zaXRpb24pCit7CisgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3ItPnByZWNl
ZGluZyhwb3NpdGlvbik7Cit9CisKK2ludCB0ZXh0QnJlYWtGb2xsb3dpbmcoVGV4dEJyZWFrSXRl
cmF0b3IqIGJyZWFrSXRlcmF0b3IsIGludCBwb3NpdGlvbikKK3sKKyAgICByZXR1cm4gYnJlYWtJ
dGVyYXRvci0+Zm9sbG93aW5nKHBvc2l0aW9uKTsKK30KKworaW50IHRleHRCcmVha0N1cnJlbnQo
VGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IpCit7CisgICAgcmV0dXJuIGJyZWFrSXRl
cmF0b3ItPmN1cnJlbnRQb3M7Cit9CisKK2Jvb2wgaXNUZXh0QnJlYWsoVGV4dEJyZWFrSXRlcmF0
b3IqLCBpbnQpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgaXNXb3JkVGV4dEJyZWFr
KFRleHRCcmVha0l0ZXJhdG9yKikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworVGV4dEJyZWFr
SXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50
IGxlbmd0aCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENoYXJCcmVha0l0ZXJhdG9yLCBp
dGVyYXRvciwgKCkpOworICAgIGl0ZXJhdG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKKyAgICBy
ZXR1cm4gJml0ZXJhdG9yOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbmNlL1RleHRCcmVha0l0ZXJhdG9yV2lu
Q0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW5jZS9UZXh0QnJlYWtJdGVy
YXRvcldpbkNFLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM2YzVjNi4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbmNlL1RleHRCcmVha0l0
ZXJhdG9yV2luQ0UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzQ0ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYgTGFycyBLbm9sbCA8bGFyc0B0cm9sbHRlY2guY29tPgotICogQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICog
Qm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgotCi0jaW5jbHVkZSA8d3RmL0F0b21p
Y3MuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgotCi11c2luZyBu
YW1lc3BhY2UgV1RGOwotdXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKLXVzaW5nIG5hbWVz
cGFjZSBzdGQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gSGFjaywgbm90IGVudGlyZWx5
IGNvcnJlY3QKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NoYXJTdG9wKFVDaGFyIGMpCi17Ci0gICAg
Q2hhckNhdGVnb3J5IGNoYXJDYXRlZ29yeSA9IGNhdGVnb3J5KGMpOwotICAgIHJldHVybiBjaGFy
Q2F0ZWdvcnkgIT0gTWFya19Ob25TcGFjaW5nICYmIChjaGFyQ2F0ZWdvcnkgIT0gT3RoZXJfU3Vy
cm9nYXRlIHx8IChjIDwgMHhkODAwIHx8IGMgPj0gMHhkYzAwKSk7Ci19Ci0KLXN0YXRpYyBpbmxp
bmUgYm9vbCBpc0xpbmVTdG9wKFVDaGFyIGMpCi17Ci0gICAgcmV0dXJuIGNhdGVnb3J5KGMpICE9
IFNlcGFyYXRvcl9MaW5lOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNTZW50ZW5jZVN0b3Ao
VUNoYXIgYykKLXsKLSAgICByZXR1cm4gaXNQdW5jdChjKTsKLX0KLQotY2xhc3MgVGV4dEJyZWFr
SXRlcmF0b3IgewotcHVibGljOgotICAgIHZvaWQgcmVzZXQoY29uc3QgVUNoYXIqIHN0ciwgaW50
IGxlbikKLSAgICB7Ci0gICAgICAgIHN0cmluZyA9IHN0cjsKLSAgICAgICAgbGVuZ3RoID0gbGVu
OwotICAgICAgICBjdXJyZW50UG9zID0gMDsKLSAgICB9Ci0gICAgaW50IGZpcnN0KCkKLSAgICB7
Ci0gICAgICAgIGN1cnJlbnRQb3MgPSAwOwotICAgICAgICByZXR1cm4gY3VycmVudFBvczsKLSAg
ICB9Ci0gICAgaW50IGxhc3QoKQotICAgIHsKLSAgICAgICAgY3VycmVudFBvcyA9IGxlbmd0aDsK
LSAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3M7Ci0gICAgfQotICAgIHZpcnR1YWwgaW50IG5leHQo
KSA9IDA7Ci0gICAgdmlydHVhbCBpbnQgcHJldmlvdXMoKSA9IDA7Ci0gICAgaW50IGZvbGxvd2lu
ZyhpbnQgcG9zaXRpb24pCi0gICAgewotICAgICAgICBjdXJyZW50UG9zID0gcG9zaXRpb247Ci0g
ICAgICAgIHJldHVybiBuZXh0KCk7Ci0gICAgfQotICAgIGludCBwcmVjZWRpbmcoaW50IHBvc2l0
aW9uKQotICAgIHsKLSAgICAgICAgY3VycmVudFBvcyA9IHBvc2l0aW9uOwotICAgICAgICByZXR1
cm4gcHJldmlvdXMoKTsKLSAgICB9Ci0KLSAgICBpbnQgY3VycmVudFBvczsKLSAgICBjb25zdCBV
Q2hhciogc3RyaW5nOwotICAgIGludCBsZW5ndGg7Ci19OwotCi1zdHJ1Y3QgV29yZEJyZWFrSXRl
cmF0b3I6IFRleHRCcmVha0l0ZXJhdG9yIHsKLSAgICB2aXJ0dWFsIGludCBuZXh0KCk7Ci0gICAg
dmlydHVhbCBpbnQgcHJldmlvdXMoKTsKLX07Ci0KLXN0cnVjdCBDaGFyQnJlYWtJdGVyYXRvcjog
VGV4dEJyZWFrSXRlcmF0b3IgewotICAgIHZpcnR1YWwgaW50IG5leHQoKTsKLSAgICB2aXJ0dWFs
IGludCBwcmV2aW91cygpOwotfTsKLQotc3RydWN0IExpbmVCcmVha0l0ZXJhdG9yOiBUZXh0QnJl
YWtJdGVyYXRvciB7Ci0gICAgdmlydHVhbCBpbnQgbmV4dCgpOwotICAgIHZpcnR1YWwgaW50IHBy
ZXZpb3VzKCk7Ci19OwotCi1zdHJ1Y3QgU2VudGVuY2VCcmVha0l0ZXJhdG9yIDogVGV4dEJyZWFr
SXRlcmF0b3IgewotICAgIHZpcnR1YWwgaW50IG5leHQoKTsKLSAgICB2aXJ0dWFsIGludCBwcmV2
aW91cygpOwotfTsKLQotaW50IFdvcmRCcmVha0l0ZXJhdG9yOjpuZXh0KCkKLXsKLSAgICBpZiAo
Y3VycmVudFBvcyA9PSBsZW5ndGgpIHsKLSAgICAgICAgY3VycmVudFBvcyA9IC0xOwotICAgICAg
ICByZXR1cm4gY3VycmVudFBvczsKLSAgICB9Ci0gICAgYm9vbCBoYXZlU3BhY2UgPSBmYWxzZTsK
LSAgICB3aGlsZSAoY3VycmVudFBvcyA8IGxlbmd0aCkgewotICAgICAgICBpZiAoaGF2ZVNwYWNl
ICYmICFpc1NwYWNlKHN0cmluZ1tjdXJyZW50UG9zXSkpCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgaWYgKGlzU3BhY2Uoc3RyaW5nW2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGhhdmVT
cGFjZSA9IHRydWU7Ci0gICAgICAgICsrY3VycmVudFBvczsKLSAgICB9Ci0gICAgcmV0dXJuIGN1
cnJlbnRQb3M7Ci19Ci0KLWludCBXb3JkQnJlYWtJdGVyYXRvcjo6cHJldmlvdXMoKQotewotICAg
IGlmICghY3VycmVudFBvcykgewotICAgICAgICBjdXJyZW50UG9zID0gLTE7Ci0gICAgICAgIHJl
dHVybiBjdXJyZW50UG9zOwotICAgIH0KLSAgICBib29sIGhhdmVTcGFjZSA9IGZhbHNlOwotICAg
IHdoaWxlIChjdXJyZW50UG9zID4gMCkgewotICAgICAgICBpZiAoaGF2ZVNwYWNlICYmICFpc1Nw
YWNlKHN0cmluZ1tjdXJyZW50UG9zXSkpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYg
KGlzU3BhY2Uoc3RyaW5nW2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGhhdmVTcGFjZSA9IHRy
dWU7Ci0gICAgICAgIC0tY3VycmVudFBvczsKLSAgICB9Ci0gICAgcmV0dXJuIGN1cnJlbnRQb3M7
Ci19Ci0KLWludCBDaGFyQnJlYWtJdGVyYXRvcjo6bmV4dCgpCi17Ci0gICAgaWYgKGN1cnJlbnRQ
b3MgPj0gbGVuZ3RoKQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgKytjdXJyZW50UG9zOwotICAg
IHdoaWxlIChjdXJyZW50UG9zIDwgbGVuZ3RoICYmICFpc0NoYXJTdG9wKHN0cmluZ1tjdXJyZW50
UG9zXSkpCi0gICAgICAgICsrY3VycmVudFBvczsKLSAgICByZXR1cm4gY3VycmVudFBvczsKLX0K
LQotaW50IENoYXJCcmVha0l0ZXJhdG9yOjpwcmV2aW91cygpCi17Ci0gICAgaWYgKGN1cnJlbnRQ
b3MgPD0gMCkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIGlmIChjdXJyZW50UG9zID4gbGVuZ3Ro
KQotICAgICAgICBjdXJyZW50UG9zID0gbGVuZ3RoOwotICAgIC0tY3VycmVudFBvczsKLSAgICB3
aGlsZSAoY3VycmVudFBvcyA+IDAgJiYgIWlzQ2hhclN0b3Aoc3RyaW5nW2N1cnJlbnRQb3NdKSkK
LSAgICAgICAgLS1jdXJyZW50UG9zOwotICAgIHJldHVybiBjdXJyZW50UG9zOwotfQotCi1pbnQg
TGluZUJyZWFrSXRlcmF0b3I6Om5leHQoKQotewotICAgIGlmIChjdXJyZW50UG9zID09IGxlbmd0
aCkgewotICAgICAgICBjdXJyZW50UG9zID0gLTE7Ci0gICAgICAgIHJldHVybiBjdXJyZW50UG9z
OwotICAgIH0KLSAgICBib29sIGhhdmVTcGFjZSA9IGZhbHNlOwotICAgIHdoaWxlIChjdXJyZW50
UG9zIDwgbGVuZ3RoKSB7Ci0gICAgICAgIGlmIChoYXZlU3BhY2UgJiYgIWlzTGluZVN0b3Aoc3Ry
aW5nW2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoaXNMaW5l
U3RvcChzdHJpbmdbY3VycmVudFBvc10pKQotICAgICAgICAgICAgaGF2ZVNwYWNlID0gdHJ1ZTsK
LSAgICAgICAgKytjdXJyZW50UG9zOwotICAgIH0KLSAgICByZXR1cm4gY3VycmVudFBvczsKLX0K
LQotaW50IExpbmVCcmVha0l0ZXJhdG9yOjpwcmV2aW91cygpCi17Ci0gICAgaWYgKCFjdXJyZW50
UG9zKSB7Ci0gICAgICAgIGN1cnJlbnRQb3MgPSAtMTsKLSAgICAgICAgcmV0dXJuIGN1cnJlbnRQ
b3M7Ci0gICAgfQotICAgIGJvb2wgaGF2ZVNwYWNlID0gZmFsc2U7Ci0gICAgd2hpbGUgKGN1cnJl
bnRQb3MgPiAwKSB7Ci0gICAgICAgIGlmIChoYXZlU3BhY2UgJiYgIWlzTGluZVN0b3Aoc3RyaW5n
W2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoaXNMaW5lU3Rv
cChzdHJpbmdbY3VycmVudFBvc10pKQotICAgICAgICAgICAgaGF2ZVNwYWNlID0gdHJ1ZTsKLSAg
ICAgICAgLS1jdXJyZW50UG9zOwotICAgIH0KLSAgICByZXR1cm4gY3VycmVudFBvczsKLX0KLQot
aW50IFNlbnRlbmNlQnJlYWtJdGVyYXRvcjo6bmV4dCgpCi17Ci0gICAgaWYgKGN1cnJlbnRQb3Mg
PT0gbGVuZ3RoKSB7Ci0gICAgICAgIGN1cnJlbnRQb3MgPSAtMTsKLSAgICAgICAgcmV0dXJuIGN1
cnJlbnRQb3M7Ci0gICAgfQotICAgIGJvb2wgaGF2ZVNwYWNlID0gZmFsc2U7Ci0gICAgd2hpbGUg
KGN1cnJlbnRQb3MgPCBsZW5ndGgpIHsKLSAgICAgICAgaWYgKGhhdmVTcGFjZSAmJiAhaXNTZW50
ZW5jZVN0b3Aoc3RyaW5nW2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBpZiAoaXNTZW50ZW5jZVN0b3Aoc3RyaW5nW2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGhh
dmVTcGFjZSA9IHRydWU7Ci0gICAgICAgICsrY3VycmVudFBvczsKLSAgICB9Ci0gICAgcmV0dXJu
IGN1cnJlbnRQb3M7Ci19Ci0KLWludCBTZW50ZW5jZUJyZWFrSXRlcmF0b3I6OnByZXZpb3VzKCkK
LXsKLSAgICBpZiAoIWN1cnJlbnRQb3MpIHsKLSAgICAgICAgY3VycmVudFBvcyA9IC0xOwotICAg
ICAgICByZXR1cm4gY3VycmVudFBvczsKLSAgICB9Ci0gICAgYm9vbCBoYXZlU3BhY2UgPSBmYWxz
ZTsKLSAgICB3aGlsZSAoY3VycmVudFBvcyA+IDApIHsKLSAgICAgICAgaWYgKGhhdmVTcGFjZSAm
JiAhaXNTZW50ZW5jZVN0b3Aoc3RyaW5nW2N1cnJlbnRQb3NdKSkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBpZiAoaXNTZW50ZW5jZVN0b3Aoc3RyaW5nW2N1cnJlbnRQb3NdKSkKLSAgICAg
ICAgICAgIGhhdmVTcGFjZSA9IHRydWU7Ci0gICAgICAgIC0tY3VycmVudFBvczsKLSAgICB9Ci0g
ICAgcmV0dXJuIGN1cnJlbnRQb3M7Ci19Ci0KLVRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQotewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoV29yZEJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7Ci0gICAgaXRlcmF0
b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwotICAgIHJldHVybiAmaXRlcmF0b3I7Ci19Ci0KLXN0
YXRpYyBDaGFyQnJlYWtJdGVyYXRvciogbm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRvcjsK
LQotTm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRvcjo6Tm9uU2hhcmVkQ2hhcmFjdGVyQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciogYnVmZmVyLCBpbnQgbGVuZ3RoKQotewotICAgIG1faXRl
cmF0b3IgPSBub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yOwotICAgIGJvb2wgY3JlYXRl
ZEl0ZXJhdG9yID0gbV9pdGVyYXRvciAmJiB3ZWFrQ29tcGFyZUFuZFN3YXAocmVpbnRlcnByZXRf
Y2FzdDx2b2lkKio+KCZub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKSwgbV9pdGVyYXRv
ciwgMCk7Ci0gICAgaWYgKCFjcmVhdGVkSXRlcmF0b3IpCi0gICAgICAgIG1faXRlcmF0b3IgPSBu
ZXcgQ2hhckJyZWFrSXRlcmF0b3I7Ci0gICAgbV9pdGVyYXRvci0+cmVzZXQoYnVmZmVyLCBsZW5n
dGgpOwotfQotCi1Ob25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yOjp+Tm9uU2hhcmVkQ2hh
cmFjdGVyQnJlYWtJdGVyYXRvcigpCi17Ci0gICAgaWYgKCF3ZWFrQ29tcGFyZUFuZFN3YXAocmVp
bnRlcnByZXRfY2FzdDx2b2lkKio+KCZub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKSwg
MCwgbV9pdGVyYXRvcikpCi0gICAgICAgIGRlbGV0ZSBtX2l0ZXJhdG9yOwotfQotCi1zdGF0aWMg
VGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwotCi1UZXh0QnJlYWtJ
dGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGlu
dCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYpCi17Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3Iq
IGxpbmVCcmVha0l0ZXJhdG9yID0gMDsKLSAgICBpZiAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3Ip
IHsKLSAgICAgICAgc3RhdGljTGluZUJyZWFrSXRlcmF0b3ItPnJlc2V0KHN0cmluZywgbGVuZ3Ro
KTsKLSAgICAgICAgc3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0
b3IpOwotICAgIH0KLQotICAgIGlmICghbGluZUJyZWFrSXRlcmF0b3IgJiYgc3RyaW5nICYmIGxl
bmd0aCkgewotICAgICAgICBsaW5lQnJlYWtJdGVyYXRvciA9IG5ldyBMaW5lQnJlYWtJdGVyYXRv
cjsKLSAgICAgICAgbGluZUJyZWFrSXRlcmF0b3ItPnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gbGluZUJyZWFrSXRlcmF0b3I7Ci19Ci0KLXZvaWQgcmVsZWFzZUxp
bmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKLXsKLSAgICBBU1NF
UlQoaXRlcmF0b3IpOwotCi0gICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKLSAgICAg
ICAgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IgPSBpdGVyYXRvcjsKLSAgICBlbHNlCi0gICAgICAg
IGRlbGV0ZSBpdGVyYXRvcjsKLX0KLQotVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQotewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBpdGVyYXRvciwgKCkpOwotICAgIGl0
ZXJhdG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKLSAgICByZXR1cm4gJml0ZXJhdG9yOwotfQot
Ci1pbnQgdGV4dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IpCi17
Ci0gICAgcmV0dXJuIGJyZWFrSXRlcmF0b3ItPmZpcnN0KCk7Ci19Ci0KLWludCB0ZXh0QnJlYWtM
YXN0KFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yKQotewotICAgIHJldHVybiBicmVh
a0l0ZXJhdG9yLT5sYXN0KCk7Ci19Ci0KLWludCB0ZXh0QnJlYWtOZXh0KFRleHRCcmVha0l0ZXJh
dG9yKiBicmVha0l0ZXJhdG9yKQotewotICAgIHJldHVybiBicmVha0l0ZXJhdG9yLT5uZXh0KCk7
Ci19Ci0KLWludCB0ZXh0QnJlYWtQcmV2aW91cyhUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVy
YXRvcikKLXsKLSAgICByZXR1cm4gYnJlYWtJdGVyYXRvci0+cHJldmlvdXMoKTsKLX0KLQotaW50
IHRleHRCcmVha1ByZWNlZGluZyhUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciwgaW50
IHBvc2l0aW9uKQotewotICAgIHJldHVybiBicmVha0l0ZXJhdG9yLT5wcmVjZWRpbmcocG9zaXRp
b24pOwotfQotCi1pbnQgdGV4dEJyZWFrRm9sbG93aW5nKFRleHRCcmVha0l0ZXJhdG9yKiBicmVh
a0l0ZXJhdG9yLCBpbnQgcG9zaXRpb24pCi17Ci0gICAgcmV0dXJuIGJyZWFrSXRlcmF0b3ItPmZv
bGxvd2luZyhwb3NpdGlvbik7Ci19Ci0KLWludCB0ZXh0QnJlYWtDdXJyZW50KFRleHRCcmVha0l0
ZXJhdG9yKiBicmVha0l0ZXJhdG9yKQotewotICAgIHJldHVybiBicmVha0l0ZXJhdG9yLT5jdXJy
ZW50UG9zOwotfQotCi1ib29sIGlzVGV4dEJyZWFrKFRleHRCcmVha0l0ZXJhdG9yKiwgaW50KQot
ewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIGlzV29yZFRleHRCcmVhayhUZXh0QnJlYWtJ
dGVyYXRvciopCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVRleHRCcmVha0l0ZXJhdG9yKiBj
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCi17
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDaGFyQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgp
KTsKLSAgICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7Ci0gICAgcmV0dXJuICZpdGVy
YXRvcjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>