<?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>72290</bug_id>
          
          <creation_ts>2011-11-14 11:14:35 -0800</creation_ts>
          <short_desc>Towards 8 bit strings - Add 8 bit paths to StringImpl methods</short_desc>
          <delta_ts>2011-11-15 18:22:15 -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>JavaScriptCore</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>
          
          <blocked>71337</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502114</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-14 11:14:35 -0800</bug_when>
    <thetext>StringImpl methods like simplifyMatchedCharactersToSpace(), simplifyWhiteSpace() and the various toInt() and toDouble() flavors do not have an 8 bit path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502148</commentid>
    <comment_count>1</comment_count>
      <attachid>114996</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-14 11:53:06 -0800</bug_when>
    <thetext>Created attachment 114996
Patch

This patch doesn&apos;t have changes for simplifyMatchedCharactersToSpace(), simplifyWhiteSpace() as they have been implemented with a templates StringBuffer class that ripples changes to WebCore classes.  That will be handled in another patch.
This patch does include updated find and reverseFind methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502328</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-11-14 14:42:52 -0800</bug_when>
    <thetext>Committed r100195: &lt;http://trac.webkit.org/changeset/100195&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114996</attachid>
            <date>2011-11-14 11:53:06 -0800</date>
            <delta_ts>2011-11-14 11:54:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>72290.patch</filename>
            <type>text/plain</type>
            <size>18325</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwMTcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDExLTExLTE0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFRvd2FyZHMgOCBiaXQgc3RyaW5ncyAtIEFkZCA4IGJpdCBwYXRocyB0byBTdHJpbmdJbXBs
