<?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>145452</bug_id>
          
          <creation_ts>2015-05-28 19:13:31 -0700</creation_ts>
          <short_desc>Non-speculative Branch should be fast in the FTL</short_desc>
          <delta_ts>2015-05-29 13:27:12 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1098052</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-28 19:13:31 -0700</bug_when>
    <thetext>There is just no excuse for making C function calls for a branch, since the inline code is probably about the same size as a callsite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098053</commentid>
    <comment_count>1</comment_count>
      <attachid>253890</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-28 19:19:04 -0700</bug_when>
    <thetext>Created attachment 253890
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098118</commentid>
    <comment_count>2</comment_count>
      <attachid>253890</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-29 08:43:12 -0700</bug_when>
    <thetext>Comment on attachment 253890
the patch

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

r=me

Very nice, I&apos;ve definitely seen operationConvertJSValueToBoolean sitting around ~2% in various profiles, including Speedometer.

&gt; LayoutTests/ChangeLog:11
&gt; +        * js/regress/cse-new-array-buffer-expected.txt: Added.
&gt; +        * js/regress/cse-new-array-buffer.html: Added.
&gt; +        * js/regress/cse-new-array-expected.txt: Added.
&gt; +        * js/regress/cse-new-array.html: Added.

These files don&apos;t belong in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098136</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-29 11:10:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 253890 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253890&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; Very nice, I&apos;ve definitely seen operationConvertJSValueToBoolean sitting
&gt; around ~2% in various profiles, including Speedometer.
&gt; 
&gt; &gt; LayoutTests/ChangeLog:11
&gt; &gt; +        * js/regress/cse-new-array-buffer-expected.txt: Added.
&gt; &gt; +        * js/regress/cse-new-array-buffer.html: Added.
&gt; &gt; +        * js/regress/cse-new-array-expected.txt: Added.
&gt; &gt; +        * js/regress/cse-new-array.html: Added.
&gt; 
&gt; These files don&apos;t belong in this patch.

That&apos;s true.  Do you really want me to land these separately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098162</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-29 13:27:12 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/185002</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253890</attachid>
            <date>2015-05-28 19:19:04 -0700</date>
            <delta_ts>2015-05-29 08:43:12 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>19352</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0OTc0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE1LTA1LTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Tm9uLXNwZWN1bGF0aXZlIEJyYW5jaCBzaG91bGQgYmUgZmFzdCBpbiB0aGUgRlRMCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU0NTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIElubGluZXMg
