<?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>26987</bug_id>
          
          <creation_ts>2009-07-06 06:00:09 -0700</creation_ts>
          <short_desc>Add fast case for Math.floor(a / b) expressions</short_desc>
          <delta_ts>2010-07-12 04:55:21 -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>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Zoltan Herczeg">zherczeg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129932</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2009-07-06 06:00:09 -0700</bug_when>
    <thetext>I have implemented a fast case for Math.floor(a / b) expression.

For this example:

var a = 8
Math.floor(a / 3)

the following code generated:

[   0] enter
[   1] mov               r-15, r0
[   4] mov               r4, r0
[   7] mov               r-15, r1
[  10] op_method_check
[  11] get_by_id         r4, r-10, floor(@id0)
[  19] mov               r5, r-10
  -- new byte codes start here
[  22] jneq_ptr          r4, r-1216737440, 6(-&gt;31)
[  26] op_math_floor     r4, r-15, r2, 10(-&gt;40)
  -- new byte codes end here
[  31] div               r6, r-15, r2
[  35] call              r4, r4, 2, 15
[  40] end               r4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129934</commentid>
    <comment_count>1</comment_count>
      <attachid>32297</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2009-07-06 06:08:45 -0700</bug_when>
    <thetext>Created attachment 32297
getType() method added for all leaf Nodes

I split the patch into two parts for easier review.

Since my mthod detects Math.floor(a/b) expressions in AST level, I need some kind of node type. I decided to use virtual methods for this task, because emitByteCode has already virtual, so virtual method table has already generated for all nodes.

Perhaps some virtual functions can be eliminated in ExpressionNode using these types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129936</commentid>
    <comment_count>2</comment_count>
      <attachid>32298</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2009-07-06 06:16:04 -0700</bug_when>
    <thetext>Created attachment 32298
Enable math.floor(a/b) optimization on interpreter

This is the main part of the patch. Well, actually it is just a draft, since I feel you will have several ideas to further improve the code. Furthermore, only interpreter is supported right now. I would like to hear your opinion before I continue the work on JIT.

The following code is executed in 0m1.992s without this patch:

var a = 3
for (var i = 0; i &lt; 10000000; ++i)
    Math.floor(a / -2)

The patch improved the runtime to 0m0.790s, which is 2.5 times faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129937</commentid>
    <comment_count>3</comment_count>
      <attachid>32299</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2009-07-06 06:19:13 -0700</bug_when>
    <thetext>Created attachment 32299
SunSpider results

The patch improves the test which actually use the Math.floor(a/b) expressions. On the other hand, there are some slowdowns on other tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130818</commentid>
    <comment_count>4</comment_count>
      <attachid>32298</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-07-09 20:28:57 -0700</bug_when>
    <thetext>Comment on attachment 32298
Enable math.floor(a/b) optimization on interpreter

I think the complexity of this patch isn&apos;t balanced performance gain.  I recognise that we need to come up with a solution for the problem of the simple builtin function, but i don&apos;t believe lexical specialisation is the solution.  It works for call/apply but they have a *huge* overhead on many levels and aren&apos;t cached in js, whereas things like the builtin Math functions (and also a number of other builtin functions) are cached in ways that defeat lexical caching, especially in the fast case, and the quantity of calls is likely to be much larger than that of call and apply.

Just to make it clear, i do believe we want to improve performance of builtins, i just don&apos;t believe lexical caching is the solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249760</commentid>
    <comment_count>5</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2010-07-12 04:55:21 -0700</bug_when>
    <thetext>Just closing this bug. Probably there will be no future work on it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32297</attachid>
            <date>2009-07-06 06:08:45 -0700</date>
            <delta_ts>2010-06-10 17:46:39 -0700</delta_ts>
            <desc>getType() method added for all leaf Nodes</desc>
            <filename>0001-getType-added-for-all-parser-Nodes.patch</filename>
            <type>text/plain</type>
            <size>34501</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSAyYzA5MGMxM2VhMmRmMGQxYjY1MGNmNTJmM2IxZDIxMDE5YzQ3MWY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBNb24sIDYgSnVsIDIwMDkgMTA6Mjc6MTUgKzAyMDAKU3ViamVjdDogW1BBVENI