IG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyMjkwCisKKyAgICAgICAgQWRkZWQgOCBiaXQgcGF0Y2hzIHRvIFN0cmluZ0ltcGwgdG8gbnVt
YmVyIGFuZCBmaW5kIG1ldGhvZHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6dG9JbnRTdHJpY3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0b1VJ
bnRTdHJpY3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0b0ludDY0U3RyaWN0KToKKyAg
ICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dG9VSW50NjRTdHJpY3QpOgorICAgICAgICAoV1RGOjpT
dHJpbmdJbXBsOjp0b0ludFB0clN0cmljdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRv
SW50KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dG9VSW50KToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6dG9JbnQ2NCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRvVUludDY0
KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dG9JbnRQdHIpOgorICAgICAgICAoV1RGOjpT
dHJpbmdJbXBsOjp0b0RvdWJsZSk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRvRmxvYXQp
OgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpmaW5kKToKKyAgICAgICAgKFdURjo6U3RyaW5n
SW1wbDo6cmV2ZXJzZUZpbmQpOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6Cisg
ICAgICAgIChXVEY6OnRvSW50ZWdyYWxUeXBlKToKKyAgICAgICAgKFdURjo6bGVuZ3RoT2ZDaGFy
YWN0ZXJzQXNJbnRlZ2VyKToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvSW50U3RyaWN0KToK
KyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvVUludFN0cmljdCk6CisgICAgICAgIChXVEY6OmNo
YXJhY3RlcnNUb0ludDY0U3RyaWN0KToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvVUludDY0
U3RyaWN0KToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvSW50UHRyU3RyaWN0KToKKyAgICAg
ICAgKFdURjo6Y2hhcmFjdGVyc1RvSW50KToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvVUlu
dCk6CisgICAgICAgIChXVEY6OmNoYXJhY3RlcnNUb0ludDY0KToKKyAgICAgICAgKFdURjo6Y2hh
cmFjdGVyc1RvVUludDY0KToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvSW50UHRyKToKKyAg
ICAgICAgKFdURjo6dG9Eb3VibGVUeXBlKToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvRG91
YmxlKToKKyAgICAgICAgKFdURjo6Y2hhcmFjdGVyc1RvRmxvYXQpOgorICAgICAgICAqIHd0Zi90
ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAoV1RGOjpmaW5kKToKKyAgICAgICAgKFdURjo6cmV2
ZXJzZUZpbmQpOgorCiAyMDExLTExLTE0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5j
b20+CiAKICAgICAgICAgMzItYml0IEJ1aWxkIGZpeDogZGVjbGFyZSB2aXJ0dWFsIHJlZ2lzdGVy
IGluZGljZXMgdG8gYmUgaW50IHJhdGhlciB0aGFuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCShyZXZpc2lvbiAxMDAxNjcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYxMSw2MyArNjExLDg1IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
c2ltcGwKIAogaW50IFN0cmluZ0ltcGw6OnRvSW50U3RyaWN0KGJvb2wqIG9rLCBpbnQgYmFzZSkK
IHsKKyAgICBpZiAoaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBjaGFyYWN0ZXJzVG9JbnRTdHJp
Y3QoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIG9rLCBiYXNlKTsKICAgICByZXR1cm4gY2hhcmFj
dGVyc1RvSW50U3RyaWN0KGNoYXJhY3RlcnMxNigpLCBtX2xlbmd0aCwgb2ssIGJhc2UpOwogfQog
CiB1bnNpZ25lZCBTdHJpbmdJbXBsOjp0b1VJbnRTdHJpY3QoYm9vbCogb2ssIGludCBiYXNlKQog
eworICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnNUb1VJbnRTdHJp
Y3QoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIG9rLCBiYXNlKTsKICAgICByZXR1cm4gY2hhcmFj
dGVyc1RvVUludFN0cmljdChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIG9rLCBiYXNlKTsKIH0K
IAogaW50NjRfdCBTdHJpbmdJbXBsOjp0b0ludDY0U3RyaWN0KGJvb2wqIG9rLCBpbnQgYmFzZSkK
IHsKKyAgICBpZiAoaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBjaGFyYWN0ZXJzVG9JbnQ2NFN0
cmljdChjaGFyYWN0ZXJzOCgpLCBtX2xlbmd0aCwgb2ssIGJhc2UpOwogICAgIHJldHVybiBjaGFy
YWN0ZXJzVG9JbnQ2NFN0cmljdChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIG9rLCBiYXNlKTsK
LQogfQogCiB1aW50NjRfdCBTdHJpbmdJbXBsOjp0b1VJbnQ2NFN0cmljdChib29sKiBvaywgaW50
IGJhc2UpCiB7CisgICAgaWYgKGlzOEJpdCgpKQorICAgICAgICByZXR1cm4gY2hhcmFjdGVyc1Rv
VUludDY0U3RyaWN0KGNoYXJhY3RlcnM4KCksIG1fbGVuZ3RoLCBvaywgYmFzZSk7CiAgICAgcmV0
dXJuIGNoYXJhY3RlcnNUb1VJbnQ2NFN0cmljdChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIG9r
LCBiYXNlKTsKIH0KIAogaW50cHRyX3QgU3RyaW5nSW1wbDo6dG9JbnRQdHJTdHJpY3QoYm9vbCog
b2ssIGludCBiYXNlKQogeworICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGNoYXJh
Y3RlcnNUb0ludFB0clN0cmljdChjaGFyYWN0ZXJzOCgpLCBtX2xlbmd0aCwgb2ssIGJhc2UpOwog
ICAgIHJldHVybiBjaGFyYWN0ZXJzVG9JbnRQdHJTdHJpY3QoY2hhcmFjdGVyczE2KCksIG1fbGVu
Z3RoLCBvaywgYmFzZSk7CiB9CiAKIGludCBTdHJpbmdJbXBsOjp0b0ludChib29sKiBvaykKIHsK
KyAgICBpZiAoaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBjaGFyYWN0ZXJzVG9JbnQoY2hhcmFj
dGVyczgoKSwgbV9sZW5ndGgsIG9rKTsKICAgICByZXR1cm4gY2hhcmFjdGVyc1RvSW50KGNoYXJh
Y3RlcnMxNigpLCBtX2xlbmd0aCwgb2spOwogfQogCiB1bnNpZ25lZCBTdHJpbmdJbXBsOjp0b1VJ
bnQoYm9vbCogb2spCiB7CisgICAgaWYgKGlzOEJpdCgpKQorICAgICAgICByZXR1cm4gY2hhcmFj
dGVyc1RvVUludChjaGFyYWN0ZXJzOCgpLCBtX2xlbmd0aCwgb2spOwogICAgIHJldHVybiBjaGFy
YWN0ZXJzVG9VSW50KGNoYXJhY3RlcnMxNigpLCBtX2xlbmd0aCwgb2spOwogfQogCiBpbnQ2NF90
IFN0cmluZ0ltcGw6OnRvSW50NjQoYm9vbCogb2spCiB7CisgICAgaWYgKGlzOEJpdCgpKQorICAg
ICAgICByZXR1cm4gY2hhcmFjdGVyc1RvSW50NjQoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIG9r
KTsKICAgICByZXR1cm4gY2hhcmFjdGVyc1RvSW50NjQoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3Ro
LCBvayk7CiB9CiAKIHVpbnQ2NF90IFN0cmluZ0ltcGw6OnRvVUludDY0KGJvb2wqIG9rKQogewor
ICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnNUb1VJbnQ2NChjaGFy
YWN0ZXJzOCgpLCBtX2xlbmd0aCwgb2spOwogICAgIHJldHVybiBjaGFyYWN0ZXJzVG9VSW50NjQo
Y2hhcmFjdGVyczE2KCksIG1fbGVuZ3RoLCBvayk7CiB9CiAKIGludHB0cl90IFN0cmluZ0ltcGw6
OnRvSW50UHRyKGJvb2wqIG9rKQogeworICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJu
IGNoYXJhY3RlcnNUb0ludFB0cihjaGFyYWN0ZXJzOCgpLCBtX2xlbmd0aCwgb2spOwogICAgIHJl
dHVybiBjaGFyYWN0ZXJzVG9JbnRQdHIoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3RoLCBvayk7Ci0K
IH0KIAogZG91YmxlIFN0cmluZ0ltcGw6OnRvRG91YmxlKGJvb2wqIG9rLCBib29sKiBkaWRSZWFk
TnVtYmVyKQogeworICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGNoYXJhY3RlcnNU
b0RvdWJsZShjaGFyYWN0ZXJzOCgpLCBtX2xlbmd0aCwgb2ssIGRpZFJlYWROdW1iZXIpOwogICAg
IHJldHVybiBjaGFyYWN0ZXJzVG9Eb3VibGUoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3RoLCBvaywg
ZGlkUmVhZE51bWJlcik7CiB9CiAKIGZsb2F0IFN0cmluZ0ltcGw6OnRvRmxvYXQoYm9vbCogb2ss
IGJvb2wqIGRpZFJlYWROdW1iZXIpCiB7CisgICAgaWYgKGlzOEJpdCgpKQorICAgICAgICByZXR1
cm4gY2hhcmFjdGVyc1RvRmxvYXQoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIG9rLCBkaWRSZWFk
TnVtYmVyKTsKICAgICByZXR1cm4gY2hhcmFjdGVyc1RvRmxvYXQoY2hhcmFjdGVyczE2KCksIG1f
bGVuZ3RoLCBvaywgZGlkUmVhZE51bWJlcik7CiB9CiAKQEAgLTcyMywxMSArNzQ1LDE1IEBAIGlu
dCBjb2RlUG9pbnRDb21wYXJlKGNvbnN0IFN0cmluZ0ltcGwqIHMKIAogc2l6ZV90IFN0cmluZ0lt
cGw6OmZpbmQoVUNoYXIgYywgdW5zaWduZWQgc3RhcnQpCiB7CisgICAgaWYgKGlzOEJpdCgpKQor
ICAgICAgICByZXR1cm4gV1RGOjpmaW5kKGNoYXJhY3RlcnM4KCksIG1fbGVuZ3RoLCBjLCBzdGFy
dCk7CiAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbV9sZW5ndGgsIGMsIHN0
YXJ0KTsKIH0KIAogc2l6ZV90IFN0cmluZ0ltcGw6OmZpbmQoQ2hhcmFjdGVyTWF0Y2hGdW5jdGlv
blB0ciBtYXRjaEZ1bmN0aW9uLCB1bnNpZ25lZCBzdGFydCkKIHsKKyAgICBpZiAoaXM4Qml0KCkp
CisgICAgICAgIHJldHVybiBXVEY6OmZpbmQoY2hhcmFjdGVyczgoKSwgbV9sZW5ndGgsIG1hdGNo
RnVuY3Rpb24sIHN0YXJ0KTsKICAgICByZXR1cm4gV1RGOjpmaW5kKGNoYXJhY3RlcnMxNigpLCBt
X2xlbmd0aCwgbWF0Y2hGdW5jdGlvbiwgc3RhcnQpOwogfQogCkBAIC04MjIsOCArODQ4LDExIEBA
IHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kKFN0cmluZ0ltcGwqIG1hdGMKICAgICAgICAgcmV0dXJu
IG1pbihpbmRleCwgbGVuZ3RoKCkpOwogCiAgICAgLy8gT3B0aW1pemF0aW9uIDE6IGZhc3QgY2Fz
ZSBmb3Igc3RyaW5ncyBvZiBsZW5ndGggMS4KLSAgICBpZiAobWF0Y2hMZW5ndGggPT0gMSkKLSAg
ICAgICAgcmV0dXJuIFdURjo6ZmluZChjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCksIG1hdGNoU3Ry
aW5nLT5jaGFyYWN0ZXJzMTYoKVswXSwgaW5kZXgpOworICAgIGlmIChtYXRjaExlbmd0aCA9PSAx
KSB7CisgICAgICAgIGlmIChpczhCaXQoKSAmJiBtYXRjaFN0cmluZy0+aXM4Qml0KCkpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpmaW5kKGNoYXJhY3RlcnM4KCksIGxlbmd0aCgpLCBtYXRjaFN0
cmluZy0+Y2hhcmFjdGVyczgoKVswXSwgaW5kZXgpOworICAgICAgICByZXR1cm4gV1RGOjpmaW5k
KGNoYXJhY3RlcnMoKSwgbGVuZ3RoKCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0ZXJzKClbMF0sIGlu
ZGV4KTsKKyAgICB9CiAKICAgICAvLyBDaGVjayBpbmRleCAmIG1hdGNoTGVuZ3RoIGFyZSBpbiBy
YW5nZS4KICAgICBpZiAoaW5kZXggPiBsZW5ndGgoKSkKQEAgLTg5MSw2ICs5MjAsOCBAQCBzaXpl
X3QgU3RyaW5nSW1wbDo6ZmluZElnbm9yaW5nQ2FzZShTdHJpCiAKIHNpemVfdCBTdHJpbmdJbXBs
OjpyZXZlcnNlRmluZChVQ2hhciBjLCB1bnNpZ25lZCBpbmRleCkKIHsKKyAgICBpZiAoaXM4Qml0
KCkpCisgICAgICAgIHJldHVybiBXVEY6OnJldmVyc2VGaW5kKGNoYXJhY3RlcnM4KCksIG1fbGVu
Z3RoLCBjLCBpbmRleCk7CiAgICAgcmV0dXJuIFdURjo6cmV2ZXJzZUZpbmQoY2hhcmFjdGVyczE2
KCksIG1fbGVuZ3RoLCBjLCBpbmRleCk7CiB9CiAKQEAgLTkwNCw4ICs5MzUsMTEgQEAgc2l6ZV90
IFN0cmluZ0ltcGw6OnJldmVyc2VGaW5kKFN0cmluZ0ltcAogICAgICAgICByZXR1cm4gbWluKGlu
ZGV4LCBsZW5ndGgoKSk7CiAKICAgICAvLyBPcHRpbWl6YXRpb24gMTogZmFzdCBjYXNlIGZvciBz
dHJpbmdzIG9mIGxlbmd0aCAxLgotICAgIGlmIChtYXRjaExlbmd0aCA9PSAxKQotICAgICAgICBy
ZXR1cm4gV1RGOjpyZXZlcnNlRmluZChjaGFyYWN0ZXJzMTYoKSwgbGVuZ3RoKCksIG1hdGNoU3Ry
aW5nLT5jaGFyYWN0ZXJzKClbMF0sIGluZGV4KTsKKyAgICBpZiAobWF0Y2hMZW5ndGggPT0gMSkg
eworICAgICAgICBpZiAoaXM4Qml0KCkgJiYgbWF0Y2hTdHJpbmctPmlzOEJpdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6cmV2ZXJzZUZpbmQoY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCksIG1h
dGNoU3RyaW5nLT5jaGFyYWN0ZXJzOCgpWzBdLCBpbmRleCk7CisgICAgICAgIHJldHVybiBXVEY6
OnJldmVyc2VGaW5kKGNoYXJhY3RlcnMoKSwgbGVuZ3RoKCksIG1hdGNoU3RyaW5nLT5jaGFyYWN0
ZXJzKClbMF0sIGluZGV4KTsKKyAgICB9CiAKICAgICAvLyBDaGVjayBpbmRleCAmIG1hdGNoTGVu
Z3RoIGFyZSBpbiByYW5nZS4KICAgICBpZiAobWF0Y2hMZW5ndGggPiBsZW5ndGgoKSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCShyZXZpc2lv
biAxMDAxNjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RGU3RyaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzg4LDggKzc4OCw4IEBAIHN0YXRpYyBib29sIGlzQ2hhcmFj
dGVyQWxsb3dlZEluQmFzZShVQ2gKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXRlbXBsYXRlIDx0
eXBlbmFtZSBJbnRlZ3JhbFR5cGU+Ci1zdGF0aWMgaW5saW5lIEludGVncmFsVHlwZSB0b0ludGVn
cmFsVHlwZShjb25zdCBVQ2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2ssIGludCBi
YXNlKQordGVtcGxhdGUgPHR5cGVuYW1lIEludGVncmFsVHlwZSwgdHlwZW5hbWUgQ2hhclR5cGU+
CitzdGF0aWMgaW5saW5lIEludGVncmFsVHlwZSB0b0ludGVncmFsVHlwZShjb25zdCBDaGFyVHlw
ZSogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2ssIGludCBiYXNlKQogewogICAgIHN0YXRp
YyBjb25zdCBJbnRlZ3JhbFR5cGUgaW50ZWdyYWxNYXggPSBudW1lcmljX2xpbWl0czxJbnRlZ3Jh
bFR5cGU+OjptYXgoKTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1NpZ25lZCA9IG51bWVyaWNf
bGltaXRzPEludGVncmFsVHlwZT46OmlzX3NpZ25lZDsKQEAgLTgyMyw3ICs4MjMsNyBAQCBzdGF0
aWMgaW5saW5lIEludGVncmFsVHlwZSB0b0ludGVncmFsVHlwCiAgICAgd2hpbGUgKGxlbmd0aCAm
JiBpc0NoYXJhY3RlckFsbG93ZWRJbkJhc2UoKmRhdGEsIGJhc2UpKSB7CiAgICAgICAgIGxlbmd0
aC0tOwogICAgICAgICBJbnRlZ3JhbFR5cGUgZGlnaXRWYWx1ZTsKLSAgICAgICAgVUNoYXIgYyA9
ICpkYXRhOworICAgICAgICBDaGFyVHlwZSBjID0gKmRhdGE7CiAgICAgICAgIGlmIChpc0FTQ0lJ
RGlnaXQoYykpCiAgICAgICAgICAgICBkaWdpdFZhbHVlID0gYyAtICcwJzsKICAgICAgICAgZWxz
ZSBpZiAoYyA+PSAnYScpCkBAIC04NjQsNyArODY0LDggQEAgYnllOgogICAgIHJldHVybiBpc09r
ID8gdmFsdWUgOiAwOwogfQogCi1zdGF0aWMgdW5zaWduZWQgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJ
bnRlZ2VyKGNvbnN0IFVDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQordGVtcGxhdGUgPHR5cGVu
YW1lIENoYXJUeXBlPgorc3RhdGljIHVuc2lnbmVkIGxlbmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdl
cihjb25zdCBDaGFyVHlwZSogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBzaXplX3QgaSA9
IDA7CiAKQEAgLTg4Nyw1NyArODg4LDEwOCBAQCBzdGF0aWMgdW5zaWduZWQgbGVuZ3RoT2ZDaGFy
YWN0ZXJzQXNJbnRlCiAgICAgcmV0dXJuIGk7CiB9CiAKK2ludCBjaGFyYWN0ZXJzVG9JbnRTdHJp
Y3QoY29uc3QgTENoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFzZSkK
K3sKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8aW50LCBMQ2hhcj4oZGF0YSwgbGVuZ3RoLCBv
aywgYmFzZSk7Cit9CisKIGludCBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoY29uc3QgVUNoYXIqIGRh
dGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFzZSkKIHsKLSAgICByZXR1cm4gdG9J
bnRlZ3JhbFR5cGU8aW50PihkYXRhLCBsZW5ndGgsIG9rLCBiYXNlKTsKKyAgICByZXR1cm4gdG9J
bnRlZ3JhbFR5cGU8aW50LCBVQ2hhcj4oZGF0YSwgbGVuZ3RoLCBvaywgYmFzZSk7Cit9CisKK3Vu
c2lnbmVkIGNoYXJhY3RlcnNUb1VJbnRTdHJpY3QoY29uc3QgTENoYXIqIGRhdGEsIHNpemVfdCBs
ZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFzZSkKK3sKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8
dW5zaWduZWQsIExDaGFyPihkYXRhLCBsZW5ndGgsIG9rLCBiYXNlKTsKIH0KIAogdW5zaWduZWQg
Y2hhcmFjdGVyc1RvVUludFN0cmljdChjb25zdCBVQ2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwg
Ym9vbCogb2ssIGludCBiYXNlKQogewotICAgIHJldHVybiB0b0ludGVncmFsVHlwZTx1bnNpZ25l
ZD4oZGF0YSwgbGVuZ3RoLCBvaywgYmFzZSk7CisgICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPHVu
c2lnbmVkLCBVQ2hhcj4oZGF0YSwgbGVuZ3RoLCBvaywgYmFzZSk7Cit9CisKK2ludDY0X3QgY2hh
cmFjdGVyc1RvSW50NjRTdHJpY3QoY29uc3QgTENoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJv
b2wqIG9rLCBpbnQgYmFzZSkKK3sKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8aW50NjRfdCwg
TENoYXI+KGRhdGEsIGxlbmd0aCwgb2ssIGJhc2UpOwogfQogCiBpbnQ2NF90IGNoYXJhY3RlcnNU
b0ludDY0U3RyaWN0KGNvbnN0IFVDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvaywg
aW50IGJhc2UpCiB7Ci0gICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPGludDY0X3Q+KGRhdGEsIGxl
bmd0aCwgb2ssIGJhc2UpOworICAgIHJldHVybiB0b0ludGVncmFsVHlwZTxpbnQ2NF90LCBVQ2hh
cj4oZGF0YSwgbGVuZ3RoLCBvaywgYmFzZSk7Cit9CisKK3VpbnQ2NF90IGNoYXJhY3RlcnNUb1VJ
bnQ2NFN0cmljdChjb25zdCBMQ2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2ssIGlu
dCBiYXNlKQoreworICAgIHJldHVybiB0b0ludGVncmFsVHlwZTx1aW50NjRfdCwgTENoYXI+KGRh
dGEsIGxlbmd0aCwgb2ssIGJhc2UpOwogfQogCiB1aW50NjRfdCBjaGFyYWN0ZXJzVG9VSW50NjRT
dHJpY3QoY29uc3QgVUNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFz
ZSkKIHsKLSAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8dWludDY0X3Q+KGRhdGEsIGxlbmd0aCwg
b2ssIGJhc2UpOworICAgIHJldHVybiB0b0ludGVncmFsVHlwZTx1aW50NjRfdCwgVUNoYXI+KGRh
dGEsIGxlbmd0aCwgb2ssIGJhc2UpOworfQorCitpbnRwdHJfdCBjaGFyYWN0ZXJzVG9JbnRQdHJT
dHJpY3QoY29uc3QgTENoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBpbnQgYmFz
ZSkKK3sKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8aW50cHRyX3QsIExDaGFyPihkYXRhLCBs
ZW5ndGgsIG9rLCBiYXNlKTsKIH0KIAogaW50cHRyX3QgY2hhcmFjdGVyc1RvSW50UHRyU3RyaWN0
KGNvbnN0IFVDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvaywgaW50IGJhc2UpCiB7
Ci0gICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPGludHB0cl90PihkYXRhLCBsZW5ndGgsIG9rLCBi
YXNlKTsKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8aW50cHRyX3QsIFVDaGFyPihkYXRhLCBs
ZW5ndGgsIG9rLCBiYXNlKTsKK30KKworaW50IGNoYXJhY3RlcnNUb0ludChjb25zdCBMQ2hhciog
ZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2spCit7CisgICAgcmV0dXJuIHRvSW50ZWdyYWxU
eXBlPGludCwgTENoYXI+KGRhdGEsIGxlbmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdlcjxMQ2hhcj4o
ZGF0YSwgbGVuZ3RoKSwgb2ssIDEwKTsKIH0KIAogaW50IGNoYXJhY3RlcnNUb0ludChjb25zdCBV
Q2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2spCiB7Ci0gICAgcmV0dXJuIHRvSW50
ZWdyYWxUeXBlPGludD4oZGF0YSwgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJbnRlZ2VyKGRhdGEsIGxl
bmd0aCksIG9rLCAxMCk7CisgICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPGludCwgVUNoYXI+KGRh
dGEsIGxlbmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdlcihkYXRhLCBsZW5ndGgpLCBvaywgMTApOwor
fQorCit1bnNpZ25lZCBjaGFyYWN0ZXJzVG9VSW50KGNvbnN0IExDaGFyKiBkYXRhLCBzaXplX3Qg
bGVuZ3RoLCBib29sKiBvaykKK3sKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8dW5zaWduZWQs
IExDaGFyPihkYXRhLCBsZW5ndGhPZkNoYXJhY3RlcnNBc0ludGVnZXI8TENoYXI+KGRhdGEsIGxl
bmd0aCksIG9rLCAxMCk7CiB9CiAKIHVuc2lnbmVkIGNoYXJhY3RlcnNUb1VJbnQoY29uc3QgVUNo
YXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rKQogewotICAgIHJldHVybiB0b0ludGVn
cmFsVHlwZTx1bnNpZ25lZD4oZGF0YSwgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJbnRlZ2VyKGRhdGEs
IGxlbmd0aCksIG9rLCAxMCk7CisgICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBlPHVuc2lnbmVkLCBV
Q2hhcj4oZGF0YSwgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJbnRlZ2VyPFVDaGFyPihkYXRhLCBsZW5n
dGgpLCBvaywgMTApOworfQorCitpbnQ2NF90IGNoYXJhY3RlcnNUb0ludDY0KGNvbnN0IExDaGFy
KiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvaykKK3sKKyAgICByZXR1cm4gdG9JbnRlZ3Jh
bFR5cGU8aW50NjRfdCwgTENoYXI+KGRhdGEsIGxlbmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdlcjxM
Q2hhcj4oZGF0YSwgbGVuZ3RoKSwgb2ssIDEwKTsKIH0KIAogaW50NjRfdCBjaGFyYWN0ZXJzVG9J
bnQ2NChjb25zdCBVQ2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2spCiB7Ci0gICAg
cmV0dXJuIHRvSW50ZWdyYWxUeXBlPGludDY0X3Q+KGRhdGEsIGxlbmd0aE9mQ2hhcmFjdGVyc0Fz
SW50ZWdlcihkYXRhLCBsZW5ndGgpLCBvaywgMTApOworICAgIHJldHVybiB0b0ludGVncmFsVHlw
ZTxpbnQ2NF90LCBVQ2hhcj4oZGF0YSwgbGVuZ3RoT2ZDaGFyYWN0ZXJzQXNJbnRlZ2VyPFVDaGFy
PihkYXRhLCBsZW5ndGgpLCBvaywgMTApOworfQorCit1aW50NjRfdCBjaGFyYWN0ZXJzVG9VSW50
NjQoY29uc3QgTENoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rKQoreworICAgIHJl
dHVybiB0b0ludGVncmFsVHlwZTx1aW50NjRfdCwgTENoYXI+KGRhdGEsIGxlbmd0aE9mQ2hhcmFj
dGVyc0FzSW50ZWdlcjxMQ2hhcj4oZGF0YSwgbGVuZ3RoKSwgb2ssIDEwKTsKIH0KIAogdWludDY0
X3QgY2hhcmFjdGVyc1RvVUludDY0KGNvbnN0IFVDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBi
b29sKiBvaykKIHsKLSAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8dWludDY0X3Q+KGRhdGEsIGxl
bmd0aE9mQ2hhcmFjdGVyc0FzSW50ZWdlcihkYXRhLCBsZW5ndGgpLCBvaywgMTApOworICAgIHJl
dHVybiB0b0ludGVncmFsVHlwZTx1aW50NjRfdCwgVUNoYXI+KGRhdGEsIGxlbmd0aE9mQ2hhcmFj
dGVyc0FzSW50ZWdlcjxVQ2hhcj4oZGF0YSwgbGVuZ3RoKSwgb2ssIDEwKTsKK30KKworaW50cHRy
X3QgY2hhcmFjdGVyc1RvSW50UHRyKGNvbnN0IExDaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBi
b29sKiBvaykKK3sKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8aW50cHRyX3QsIExDaGFyPihk
YXRhLCBsZW5ndGhPZkNoYXJhY3RlcnNBc0ludGVnZXI8TENoYXI+KGRhdGEsIGxlbmd0aCksIG9r
LCAxMCk7CiB9CiAKIGludHB0cl90IGNoYXJhY3RlcnNUb0ludFB0cihjb25zdCBVQ2hhciogZGF0
YSwgc2l6ZV90IGxlbmd0aCwgYm9vbCogb2spCiB7Ci0gICAgcmV0dXJuIHRvSW50ZWdyYWxUeXBl
PGludHB0cl90PihkYXRhLCBsZW5ndGhPZkNoYXJhY3RlcnNBc0ludGVnZXIoZGF0YSwgbGVuZ3Ro
KSwgb2ssIDEwKTsKKyAgICByZXR1cm4gdG9JbnRlZ3JhbFR5cGU8aW50cHRyX3QsIFVDaGFyPihk
YXRhLCBsZW5ndGhPZkNoYXJhY3RlcnNBc0ludGVnZXI8VUNoYXI+KGRhdGEsIGxlbmd0aCksIG9r
LCAxMCk7CiB9CiAKLWRvdWJsZSBjaGFyYWN0ZXJzVG9Eb3VibGUoY29uc3QgVUNoYXIqIGRhdGEs
IHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBib29sKiBkaWRSZWFkTnVtYmVyKQordGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgorc3RhdGljIGlubGluZSBkb3VibGUgdG9Eb3VibGVUeXBlKGNv
bnN0IENoYXJUeXBlKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvaywgYm9vbCogZGlkUmVh
ZE51bWJlcikKIHsKICAgICBpZiAoIWxlbmd0aCkgewogICAgICAgICBpZiAob2spCkBAIC05NjEs
MTAgKzEwMTMsMjYgQEAgZG91YmxlIGNoYXJhY3RlcnNUb0RvdWJsZShjb25zdCBVQ2hhciogZAog
ICAgIHJldHVybiB2YWw7CiB9CiAKK2RvdWJsZSBjaGFyYWN0ZXJzVG9Eb3VibGUoY29uc3QgTENo
YXIqIGRhdGEsIHNpemVfdCBsZW5ndGgsIGJvb2wqIG9rLCBib29sKiBkaWRSZWFkTnVtYmVyKQor
eworICAgIHJldHVybiB0b0RvdWJsZVR5cGU8TENoYXI+KGRhdGEsIGxlbmd0aCwgb2ssIGRpZFJl
YWROdW1iZXIpOworfQorCitkb3VibGUgY2hhcmFjdGVyc1RvRG91YmxlKGNvbnN0IFVDaGFyKiBk
YXRhLCBzaXplX3QgbGVuZ3RoLCBib29sKiBvaywgYm9vbCogZGlkUmVhZE51bWJlcikKK3sKKyAg
ICByZXR1cm4gdG9Eb3VibGVUeXBlPFVDaGFyPihkYXRhLCBsZW5ndGgsIG9rLCBkaWRSZWFkTnVt
YmVyKTsKK30KKworZmxvYXQgY2hhcmFjdGVyc1RvRmxvYXQoY29uc3QgTENoYXIqIGRhdGEsIHNp
emVfdCBsZW5ndGgsIGJvb2wqIG9rLCBib29sKiBkaWRSZWFkTnVtYmVyKQoreworICAgIC8vIEZJ
WE1FOiBUaGlzIHdpbGwgcmV0dXJuIG9rIGV2ZW4gd2hlbiB0aGUgc3RyaW5nIGZpdHMgaW50byBh
IGRvdWJsZSBidXQgbm90IGEgZmxvYXQuCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih0
b0RvdWJsZVR5cGU8TENoYXI+KGRhdGEsIGxlbmd0aCwgb2ssIGRpZFJlYWROdW1iZXIpKTsKK30K
KwogZmxvYXQgY2hhcmFjdGVyc1RvRmxvYXQoY29uc3QgVUNoYXIqIGRhdGEsIHNpemVfdCBsZW5n
dGgsIGJvb2wqIG9rLCBib29sKiBkaWRSZWFkTnVtYmVyKQogewogICAgIC8vIEZJWE1FOiBUaGlz
IHdpbGwgcmV0dXJuIG9rIGV2ZW4gd2hlbiB0aGUgc3RyaW5nIGZpdHMgaW50byBhIGRvdWJsZSBi
dXQgbm90IGEgZmxvYXQuCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihjaGFyYWN0ZXJz
VG9Eb3VibGUoZGF0YSwgbGVuZ3RoLCBvaywgZGlkUmVhZE51bWJlcikpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxmbG9hdD4odG9Eb3VibGVUeXBlPFVDaGFyPihkYXRhLCBsZW5ndGgsIG9rLCBk
aWRSZWFkTnVtYmVyKSk7CiB9CiAKIGNvbnN0IFN0cmluZyYgZW1wdHlTdHJpbmcoKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuaAkocmV2aXNpb24gMTAw
MTY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSwxOSArNTUsMzEgQEAgc3RydWN0IFN0cmluZ0hhc2g7CiAKIGJvb2wg
Y2hhcmFjdGVyc0FyZUFsbEFTQ0lJKGNvbnN0IFVDaGFyKiwgc2l6ZV90KTsKIGJvb2wgY2hhcmFj
dGVyc0FyZUFsbExhdGluMShjb25zdCBVQ2hhciosIHNpemVfdCk7CitXVEZfRVhQT1JUX1BSSVZB
VEUgaW50IGNoYXJhY3RlcnNUb0ludFN0cmljdChjb25zdCBMQ2hhciosIHNpemVfdCwgYm9vbCog
b2sgPSAwLCBpbnQgYmFzZSA9IDEwKTsKIFdURl9FWFBPUlRfUFJJVkFURSBpbnQgY2hhcmFjdGVy
c1RvSW50U3RyaWN0KGNvbnN0IFVDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDAsIGludCBiYXNl
ID0gMTApOworV1RGX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIGNoYXJhY3RlcnNUb1VJbnRTdHJp
Y3QoY29uc3QgTENoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gMCwgaW50IGJhc2UgPSAxMCk7CiBX
VEZfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgY2hhcmFjdGVyc1RvVUludFN0cmljdChjb25zdCBV
Q2hhciosIHNpemVfdCwgYm9vbCogb2sgPSAwLCBpbnQgYmFzZSA9IDEwKTsKK2ludDY0X3QgY2hh
cmFjdGVyc1RvSW50NjRTdHJpY3QoY29uc3QgTENoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gMCwg
aW50IGJhc2UgPSAxMCk7CiBpbnQ2NF90IGNoYXJhY3RlcnNUb0ludDY0U3RyaWN0KGNvbnN0IFVD
aGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDAsIGludCBiYXNlID0gMTApOwordWludDY0X3QgY2hh
cmFjdGVyc1RvVUludDY0U3RyaWN0KGNvbnN0IExDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDAs
IGludCBiYXNlID0gMTApOwogdWludDY0X3QgY2hhcmFjdGVyc1RvVUludDY0U3RyaWN0KGNvbnN0
IFVDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDAsIGludCBiYXNlID0gMTApOworaW50cHRyX3Qg
Y2hhcmFjdGVyc1RvSW50UHRyU3RyaWN0KGNvbnN0IExDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9
IDAsIGludCBiYXNlID0gMTApOwogaW50cHRyX3QgY2hhcmFjdGVyc1RvSW50UHRyU3RyaWN0KGNv
bnN0IFVDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDAsIGludCBiYXNlID0gMTApOwogCitpbnQg
Y2hhcmFjdGVyc1RvSW50KGNvbnN0IExDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDApOyAvLyBp
Z25vcmVzIHRyYWlsaW5nIGdhcmJhZ2UKIGludCBjaGFyYWN0ZXJzVG9JbnQoY29uc3QgVUNoYXIq
LCBzaXplX3QsIGJvb2wqIG9rID0gMCk7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFnZQordW5z
aWduZWQgY2hhcmFjdGVyc1RvVUludChjb25zdCBMQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSAw
KTsgLy8gaWdub3JlcyB0cmFpbGluZyBnYXJiYWdlCiB1bnNpZ25lZCBjaGFyYWN0ZXJzVG9VSW50
KGNvbnN0IFVDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IDApOyAvLyBpZ25vcmVzIHRyYWlsaW5n
IGdhcmJhZ2UKK2ludDY0X3QgY2hhcmFjdGVyc1RvSW50NjQoY29uc3QgTENoYXIqLCBzaXplX3Qs
IGJvb2wqIG9rID0gMCk7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFnZQogaW50NjRfdCBjaGFy
YWN0ZXJzVG9JbnQ2NChjb25zdCBVQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSAwKTsgLy8gaWdu
b3JlcyB0cmFpbGluZyBnYXJiYWdlCit1aW50NjRfdCBjaGFyYWN0ZXJzVG9VSW50NjQoY29uc3Qg
TENoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gMCk7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFn
ZQogdWludDY0X3QgY2hhcmFjdGVyc1RvVUludDY0KGNvbnN0IFVDaGFyKiwgc2l6ZV90LCBib29s
KiBvayA9IDApOyAvLyBpZ25vcmVzIHRyYWlsaW5nIGdhcmJhZ2UKK2ludHB0cl90IGNoYXJhY3Rl
cnNUb0ludFB0cihjb25zdCBMQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSAwKTsgLy8gaWdub3Jl
cyB0cmFpbGluZyBnYXJiYWdlCiBpbnRwdHJfdCBjaGFyYWN0ZXJzVG9JbnRQdHIoY29uc3QgVUNo
YXIqLCBzaXplX3QsIGJvb2wqIG9rID0gMCk7IC8vIGlnbm9yZXMgdHJhaWxpbmcgZ2FyYmFnZQog
CitXVEZfRVhQT1JUX1BSSVZBVEUgZG91YmxlIGNoYXJhY3RlcnNUb0RvdWJsZShjb25zdCBMQ2hh
ciosIHNpemVfdCwgYm9vbCogb2sgPSAwLCBib29sKiBkaWRSZWFkTnVtYmVyID0gMCk7CiBXVEZf
RVhQT1JUX1BSSVZBVEUgZG91YmxlIGNoYXJhY3RlcnNUb0RvdWJsZShjb25zdCBVQ2hhciosIHNp
emVfdCwgYm9vbCogb2sgPSAwLCBib29sKiBkaWRSZWFkTnVtYmVyID0gMCk7CitmbG9hdCBjaGFy
YWN0ZXJzVG9GbG9hdChjb25zdCBMQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSAwLCBib29sKiBk
aWRSZWFkTnVtYmVyID0gMCk7CiBmbG9hdCBjaGFyYWN0ZXJzVG9GbG9hdChjb25zdCBVQ2hhcios
IHNpemVfdCwgYm9vbCogb2sgPSAwLCBib29sKiBkaWRSZWFkTnVtYmVyID0gMCk7CiAKIHRlbXBs
YXRlPGJvb2wgaXNTcGVjaWFsQ2hhcmFjdGVyKFVDaGFyKT4gYm9vbCBpc0FsbFNwZWNpYWxDaGFy
YWN0ZXJzKGNvbnN0IFVDaGFyKiwgc2l6ZV90KTsKQEAgLTQwOSw2ICs0MjEsMTYgQEAgaW5saW5l
IGJvb2wgY2hhcmFjdGVyc0FyZUFsbExhdGluMShjb25zdAogCiBXVEZfRVhQT1JUX1BSSVZBVEUg
aW50IGNvZGVQb2ludENvbXBhcmUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAKK2lu
bGluZSBzaXplX3QgZmluZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3Ro
LCBMQ2hhciBtYXRjaENoYXJhY3RlciwgdW5zaWduZWQgaW5kZXggPSAwKQoreworICAgIHdoaWxl
IChpbmRleCA8IGxlbmd0aCkgeworICAgICAgICBpZiAoY2hhcmFjdGVyc1tpbmRleF0gPT0gbWF0
Y2hDaGFyYWN0ZXIpCisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgICsraW5kZXg7
CisgICAgfQorICAgIHJldHVybiBub3RGb3VuZDsKK30KKwogaW5saW5lIHNpemVfdCBmaW5kKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyIG1hdGNoQ2hhcmFj
dGVyLCB1bnNpZ25lZCBpbmRleCA9IDApCiB7CiAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7
CkBAIC00MTksNiArNDQxLDE2IEBAIGlubGluZSBzaXplX3QgZmluZChjb25zdCBVQ2hhciogY2hh
cmFjdGUKICAgICByZXR1cm4gbm90Rm91bmQ7CiB9CiAKK2lubGluZSBzaXplX3QgZmluZChjb25z
dCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJNYXRjaEZ1bmN0
aW9uUHRyIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4ID0gMCkKK3sKKyAgICB3aGlsZSAo
aW5kZXggPCBsZW5ndGgpIHsKKyAgICAgICAgaWYgKG1hdGNoRnVuY3Rpb24oY2hhcmFjdGVyc1tp
bmRleF0pKQorICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICArK2luZGV4OworICAg
IH0KKyAgICByZXR1cm4gbm90Rm91bmQ7Cit9CisKIGlubGluZSBzaXplX3QgZmluZChjb25zdCBV
Q2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDaGFyYWN0ZXJNYXRjaEZ1bmN0aW9u
UHRyIG1hdGNoRnVuY3Rpb24sIHVuc2lnbmVkIGluZGV4ID0gMCkKIHsKICAgICB3aGlsZSAoaW5k
ZXggPCBsZW5ndGgpIHsKQEAgLTQyOSw2ICs0NjEsMTkgQEAgaW5saW5lIHNpemVfdCBmaW5kKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZQogICAgIHJldHVybiBub3RGb3VuZDsKIH0KIAoraW5saW5lIHNp
emVfdCByZXZlcnNlRmluZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3Ro
LCBMQ2hhciBtYXRjaENoYXJhY3RlciwgdW5zaWduZWQgaW5kZXggPSBVSU5UX01BWCkKK3sKKyAg
ICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5vdEZvdW5kOworICAgIGlmIChpbmRleCA+
PSBsZW5ndGgpCisgICAgICAgIGluZGV4ID0gbGVuZ3RoIC0gMTsKKyAgICB3aGlsZSAoY2hhcmFj
dGVyc1tpbmRleF0gIT0gbWF0Y2hDaGFyYWN0ZXIpIHsKKyAgICAgICAgaWYgKCFpbmRleC0tKQor
ICAgICAgICAgICAgcmV0dXJuIG5vdEZvdW5kOworICAgIH0KKyAgICByZXR1cm4gaW5kZXg7Cit9
CisKIGlubGluZSBzaXplX3QgcmV2ZXJzZUZpbmQoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCwgVUNoYXIgbWF0Y2hDaGFyYWN0ZXIsIHVuc2lnbmVkIGluZGV4ID0gVUlO
VF9NQVgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCg==
</data>
<flag name="review"
          id="113779"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>