dGhlIGNvZGUgZm9yIGNvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuIGludG8gdGhlIEZUTC4gVGhpcyBh
bHNvIGluY2x1ZGVzIHNvbWUgb3RoZXIKKyAgICAgICAgY2xlYW4tdXBzIHRoYXQgSSBmb3VuZCBh
bG9uZyB0aGUgd2F5LgorICAgICAgICAKKyAgICAgICAgSSBmb3VuZCB0aGlzIGJ5IGxvb2tpbmcg
YXQgdGhlIGhvdHRlc3QgZnVuY3Rpb25zIGluIERlbHRhQmx1ZS4gRGVzcGl0ZSBoYXZpbmcgc28g
bWFueQorICAgICAgICBCcmFuY2ggc3BlY2lhbGl6YXRpb25zLCBhcHBhcmVudGx5IHRoZXJlIHdh
cyBzdGlsbCBhIGhvdCBvbmUgdGhhdCB3ZSBtaXNzZWQgdGhhdCB3YXMgZ29pbmcKKyAgICAgICAg
ZG93biB0aGUgdW50eXBlZCBwYXRoLiBJdCB3YXMgZWl0aGVyIEludDMyIG9yIE90aGVyLiBNYXli
ZSB3ZSBjb3VsZCBzcGVjaWFsaXplIGZvciB0aGF0CisgICAgICAgIGNvbWJvLCBidXQgaXQgbWFr
ZXMgc28gbXVjaCBzZW5zZSB0byBqdXN0IG1ha2UgYWxsIG9mIHRoaXMgbm9uc2Vuc2UgZmFzdC4K
KworICAgICAgICAqIGRmZy9ERkdXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNlOjpoYW5kbGUpOiBOZWVkIHRv
IHdhdGNoIHRoZSBtYXNxdWVyYWRlcyB3YXRjaHBvaW50IG9uIFVudHlwZWRVc2U6IGZvcm1zIG9m
IEJyYW5jaCBub3cuCisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Ym9vbGlmeSk6IFRoZSBhY3R1YWwgZml4Lgor
ICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjppbnQ1MlRvU3RyaWN0SW50NTIpOgor
ICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjppc0ludDMyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpMb3dlckRGR1RvTExWTTo6aXNOb3RJbnQzMik6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OnVuYm94SW50MzIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnRvQm9vbGVhbik6IFN5bWJvbCBpcyBhbHdh
eXMgdHJ1ZS4KKyAgICAgICAgKEpTQzo6SlNDZWxsOjpwdXJlVG9Cb29sZWFuKTogU3ltYm9sIGlz
IGFsd2F5cyB0cnVlLgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAo
SlNDOjpKU1N0cmluZzo6Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmc6OnRvTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvQm9vbGVhbik6IERlbGV0
ZWQuIFRoaXMgaXMgYSB0aW55IG1ldGhvZC4gSXQgZG9lc24ndCBuZWVkIHRvIGJlIG91dC1vZi1s
aW5lLgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmc6Omxlbmd0aCk6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjp0b0Jvb2xlYW4pOiBUaGlzIG1l
dGhvZCBzaG91bGRiZSBpbmxpbmUuCisgICAgICAgICogcnVudGltZS9TeW1ib2wuY3BwOgorICAg
ICAgICAoSlNDOjpTeW1ib2w6OnRvUHJpbWl0aXZlKToKKyAgICAgICAgKEpTQzo6U3ltYm9sOjpn
ZXRQcmltaXRpdmVOdW1iZXIpOgorICAgICAgICAoSlNDOjpTeW1ib2w6OnRvQm9vbGVhbik6IERl
bGV0ZWQuIEEgU3ltYm9sIGlzIGFsd2F5cyB0cnVlLCBzbyB3ZSBkb24ndCBuZWVkIGEgbWV0aG9k
IGZvciB0aGlzLgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDUtMjggIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgbW96aWxsYS9qczFf
NS9BcnJheS9yZWdyZXNzLTE1NDMzOC5qcyB0ZXN0IGNhdXNlcyBBUk0gMzIgYml0IGlPUyBkZXZp
Y2VzIHRvIHJ1biBvdXQgb2YgbWVtb3J5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV2F0Y2hwb2ludENvbGxlY3Rpb25QaGFzZS5jcHAJKHJldmlz
aW9uIDE4NDkxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV2F0Y2hwb2ludENv
bGxlY3Rpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDggKzg3LDE0IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBMb2dpY2FsTm90OgogICAgICAgICBjYXNl
IEJyYW5jaDoKLSAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBP
YmplY3RPck90aGVyVXNlKQorICAgICAgICAgICAgc3dpdGNoIChtX25vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSkgeworICAgICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgorICAgICAgICAg
ICAgY2FzZSBVbnR5cGVkVXNlOgogICAgICAgICAgICAgICAgIGhhbmRsZU1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5ld0FycmF5OgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE4
NDkyMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MTI0LDkgKzYxMjQsOSBAQCBwcml2YXRlOgogICAgIHsKICAg
ICAgICAgc3dpdGNoIChlZGdlLnVzZUtpbmQoKSkgewogICAgICAgICBjYXNlIEJvb2xlYW5Vc2U6
Ci0gICAgICAgICAgICByZXR1cm4gbG93Qm9vbGVhbihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBsb3dCb29sZWFuKGVkZ2UpOwogICAgICAgICBjYXNlIEludDMyVXNlOgot
ICAgICAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdFplcm8zMihsb3dJbnQzMihtX25vZGUtPmNoaWxk
MSgpKSk7CisgICAgICAgICAgICByZXR1cm4gbV9vdXQubm90WmVybzMyKGxvd0ludDMyKGVkZ2Up
KTsKICAgICAgICAgY2FzZSBEb3VibGVSZXBVc2U6CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQu
ZG91YmxlTm90RXF1YWwobG93RG91YmxlKGVkZ2UpLCBtX291dC5kb3VibGVaZXJvKTsKICAgICAg
ICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgpAQCAtNjEzNSwzMiArNjEzNSwxMDggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICAgICAgZWRnZSwgQ2VsbENhc2VTcGVjdWxhdGVzT2JqZWN0LCBT
cGVjdWxhdGVOdWxsT3JVbmRlZmluZWQsCiAgICAgICAgICAgICAgICAgICAgIE1hbnVhbE9wZXJh
bmRTcGVjdWxhdGlvbikpOwogICAgICAgICBjYXNlIFN0cmluZ1VzZTogewotICAgICAgICAgICAg
TFZhbHVlIHN0cmluZ1ZhbHVlID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgTFZhbHVlIHN0cmluZ1ZhbHVlID0gbG93U3RyaW5nKGVkZ2UpOwogICAgICAgICAgICAg
TFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0cmluZ1ZhbHVlLCBtX2hl
YXBzLkpTU3RyaW5nX2xlbmd0aCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwo
bGVuZ3RoLCBtX291dC5pbnQzMlplcm8pOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVW50eXBl
ZFVzZTogewotICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWRnZSk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJCb29saWZ5IHVudHlwZWQgc2xvdyBjYXNlIikpOwotICAgICAgICAgICAg
TEJhc2ljQmxvY2sgZmFzdENhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkJvb2xpZnkgdW50
eXBlZCBmYXN0IGNhc2UiKSk7CisgICAgICAgICAgICAvLyBJbXBsZW1lbnRzIHRoZSBmb2xsb3dp
bmcgY29udHJvbCBmbG93IHN0cnVjdHVyZToKKyAgICAgICAgICAgIC8vIGlmICh2YWx1ZSBpcyBj
ZWxsKSB7CisgICAgICAgICAgICAvLyAgICAgaWYgKHZhbHVlIGlzIHN0cmluZykKKyAgICAgICAg
ICAgIC8vICAgICAgICAgcmVzdWx0ID0gISF2YWx1ZS0+bGVuZ3RoCisgICAgICAgICAgICAvLyAg
ICAgZWxzZSB7CisgICAgICAgICAgICAvLyAgICAgICAgIGRvIGV2aWwgdGhpbmdzIGZvciBtYXNx
dWVyYWRlcy1hcy11bmRlZmluZWQKKyAgICAgICAgICAgIC8vICAgICAgICAgcmVzdWx0ID0gdHJ1
ZQorICAgICAgICAgICAgLy8gICAgIH0KKyAgICAgICAgICAgIC8vIH0gZWxzZSBpZiAodmFsdWUg
aXMgaW50MzIpIHsKKyAgICAgICAgICAgIC8vICAgICByZXN1bHQgPSAhIXVuYm94SW50MzIodmFs
dWUpCisgICAgICAgICAgICAvLyB9IGVsc2UgaWYgKHZhbHVlIGlzIG51bWJlcikgeworICAgICAg
ICAgICAgLy8gICAgIHJlc3VsdCA9ICEhdW5ib3hEb3VibGUodmFsdWUpCisgICAgICAgICAgICAv
LyB9IGVsc2UgeworICAgICAgICAgICAgLy8gICAgIHJlc3VsdCA9IHZhbHVlID09IGpzVHJ1ZQor
ICAgICAgICAgICAgLy8gfQorICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBj
ZWxsQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQm9vbGlmeSB1bnR5cGVkIGNlbGwgY2Fz
ZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHN0cmluZ0Nhc2UgPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkJvb2xpZnkgdW50eXBlZCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgICAgIExC
YXNpY0Jsb2NrIG5vdFN0cmluZ0Nhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkJvb2xpZnkg
dW50eXBlZCBub3Qgc3RyaW5nIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RD
ZWxsQ2FzZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQm9vbGlmeSB1bnR5cGVkIG5vdCBjZWxs
IGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBpbnQzMkNhc2UgPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIkJvb2xpZnkgdW50eXBlZCBpbnQzMiBjYXNlIikpOworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbm90SW50MzJDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJCb29saWZ5
IHVudHlwZWQgbm90IGludDMyIGNhc2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBkb3Vi
bGVDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJCb29saWZ5IHVudHlwZWQgZG91YmxlIGNh
c2UiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBub3REb3VibGVDYXNlID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJCb29saWZ5IHVudHlwZWQgbm90IGRvdWJsZSBjYXNlIikpOwogICAgICAg
ICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJC
b29saWZ5IHVudHlwZWQgY29udGludWF0aW9uIikpOwogICAgICAgICAgICAgCisgICAgICAgICAg
ICBWZWN0b3I8VmFsdWVGcm9tQmxvY2s+IHJlc3VsdHM7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaChpc0NlbGwodmFsdWUsIHByb3ZlblR5cGUoZWRnZSkpLCB1bnN1cmUo
Y2VsbENhc2UpLCB1bnN1cmUobm90Q2VsbENhc2UpKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhjZWxsQ2FzZSwgc3RyaW5n
Q2FzZSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgaXNTdHJp
bmcodmFsdWUsIHByb3ZlblR5cGUoZWRnZSkgJiBTcGVjQ2VsbCksCisgICAgICAgICAgICAgICAg
dW5zdXJlKHN0cmluZ0Nhc2UpLCB1bnN1cmUobm90U3RyaW5nQ2FzZSkpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzdHJpbmdDYXNlLCBub3RTdHJpbmdDYXNlKTsK
KyAgICAgICAgICAgIExWYWx1ZSBub25FbXB0eVN0cmluZyA9IG1fb3V0Lm5vdFplcm8zMigKKyAg
ICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZSh2YWx1ZSwgbV9oZWFwcy5KU1N0
cmluZ19sZW5ndGgpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihu
b25FbXB0eVN0cmluZykpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RTdHJpbmdDYXNlLCBu
b3RDZWxsQ2FzZSk7CisgICAgICAgICAgICBMVmFsdWUgaXNUcnV0aHlPYmplY3Q7CisgICAgICAg
ICAgICBpZiAobWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRJc1N0aWxsVmFsaWQoKSkK
KyAgICAgICAgICAgICAgICBpc1RydXRoeU9iamVjdCA9IG1fb3V0LmJvb2xlYW5UcnVlOworICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbWFzcXVlcmFkZXND
YXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJCb29saWZ5IHVudHlwZWQgbWFzcXVlcmFkZXMg
Y2FzZSIpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVu
ZChtX291dC5hbmNob3IobV9vdXQuYm9vbGVhbkZhbHNlKSk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgICAgICBtX291dC50
ZXN0SXNaZXJvOCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4KHZhbHVlLCBt
X2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50OChNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSksCisgICAgICAgICAgICAgICAg
ICAgIHVzdWFsbHkoY29udGludWF0aW9uKSwgcmFyZWx5KG1hc3F1ZXJhZGVzQ2FzZSkpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1hc3F1ZXJhZGVz
Q2FzZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaXNUcnV0aHlPYmplY3Qg
PSBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIo
bV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwKKyAgICAg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0cihsb2FkU3RydWN0dXJlKHZhbHVlKSwgbV9oZWFw
cy5TdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy
ZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoaXNUcnV0aHlPYmplY3QpKTsKKyAgICAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9v
dXQuYXBwZW5kVG8obm90Q2VsbENhc2UsIGludDMyQ2FzZSk7CisgICAgICAgICAgICBtX291dC5i
cmFuY2goCisgICAgICAgICAgICAgICAgaXNJbnQzMih2YWx1ZSwgcHJvdmVuVHlwZShlZGdlKSAm
IH5TcGVjQ2VsbCksCisgICAgICAgICAgICAgICAgdW5zdXJlKGludDMyQ2FzZSksIHVuc3VyZShu
b3RJbnQzMkNhc2UpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
aW50MzJDYXNlLCBub3RJbnQzMkNhc2UpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKG1fb3V0Lm5vdFplcm8zMih1bmJveEludDMyKHZhbHVlKSkpKTsKKyAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8obm90SW50MzJDYXNlLCBkb3VibGVDYXNlKTsKICAgICAgICAgICAgIG1f
b3V0LmJyYW5jaCgKLSAgICAgICAgICAgICAgICBpc05vdEJvb2xlYW4odmFsdWUsIHByb3ZlblR5
cGUobV9ub2RlLT5jaGlsZDEoKSkpLAotICAgICAgICAgICAgICAgIHJhcmVseShzbG93Q2FzZSks
IHVzdWFsbHkoZmFzdENhc2UpKTsKKyAgICAgICAgICAgICAgICBpc051bWJlcih2YWx1ZSwgcHJv
dmVuVHlwZShlZGdlKSAmIH5TcGVjQ2VsbCksCisgICAgICAgICAgICAgICAgdW5zdXJlKGRvdWJs
ZUNhc2UpLCB1bnN1cmUobm90RG91YmxlQ2FzZSkpOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RDYXNlLCBzbG93Q2Fz
ZSk7Ci0gICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9y
KHVuYm94Qm9vbGVhbih2YWx1ZSkpOworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG91Ymxl
Q2FzZSwgbm90RG91YmxlQ2FzZSk7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgZG91YmxlTm90
RXF1YWwoKSByZWFsbHkgbWVhbnMgbm90LWVxdWFsLWFuZC1vcmRlcmVkLiBJdCB3aWxsIHJldHVy
biBmYWxzZQorICAgICAgICAgICAgLy8gaWYgdmFsdWUgaXMgTmFOLgorICAgICAgICAgICAgTFZh
bHVlIGRvdWJsZUlzVHJ1dGh5ID0gbV9vdXQuZG91YmxlTm90RXF1YWwoCisgICAgICAgICAgICAg
ICAgdW5ib3hEb3VibGUodmFsdWUpLCBtX291dC5jb25zdERvdWJsZSgwKSk7CisgICAgICAgICAg
ICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoZG91YmxlSXNUcnV0aHkpKTsKICAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICBWYWx1
ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0Lm5vdE51bGwodm1DYWxs
KAotICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25Db252ZXJ0SlNWYWx1
ZVRvQm9vbGVhbiksIG1fY2FsbEZyYW1lLCB2YWx1ZSkpKTsKKyAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKG5vdERvdWJsZUNhc2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBMVmFsdWUg
bWlzY0lzVHJ1dGh5ID0gbV9vdXQuZXF1YWwoCisgICAgICAgICAgICAgICAgdmFsdWUsIG1fb3V0
LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpKTsKKyAgICAgICAg
ICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtaXNjSXNUcnV0aHkpKTsKICAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
bV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Ci0gICAgICAgICAgICByZXR1
cm4gbV9vdXQucGhpKG1fb3V0LmJvb2xlYW4sIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpOworICAg
ICAgICAgICAgcmV0dXJuIG1fb3V0LnBoaShtX291dC5ib29sZWFuLCByZXN1bHRzKTsKICAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgREZHX0NSQVNIKG1fZ3JhcGgsIG1f
bm9kZSwgIkJhZCB1c2Uga2luZCIpOwpAQCAtNzE2NSw4ICs3MjQxLDE2IEBAIHByaXZhdGU6CiAg
ICAgICAgIHJldHVybiBtX291dC5hU2hyKHZhbHVlLCBtX291dC5jb25zdEludDY0KEpTVmFsdWU6
OmludDUyU2hpZnRBbW91bnQpKTsKICAgICB9CiAgICAgCi0gICAgTFZhbHVlIGlzTm90SW50MzIo
TFZhbHVlIGpzVmFsdWUpCisgICAgTFZhbHVlIGlzSW50MzIoTFZhbHVlIGpzVmFsdWUsIFNwZWN1
bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUg
cHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlLCBTcGVjSW50MzIpKQorICAgICAgICAgICAgcmV0
dXJuIHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmFib3ZlT3JFcXVhbChqc1ZhbHVlLCBt
X3RhZ1R5cGVOdW1iZXIpOworICAgIH0KKyAgICBMVmFsdWUgaXNOb3RJbnQzMihMVmFsdWUganNW
YWx1ZSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAgIHsKKyAgICAgICAg
aWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUsIH5TcGVjSW50MzIpKQorICAg
ICAgICAgICAgcmV0dXJuIHByb3ZlbjsKICAgICAgICAgcmV0dXJuIG1fb3V0LmJlbG93KGpzVmFs
dWUsIG1fdGFnVHlwZU51bWJlcik7CiAgICAgfQogICAgIExWYWx1ZSB1bmJveEludDMyKExWYWx1
ZSBqc1ZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bElubGluZXMuaAkocmV2aXNpb24gMTg0OTE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsOCArMjUwLDYgQEAg
aW5saW5lIGJvb2wgSlNDZWxsOjp0b0Jvb2xlYW4oRXhlY1N0YXRlKgogewogICAgIGlmIChpc1N0
cmluZygpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNTdHJpbmcqPih0aGlz
KS0+dG9Cb29sZWFuKCk7Ci0gICAgaWYgKGlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBTeW1ib2wqPih0aGlzKS0+dG9Cb29sZWFuKCk7CiAgICAgcmV0dXJuICFz
dHJ1Y3R1cmUoKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCkpOwogfQogCkBAIC0yNjAsNyArMjU4LDcgQEAgaW5saW5lIFRyaVN0YXRlIEpTQ2VsbDo6
cHVyZVRvQm9vbGVhbigpIAogICAgIGlmIChpc1N0cmluZygpKQogICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y29uc3QgSlNTdHJpbmcqPih0aGlzKS0+dG9Cb29sZWFuKCkgPyBUcnVlVHJpU3Rh
dGUgOiBGYWxzZVRyaVN0YXRlOwogICAgIGlmIChpc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgU3ltYm9sKj4odGhpcyktPnRvQm9vbGVhbigpID8gVHJ1ZVRyaVN0
YXRlIDogRmFsc2VUcmlTdGF0ZTsKKyAgICAgICAgcmV0dXJuIFRydWVUcmlTdGF0ZTsKICAgICBy
ZXR1cm4gTWl4ZWRUcmlTdGF0ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmNwcAkocmV2aXNpb24gMTg0OTE5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODksMTEgKzM4
OSw2IEBAIGJvb2wgSlNTdHJpbmc6OmdldFByaW1pdGl2ZU51bWJlcihFeGVjU3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLWJvb2wgSlNTdHJpbmc6OnRvQm9vbGVhbigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbGVuZ3RoOwotfQotCiBkb3VibGUgSlNTdHJpbmc6OnRvTnVtYmVyKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKIHsKICAgICByZXR1cm4ganNUb051bWJlcih2aWV3KGV4ZWMpKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkocmV2aXNpb24gMTg0
OTE5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTUwLDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShF
eGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zdDsKLSAgICBKU19FWFBPUlRf
UFJJVkFURSBib29sIHRvQm9vbGVhbigpIGNvbnN0OworICAgIGJvb2wgdG9Cb29sZWFuKCkgY29u
c3QgeyByZXR1cm4gISFtX2xlbmd0aDsgfQogICAgIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4
ZWNTdGF0ZSosIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJikgY29uc3Q7CiAgICAgSlNPYmplY3Qq
IHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgZG91Ymxl
IHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2wuY3BwCShyZXZpc2lvbiAxODQ5MTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMSArNjUsNiBA
QCBKU1ZhbHVlIFN5bWJvbDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgCiAgICAgcmV0dXJuIGNv
bnN0X2Nhc3Q8U3ltYm9sKj4odGhpcyk7CiB9CiAKLWJvb2wgU3ltYm9sOjp0b0Jvb2xlYW4oKSBj
b25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIFN5bWJvbDo6Z2V0UHJpbWl0aXZl
TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmIHJlc3VsdCkg
Y29uc3QKIHsKICAgICByZXN1bHQgPSB0aGlzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sLmgJKHJldmlzaW9uIDE4NDkxOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw2IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgZGVzY3JpcHRpdmVTdHJpbmcoKSBjb25zdDsKIAogICAgIEpTVmFsdWUg
dG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3Q7Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCB0b0Jvb2xlYW4oKSBjb25zdDsKICAgICBib29sIGdl
dFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYpIGNv
bnN0OwogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCop
IGNvbnN0OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE4NDk3NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA1LTI4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgTm9uLXNwZWN1bGF0aXZlIEJyYW5jaCBzaG91bGQgYmUgZmFzdCBp
biB0aGUgRlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDU0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGpzL3JlZ3Jlc3MvY3NlLW5ldy1hcnJheS1idWZmZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL2NzZS1uZXctYXJyYXktYnVmZmVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvY3NlLW5ldy1hcnJheS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvY3NlLW5ldy1hcnJheS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2xvZ2ljYWwtbm90LXdlaXJkLXR5cGVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9sb2dpY2FsLW5vdC13ZWlyZC10eXBlcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9sb2dpY2FsLW5vdC13ZWlyZC10
eXBlcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDE1LTA1LTI4ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBQaXhl
bCBjcmFjayBpbiB0ZXh0IHNlbGVjdGlvbiBvZiBzaW1wbGUgdGV4dCBpbiA8dGV4dGFyZWE+LgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jc2UtbmV3LWFycmF5LWJ1ZmZlci1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jc2UtbmV3LWFycmF5
LWJ1ZmZlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2NzZS1uZXctYXJyYXktYnVmZmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvY3NlLW5ldy1hcnJheS1idWZmZXIKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvY3NlLW5ldy1hcnJheS1idWZmZXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NzZS1uZXctYXJyYXktYnVmZmVyLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2NzZS1uZXctYXJyYXktYnVmZmVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY3NlLW5ldy1hcnJheS1idWZmZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9jc2UtbmV3
LWFycmF5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2NzZS1uZXctYXJyYXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9jc2UtbmV3LWFycmF5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvY3NlLW5ldy1hcnJheQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9jc2UtbmV3LWFycmF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9jc2UtbmV3LWFycmF5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2NzZS1uZXctYXJyYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9jc2Ut
bmV3LWFycmF5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sb2dp
Y2FsLW5vdC13ZWlyZC10eXBlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMCBAQAorSlNSZWdyZXNzL2xvZ2ljYWwtbm90LXdlaXJkLXR5cGVzCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2xvZ2ljYWwtbm90LXdlaXJkLXR5cGVzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9sb2dpY2FsLW5vdC13ZWlyZC10eXBlcy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9sb2dpY2FsLW5vdC13ZWlyZC10eXBl
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2xvZ2ljYWwtbm90LXdlaXJkLXR5cGVzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2xvZ2ljYWwtbm90LXdlaXJkLXR5cGVzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2xvZ2ljYWwtbm90LXdlaXJkLXR5
cGVzLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvbG9naWNhbC1ub3Qtd2VpcmQtdHlwZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MiBAQAorZnVuY3Rpb24gZm9vKHZhbHVlKSB7CisgICAgcmV0dXJuICEhdmFsdWU7Cit9CisKK25v
SW5saW5lKGZvbyk7CisKK3ZhciB0ZXN0cyA9IFsKKyAgICBbMCwgZmFsc2VdLAorICAgIFsxLCB0
cnVlXSwKKyAgICBbMC8wLCBmYWxzZV0sCisgICAgWzAvLTEsIGZhbHNlXSwKKyAgICBbMC4wLCBm
YWxzZV0sCisgICAgWyIiLCBmYWxzZV0sCisgICAgWyJmIiwgdHJ1ZV0sCisgICAgWyJoZWxsbyIs
IHRydWVdLAorICAgIFt7fSwgdHJ1ZV0sCisgICAgW1tdLCB0cnVlXSwKKyAgICBbbnVsbCwgZmFs
c2VdLAorICAgIFt2b2lkIDAsIGZhbHNlXSwKKyAgICBbZmFsc2UsIGZhbHNlXSwKKyAgICBbdHJ1
ZSwgdHJ1ZV0KK107CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgdGVzdHMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgdmFyIGlucHV0
ID0gdGVzdHNbal1bMF07CisgICAgICAgIHZhciBleHBlY3RlZCA9IHRlc3RzW2pdWzFdOworICAg
ICAgICB2YXIgcmVzdWx0ID0gZm9vKGlucHV0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgZm9yICIgKyBpbnB1
dCArICI6ICIgKyByZXN1bHQ7CisgICAgfQorfQo=
</data>
<flag name="review"
          id="278841"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>