XSBnZXRUeXBlIGFkZGVkIGZvciBhbGwgcGFyc2VyIE5vZGVzCgpTaWduZWQtb2ZmLWJ5OiBab2x0
YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2VkLmh1PgotLS0KIEphdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyAgICAgIHwgIDExMCArKysrKysrKysrKysrKysrKysrCiBKYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaCB8ICAyNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMzUyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCmluZGV4IDAzN2I4NGMuLmMzYjU1OGIgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMTMgQEAKKzIwMDktMDctMDMgIFpvbHRhbiBIZXJjemVnICA8emhlcmN6ZWdAaW5mLnUtc3pl
Z2VkLmh1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFR5cGUgbmFtZSBhZGRlZCBmb3IgYWxsIG5vZGVzIGluIHRoZSBwYXJzZXIKKyAgICAgICAgQlVH
IFVSTCBHT0VTIEhFUkUgKHBhc3MgLS1idWc9IHRvIGF1dG9maWxsKQorCisgICAgICAgIFRoZSB0
eXBlIG5hbWUgb2YgZWFjaCBub2RlIGlzIHRoZSBjb25jYXRlbmF0aW9uCisgICAgICAgIG9mIGl0
cyBjbGFzcyBuYW1lIGFuZCBhbiBJRCBsaXRlcmFsLgorCisgICAgICAgICogcGFyc2VyL05vZGVz
Lmg6CisgICAgICAgIChKU0M6Oik6CisgICAgICAgIChKU0M6Ok51bGxOb2RlOjpnZXRUeXBlKToK
KyAgICAgICAgKEpTQzo6Qm9vbGVhbk5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpOdW1i
ZXJOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nTm9kZTo6Z2V0VHlwZSk6Cisg
ICAgICAgIChKU0M6OlJlZ0V4cE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpUaGlzTm9k
ZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OlJlc29sdmVOb2RlOjpnZXRUeXBlKToKKyAgICAg
ICAgKEpTQzo6QXJyYXlOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlMaXN0
Tm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6Ok9iamVjdExpdGVyYWxOb2RlOjpnZXRUeXBl
KToKKyAgICAgICAgKEpTQzo6QnJhY2tldEFjY2Vzc29yTm9kZTo6Z2V0VHlwZSk6CisgICAgICAg
IChKU0M6OkRvdEFjY2Vzc29yTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50
TGlzdE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpOZXdFeHByTm9kZTo6Z2V0VHlwZSk6
CisgICAgICAgIChKU0M6OkV2YWxGdW5jdGlvbkNhbGxOb2RlOjpnZXRUeXBlKToKKyAgICAgICAg
KEpTQzo6RnVuY3Rpb25DYWxsVmFsdWVOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6RnVu
Y3Rpb25DYWxsUmVzb2x2ZU5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNh
bGxCcmFja2V0Tm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uQ2FsbERvdE5v
ZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpDYWxsRnVuY3Rpb25DYWxsRG90Tm9kZTo6Z2V0
VHlwZSk6CisgICAgICAgIChKU0M6OkFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6Z2V0VHlwZSk6
CisgICAgICAgIChKU0M6OlBvc3RmaXhSZXNvbHZlTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChK
U0M6OlBvc3RmaXhCcmFja2V0Tm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OlBvc3RmaXhE
b3ROb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6UG9zdGZpeEVycm9yTm9kZTo6Z2V0VHlw
ZSk6CisgICAgICAgIChKU0M6OkRlbGV0ZVJlc29sdmVOb2RlOjpnZXRUeXBlKToKKyAgICAgICAg
KEpTQzo6RGVsZXRlQnJhY2tldE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpEZWxldGVE
b3ROb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6RGVsZXRlVmFsdWVOb2RlOjpnZXRUeXBl
KToKKyAgICAgICAgKEpTQzo6Vm9pZE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpUeXBl
T2ZSZXNvbHZlTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OlR5cGVPZlZhbHVlTm9kZTo6
Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OlByZWZpeFJlc29sdmVOb2RlOjpnZXRUeXBlKToKKyAg
ICAgICAgKEpTQzo6UHJlZml4QnJhY2tldE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpQ
cmVmaXhEb3ROb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6UHJlZml4RXJyb3JOb2RlOjpn
ZXRUeXBlKToKKyAgICAgICAgKEpTQzo6VW5hcnlQbHVzTm9kZTo6Z2V0VHlwZSk6CisgICAgICAg
IChKU0M6Ok5lZ2F0ZU5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpCaXR3aXNlTm90Tm9k
ZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkxvZ2ljYWxOb3ROb2RlOjpnZXRUeXBlKToKKyAg
ICAgICAgKEpTQzo6TXVsdE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpEaXZOb2RlOjpn
ZXRUeXBlKToKKyAgICAgICAgKEpTQzo6TW9kTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6
OkFkZE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpTdWJOb2RlOjpnZXRUeXBlKToKKyAg
ICAgICAgKEpTQzo6TGVmdFNoaWZ0Tm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OlJpZ2h0
U2hpZnROb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6VW5zaWduZWRSaWdodFNoaWZ0Tm9k
ZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6Okxlc3NOb2RlOjpnZXRUeXBlKToKKyAgICAgICAg
KEpTQzo6R3JlYXRlck5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpMZXNzRXFOb2RlOjpn
ZXRUeXBlKToKKyAgICAgICAgKEpTQzo6R3JlYXRlckVxTm9kZTo6Z2V0VHlwZSk6CisgICAgICAg
IChKU0M6Okluc3RhbmNlT2ZOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6SW5Ob2RlOjpn
ZXRUeXBlKToKKyAgICAgICAgKEpTQzo6RXF1YWxOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpT
Qzo6Tm90RXF1YWxOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6U3RyaWN0RXF1YWxOb2Rl
OjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6Tm90U3RyaWN0RXF1YWxOb2RlOjpnZXRUeXBlKToK
KyAgICAgICAgKEpTQzo6Qml0QW5kTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkJpdE9y
Tm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkJpdFhPck5vZGU6OmdldFR5cGUpOgorICAg
ICAgICAoSlNDOjpMb2dpY2FsT3BOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6Q29uZGl0
aW9uYWxOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6UmVhZE1vZGlmeVJlc29sdmVOb2Rl
OjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6QXNzaWduUmVzb2x2ZU5vZGU6OmdldFR5cGUpOgor
ICAgICAgICAoSlNDOjpSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmdldFR5cGUpOgorICAgICAgICAo
SlNDOjpBc3NpZ25CcmFja2V0Tm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkFzc2lnbkRv
dE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpSZWFkTW9kaWZ5RG90Tm9kZTo6Z2V0VHlw
ZSk6CisgICAgICAgIChKU0M6OkFzc2lnbkVycm9yTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChK
U0M6OkNvbW1hTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OkNvbnN0RGVjbE5vZGU6Omdl
dFR5cGUpOgorICAgICAgICAoSlNDOjpDb25zdFN0YXRlbWVudE5vZGU6OmdldFR5cGUpOgorICAg
ICAgICAoSlNDOjpCbG9ja05vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpFbXB0eVN0YXRl
bWVudE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlclN0YXRlbWVudE5vZGU6
OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpFeHByU3RhdGVtZW50Tm9kZTo6Z2V0VHlwZSk6Cisg
ICAgICAgIChKU0M6OlZhclN0YXRlbWVudE5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpJ
Zk5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpJZkVsc2VOb2RlOjpnZXRUeXBlKToKKyAg
ICAgICAgKEpTQzo6RG9XaGlsZU5vZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpXaGlsZU5v
ZGU6OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpGb3JOb2RlOjpnZXRUeXBlKToKKyAgICAgICAg
KEpTQzo6Rm9ySW5Ob2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6Q29udGludWVOb2RlOjpn
ZXRUeXBlKToKKyAgICAgICAgKEpTQzo6QnJlYWtOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpT
Qzo6UmV0dXJuTm9kZTo6Z2V0VHlwZSk6CisgICAgICAgIChKU0M6OldpdGhOb2RlOjpnZXRUeXBl
KToKKyAgICAgICAgKEpTQzo6TGFiZWxOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6VGhy
b3dOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6VHJ5Tm9kZTo6Z2V0VHlwZSk6CisgICAg
ICAgIChKU0M6OlByb2dyYW1Ob2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6RXZhbE5vZGU6
OmdldFR5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkJvZHlOb2RlOjpnZXRUeXBlKToKKyAg
ICAgICAgKEpTQzo6RnVuY0V4cHJOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6RnVuY0Rl
Y2xOb2RlOjpnZXRUeXBlKToKKyAgICAgICAgKEpTQzo6U3dpdGNoTm9kZTo6Z2V0VHlwZSk6CisK
IDIwMDktMDYtMzAgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggYTlm
ODhiNy4uYWJlZjg1YiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
KysrIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTg0LDYgKzg0LDEwNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgT3BMb2dpY2FsT3IKICAgICB9OwogCisgICAgZW51bSBO
b2RlVHlwZSB7CisgICAgICAgIE51bGxOb2RlSUQsCisgICAgICAgIEJvb2xlYW5Ob2RlSUQsCisg
ICAgICAgIE51bWJlck5vZGVJRCwKKyAgICAgICAgU3RyaW5nTm9kZUlELAorICAgICAgICBSZWdF
eHBOb2RlSUQsCisgICAgICAgIFRoaXNOb2RlSUQsCisgICAgICAgIFJlc29sdmVOb2RlSUQsCisg
ICAgICAgIEFycmF5Tm9kZUlELAorICAgICAgICBQcm9wZXJ0eUxpc3ROb2RlSUQsCisgICAgICAg
IE9iamVjdExpdGVyYWxOb2RlSUQsCisgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGVJRCwKKyAg
ICAgICAgRG90QWNjZXNzb3JOb2RlSUQsCisgICAgICAgIEFyZ3VtZW50TGlzdE5vZGVJRCwKKyAg
ICAgICAgTmV3RXhwck5vZGVJRCwKKyAgICAgICAgRXZhbEZ1bmN0aW9uQ2FsbE5vZGVJRCwKKyAg
ICAgICAgRnVuY3Rpb25DYWxsVmFsdWVOb2RlSUQsCisgICAgICAgIEZ1bmN0aW9uQ2FsbFJlc29s
dmVOb2RlSUQsCisgICAgICAgIEZ1bmN0aW9uQ2FsbEJyYWNrZXROb2RlSUQsCisgICAgICAgIEZ1
bmN0aW9uQ2FsbERvdE5vZGVJRCwKKyAgICAgICAgQ2FsbEZ1bmN0aW9uQ2FsbERvdE5vZGVJRCwK
KyAgICAgICAgQXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlSUQsCisgICAgICAgIFBvc3RmaXhSZXNv
bHZlTm9kZUlELAorICAgICAgICBQb3N0Zml4QnJhY2tldE5vZGVJRCwKKyAgICAgICAgUG9zdGZp
eERvdE5vZGVJRCwKKyAgICAgICAgUG9zdGZpeEVycm9yTm9kZUlELAorICAgICAgICBEZWxldGVS
ZXNvbHZlTm9kZUlELAorICAgICAgICBEZWxldGVCcmFja2V0Tm9kZUlELAorICAgICAgICBEZWxl
dGVEb3ROb2RlSUQsCisgICAgICAgIERlbGV0ZVZhbHVlTm9kZUlELAorICAgICAgICBWb2lkTm9k
ZUlELAorICAgICAgICBUeXBlT2ZSZXNvbHZlTm9kZUlELAorICAgICAgICBUeXBlT2ZWYWx1ZU5v
ZGVJRCwKKyAgICAgICAgUHJlZml4UmVzb2x2ZU5vZGVJRCwKKyAgICAgICAgUHJlZml4QnJhY2tl
dE5vZGVJRCwKKyAgICAgICAgUHJlZml4RG90Tm9kZUlELAorICAgICAgICBQcmVmaXhFcnJvck5v
ZGVJRCwKKyAgICAgICAgVW5hcnlQbHVzTm9kZUlELAorICAgICAgICBOZWdhdGVOb2RlSUQsCisg
ICAgICAgIEJpdHdpc2VOb3ROb2RlSUQsCisgICAgICAgIExvZ2ljYWxOb3ROb2RlSUQsCisgICAg
ICAgIE11bHROb2RlSUQsCisgICAgICAgIERpdk5vZGVJRCwKKyAgICAgICAgTW9kTm9kZUlELAor
ICAgICAgICBBZGROb2RlSUQsCisgICAgICAgIFN1Yk5vZGVJRCwKKyAgICAgICAgTGVmdFNoaWZ0
Tm9kZUlELAorICAgICAgICBSaWdodFNoaWZ0Tm9kZUlELAorICAgICAgICBVbnNpZ25lZFJpZ2h0
U2hpZnROb2RlSUQsCisgICAgICAgIExlc3NOb2RlSUQsCisgICAgICAgIEdyZWF0ZXJOb2RlSUQs
CisgICAgICAgIExlc3NFcU5vZGVJRCwKKyAgICAgICAgR3JlYXRlckVxTm9kZUlELAorICAgICAg
ICBJbnN0YW5jZU9mTm9kZUlELAorICAgICAgICBJbk5vZGVJRCwKKyAgICAgICAgRXF1YWxOb2Rl
SUQsCisgICAgICAgIE5vdEVxdWFsTm9kZUlELAorICAgICAgICBTdHJpY3RFcXVhbE5vZGVJRCwK
KyAgICAgICAgTm90U3RyaWN0RXF1YWxOb2RlSUQsCisgICAgICAgIEJpdEFuZE5vZGVJRCwKKyAg
ICAgICAgQml0T3JOb2RlSUQsCisgICAgICAgIEJpdFhPck5vZGVJRCwKKyAgICAgICAgTG9naWNh
bE9wTm9kZUlELAorICAgICAgICBDb25kaXRpb25hbE5vZGVJRCwKKyAgICAgICAgUmVhZE1vZGlm
eVJlc29sdmVOb2RlSUQsCisgICAgICAgIEFzc2lnblJlc29sdmVOb2RlSUQsCisgICAgICAgIFJl
YWRNb2RpZnlCcmFja2V0Tm9kZUlELAorICAgICAgICBBc3NpZ25CcmFja2V0Tm9kZUlELAorICAg
ICAgICBBc3NpZ25Eb3ROb2RlSUQsCisgICAgICAgIFJlYWRNb2RpZnlEb3ROb2RlSUQsCisgICAg
ICAgIEFzc2lnbkVycm9yTm9kZUlELAorICAgICAgICBDb21tYU5vZGVJRCwKKyAgICAgICAgQ29u
c3REZWNsTm9kZUlELAorICAgICAgICBDb25zdFN0YXRlbWVudE5vZGVJRCwKKyAgICAgICAgQmxv
Y2tOb2RlSUQsCisgICAgICAgIEVtcHR5U3RhdGVtZW50Tm9kZUlELAorICAgICAgICBEZWJ1Z2dl
clN0YXRlbWVudE5vZGVJRCwKKyAgICAgICAgRXhwclN0YXRlbWVudE5vZGVJRCwKKyAgICAgICAg
VmFyU3RhdGVtZW50Tm9kZUlELAorICAgICAgICBJZk5vZGVJRCwKKyAgICAgICAgSWZFbHNlTm9k
ZUlELAorICAgICAgICBEb1doaWxlTm9kZUlELAorICAgICAgICBXaGlsZU5vZGVJRCwKKyAgICAg
ICAgRm9yTm9kZUlELAorICAgICAgICBGb3JJbk5vZGVJRCwKKyAgICAgICAgQ29udGludWVOb2Rl
SUQsCisgICAgICAgIEJyZWFrTm9kZUlELAorICAgICAgICBSZXR1cm5Ob2RlSUQsCisgICAgICAg
IFdpdGhOb2RlSUQsCisgICAgICAgIExhYmVsTm9kZUlELAorICAgICAgICBUaHJvd05vZGVJRCwK
KyAgICAgICAgVHJ5Tm9kZUlELAorICAgICAgICBQcm9ncmFtTm9kZUlELAorICAgICAgICBFdmFs
Tm9kZUlELAorICAgICAgICBGdW5jdGlvbkJvZHlOb2RlSUQsCisgICAgICAgIEZ1bmNFeHByTm9k
ZUlELAorICAgICAgICBGdW5jRGVjbE5vZGVJRCwKKyAgICAgICAgU3dpdGNoTm9kZUlELAorICAg
IH07CisKICAgICBuYW1lc3BhY2UgRGVjbGFyYXRpb25TdGFja3MgewogICAgICAgICBlbnVtIFZh
ckF0dHJzIHsgSXNDb25zdGFudCA9IDEsIEhhc0luaXRpYWxpemVyID0gMiB9OwogICAgICAgICB0
eXBlZGVmIFZlY3RvcjxzdGQ6OnBhaXI8SWRlbnRpZmllciwgdW5zaWduZWQ+ID4gVmFyU3RhY2s7
CkBAIC0xNTAsNiArMjUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBub2RlLCAi
MSIuCiAgICAgICAgICovCiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0ID0gMCkgPSAwOworICAgICAgICB2
aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSA9IDA7CiAKICAgICAgICAgaW50IGxpbmVObygpIGNv
bnN0IHsgcmV0dXJuIG1fbGluZTsgfQogCkBAIC0yMDksNiArMzEwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1
YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIE51bGxOb2RlSUQ7IH0KIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIH07CkBAIC0y
MTksNiArMzIxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJu
IEJvb2xlYW5Ob2RlSUQ7IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQdXJlKEJ5dGVjb2Rl
R2VuZXJhdG9yJikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC0yMzQsNiArMzM3LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7Cisg
ICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIE51bWJlck5vZGVJRDsg
fQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc051bWJlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzUHVyZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KQEAgLTI1MCw2ICszNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2Rl
VHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gU3RyaW5nTm9kZUlEOyB9CiAgICAgICAgIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTM1
OSw2ICs0NjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4g
UmVnRXhwTm9kZUlEOyB9CiAKICAgICAgICAgVVN0cmluZyBtX3BhdHRlcm47CiAgICAgICAgIFVT
dHJpbmcgbV9mbGFnczsKQEAgLTM3MCw2ICs0NzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlw
ZSBnZXRUeXBlKCkgeyByZXR1cm4gVGhpc05vZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBS
ZXNvbHZlTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBAIC0zODAsNiArNDg3LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7Cisg
ICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFJlc29sdmVOb2RlSUQ7
IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQdXJlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29u
c3QgOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KQEAgLTQxNCw2ICs1MjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBl
KCkgeyByZXR1cm4gQXJyYXlOb2RlSUQ7IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1w
bGVBcnJheSgpIGNvbnN0IDsKIApAQCAtNDQyLDkgKzU1MSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShKU0dsb2JhbERhdGEqLCBQcm9wZXJ0eU5vZGUqKTsK
ICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShKU0dsb2JhbERhdGEqLCBQcm9wZXJ0eU5vZGUqLCBQ
cm9wZXJ0eUxpc3ROb2RlKik7CiAKKyAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7
CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFByb3BlcnR5TGlz
dE5vZGVJRDsgfQogCi0gICAgcHJpdmF0ZToKICAgICAgICAgUHJvcGVydHlOb2RlKiBtX25vZGU7
CiAgICAgICAgIFByb3BlcnR5TGlzdE5vZGUqIG1fbmV4dDsKICAgICB9OwpAQCAtNDU2LDYgKzU2
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBPYmplY3RM
aXRlcmFsTm9kZUlEOyB9CiAKICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZSogbV9saXN0OwogICAg
IH07CkBAIC00NjksNiArNTgwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgp
IHsgcmV0dXJuIEJyYWNrZXRBY2Nlc3Nvck5vZGVJRDsgfQogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0xvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNCcmFja2V0QWNjZXNzb3JOb2RlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNDg3
LDYgKzU5OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBE
b3RBY2Nlc3Nvck5vZGVJRDsgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0xvY2F0aW9uKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEb3RBY2Nlc3Nv
ck5vZGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC01MDUsNiArNjE4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAg
IHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIEFyZ3VtZW50TGlzdE5vZGVJRDsg
fQogICAgIH07CiAKICAgICBjbGFzcyBBcmd1bWVudHNOb2RlIDogcHVibGljIFBhcnNlckFyZW5h
RGVsZXRhYmxlIHsKQEAgLTUyMiw2ICs2MzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBn
ZXRUeXBlKCkgeyByZXR1cm4gTmV3RXhwck5vZGVJRDsgfQogCiAgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBtX2V4cHI7CiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJnczsKQEAgLTUzMyw2ICs2
NDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRXZhbEZ1
bmN0aW9uQ2FsbE5vZGVJRDsgfQogCiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJnczsKICAg
ICB9OwpAQCAtNTQzLDYgKzY1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUo
KSB7IHJldHVybiBGdW5jdGlvbkNhbGxWYWx1ZU5vZGVJRDsgfQogCiAgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJnczsKQEAgLTU1NCw2
ICs2NzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1
YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRnVu
Y3Rpb25DYWxsUmVzb2x2ZU5vZGVJRDsgfQogCiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsK
ICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmdzOwpAQCAtNTY3LDYgKzY4NSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAg
ICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBGdW5jdGlvbkNhbGxCcmFja2V0
Tm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtNTc5LDYgKzY5OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0
dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBGdW5jdGlvbkNhbGxEb3ROb2RlSUQ7IH0K
IAogICAgIHByb3RlY3RlZDoKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKQEAgLTU5
Miw2ICs3MTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4g
Q2FsbEZ1bmN0aW9uQ2FsbERvdE5vZGVJRDsgfQogICAgIH07CiAgICAgCiAgICAgY2xhc3MgQXBw
bHlGdW5jdGlvbkNhbGxEb3ROb2RlIDogcHVibGljIEZ1bmN0aW9uQ2FsbERvdE5vZGUgewpAQCAt
NjAwLDYgKzcyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
dmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVy
biBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBQcmVQ
b3N0UmVzb2x2ZU5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVF
eHByZXNzaW9uRGF0YSB7CkBAIC02MTYsNiArNzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgTm9kZVR5
cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFBvc3RmaXhSZXNvbHZlTm9kZUlEOyB9CiAKICAgICAgICAg
T3BlcmF0b3IgbV9vcGVyYXRvcjsKICAgICB9OwpAQCAtNjI2LDYgKzc0OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2
aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBQb3N0Zml4QnJhY2tldE5vZGVJRDsg
fQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBtX3N1YnNjcmlwdDsKQEAgLTYzOCw2ICs3NjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2Rl
VHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gUG9zdGZpeERvdE5vZGVJRDsgfQogCiAgICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKQEAgLTY1
MCw2ICs3NzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4g
UG9zdGZpeEVycm9yTm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsK
ICAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKQEAgLTY2MSw2ICs3ODcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAg
dmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRGVsZXRlUmVzb2x2ZU5vZGVJRDsg
fQogCiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKICAgICB9OwpAQCAtNjcxLDYgKzc5OCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
OworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBEZWxldGVCcmFj
a2V0Tm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtNjgyLDYgKzgxMCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2
aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBEZWxldGVEb3ROb2RlSUQ7IH0KIAog
ICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBJZGVudGlmaWVyIG1faWRl
bnQ7CkBAIC02OTMsNiArODIyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgp
IHsgcmV0dXJuIERlbGV0ZVZhbHVlTm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fZXhwcjsKICAgICB9OwpAQCAtNzAzLDYgKzgzMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVU
eXBlIGdldFR5cGUoKSB7IHJldHVybiBWb2lkTm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtNzE1LDYgKzg0Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFs
IE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBUeXBlT2ZSZXNvbHZlTm9kZUlEOyB9CiAKICAg
ICAgICAgSWRlbnRpZmllciBtX2lkZW50OwogICAgIH07CkBAIC03MjUsNiArODU3LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAg
ICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFR5cGVPZlZhbHVlTm9kZUlE
OyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtNzM1LDYg
Kzg2OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVh
bCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBQcmVm
aXhSZXNvbHZlTm9kZUlEOyB9CiAKICAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKICAgICB9
OwpAQCAtNzQ1LDYgKzg3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7
IHJldHVybiBQcmVmaXhCcmFja2V0Tm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fYmFzZTsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtNzU3LDYg
Kzg5Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVh
bCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBQcmVm
aXhEb3ROb2RlSUQ7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAg
ICBJZGVudGlmaWVyIG1faWRlbnQ7CkBAIC03NjksNiArOTA1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwg
Tm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFByZWZpeEVycm9yTm9kZUlEOyB9CiAKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsK
QEAgLTc5NiwyMSArOTMzLDMxIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgdmlydHVhbCBFeHByZXNzaW9uTm9kZSogc3RyaXBVbmFyeVBsdXMoKSB7IHJldHVybiBl
eHByKCk7IH0KKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gVW5h
cnlQbHVzTm9kZUlEOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIE5lZ2F0ZU5vZGUgOiBwdWJsaWMg
VW5hcnlPcE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgTmVnYXRlTm9kZShKU0dsb2JhbERh
dGEqLCBFeHByZXNzaW9uTm9kZSopOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBO
b2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gTmVnYXRlTm9kZUlEOyB9CiAgICAgfTsKIAogICAg
IGNsYXNzIEJpdHdpc2VOb3ROb2RlIDogcHVibGljIFVuYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIEJpdHdpc2VOb3ROb2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKik7
CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJl
dHVybiBCaXR3aXNlTm90Tm9kZUlEOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIExvZ2ljYWxOb3RO
b2RlIDogcHVibGljIFVuYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIExvZ2ljYWxO
b3ROb2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKik7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBMb2dpY2FsTm90Tm9k
ZUlEOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIEJpbmFyeU9wTm9kZSA6IHB1YmxpYyBFeHByZXNz
aW9uTm9kZSB7CkBAIC04NDAsMjIgKzk4NywzMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
UmV2ZXJzZUJpbmFyeU9wTm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNzaW9uTm9kZSogZXhwcjEs
IEV4cHJlc3Npb25Ob2RlKiBleHByMiwgT3Bjb2RlSUQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cyk7CiAgICAgICAgIFJldmVyc2VCaW5hcnlPcE5vZGUoSlNHbG9iYWxEYXRhKiwgUmVzdWx0VHlw
ZSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIE9wY29kZUlE
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCisgICAgcHJpdmF0ZToKICAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApOwogICAgIH07CiAKICAgICBjbGFzcyBNdWx0Tm9kZSA6IHB1YmxpYyBCaW5hcnlP
cE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgTXVsdE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhw
cmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNB
c3NpZ25tZW50cyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdl
dFR5cGUoKSB7IHJldHVybiBNdWx0Tm9kZUlEOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIERpdk5v
ZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIERpdk5vZGUo
SlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhw
cjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2
aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBEaXZOb2RlSUQ7IH0KICAgICB9Owog
CiAgICAgY2xhc3MgTW9kTm9kZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgTW9kTm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4
cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKKworICAgIHBy
aXZhdGU6CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIE1vZE5v
ZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBBZGROb2RlIDogcHVibGljIEJpbmFyeU9wTm9k
ZSB7CkBAIC04NjMsNDYgKzEwMjAsNzMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFkZE5v
ZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGlzQWRkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAg
dmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gQWRkTm9kZUlEOyB9CiAgICAgfTsK
IAogICAgIGNsYXNzIFN1Yk5vZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFN1Yk5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBF
eHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CisKKyAgICBw
cml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBTdWJO
b2RlSUQ7IH0KICAgICB9OwogCiAgICAgY2xhc3MgTGVmdFNoaWZ0Tm9kZSA6IHB1YmxpYyBCaW5h
cnlPcE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgTGVmdFNoaWZ0Tm9kZShKU0dsb2JhbERh
dGEqLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgTm9k
ZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIExlZnRTaGlmdE5vZGVJRDsgfQogICAgIH07CiAKICAg
ICBjbGFzcyBSaWdodFNoaWZ0Tm9kZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewogICAgIHB1Ymxp
YzoKICAgICAgICAgUmlnaHRTaGlmdE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7
CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJl
dHVybiBSaWdodFNoaWZ0Tm9kZUlEOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIFVuc2lnbmVkUmln
aHRTaGlmdE5vZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFVuc2lnbmVkUmlnaHRTaGlmdE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGV4
cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CisK
KyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVy
biBVbnNpZ25lZFJpZ2h0U2hpZnROb2RlSUQ7IH0KICAgICB9OwogCiAgICAgY2xhc3MgTGVzc05v
ZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIExlc3NOb2Rl
KEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4
cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
dmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gTGVzc05vZGVJRDsgfQogICAgIH07
CiAKICAgICBjbGFzcyBHcmVhdGVyTm9kZSA6IHB1YmxpYyBSZXZlcnNlQmluYXJ5T3BOb2RlIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIEdyZWF0ZXJOb2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Np
b25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdu
bWVudHMpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBl
KCkgeyByZXR1cm4gR3JlYXRlck5vZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBMZXNzRXFO
b2RlIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBMZXNzRXFO
b2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOworCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gTGVzc0VxTm9kZUlEOyB9CiAg
ICAgfTsKIAogICAgIGNsYXNzIEdyZWF0ZXJFcU5vZGUgOiBwdWJsaWMgUmV2ZXJzZUJpbmFyeU9w
Tm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBHcmVhdGVyRXFOb2RlKEpTR2xvYmFsRGF0YSos
IEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBOb2RlVHlw
ZSBnZXRUeXBlKCkgeyByZXR1cm4gR3JlYXRlckVxTm9kZUlEOyB9CiAgICAgfTsKIAogICAgIGNs
YXNzIFRocm93YWJsZUJpbmFyeU9wTm9kZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUsIHB1YmxpYyBU
aHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CkBAIC05MjAsMTEgKzExMDQsMTUgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZp
cnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIEluc3RhbmNlT2ZOb2RlSUQ7IH0KICAg
ICB9OwogCiAgICAgY2xhc3MgSW5Ob2RlIDogcHVibGljIFRocm93YWJsZUJpbmFyeU9wTm9kZSB7
CiAgICAgcHVibGljOgogICAgICAgICBJbk5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7
IHJldHVybiBJbk5vZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBFcXVhbE5vZGUgOiBwdWJs
aWMgQmluYXJ5T3BOb2RlIHsKQEAgLTkzMywxMSArMTEyMSwxNSBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBO
b2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRXF1YWxOb2RlSUQ7IH0KICAgICB9OwogCiAgICAg
Y2xhc3MgTm90RXF1YWxOb2RlIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgog
ICAgICAgICBOb3RFcXVhbE5vZGUoSlNHbG9iYWxEYXRhKiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIx
LCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CisKKyAg
ICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBO
b3RFcXVhbE5vZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBTdHJpY3RFcXVhbE5vZGUgOiBw
dWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAgLTk0NiwyNiArMTEzOCwzOSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVh
bCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gU3RyaWN0RXF1YWxOb2RlSUQ7IH0KICAgICB9
OwogCiAgICAgY2xhc3MgTm90U3RyaWN0RXF1YWxOb2RlIDogcHVibGljIEJpbmFyeU9wTm9kZSB7
CiAgICAgcHVibGljOgogICAgICAgICBOb3RTdHJpY3RFcXVhbE5vZGUoSlNHbG9iYWxEYXRhKiwg
RXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRI
YXNBc3NpZ25tZW50cyk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIE5vZGVUeXBl
IGdldFR5cGUoKSB7IHJldHVybiBOb3RTdHJpY3RFcXVhbE5vZGVJRDsgfQogICAgIH07CiAKICAg
ICBjbGFzcyBCaXRBbmROb2RlIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgog
ICAgICAgICBCaXRBbmROb2RlKEpTR2xvYmFsRGF0YSosIEV4cHJlc3Npb25Ob2RlKiBleHByMSwg
RXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOworCisgICAg
cHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gQml0
QW5kTm9kZUlEOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIEJpdE9yTm9kZSA6IHB1YmxpYyBCaW5h
cnlPcE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgQml0T3JOb2RlKEpTR2xvYmFsRGF0YSos
IEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBOb2RlVHlw
ZSBnZXRUeXBlKCkgeyByZXR1cm4gQml0T3JOb2RlSUQ7IH0KICAgICB9OwogCiAgICAgY2xhc3Mg
Qml0WE9yTm9kZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAg
Qml0WE9yTm9kZShKU0dsb2JhbERhdGEqLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Np
b25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKKworICAgIHByaXZhdGU6
CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIEJpdFhPck5vZGVJ
RDsgfQogICAgIH07CiAKICAgICAvLyBtX2V4cHIxICYmIG1fZXhwcjIsIG1fZXhwcjEgfHwgbV9l
eHByMgpAQCAtOTc1LDYgKzExODAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBl
KCkgeyByZXR1cm4gTG9naWNhbE9wTm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fZXhwcjE7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHIyOwpAQCAtOTg4LDYgKzEx
OTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gQ29uZGl0
aW9uYWxOb2RlSUQ7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9sb2dpY2FsOwogICAg
ICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByMTsKQEAgLTEwMDAsNiArMTIwNyw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAg
ICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBSZWFkTW9kaWZ5UmVzb2x2ZU5v
ZGVJRDsgfQogCiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIG1fcmlnaHQ7CkBAIC0xMDE0LDYgKzEyMjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2Rl
VHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gQXNzaWduUmVzb2x2ZU5vZGVJRDsgfQogCiAgICAgICAg
IElkZW50aWZpZXIgbV9pZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CkBA
IC0xMDI3LDYgKzEyMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyBy
ZXR1cm4gUmVhZE1vZGlmeUJyYWNrZXROb2RlSUQ7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9k
ZSogbV9iYXNlOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7CkBAIC0xMDQy
LDYgKzEyNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4g
QXNzaWduQnJhY2tldE5vZGVJRDsgfQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7
CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKQEAgLTEwNTYsNiArMTI2Nyw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
OworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBBc3NpZ25Eb3RO
b2RlSUQ7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBJZGVu
dGlmaWVyIG1faWRlbnQ7CkBAIC0xMDY5LDYgKzEyODEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2Rl
VHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gUmVhZE1vZGlmeURvdE5vZGVJRDsgfQogCiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKQEAg
LTEwODMsNiArMTI5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJl
dHVybiBBc3NpZ25FcnJvck5vZGVJRDsgfQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2xl
ZnQ7CiAgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CkBAIC0xMTAwLDYgKzEzMTQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb21t
YU5vZGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAg
ICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gQ29tbWFOb2RlSUQ7IH0K
IAogICAgICAgICBFeHByZXNzaW9uVmVjdG9yIG1fZXhwcmVzc2lvbnM7CiAgICAgfTsKQEAgLTEx
MTMsNiArMTMyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
dmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVy
biBDb25zdERlY2xOb2RlSUQ7IH0KICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Q29k
ZVNpbmdsZShCeXRlY29kZUdlbmVyYXRvciYpOwogCiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVu
dDsKQEAgLTExMzAsNiArMTM0Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUo
KSB7IHJldHVybiBDb25zdFN0YXRlbWVudE5vZGVJRDsgfQogCiAgICAgICAgIENvbnN0RGVjbE5v
ZGUqIG1fbmV4dDsKICAgICB9OwpAQCAtMTE2MCw2ICsxMzc3LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwg
Tm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIEJsb2NrTm9kZUlEOyB9CiAKICAgICAgICAgdmly
dHVhbCBib29sIGlzQmxvY2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTExNzIsNiAr
MTM5MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVh
bCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBFbXB0
eVN0YXRlbWVudE5vZGVJRDsgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5U3RhdGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIH07CkBAIC0xMTgyLDYgKzE0MDEsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVh
bCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBEZWJ1
Z2dlclN0YXRlbWVudE5vZGVJRDsgfQogICAgIH07CiAKICAgICBjbGFzcyBFeHByU3RhdGVtZW50
Tm9kZSA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKQEAgLTExOTQsNiArMTQxNCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFeHByU3RhdGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVh
bCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRXhwclN0YXRlbWVudE5vZGVJRDsgfQogCiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAgLTEyMDQsNiArMTQyNSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
OworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBWYXJTdGF0ZW1l
bnROb2RlSUQ7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBA
IC0xMjE0LDYgKzE0MzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAg
ICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7
IHJldHVybiBJZk5vZGVJRDsgfQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2NvbmRpdGlv
bjsKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV9pZkJsb2NrOwpAQCAtMTIyNSw2ICsxNDQ4LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7
CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIElmRWxzZU5vZGVJ
RDsgfQogCiAgICAgICAgIFN0YXRlbWVudE5vZGUqIG1fZWxzZUJsb2NrOwogICAgIH07CkBAIC0x
MjM1LDYgKzE0NTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1
cm4gRG9XaGlsZU5vZGVJRDsgfQogCiAgICAgICAgIFN0YXRlbWVudE5vZGUqIG1fc3RhdGVtZW50
OwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwpAQCAtMTI0Niw2ICsxNDcxLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7Cisg
ICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFdoaWxlTm9kZUlEOyB9
CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgU3RhdGVtZW50Tm9k
ZSogbV9zdGF0ZW1lbnQ7CkBAIC0xMjU3LDYgKzE0ODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2Rl
VHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRm9yTm9kZUlEOyB9CiAKICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIG1fZXhwcjE7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHIyOwpAQCAtMTI3
Miw2ICsxNDk5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJu
IEZvckluTm9kZUlEOyB9CiAKICAgICAgICAgSWRlbnRpZmllciBtX2lkZW50OwogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9pbml0OwpAQCAtMTI4OCw2ICsxNTE2LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAg
ICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gQ29udGludWVOb2RlSUQ7IH0K
IAogICAgICAgICBJZGVudGlmaWVyIG1faWRlbnQ7CiAgICAgfTsKQEAgLTEyOTksNiArMTUyOCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0
dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCk7CisgICAgICAgIHZpcnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIEJy
ZWFrTm9kZUlEOyB9CiAKICAgICAgICAgSWRlbnRpZmllciBtX2lkZW50OwogICAgIH07CkBAIC0x
MzA5LDYgKzE1MzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1
cm4gUmV0dXJuTm9kZUlEOyB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzUmV0dXJuTm9kZSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApAQCAtMTMyMSw2ICsxNTUyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZp
cnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIFdpdGhOb2RlSUQ7IH0KIAogICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRl
bWVudDsKQEAgLTEzMzQsNiArMTU2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5
cGUoKSB7IHJldHVybiBMYWJlbE5vZGVJRDsgfQogCiAgICAgICAgIElkZW50aWZpZXIgbV9uYW1l
OwogICAgICAgICBTdGF0ZW1lbnROb2RlKiBtX3N0YXRlbWVudDsKQEAgLTEzNDUsNiArMTU3OCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
OworICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBUaHJvd05vZGVJ
RDsgfQogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAgLTEzNTUs
NiArMTU4OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiBkc3QgPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1
cm4gVHJ5Tm9kZUlEOyB9CiAKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV90cnlCbG9jazsKICAg
ICAgICAgSWRlbnRpZmllciBtX2V4Y2VwdGlvbklkZW50OwpAQCAtMTQ5Miw2ICsxNzI3LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBnZW5lcmF0ZUJ5dGVjb2RlKFNjb3BlQ2hh
aW5Ob2RlKik7CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlw
ZSBnZXRUeXBlKCkgeyByZXR1cm4gUHJvZ3JhbU5vZGVJRDsgfQogCiAjaWYgRU5BQkxFKEpJVCkK
ICAgICAgICAgdm9pZCBnZW5lcmF0ZUpJVENvZGUoU2NvcGVDaGFpbk5vZGUqKTsKQEAgLTE1Mjks
NiArMTc2NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ2VuZXJhdGVCeXRl
Y29kZShTY29wZUNoYWluTm9kZSopOwogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CisgICAgICAgIHZp
cnR1YWwgTm9kZVR5cGUgZ2V0VHlwZSgpIHsgcmV0dXJuIEV2YWxOb2RlSUQ7IH0KIAogI2lmIEVO
QUJMRShKSVQpCiAgICAgICAgIHZvaWQgZ2VuZXJhdGVKSVRDb2RlKFNjb3BlQ2hhaW5Ob2RlKik7
CkBAIC0xNTk3LDYgKzE4MzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25C
b2R5Tm9kZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rp
b25TdGFjayosIGNvbnN0IFNvdXJjZUNvZGUmLCBDb2RlRmVhdHVyZXMsIGludCBudW1Db25zdGFu
dHMpOwogCiAgICAgICAgIHZvaWQgZ2VuZXJhdGVCeXRlY29kZShTY29wZUNoYWluTm9kZSopOwor
ICAgICAgICB2aXJ0dWFsIE5vZGVUeXBlIGdldFR5cGUoKSB7IHJldHVybiBGdW5jdGlvbkJvZHlO
b2RlSUQ7IH0KICNpZiBFTkFCTEUoSklUKQogICAgICAgICB2b2lkIGdlbmVyYXRlSklUQ29kZShT
Y29wZUNoYWluTm9kZSopOwogI2VuZGlmCkBAIC0xNjE1LDYgKzE4NTMsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmly
dHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gRnVuY0V4cHJOb2RlSUQ7IH0KIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNGdW5jRXhwck5vZGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
IAogCkBAIC0xNjM0LDYgKzE4NzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmlydHVhbCBOb2RlVHlwZSBnZXRUeXBl
KCkgeyByZXR1cm4gRnVuY0RlY2xOb2RlSUQ7IH0KIAogICAgICAgICBSZWZQdHI8RnVuY3Rpb25C
b2R5Tm9kZT4gbV9ib2R5OwogICAgIH07CkBAIC0xNjgzLDYgKzE5MjMsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKKyAgICAgICAgdmly
dHVhbCBOb2RlVHlwZSBnZXRUeXBlKCkgeyByZXR1cm4gU3dpdGNoTm9kZUlEOyB9CiAKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICAgICAgQ2FzZUJsb2NrTm9kZSogbV9ibG9j
azsKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="16762"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32298</attachid>
            <date>2009-07-06 06:16:04 -0700</date>
            <delta_ts>2009-07-09 20:28:56 -0700</delta_ts>
            <desc>Enable math.floor(a/b) optimization on interpreter</desc>
            <filename>0002-Enable-math-floor-optimization.patch</filename>
            <type>text/plain</type>
            <size>9774</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">RnJvbSAzOGU0MzE2OTI3Njc3ZWQwN2I4NTlkNjUyNTViODg5ZGY1M2FkZmVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAaW5mLnUtc3plZ2Vk
Lmh1PgpEYXRlOiBNb24sIDYgSnVsIDIwMDkgMTM6NDg6NTMgKzAyMDAKU3ViamVjdDogW1BBVENI
XSBFbmFibGUgbWF0aC1mbG9vciBvcHRpbWl6YXRpb24KClNpZ25lZC1vZmYtYnk6IFpvbHRhbiBI
ZXJjemVnIDx6aGVyY3plZ0BpbmYudS1zemVnZWQuaHU+Ci0tLQogSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcCAgICAgICAgICAgICB8ICAgIDggKysrKysrCiBKYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9PcGNvZGUuaCAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBKYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIHwgICAyNSArKysrKysr
KysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oICAgfCAgICAyICsKIEphdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cCAgICAgICAgfCAgIDI5ICsrKysrKysrKysrKysrKysrKysrKwogSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmNwcCAgICAgICAgICAgICAgICAgICB8ICAgIDggKysrKystCiBKYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggICAgICAgIHwgICAgMiArCiBKYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oICAgICAgICAgICAgIHwgICAgMSArCiBKYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwICAgICAgICAgICAgIHwgICAgMiArCiA5
IGZpbGVzIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggZDc3N2Y3My4uNTY1NTdmNyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC05NTIsNiArOTUyLDE0IEBAIHZvaWQg
Q29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmVjdG9yPEluc3RydWN0aW9u
Pjo6Y29uc3RfaXRlcmF0b3ImCiAgICAgICAgICAgICBwcmludGYoIlslNGRdIHN3aXRjaF9zdHJp
bmdcdCAlZCwgJWQoLT4lZCksICVzXG4iLCBsb2NhdGlvbiwgdGFibGVJbmRleCwgZGVmYXVsdFRh
cmdldCwgbG9jYXRpb25Gb3JPZmZzZXQoYmVnaW4sIGl0LCBkZWZhdWx0VGFyZ2V0KSwgcmVnaXN0
ZXJOYW1lKHNjcnV0aW5lZVJlZ2lzdGVyKS5jX3N0cigpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfbWF0aF9mbG9vcjogeworICAgICAgICAgICAgaW50
IGRzdCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IGRpdmlkZW5kID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgZGl2aXNvciA9ICgrK2l0KS0+dS5vcGVy
YW5kOworICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAg
ICAgICAgcHJpbnRmKCJbJTRkXSBvcF9tYXRoX2Zsb29yXHQgJXMsICVzLCAlcywgJWQoLT4lZClc
biIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZHN0KS5jX3N0cigpLCByZWdpc3Rlck5hbWUoZGl2
aWRlbmQpLmNfc3RyKCksIHJlZ2lzdGVyTmFtZShkaXZpc29yKS5jX3N0cigpLCBvZmZzZXQsIGxv
Y2F0aW9uRm9yT2Zmc2V0KGJlZ2luLCBpdCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25ld19mdW5jOiB7CiAgICAgICAgICAgICBpbnQg
cjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBmMCA9ICgrK2l0KS0+dS5v
cGVyYW5kOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmggYi9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRleCBmNDQyMWRmLi4wNjAwNTZhIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTM3LDYgKzEzNyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBtYWNybyhvcF9zd2l0Y2hfaW1tLCA0KSBcCiAgICAgICAgIG1hY3JvKG9w
X3N3aXRjaF9jaGFyLCA0KSBcCiAgICAgICAgIG1hY3JvKG9wX3N3aXRjaF9zdHJpbmcsIDQpIFwK
KyAgICAgICAgbWFjcm8ob3BfbWF0aF9mbG9vciwgNSkgXAogICAgICAgICBcCiAgICAgICAgIG1h
Y3JvKG9wX25ld19mdW5jLCAzKSBcCiAgICAgICAgIG1hY3JvKG9wX25ld19mdW5jX2V4cCwgMykg
XApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcCBiL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAKaW5kZXggN2ZlYjNjOC4uZWFiZDNlYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0xNTA4LDYgKzE1MDgsMzEgQEAgUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIGZ1bmMKICAgICByZXR1cm4gZHN0OwogfQogCit2b2lkIEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0TWF0aEZsb29yKCkKK3sKKyAgICAvLyBJbnNlcnQgYSBzcGVjaWFsIG9w
Y29kZSBiZWZvcmUgYSBjYWxsIGFuZCBhIGJpbmFyeSBvcGVyYXRvcgorICAgIHNpemVfdCBzaXpl
ID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOworICAgIEFTU0VSVChnbG9iYWxEYXRhKCktPmludGVy
cHJldGVyLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvbnMoKS5hdChzaXplIC0gOSkudS5vcGNvZGUp
ID09IG9wX2Rpdik7CisgICAgQVNTRVJUKGdsb2JhbERhdGEoKS0+aW50ZXJwcmV0ZXItPmdldE9w
Y29kZUlEKGluc3RydWN0aW9ucygpLmF0KHNpemUgLSA1KS51Lm9wY29kZSkgPT0gb3BfY2FsbCk7
CisgICAgQVNTRVJUKGluc3RydWN0aW9ucygpLmF0KHNpemUgLSAyKS51Lm9wZXJhbmQgPT0gMik7
CisKKyAgICAvLyBDb3B5IHRoZSBuZWNlc3NhcnkgY29kZQorICAgIGluc3RydWN0aW9ucygpLmdy
b3coc2l6ZSArIDkpOworICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDk7ICsraSkKKyAgICAgICAg
aW5zdHJ1Y3Rpb25zKCkuYXQoc2l6ZSArIDkgLSBpKSA9IGluc3RydWN0aW9ucygpLmF0KHNpemUg
LSBpKTsKKworICAgIC8vIEluc2VydCBuZXcgaW5zdHJ1Y3Rpb25zCisgICAgaW5zdHJ1Y3Rpb25z
KCkuYXQoc2l6ZSAtIDkpLnUub3Bjb2RlID0gZ2xvYmFsRGF0YSgpLT5pbnRlcnByZXRlci0+Z2V0
T3Bjb2RlKG9wX2puZXFfcHRyKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hdChzaXplIC0gOCkudS5v
cGVyYW5kID0gaW5zdHJ1Y3Rpb25zKCkuYXQoc2l6ZSArIDYpLnUub3BlcmFuZDsKKyAgICBpbnN0
cnVjdGlvbnMoKS5hdChzaXplIC0gNykudS5qc0NlbGwgPSBnbG9iYWxEYXRhKCktPm1hdGhGbG9v
ci5hc0NlbGwoKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hdChzaXplIC0gNikudS5vcGVyYW5kID0g
NiAvKiB0YXJnZXQgKi87CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXQoc2l6ZSAtIDUpLnUub3Bjb2Rl
ID0gZ2xvYmFsRGF0YSgpLT5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlKG9wX21hdGhfZmxvb3IpOwor
ICAgIGluc3RydWN0aW9ucygpLmF0KHNpemUgLSA0KS51Lm9wZXJhbmQgPSBpbnN0cnVjdGlvbnMo
KS5hdChzaXplICsgNSkudS5vcGVyYW5kOworICAgIGluc3RydWN0aW9ucygpLmF0KHNpemUgLSAz
KS51Lm9wZXJhbmQgPSBpbnN0cnVjdGlvbnMoKS5hdChzaXplICsgMikudS5vcGVyYW5kOworICAg
IGluc3RydWN0aW9ucygpLmF0KHNpemUgLSAyKS51Lm9wZXJhbmQgPSBpbnN0cnVjdGlvbnMoKS5h
dChzaXplICsgMykudS5vcGVyYW5kOworICAgIGluc3RydWN0aW9ucygpLmF0KHNpemUgLSAxKS51
Lm9wZXJhbmQgPSAxMCAvKiB0YXJnZXQgKi87Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0UmV0dXJuKFJlZ2lzdGVySUQqIHNyYykKIHsKICAgICBpZiAobV9jb2RlQmxv
Y2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKSkgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCBkMjlhMjRkLi5jMzM1NzI1IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtMzE2
LDYgKzMxNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBQYXNzUmVmUHRyPExhYmVsPiBl
bWl0SnVtcFN1YnJvdXRpbmUoUmVnaXN0ZXJJRCogcmV0QWRkckRzdCwgTGFiZWwqKTsKICAgICAg
ICAgdm9pZCBlbWl0U3Vicm91dGluZVJldHVybihSZWdpc3RlcklEKiByZXRBZGRyU3JjKTsKIAor
ICAgICAgICB2b2lkIGVtaXRNYXRoRmxvb3IoKTsKKwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
R2V0UHJvcGVydHlOYW1lcyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UpIHsgcmV0
dXJuIGVtaXRVbmFyeU9wKG9wX2dldF9wbmFtZXMsIGRzdCwgYmFzZSk7IH0KICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdE5leHRQcm9wZXJ0eU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBpdGVyLCBMYWJlbCogdGFyZ2V0KTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCmluZGV4IDQ3MWU0MDkuLmJkMjEyYWMgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTI5NTQsNiArMjk1NCwzNSBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpb25GbGFnIGZsYWcsIFJlZ2lzdGVy
RmlsZSogcmVnaXN0ZXJGaQogICAgICAgICAgICAgdlBDICs9IGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCktPnN0cmluZ1N3aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KS5vZmZzZXRGb3JWYWx1ZShhc1N0
cmluZyhzY3J1dGluZWUpLT52YWx1ZSgpLnJlcCgpLCBkZWZhdWx0T2Zmc2V0KTsKICAgICAgICAg
TkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KKyAgICBERUZJTkVfT1BDT0RFKG9wX21hdGhfZmxv
b3IpIHsKKyAgICAgICAgLyogb3BfbWF0aF9mbG9vciBkc3QocikgZGl2aWRlbmQocikgZGl2aXNv
cihyKSB0YXJnZXQob2Zmc2V0KQorCisgICAgICAgICAgIElmIGJvdGggb3BlcmFuZHMgYXJlIGlu
dGVnZXIgbnVtYmVycywgaXQgcGVyZm9ybXMgYW4gaW50ZWdlcgorICAgICAgICAgICBkaXZpc2lv
biwgcHV0IHRoZSByZXN1bHQgaW50byBkc3QociksIGFuZCBqdW1wcyB0byB0YXJnZXQuCisgICAg
ICAgICAgIE90aGVyd2lzZSwgaXQgZG9lcyBub3RoaW5nLgorICAgICAgICAqLworICAgICAgICBp
bnQgZHN0ID0gKCsrdlBDKS0+dS5vcGVyYW5kOworICAgICAgICBKU1ZhbHVlIHNyYzEgPSBjYWxs
RnJhbWVbKCsrdlBDKS0+dS5vcGVyYW5kXS5qc1ZhbHVlKCk7CisgICAgICAgIEpTVmFsdWUgc3Jj
MiA9IGNhbGxGcmFtZVsoKyt2UEMpLT51Lm9wZXJhbmRdLmpzVmFsdWUoKTsKKyAgICAgICAgaW50
IHRhcmdldCA9ICgrK3ZQQyktPnUub3BlcmFuZDsKKworICAgICAgICBpZiAoSlNWYWx1ZTo6YXJl
Qm90aEludDMyRmFzdChzcmMxLCBzcmMyKSkgeworICAgICAgICAgICAgaW50MzJfdCBsZWZ0ID0g
c3JjMS5nZXRJbnQzMkZhc3QoKTsKKyAgICAgICAgICAgIGludDMyX3QgcmlnaHQgPSBzcmMyLmdl
dEludDMyRmFzdCgpOworICAgICAgICAgICAgaWYgKHJpZ2h0ICE9IDApIHsKKyAgICAgICAgICAg
ICAgICAvKiB0aGV5IGhhdmUgdGhlIHNhbWUgc2lnbiAqLworICAgICAgICAgICAgICAgIGlmICgo
bGVmdCA+PSAwICYmIHJpZ2h0ID49IDApIHx8IChsZWZ0IDwgMCAmJiByaWdodCA8IDApKQorICAg
ICAgICAgICAgICAgICAgICBjYWxsRnJhbWVbZHN0XSA9IEpTVmFsdWUoanNOdW1iZXIoY2FsbEZy
YW1lLCBsZWZ0IC8gcmlnaHQpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGNhbGxGcmFtZVtkc3RdID0gSlNWYWx1ZShqc051bWJlcihjYWxsRnJhbWUsIChsZWZ0
IC8gcmlnaHQpIC0gKChsZWZ0ICUgcmlnaHQpID8gMSA6IDApKSk7CisgICAgICAgICAgICAgICAg
dlBDICs9IHRhcmdldDsKKyAgICAgICAgICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICArK3ZQQzsKKyAgICAgICAgTkVYVF9JTlNU
UlVDVElPTigpOworICAgIH0KICAgICBERUZJTkVfT1BDT0RFKG9wX25ld19mdW5jKSB7CiAgICAg
ICAgIC8qIG5ld19mdW5jIGRzdChyKSBmdW5jKGYpCiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2Rlcy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuY3BwCmlu
ZGV4IGJhNmUxZTAuLjRiNmEyZjQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcApAQCAtMzgwLDcg
KzM4MCwxMyBAQCBSZWdpc3RlcklEKiBGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaQogICAgIGdlbmVyYXRvci5lbWl0TWV0
aG9kQ2hlY2soKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZnVuY3Rpb24gPSBnZW5lcmF0b3Iu
ZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBt
X2lkZW50KTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZ2VuZXJhdG9y
LmVtaXRNb3ZlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYmFzZS5nZXQoKSk7Ci0gICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0Q2FsbChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIGZ1
bmN0aW9uLmdldCgpKSwgZnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgbV9hcmdz
LCBkaXZvdCgpLCBzdGFydE9mZnNldCgpLCBlbmRPZmZzZXQoKSk7CisgICAgUmVnaXN0ZXJJRCog
cmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRDYWxsKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRz
dCwgZnVuY3Rpb24uZ2V0KCkpLCBmdW5jdGlvbi5nZXQoKSwgdGhpc1JlZ2lzdGVyLmdldCgpLCBt
X2FyZ3MsIGRpdm90KCksIHN0YXJ0T2Zmc2V0KCksIGVuZE9mZnNldCgpKTsKKyAgICBpZiAobV9i
YXNlLT5nZXRUeXBlKCkgPT0gUmVzb2x2ZU5vZGVJRCAmJiByZWludGVycHJldF9jYXN0PFJlc29s
dmVOb2RlKj4obV9iYXNlKS0+aWRlbnRpZmllcigpID09IGdlbmVyYXRvci5nbG9iYWxEYXRhKCkt
PnByb3BlcnR5TmFtZXMtPk1hdGgpIHsKKyAgICAgICAgaWYgKG1faWRlbnQgPT0gZ2VuZXJhdG9y
Lmdsb2JhbERhdGEoKS0+cHJvcGVydHlOYW1lcy0+Zmxvb3IgJiYgbV9hcmdzLT5tX2xpc3ROb2Rl
ICYmICFtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dCAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1f
ZXhwci0+Z2V0VHlwZSgpID09IERpdk5vZGVJRCkKKyAgICAgICAgICAgIC8vIEZhc3QgY2FzZSBm
b3IgTWF0aC5mbG9vcihhL2IpIGV4cHJlc3Npb24KKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0
TWF0aEZsb29yKCk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIFJlZ2lzdGVySUQq
IENhbGxGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCmluZGV4IDQwOGQ4MTkuLjk0Y2RkOGYgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTUyLDYgKzUyLDggQEAKICAgICBtYWNy
byhtdWx0aWxpbmUpIFwKICAgICBtYWNybyhuYW1lKSBcCiAgICAgbWFjcm8obm93KSBcCisgICAg
bWFjcm8oTWF0aCkgXAorICAgIG1hY3JvKGZsb29yKSBcCiAgICAgbWFjcm8ocGFyc2UpIFwKICAg
ICBtYWNybyhwcm9wZXJ0eUlzRW51bWVyYWJsZSkgXAogICAgIG1hY3JvKHByb3RvdHlwZSkgXApk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaCBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKaW5kZXggOTZhM2MyYy4uOTVlNDQyZCAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCkBAIC0xMDUsNiArMTA1LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQqIGpzQnl0ZUFycmF5VlB0cjsKICAgICAgICAg
dm9pZCoganNTdHJpbmdWUHRyOwogICAgICAgICB2b2lkKiBqc0Z1bmN0aW9uVlB0cjsKKyAgICAg
ICAgSlNWYWx1ZSBtYXRoRmxvb3I7CiAKICAgICAgICAgSWRlbnRpZmllclRhYmxlKiBpZGVudGlm
aWVyVGFibGU7CiAgICAgICAgIENvbW1vbklkZW50aWZpZXJzKiBwcm9wZXJ0eU5hbWVzOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5kZXggMjU3MmJjOS4uM2VkOTUyZiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIE1hdGhP
YmplY3Q6Ok1hdGhPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
c3RydWN0dXJlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKElkZW50aWZpZXIoZXhl
YywgIlNRUlQxXzIiKSwganNOdW1iZXIoZXhlYywgc3FydCgwLjUpKSwgRG9udERlbGV0ZSB8IERv
bnRFbnVtIHwgUmVhZE9ubHkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKElkZW50
aWZpZXIoZXhlYywgIlNRUlQyIiksIGpzTnVtYmVyKGV4ZWMsIHNxcnQoMi4wKSksIERvbnREZWxl
dGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKICAgICBXVEY6OmluaXRpYWxpemVXZWFrUmFuZG9t
TnVtYmVyR2VuZXJhdG9yKCk7CisKKyAgICBleGVjLT5nbG9iYWxEYXRhKCkubWF0aEZsb29yID0g
Z2V0KGV4ZWMsIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5mbG9vcik7CiB9CiAK
IC8vIEVDTUEgMTUuOAotLSAKMS42LjAuNAoK
</data>
<flag name="review"
          id="16763"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32299</attachid>
            <date>2009-07-06 06:19:13 -0700</date>
            <delta_ts>2009-07-06 06:19:13 -0700</delta_ts>
            <desc>SunSpider results</desc>
            <filename>compare-ss.txt</filename>
            <type>text/plain</type>
            <size>4098</size>
            <attacher name="Zoltan Herczeg">zherczeg</attacher>
            
              <data encoding="base64">U3RhcnRpbmcgc3Vuc3BpZGVyLWNvbXBhcmUtcmVzdWx0cyB3aXRoIERZTERfRlJBTUVXT1JLX1BB
VEggc2V0IHRvIHBvaW50IHRvIGJ1aWx0IEphdmFTY3JpcHRDb3JlIGluIC9ob21lL2h6b2xpL1dl
YmtpdC1BUk0vV2ViS2l0LWFybS9XZWJLaXRCdWlsZC9SZWxlYXNlL0phdmFTY3JpcHRDb3JlLg0K
DQoNClRFU1QgICAgICAgICAgICAgICAgICAgQ09NUEFSSVNPTiAgICAgICAgICAgIEZST00gICAg
ICAgICAgICAgICAgIFRPICAgICAgICAgICAgIERFVEFJTFMNCg0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCg0KKiogVE9UQUwgKio6ICAgICAgICAgICA/PyAgICAgICAgICAgICAgICAyMjk3LjltcyAr
Ly0gMC42JSAgIDIzMTEuNm1zICsvLSAwLjYlICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUg
KjEuMDA2eCBhcyBzbG93Kg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogIDNkOiAgICAgICAg
ICAgICAgICAgID8/ICAgICAgICAgICAgICAgICAzOTAuN21zICsvLSAxLjQlICAgIDM5My4xbXMg
Ky8tIDEuMiUgICAgIG5vdCBjb25jbHVzaXZlOiBtaWdodCBiZSAqMS4wMDZ4IGFzIHNsb3cqDQog
ICAgY3ViZTogICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAxMjEuMm1zICsvLSAxLjMl
ICAgIDExOS4zbXMgKy8tIDEuNCUgDQogICAgbW9ycGg6ICAgICAgICAgICAgID8/ICAgICAgICAg
ICAgICAgICAxNTkuNm1zICsvLSAzLjElICAgIDE2MC4ybXMgKy8tIDIuMyUgICAgIG5vdCBjb25j
bHVzaXZlOiBtaWdodCBiZSAqMS4wMDR4IGFzIHNsb3cqDQogICAgcmF5dHJhY2U6ICAgICAgICAg
ICoxLjAzNHggYXMgc2xvdyogICAxMDkuOW1zICsvLSAwLjYlICAgIDExMy42bXMgKy8tIDAuNiUg
ICAgIHNpZ25pZmljYW50DQoNCiAgYWNjZXNzOiAgICAgICAgICAgICAgKjEuMDMweCBhcyBzbG93
KiAgIDM0Mi4ybXMgKy8tIDAuNCUgICAgMzUyLjZtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQN
CiAgICBiaW5hcnktdHJlZXM6ICAgICAgPz8gICAgICAgICAgICAgICAgICAyMy44bXMgKy8tIDEu
MyUgICAgIDI0LjFtcyArLy0gMC45JSAgICAgbm90IGNvbmNsdXNpdmU6IG1pZ2h0IGJlICoxLjAx
M3ggYXMgc2xvdyoNCiAgICBmYW5ua3VjaDogICAgICAgICAgKjEuMDE4eCBhcyBzbG93KiAgIDEy
OS40bXMgKy8tIDAuMyUgICAgMTMxLjdtcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQNCiAgICBu
Ym9keTogICAgICAgICAgICAgKjEuMDU1eCBhcyBzbG93KiAgIDE1MC45bXMgKy8tIDAuOCUgICAg
MTU5LjJtcyArLy0gMC42JSAgICAgc2lnbmlmaWNhbnQNCiAgICBuc2lldmU6ICAgICAgICAgICAg
MS4wMTN4IGFzIGZhc3QgICAgICAzOC4xbXMgKy8tIDAuNiUgICAgIDM3LjZtcyArLy0gMS4wJSAg
ICAgc2lnbmlmaWNhbnQNCg0KICBiaXRvcHM6ICAgICAgICAgICAgICAqMS4wMDl4IGFzIHNsb3cq
ICAgMjIxLjFtcyArLy0gMC4zJSAgICAyMjMuMm1zICsvLSAwLjQlICAgICBzaWduaWZpY2FudA0K
ICAgIDNiaXQtYml0cy1pbi1ieXRlOiAqMS4wMTZ4IGFzIHNsb3cqICAgIDM4LjZtcyArLy0gMS4w
JSAgICAgMzkuMm1zICsvLSAwLjglICAgICBzaWduaWZpY2FudA0KICAgIGJpdHMtaW4tYnl0ZTog
ICAgICA/PyAgICAgICAgICAgICAgICAgIDUxLjJtcyArLy0gMC42JSAgICAgNTEuNW1zICsvLSAw
LjclICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA2eCBhcyBzbG93Kg0KICAgIGJp
dHdpc2UtYW5kOiAgICAgICA/PyAgICAgICAgICAgICAgICAgIDQ0LjFtcyArLy0gMC41JSAgICAg
NDQuM21zICsvLSAwLjglICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA1eCBhcyBz
bG93Kg0KICAgIG5zaWV2ZS1iaXRzOiAgICAgICAqMS4wMTF4IGFzIHNsb3cqICAgIDg3LjJtcyAr
Ly0gMC4zJSAgICAgODguMm1zICsvLSAwLjYlICAgICBzaWduaWZpY2FudA0KDQogIGNvbnRyb2xm
bG93OiAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgMjUuNW1zICsvLSAyLjAlICAgICAyNS4z
bXMgKy8tIDEuNCUgDQogICAgcmVjdXJzaXZlOiAgICAgICAgIC0gICAgICAgICAgICAgICAgICAg
MjUuNW1zICsvLSAyLjAlICAgICAyNS4zbXMgKy8tIDEuNCUgDQoNCiAgY3J5cHRvOiAgICAgICAg
ICAgICAgKjEuMDA5eCBhcyBzbG93KiAgIDE1My4wbXMgKy8tIDAuNSUgICAgMTU0LjRtcyArLy0g
MC40JSAgICAgc2lnbmlmaWNhbnQNCiAgICBhZXM6ICAgICAgICAgICAgICAgMS4wMTV4IGFzIGZh
c3QgICAgICA1NC45bXMgKy8tIDAuNyUgICAgIDU0LjFtcyArLy0gMC43JSAgICAgc2lnbmlmaWNh
bnQNCiAgICBtZDU6ICAgICAgICAgICAgICAgKjEuMDEyeCBhcyBzbG93KiAgICA0OS4zbXMgKy8t
IDAuNyUgICAgIDQ5LjltcyArLy0gMC44JSAgICAgc2lnbmlmaWNhbnQNCiAgICBzaGExOiAgICAg
ICAgICAgICAgKjEuMDMzeCBhcyBzbG93KiAgICA0OC44bXMgKy8tIDAuNiUgICAgIDUwLjRtcyAr
Ly0gMC43JSAgICAgc2lnbmlmaWNhbnQNCg0KICBkYXRlOiAgICAgICAgICAgICAgICAxLjAyNHgg
YXMgZmFzdCAgICAgMTQzLjFtcyArLy0gMC45JSAgICAxMzkuOG1zICsvLSAwLjclICAgICBzaWdu
aWZpY2FudA0KICAgIGZvcm1hdC10b2Z0ZTogICAgICAxLjAxMXggYXMgZmFzdCAgICAgIDYzLjht
cyArLy0gMC45JSAgICAgNjMuMW1zICsvLSAwLjQlICAgICBzaWduaWZpY2FudA0KICAgIGZvcm1h
dC14cGFyYjogICAgICAxLjAzNHggYXMgZmFzdCAgICAgIDc5LjNtcyArLy0gMS4wJSAgICAgNzYu
N21zICsvLSAxLjElICAgICBzaWduaWZpY2FudA0KDQogIG1hdGg6ICAgICAgICAgICAgICAgID8/
ICAgICAgICAgICAgICAgICAzMDIuOW1zICsvLSAwLjclICAgIDMwNC43bXMgKy8tIDAuOSUgICAg
IG5vdCBjb25jbHVzaXZlOiBtaWdodCBiZSAqMS4wMDZ4IGFzIHNsb3cqDQogICAgY29yZGljOiAg
ICAgICAgICAgID8/ICAgICAgICAgICAgICAgICAxMTMuOG1zICsvLSAwLjglICAgIDExNC42bXMg
Ky8tIDAuNyUgICAgIG5vdCBjb25jbHVzaXZlOiBtaWdodCBiZSAqMS4wMDd4IGFzIHNsb3cqDQog
ICAgcGFydGlhbC1zdW1zOiAgICAgIC0gICAgICAgICAgICAgICAgICAxMjAuOG1zICsvLSAwLjcl
ICAgIDEyMC45bXMgKy8tIDEuNyUgDQogICAgc3BlY3RyYWwtbm9ybTogICAgICoxLjAxM3ggYXMg
c2xvdyogICAgNjguM21zICsvLSAxLjAlICAgICA2OS4ybXMgKy8tIDAuOCUgICAgIHNpZ25pZmlj
YW50DQoNCiAgcmVnZXhwOiAgICAgICAgICAgICAgPz8gICAgICAgICAgICAgICAgIDMwMy4zbXMg
Ky8tIDAuMiUgICAgMzA0LjNtcyArLy0gMC40JSAgICAgbm90IGNvbmNsdXNpdmU6IG1pZ2h0IGJl
ICoxLjAwM3ggYXMgc2xvdyoNCiAgICBkbmE6ICAgICAgICAgICAgICAgPz8gICAgICAgICAgICAg
ICAgIDMwMy4zbXMgKy8tIDAuMiUgICAgMzA0LjNtcyArLy0gMC40JSAgICAgbm90IGNvbmNsdXNp
dmU6IG1pZ2h0IGJlICoxLjAwM3ggYXMgc2xvdyoNCg0KICBzdHJpbmc6ICAgICAgICAgICAgICAt
ICAgICAgICAgICAgICAgICAgNDE2LjFtcyArLy0gMS40JSAgICA0MTQuMm1zICsvLSAxLjIlIA0K
ICAgIGJhc2U2NDogICAgICAgICAgICA/PyAgICAgICAgICAgICAgICAgIDUxLjJtcyArLy0gMC45
JSAgICAgNTEuNG1zICsvLSAxLjIlICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDA0
eCBhcyBzbG93Kg0KICAgIGZhc3RhOiAgICAgICAgICAgICAtICAgICAgICAgICAgICAgICAgIDg2
LjBtcyArLy0gMi4xJSAgICAgODUuMG1zICsvLSAyLjElIA0KICAgIHRhZ2Nsb3VkOiAgICAgICAg
ICAtICAgICAgICAgICAgICAgICAgIDg4LjVtcyArLy0gMS4wJSAgICAgODguMm1zICsvLSAxLjQl
IA0KICAgIHVucGFjay1jb2RlOiAgICAgICAtICAgICAgICAgICAgICAgICAgMTE1LjBtcyArLy0g
MS45JSAgICAxMTQuN21zICsvLSAxLjAlIA0KICAgIHZhbGlkYXRlLWlucHV0OiAgICAtICAgICAg
ICAgICAgICAgICAgIDc1LjRtcyArLy0gMi4wJSAgICAgNzQuOW1zICsvLSAxLjklIA0K
</data>

          </attachment>
      

    </bug>

</bugzilla>