<?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>110244</bug_id>
          
          <creation_ts>2013-02-19 11:40:33 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Refactor the code in preparation of auto placement support</short_desc>
          <delta_ts>2013-02-19 15:36:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103316</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836604</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 11:40:33 -0800</bug_when>
    <thetext>We are up to a point where placeItemsOnGrid is called once and the cached coordinates are reused so implementing auto placement is possible.

In order to support auto placement, we need to start iterating several times over our grid items with auto row / column but only if grid-auto-flow is not none.

This refactor will prepare the multiple iteration as well as draw a better distinction with the grid-auto-flow: none case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836612</commentid>
    <comment_count>1</comment_count>
      <attachid>189127</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 11:48:16 -0800</bug_when>
    <thetext>Created attachment 189127
Proposed refactoring: Including some simple tests for grid-auto-flow: none, more testing with the real algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836620</commentid>
    <comment_count>2</comment_count>
      <attachid>189130</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 11:58:06 -0800</bug_when>
    <thetext>Created attachment 189130
Proposed refactoring 2: Including some simple tests for grid-auto-flow: none, more testing with the real algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836632</commentid>
    <comment_count>3</comment_count>
      <attachid>189130</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-19 12:07:07 -0800</bug_when>
    <thetext>Comment on attachment 189130
Proposed refactoring 2: Including some simple tests for grid-auto-flow: none, more testing with the real algorithm.

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

Please fix the test issue before submitting. Otherwise, this looks good.

&gt; LayoutTests/fast/css-grid-layout/grid-auto-flow-resolution.html:21
&gt; +        &lt;div class=&quot;sizedToGridArea autoRowAutoColumn&quot; data-expected-width=&quot;50&quot; data-expected-height=&quot;50&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;

Shouldn&apos;t this be checking x/y offsets if the thing we&apos;re checking is the positioning?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836651</commentid>
    <comment_count>4</comment_count>
      <attachid>189130</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 12:14:05 -0800</bug_when>
    <thetext>Comment on attachment 189130
Proposed refactoring 2: Including some simple tests for grid-auto-flow: none, more testing with the real algorithm.

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

&gt;&gt; LayoutTests/fast/css-grid-layout/grid-auto-flow-resolution.html:21
&gt;&gt; +        &lt;div class=&quot;sizedToGridArea autoRowAutoColumn&quot; data-expected-width=&quot;50&quot; data-expected-height=&quot;50&quot;&gt;XXXXX XXXXX XXXXX&lt;/div&gt;
&gt; 
&gt; Shouldn&apos;t this be checking x/y offsets if the thing we&apos;re checking is the positioning?

It would work too but here the sizing is based on which column / row you are in (see the smallGrid example).

AFAICT both proposals have the same limitation with respect to implicit row / column as they would be zero-sized without any grid items. That means I don&apos;t have a strong preference over which one is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836653</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-19 12:15:39 -0800</bug_when>
    <thetext>I was just suggesting to add both. There&apos;s no harm to making sure both bits happen correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836720</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 13:28:42 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I was just suggesting to add both. There&apos;s no harm to making sure both bits happen correctly.

Sounds good, I thought you were confused by the indirect position measurement through height / width.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836727</commentid>
    <comment_count>7</comment_count>
      <attachid>189154</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-19 13:33:13 -0800</bug_when>
    <thetext>Created attachment 189154
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836870</commentid>
    <comment_count>8</comment_count>
      <attachid>189154</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 15:36:15 -0800</bug_when>
    <thetext>Comment on attachment 189154
Patch for landing

Clearing flags on attachment: 189154

Committed r143397: &lt;http://trac.webkit.org/changeset/143397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836871</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 15:36:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189127</attachid>
            <date>2013-02-19 11:48:16 -0800</date>
            <delta_ts>2013-02-19 11:58:04 -0800</delta_ts>
            <desc>Proposed refactoring: Including some simple tests for grid-auto-flow: none, more testing with the real algorithm.</desc>
            <filename>bug-110244-20130219114438.patch</filename>
            <type>text/plain</type>
            <size>11693</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjYmRhNjVlYmMzN2I0
ZDI2OTRiOGM2MTIzNGVlZGQwYzFkYmFmNS4uNzRhYWYxOWJjMmM1NWU0NDMzNzcyYjFkYmQ1YTc5
YTU4YzJlMGU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEzLTAyLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFJlZmFjdG9yIHRoZSBjb2RlIGluIHByZXBhcmF0aW9uIG9mIGF1dG8gcGxhY2Vt
ZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24u
aHRtbAorCisgICAgICAgIEluIG9yZGVyIHRvIHN1cHBvcnQgYXV0byBwbGFjZW1lbnQsIHdlIG5l
ZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBncmlkIGl0ZW1zIHdpdGgKKyAgICAgICAgYXV0byByb3cg
LyBjb2x1bW4gc2V2ZXJhbCB0aW1lcy4gVGhpcyBjaGFuZ2VzIG1ha2VzIHVzIGRvIHRoYXQgaW4g
YSB2ZXJ5IHNpbXBsZSwKKyAgICAgICAgbm9uIGNvbmZvcm1hbnQgd2F5LiBXaGlsZSB0b3VjaGlu
ZyB0aGlzIGNvZGUsIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIGdyaWQtYXV0by1mbG93CisgICAg
ICAgIG5vbmUgYW5kIHJvdyAvIGNvbHVtbiB3YXMgYmV0dGVyIGRyYXduIChhbmQgZW5mb3JjZWQp
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIE1h
ZGUgaXQgaWxsZWdhbCB0byBjYWxsIHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUgaWYgdGhl
IGdyaWQgdHJhY2sgaXMgYXV0byBhbmQKKyAgICAgICAgZ3JpZC1hdXRvLWZsb3cgaXMgbm90IG5v
bmUuIFRoaXMgd291bGQgY2F0Y2ggYmFkIHVzZSBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6Om1heGltdW1JbmRleEluRGlyZWN0aW9uKToKKyAgICAgICAg
VXBkYXRlZCB0byBiYWlsIG91dCBpZiB0aGUgZ3JpZCB0cmFjayBpcyBhdXRvLiBBbHNvIGltcHJv
dmVkIHRoZSBjb21tZW50LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0
ZW1zT25HcmlkKToKKyAgICAgICAgVXBkYXRlZCB0aGUgCisKKzIwMTMtMDItMTkgIEp1bGllbiBD
aGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKICAgICAgICAgUmVuZGVyR3JpZDo6
Y29tcHV0ZWRVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyBjYW4gcmVhZCBwYXN0IG1fZ3JpZCdzIHNp
emUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDEy
NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggNjkwZGFkMjk1
MTQ4ZTEzYzNhMjY4MjcxMWJjMjgxZjU3NGU0OGNiYy4uMjVlMGNjNGM3NmI0NWU5Njk4NWNiNzkx
M2QyMWZkMGE5YWZjNjcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cApAQCAtMzE3LDcgKzMxNywxMiBAQCBzaXplX3QgUmVuZGVyR3JpZDo6bWF4aW11bUluZGV4SW5E
aXJlY3Rpb24oVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogCiAgICAgZm9y
IChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0
aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRl
bUNvbHVtbigpIDogY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtUm93KCk7Ci0gICAgICAgIC8vIFRo
aXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIGNhY2hlIGFzIGl0IGlzIHVzZWQgdG8gYnVpbGQgaXQu
IEFsc28gJ2F1dG8nIGl0ZW1zIHdpbGwgbmVlZCB0byBiZSByZXNvbHZlZCBpbiBzZXBlcmF0ZSBw
aGFzZXMgYW55d2F5LgorICAgICAgICAvLyAnYXV0bycgaXRlbXMgd2lsbCBuZWVkIHRvIGJlIHJl
c29sdmVkIGluIHNlcGVyYXRlIHBoYXNlcyBhbnl3YXkuIE5vdGUgdGhhdCBiZWNhdXNlIG1heGlt
dW1JbmRleCBpcyBhdCBsZWFzdCAxLAorICAgICAgICAvLyBpdCBoYW5kbGVzIGF1dG9tYXRpY2Fs
bHkgdGhlIGNhc2UgZ3JpZC1hdXRvLWZsb3cgPT0gbm9uZS4KKyAgICAgICAgaWYgKHBvc2l0aW9u
LmlzQXV0bygpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gVGhpcyBmdW5j
dGlvbiBieXBhc3NlcyB0aGUgY2FjaGUgKGNhY2hlZEdyaWRDb29yZGluYXRlKCkpIGFzIGl0IGlz
IHVzZWQgdG8gYnVpbGQgaXQuCiAgICAgICAgIG1heGltdW1JbmRleCA9IHN0ZDo6bWF4KG1heGlt
dW1JbmRleCwgcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShwb3NpdGlvbikgKyAxKTsKICAg
ICB9CiAKQEAgLTQ4NiwxNCArNDkxLDM5IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09u
R3JpZCgpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2dyaWQuc2l6ZSgpOyArK2kpCiAg
ICAgICAgIG1fZ3JpZFtpXS5ncm93KG1heGltdW1Db2x1bW5JbmRleCk7CiAKKyAgICBWZWN0b3I8
UmVuZGVyQm94Kj4gYXV0b0dyaWRJdGVtczsKKyAgICBHcmlkQXV0b0Zsb3cgYXV0b0Zsb3cgPSBz
dHlsZSgpLT5ncmlkQXV0b0Zsb3coKTsKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJz
dENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0g
ICAgICAgIHNpemVfdCBjb2x1bW5UcmFjayA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUo
Y2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCkpOwotICAgICAgICBzaXplX3Qgcm93VHJh
Y2sgPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRl
bVJvdygpKTsKKyAgICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBjb2x1bW5Qb3NpdGlvbiA9IGNo
aWxkLT5zdHlsZSgpLT5ncmlkSXRlbUNvbHVtbigpOworICAgICAgICBjb25zdCBHcmlkUG9zaXRp
b24mIHJvd1Bvc2l0aW9uID0gY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtUm93KCk7CisgICAgICAg
IGlmIChhdXRvRmxvdyAhPSBBdXRvRmxvd05vbmUgJiYgKGNvbHVtblBvc2l0aW9uLmlzQXV0bygp
IHx8IHJvd1Bvc2l0aW9uLmlzQXV0bygpKSkgeworICAgICAgICAgICAgYXV0b0dyaWRJdGVtcy5h
cHBlbmQoY2hpbGQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAg
c2l6ZV90IGNvbHVtblRyYWNrID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb2x1bW5Q
b3NpdGlvbik7CisgICAgICAgIHNpemVfdCByb3dUcmFjayA9IHJlc29sdmVHcmlkUG9zaXRpb25G
cm9tU3R5bGUocm93UG9zaXRpb24pOwogICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoY2hpbGQs
IHJvd1RyYWNrLCBjb2x1bW5UcmFjayk7CiAgICAgfQogCiAgICAgQVNTRVJUKGdyaWRSb3dDb3Vu
dCgpID49IHN0eWxlKCktPmdyaWRSb3dzKCkuc2l6ZSgpKTsKICAgICBBU1NFUlQoZ3JpZENvbHVt
bkNvdW50KCkgPj0gc3R5bGUoKS0+Z3JpZENvbHVtbnMoKS5zaXplKCkpOworCisgICAgaWYgKGF1
dG9GbG93ID09IEF1dG9GbG93Tm9uZSkgeworICAgICAgICAvLyBJZiB3ZSBkaWQgY29sbGVjdCBz
b21lIGdyaWQgaXRlbXMsIHRoZXkgd29uJ3QgYmUgcGxhY2VkIHRodXMgbmV2ZXIgbGFpZCBvdXQu
CisgICAgICAgIEFTU0VSVCghYXV0b0dyaWRJdGVtcy5zaXplKCkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGltcGxlbWVudCB0aGUgYXV0byBm
bG93IGFsZ29yaXRobSAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYi8xMDMzMTYpLgorICAgIC8v
IFRvIGtlZXAgb3VyIHRlc3RzIHBhc3NpbmcsIHdlIGp1c3QgaW5zZXJ0IHRoZW0gaW4gdGhlIGdy
aWQgYXMgaWYgZ3JpZC1hdXRvLWZsb3cgd2FzIG5vbmUuCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBhdXRvR3JpZEl0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEdyaWRQb3Np
dGlvbiYgY29sdW1uUG9zaXRpb24gPSBhdXRvR3JpZEl0ZW1zW2ldLT5zdHlsZSgpLT5ncmlkSXRl
bUNvbHVtbigpOworICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gYXV0
b0dyaWRJdGVtc1tpXS0+c3R5bGUoKS0+Z3JpZEl0ZW1Sb3coKTsKKyAgICAgICAgc2l6ZV90IGNv
bHVtblRyYWNrID0gY29sdW1uUG9zaXRpb24uaXNBdXRvKCkgPyAwIDogcmVzb2x2ZUdyaWRQb3Np
dGlvbkZyb21TdHlsZShjb2x1bW5Qb3NpdGlvbik7CisgICAgICAgIHNpemVfdCByb3dUcmFjayA9
IHJvd1Bvc2l0aW9uLmlzQXV0bygpID8gMCA6IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUo
cm93UG9zaXRpb24pOworCisgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW1z
W2ldLCByb3dUcmFjaywgY29sdW1uVHJhY2spOworICAgIH0KIH0KIAogdm9pZCBSZW5kZXJHcmlk
OjpjbGVhckdyaWQoKQpAQCAtNTY2LDkgKzU5Niw4IEBAIHNpemVfdCBSZW5kZXJHcmlkOjpyZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pIGNv
CiAKICAgICAgICAgcmV0dXJuIHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMTsKICAgICBj
YXNlIEF1dG9Qb3NpdGlvbjoKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmb2xsb3cgJ2dy
aWQtYXV0by1mbG93JyBmb3IgcmVzb2x1dGlvbi4KLSAgICAgICAgLy8gVW50aWwgdGhlbiwgd2Ug
dXNlIHRoZSAnZ3JpZC1hdXRvLWZsb3c6IG5vbmUnIGJlaGF2aW9yICh3aGljaCBpcyB0aGUgZGVm
YXVsdCkKLSAgICAgICAgLy8gYW5kIHJlc29sdmUgJ2F1dG8nIGFzIHRoZSBmaXJzdCByb3cgLyBj
b2x1bW4uCisgICAgICAgIC8vIFdlIGNhbm5vdCByZXNvbHZlIGdyaWQgcG9zaXRpb25zIGlmIGdy
aWQtYXV0by1mbG93ICE9IG5vbmUgYXMgaXQgcmVxdWlyZXMgc2V2ZXJhbCBpdGVyYXRpb25zLgor
ICAgICAgICBBU1NFUlQoc3R5bGUoKS0+Z3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25lKTsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDYxNzI2ZGQ3ZTAyOTU5YTc4NjU5NjQxODlkODkxOTNmYmI1M2E5MjcuLjEzYmE2NmY5YmNk
NTM2NDg1N2FhZGU1YzQ1MjAzZDVmMTc0MDI0NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAx
My0wMi0xOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAorICAg
ICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBSZWZhY3RvciB0aGUgY29kZSBpbiBwcmVwYXJhdGlvbiBv
ZiBhdXRvIHBsYWNlbWVudCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTAyNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJl
c29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXBvc2l0aW9uLWR5bmFtaWMtY2hhbmdlLmh0bWw6
CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3NzOgorICAg
ICAgICAoLmF1dG9Sb3dBdXRvQ29sdW1uKToKKyAgICAgICAgKC5maXJzdFJvd0F1dG9Db2x1bW4p
OgorICAgICAgICAoLnNlY29uZFJvd0F1dG9Db2x1bW4pOgorICAgICAgICAoLnRoaXJkUm93QXV0
b0NvbHVtbik6CisgICAgICAgICguYXV0b1Jvd0ZpcnN0Q29sdW1uKToKKyAgICAgICAgKC5hdXRv
Um93U2Vjb25kQ29sdW1uKToKKyAgICAgICAgKC5hdXRvUm93VGhpcmRDb2x1bW4pOgorICAgICAg
ICBBZGRlZCB0aGVzZSBoZWxwZXIgY2xhc3Nlcywgc29tZSB3aWxsIGJlIHVzZWQgaW4gYSBmb2xs
b3ctdXAgcGF0Y2guCisKKyAgICAgICAgKC5zaXplZFRvR3JpZEFyZWEpOgorICAgICAgICBIb2lz
dGVkIHRoaXMgY2xhc3MgaW50byB0aGUgY29tbW9uIHN0eWxlLgorCisyMDEzLTAyLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbmRlckdy
aWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MgY2FuIHJlYWQgcGFzdCBtX2dyaWQn
cyBzaXplCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTAxMjYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNmUyN2ZlNWExNWFkZTYzM2FmYTk3MDRhZGY3YjcwYTkyZWRkOWEzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZs
b3ctcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2ZWQg
b24gYSBzdGF0aWMgZ3JpZC4KKworWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhY
CitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhY
CitYWFhYWCBYWFhYWCBYWFhYWAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU4NTY2MWYzYjk2MTRkYjAwZDFiODdmMGRhZmQ1NGE5Yjg1MmI3ODYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8t
Zmxvdy1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3Nj
cmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4K
KzxzdHlsZT4KKy5zbWFsbEdyaWQgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA1MHB4IDEw
MHB4OworICAgIC13ZWJraXQtZ3JpZC1yb3dzOiA1MHB4IDEwMHB4OworfQorPC9zdHlsZT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxi
b2R5IG9ubG9hZD0iY2hlY2tMYXlvdXQoJy5ncmlkJykiPgorCis8cD5UaGlzIHRlc3QgY2hlY2tz
IHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2ZWQgb24g
YSBzdGF0aWMgZ3JpZC48L3A+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIi
PgorICAgIDxkaXYgY2xhc3M9ImdyaWQgc21hbGxHcmlkIGdyaWRBdXRvRmxvd05vbmUiIGlkPSJn
cmlkQXV0b0Zsb3dOb25lIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1
dG9Sb3dBdXRvQ29sdW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1o
ZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEgc2Vjb25kUm93QXV0b0NvbHVtbiIgZGF0YS1leHBlY3RlZC13aWR0aD0i
NTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSBhdXRvUm93U2Vjb25kQ29sdW1uIiBk
YXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFgg
WFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNl
Y29uZFJvd1NlY29uZENvbHVtbiIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMTAwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNs
YXNzPSJzaXplZFRvR3JpZEFyZWEgdGhpcmRSb3dBdXRvQ29sdW1uIiBkYXRhLWV4cGVjdGVkLXdp
ZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgYXV0b1Jvd1RoaXJkQ29sdW1u
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxNzAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhY
WFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNp
dC1wb3NpdGlvbi1keW5hbWljLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvaW1wbGljaXQtcG9zaXRpb24tZHluYW1pYy1jaGFuZ2UuaHRtbAppbmRleCA0Yjhk
ZDUzMjVmMDk1OGQ1NTdiZmU1OWEwZDljMDU2MjFlMTJkZWRkLi5kYjM5ZjA0N2JkM2Y1NTdjMWQ4
ZmVmZDg3OWQyNjBjZTUzODkyMjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9pbXBsaWNpdC1wb3NpdGlvbi1keW5hbWljLWNoYW5nZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxpY2l0LXBvc2l0aW9uLWR5bmFtaWMt
Y2hhbmdlLmh0bWwKQEAgLTEwLDEzICsxMCw2IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICAtd2Via2l0LWdyaWQtY29sdW1uczogNTBweCBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwg
NTBweCkgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIDUwcHgpIG1pbm1heCg1MHB4LCAtd2Vi
a2l0LW1pbi1jb250ZW50KTsKICAgICAtd2Via2l0LWdyaWQtcm93czogNzBweCBtaW5tYXgoLXdl
YmtpdC1tYXgtY29udGVudCwgNzBweCkgbWlubWF4KDUwcHgsIC13ZWJraXQtbWluLWNvbnRlbnQp
IG1pbm1heCg2NXB4LCAtd2Via2l0LW1heC1jb250ZW50KTsKIH0KLQotLnNpemVkVG9HcmlkQXJl
YSB7Ci0gICAgZm9udDogMTBweC8xIEFoZW07Ci0gICAgLyogTWFrZSB1cyBmaXQgb3VyIGdyaWQg
YXJlYS4gKi8KLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMCU7Ci19CiA8L3N0eWxl
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0
L3Jlc291cmNlcy9ncmlkLmNzcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jl
c291cmNlcy9ncmlkLmNzcwppbmRleCBhOGQ1MGMzMjhkZDQxZWY1MmJhZDVlOTA3ZGU4YWQ5ZjFh
YzAxYzgyLi45NTU0NzRlM2FiYzU2NTAzOTMxNjdiMmY1OTYzYmRkZjAxYjg4NzkyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC5jc3MK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3Nz
CkBAIC0zMiw2ICszMiw1MCBAQAogICAgIC13ZWJraXQtZ3JpZC1yb3c6IDI7CiB9CiAKKy8qIEF1
dG8gY29sdW1uIC8gcm93LiAqLworLmF1dG9Sb3dBdXRvQ29sdW1uIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBwaW5rOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87CisgICAgLXdlYmtp
dC1ncmlkLXJvdzogYXV0bzsKK30KKworLmZpcnN0Um93QXV0b0NvbHVtbiB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworICAgIC13
ZWJraXQtZ3JpZC1yb3c6IDE7Cit9CisKKy5zZWNvbmRSb3dBdXRvQ29sdW1uIHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBwdXJwbGU7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKKyAg
ICAtd2Via2l0LWdyaWQtcm93OiAyOworfQorCisudGhpcmRSb3dBdXRvQ29sdW1uIHsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBuYXZ5OworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87Cisg
ICAgLXdlYmtpdC1ncmlkLXJvdzogMzsKK30KKworLmF1dG9Sb3dGaXJzdENvbHVtbiB7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogbGltZTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAxOworICAg
IC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5hdXRvUm93U2Vjb25kQ29sdW1uIHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogMjsK
KyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworfQorCisuYXV0b1Jvd1RoaXJkQ29sdW1uIHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYWdlbnRhOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46
IDM7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKK30KKworLyogR3JpZCBlbGVtZW50IGZs
b3cuICovCiAuZ3JpZEF1dG9GbG93Tm9uZSB7CiAgICAgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdzog
bm9uZTsKIH0KQEAgLTU1LDYgKzk5LDEzIEBACiAgICAgaGVpZ2h0OiAxMDAwcHg7CiB9CiAKKy5z
aXplZFRvR3JpZEFyZWEgeworICAgIGZvbnQ6IDEwcHgvMSBBaGVtOworICAgIC8qIE1ha2UgdXMg
Zml0IG91ciBncmlkIGFyZWEuICovCisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAl
OworfQorCiAudmVydGljYWxSTCB7CiAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LXJsOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189130</attachid>
            <date>2013-02-19 11:58:06 -0800</date>
            <delta_ts>2013-02-19 13:33:10 -0800</delta_ts>
            <desc>Proposed refactoring 2: Including some simple tests for grid-auto-flow: none, more testing with the real algorithm.</desc>
            <filename>bug-110244-20130219115428.patch</filename>
            <type>text/plain</type>
            <size>11840</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjYmRhNjVlYmMzN2I0
ZDI2OTRiOGM2MTIzNGVlZGQwYzFkYmFmNS4uNDdlMmY5NjY5ZTFhNGI3NWI3YmQ2ODNkNTgxOGNh
YzEzNmI3YzlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEzLTAyLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFJlZmFjdG9yIHRoZSBjb2RlIGluIHByZXBhcmF0aW9uIG9mIGF1dG8gcGxhY2Vt
ZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24u
aHRtbAorCisgICAgICAgIEluIG9yZGVyIHRvIHN1cHBvcnQgYXV0byBwbGFjZW1lbnQsIHdlIG5l
ZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBncmlkIGl0ZW1zIHdpdGgKKyAgICAgICAgYXV0byByb3cg
LyBjb2x1bW4gc2V2ZXJhbCB0aW1lcy4gVGhpcyBjaGFuZ2VzIG1ha2VzIHVzIGRvIHRoYXQgaW4g
YSB2ZXJ5IHNpbXBsZSwKKyAgICAgICAgbm90LXlldC1jb25mb3JtYW50IHdheS4gV2hpbGUgdG91
Y2hpbmcgdGhpcyBjb2RlLCB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBncmlkLWF1dG8tZmxvdwor
ICAgICAgICBub25lIGFuZCByb3cgLyBjb2x1bW4gd2FzIGJldHRlciBkcmF3biAoYW5kIGVuZm9y
Y2VkKS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOgorICAgICAg
ICBNYWRlIGl0IGlsbGVnYWwgdG8gY2FsbCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlIGlm
IHRoZSBncmlkIHRyYWNrIGlzIGF1dG8gYW5kCisgICAgICAgIGdyaWQtYXV0by1mbG93IGlzIG5v
dCBub25lLiBUaGlzIHdvdWxkIGNhdGNoIGJhZCB1c2Ugb2YgdGhlIGZ1bmN0aW9uLgorCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjptYXhpbXVtSW5kZXhJbkRpcmVjdGlvbik6CisgICAg
ICAgIFVwZGF0ZWQgdG8gYmFpbCBvdXQgaWYgdGhlIGdyaWQgdHJhY2sgaXMgYXV0by4gQWxzbyBp
bXByb3ZlZCB0aGUgY29tbWVudC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxh
Y2VJdGVtc09uR3JpZCk6CisgICAgICAgIFVwZGF0ZWQgdGhlIGZ1bmN0aW9uIHRvIGRvIHNldmVy
YWwgaXRlcmF0aW9ucy4gQWxzbyBoYW5kbGVkIHRoZSBncmlkLWF1dG8tZmxvdzogbm9uZQorICAg
ICAgICBjYXNlIGRpZmZlcmVudGx5IGFzIGl0IHNob3VsZG4ndCBuZWVkIHRoZSBleHRyYSBpdGVy
YXRpb24ocykuCisKKzIwMTMtMDItMTkgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CisKICAgICAgICAgUmVuZGVyR3JpZDo6Y29tcHV0ZWRVc2VkQnJlYWR0aE9mR3Jp
ZFRyYWNrcyBjYW4gcmVhZCBwYXN0IG1fZ3JpZCdzIHNpemUKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDEyNgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggNjkwZGFkMjk1MTQ4ZTEzYzNhMjY4MjcxMWJjMjgxZjU3
NGU0OGNiYy4uMGQ3ZTliNTA3N2U4ODZiOGU5ZjZhZDc1MzIxMDdkYjZjNmZkZDIzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMzE3LDcgKzMxNywxMiBAQCBz
aXplX3QgUmVuZGVyR3JpZDo6bWF4aW11bUluZGV4SW5EaXJlY3Rpb24oVHJhY2tTaXppbmdEaXJl
Y3Rpb24gZGlyZWN0aW9uKSBjb25zdAogCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmly
c3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewog
ICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JD
b2x1bW5zKSA/IGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRlbUNvbHVtbigpIDogY2hpbGQtPnN0eWxl
KCktPmdyaWRJdGVtUm93KCk7Ci0gICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhl
IGNhY2hlIGFzIGl0IGlzIHVzZWQgdG8gYnVpbGQgaXQuIEFsc28gJ2F1dG8nIGl0ZW1zIHdpbGwg
bmVlZCB0byBiZSByZXNvbHZlZCBpbiBzZXBlcmF0ZSBwaGFzZXMgYW55d2F5LgorICAgICAgICAv
LyAnYXV0bycgaXRlbXMgd2lsbCBuZWVkIHRvIGJlIHJlc29sdmVkIGluIHNlcGVyYXRlIHBoYXNl
cyBhbnl3YXkuIE5vdGUgdGhhdCBiZWNhdXNlIG1heGltdW1JbmRleCBpcyBhdCBsZWFzdCAxLAor
ICAgICAgICAvLyB0aGUgZ3JpZC1hdXRvLWZsb3cgPT0gbm9uZSBjYXNlIGlzIGF1dG9tYXRpY2Fs
bHkgaGFuZGxlZC4KKyAgICAgICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgY2FjaGUg
KGNhY2hlZEdyaWRDb29yZGluYXRlKCkpIGFzIGl0IGlzIHVzZWQgdG8gYnVpbGQgaXQuCiAgICAg
ICAgIG1heGltdW1JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1JbmRleCwgcmVzb2x2ZUdyaWRQb3Np
dGlvbkZyb21TdHlsZShwb3NpdGlvbikgKyAxKTsKICAgICB9CiAKQEAgLTQ4NiwxNCArNDkxLDM5
IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2dyaWQuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZ3JpZFtpXS5ncm93KG1h
eGltdW1Db2x1bW5JbmRleCk7CiAKKyAgICBWZWN0b3I8UmVuZGVyQm94Kj4gYXV0b0dyaWRJdGVt
czsKKyAgICBHcmlkQXV0b0Zsb3cgYXV0b0Zsb3cgPSBzdHlsZSgpLT5ncmlkQXV0b0Zsb3coKTsK
ICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7Ci0gICAgICAgIHNpemVfdCBjb2x1bW5UcmFj
ayA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVt
Q29sdW1uKCkpOwotICAgICAgICBzaXplX3Qgcm93VHJhY2sgPSByZXNvbHZlR3JpZFBvc2l0aW9u
RnJvbVN0eWxlKGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRlbVJvdygpKTsKKyAgICAgICAgY29uc3Qg
R3JpZFBvc2l0aW9uJiBjb2x1bW5Qb3NpdGlvbiA9IGNoaWxkLT5zdHlsZSgpLT5ncmlkSXRlbUNv
bHVtbigpOworICAgICAgICBjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gY2hpbGQt
PnN0eWxlKCktPmdyaWRJdGVtUm93KCk7CisgICAgICAgIGlmIChhdXRvRmxvdyAhPSBBdXRvRmxv
d05vbmUgJiYgKGNvbHVtblBvc2l0aW9uLmlzQXV0bygpIHx8IHJvd1Bvc2l0aW9uLmlzQXV0bygp
KSkgeworICAgICAgICAgICAgYXV0b0dyaWRJdGVtcy5hcHBlbmQoY2hpbGQpOworICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgc2l6ZV90IGNvbHVtblRyYWNrID0gcmVz
b2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb2x1bW5Qb3NpdGlvbik7CisgICAgICAgIHNpemVf
dCByb3dUcmFjayA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUocm93UG9zaXRpb24pOwog
ICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoY2hpbGQsIHJvd1RyYWNrLCBjb2x1bW5UcmFjayk7
CiAgICAgfQogCiAgICAgQVNTRVJUKGdyaWRSb3dDb3VudCgpID49IHN0eWxlKCktPmdyaWRSb3dz
KCkuc2l6ZSgpKTsKICAgICBBU1NFUlQoZ3JpZENvbHVtbkNvdW50KCkgPj0gc3R5bGUoKS0+Z3Jp
ZENvbHVtbnMoKS5zaXplKCkpOworCisgICAgaWYgKGF1dG9GbG93ID09IEF1dG9GbG93Tm9uZSkg
eworICAgICAgICAvLyBJZiB3ZSBkaWQgY29sbGVjdCBzb21lIGdyaWQgaXRlbXMsIHRoZXkgd29u
J3QgYmUgcGxhY2VkIHRodXMgbmV2ZXIgbGFpZCBvdXQuCisgICAgICAgIEFTU0VSVCghYXV0b0dy
aWRJdGVtcy5zaXplKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGltcGxlbWVudCB0aGUgYXV0byBmbG93IGFsZ29yaXRobSAoaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvYi8xMDMzMTYpLgorICAgIC8vIFRvIGtlZXAgb3VyIHRlc3RzIHBhc3Np
bmcsIHdlIGp1c3QgaW5zZXJ0IHRoZW0gaW4gdGhlIGdyaWQgYXMgaWYgZ3JpZC1hdXRvLWZsb3cg
d2FzIG5vbmUuCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdXRvR3JpZEl0ZW1zLnNpemUo
KTsgKytpKSB7CisgICAgICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgY29sdW1uUG9zaXRpb24gPSBh
dXRvR3JpZEl0ZW1zW2ldLT5zdHlsZSgpLT5ncmlkSXRlbUNvbHVtbigpOworICAgICAgICBjb25z
dCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uID0gYXV0b0dyaWRJdGVtc1tpXS0+c3R5bGUoKS0+
Z3JpZEl0ZW1Sb3coKTsKKyAgICAgICAgc2l6ZV90IGNvbHVtblRyYWNrID0gY29sdW1uUG9zaXRp
b24uaXNBdXRvKCkgPyAwIDogcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb2x1bW5Qb3Np
dGlvbik7CisgICAgICAgIHNpemVfdCByb3dUcmFjayA9IHJvd1Bvc2l0aW9uLmlzQXV0bygpID8g
MCA6IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUocm93UG9zaXRpb24pOworCisgICAgICAg
IGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW1zW2ldLCByb3dUcmFjaywgY29sdW1uVHJh
Y2spOworICAgIH0KIH0KIAogdm9pZCBSZW5kZXJHcmlkOjpjbGVhckdyaWQoKQpAQCAtNTY2LDkg
KzU5Niw4IEBAIHNpemVfdCBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxl
KGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pIGNvCiAKICAgICAgICAgcmV0dXJuIHBvc2l0
aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMTsKICAgICBjYXNlIEF1dG9Qb3NpdGlvbjoKLSAgICAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBmb2xsb3cgJ2dyaWQtYXV0by1mbG93JyBmb3IgcmVzb2x1
dGlvbi4KLSAgICAgICAgLy8gVW50aWwgdGhlbiwgd2UgdXNlIHRoZSAnZ3JpZC1hdXRvLWZsb3c6
IG5vbmUnIGJlaGF2aW9yICh3aGljaCBpcyB0aGUgZGVmYXVsdCkKLSAgICAgICAgLy8gYW5kIHJl
c29sdmUgJ2F1dG8nIGFzIHRoZSBmaXJzdCByb3cgLyBjb2x1bW4uCisgICAgICAgIC8vIFdlIGNh
bm5vdCByZXNvbHZlIGdyaWQgcG9zaXRpb25zIGlmIGdyaWQtYXV0by1mbG93ICE9IG5vbmUgYXMg
aXQgcmVxdWlyZXMgc2V2ZXJhbCBpdGVyYXRpb25zLgorICAgICAgICBBU1NFUlQoc3R5bGUoKS0+
Z3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25lKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYxNzI2ZGQ3ZTAyOTU5YTc4NjU5
NjQxODlkODkxOTNmYmI1M2E5MjcuLjEzYmE2NmY5YmNkNTM2NDg1N2FhZGU1YzQ1MjAzZDVmMTc0
MDI0NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMy0wMi0xOSAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAorICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBS
ZWZhY3RvciB0aGUgY29kZSBpbiBwcmVwYXJhdGlvbiBvZiBhdXRvIHBsYWNlbWVudCBzdXBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyNDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNv
bHV0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxp
Y2l0LXBvc2l0aW9uLWR5bmFtaWMtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3NzOgorICAgICAgICAoLmF1dG9Sb3dBdXRvQ29sdW1u
KToKKyAgICAgICAgKC5maXJzdFJvd0F1dG9Db2x1bW4pOgorICAgICAgICAoLnNlY29uZFJvd0F1
dG9Db2x1bW4pOgorICAgICAgICAoLnRoaXJkUm93QXV0b0NvbHVtbik6CisgICAgICAgICguYXV0
b1Jvd0ZpcnN0Q29sdW1uKToKKyAgICAgICAgKC5hdXRvUm93U2Vjb25kQ29sdW1uKToKKyAgICAg
ICAgKC5hdXRvUm93VGhpcmRDb2x1bW4pOgorICAgICAgICBBZGRlZCB0aGVzZSBoZWxwZXIgY2xh
c3Nlcywgc29tZSB3aWxsIGJlIHVzZWQgaW4gYSBmb2xsb3ctdXAgcGF0Y2guCisKKyAgICAgICAg
KC5zaXplZFRvR3JpZEFyZWEpOgorICAgICAgICBIb2lzdGVkIHRoaXMgY2xhc3MgaW50byB0aGUg
Y29tbW9uIHN0eWxlLgorCisyMDEzLTAyLTE5ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFp
eEB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbmRlckdyaWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhP
ZkdyaWRUcmFja3MgY2FuIHJlYWQgcGFzdCBtX2dyaWQncyBzaXplCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxMjYKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8t
Zmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNmUyN2ZlNWExNWFkZTYz
M2FmYTk3MDRhZGY3YjcwYTkyZWRkOWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0
byBwb3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2ZWQgb24gYSBzdGF0aWMgZ3JpZC4KKworWFhY
WFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhY
WFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhYIFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRv
LWZsb3ctcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NTY2MWYzYjk2MTRk
YjAwZDFiODdmMGRhZmQ1NGE5Yjg1MmI3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLmh0bWwKQEAg
LTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291
cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4KKy5zbWFsbEdyaWQgewor
ICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA1MHB4IDEwMHB4OworICAgIC13ZWJraXQtZ3JpZC1y
b3dzOiA1MHB4IDEwMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0iY2hlY2tMYXlvdXQo
Jy5ncmlkJykiPgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBw
b3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2ZWQgb24gYSBzdGF0aWMgZ3JpZC48L3A+CisKKzxk
aXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQg
c21hbGxHcmlkIGdyaWRBdXRvRmxvd05vbmUiIGlkPSJncmlkQXV0b0Zsb3dOb25lIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhYWCBYWFhYWCBY
WFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgc2Vjb25kUm93
QXV0b0NvbHVtbiIgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSIxMDAiPlhYWFhYIFhYWFhYIFhYWFhYPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVk
VG9HcmlkQXJlYSBhdXRvUm93U2Vjb25kQ29sdW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAi
IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIHNlY29uZFJvd1NlY29uZENvbHVtbiIgZGF0
YS1leHBlY3RlZC13aWR0aD0iMTAwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj5YWFhYWCBY
WFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEgdGhp
cmRSb3dBdXRvQ29sdW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1o
ZWlnaHQ9IjMwIj5YWFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEgYXV0b1Jvd1RoaXJkQ29sdW1uIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIx
NzAiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSI1MCI+WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1wb3NpdGlvbi1keW5hbWljLWNoYW5n
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvaW1wbGljaXQtcG9zaXRp
b24tZHluYW1pYy1jaGFuZ2UuaHRtbAppbmRleCA0YjhkZDUzMjVmMDk1OGQ1NTdiZmU1OWEwZDlj
MDU2MjFlMTJkZWRkLi5kYjM5ZjA0N2JkM2Y1NTdjMWQ4ZmVmZDg3OWQyNjBjZTUzODkyMjY4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1wb3Np
dGlvbi1keW5hbWljLWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L2ltcGxpY2l0LXBvc2l0aW9uLWR5bmFtaWMtY2hhbmdlLmh0bWwKQEAgLTEwLDEzICsx
MCw2IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAtd2Via2l0LWdyaWQtY29sdW1uczog
NTBweCBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgNTBweCkgbWlubWF4KC13ZWJraXQtbWF4
LWNvbnRlbnQsIDUwcHgpIG1pbm1heCg1MHB4LCAtd2Via2l0LW1pbi1jb250ZW50KTsKICAgICAt
d2Via2l0LWdyaWQtcm93czogNzBweCBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgNzBweCkg
bWlubWF4KDUwcHgsIC13ZWJraXQtbWluLWNvbnRlbnQpIG1pbm1heCg2NXB4LCAtd2Via2l0LW1h
eC1jb250ZW50KTsKIH0KLQotLnNpemVkVG9HcmlkQXJlYSB7Ci0gICAgZm9udDogMTBweC8xIEFo
ZW07Ci0gICAgLyogTWFrZSB1cyBmaXQgb3VyIGdyaWQgYXJlYS4gKi8KLSAgICB3aWR0aDogMTAw
JTsKLSAgICBoZWlnaHQ6IDEwMCU7Ci19CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLmNzcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLmNzcwppbmRleCBh
OGQ1MGMzMjhkZDQxZWY1MmJhZDVlOTA3ZGU4YWQ5ZjFhYzAxYzgyLi45NTU0NzRlM2FiYzU2NTAz
OTMxNjdiMmY1OTYzYmRkZjAxYjg4NzkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC5jc3MKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3NzCkBAIC0zMiw2ICszMiw1MCBAQAogICAg
IC13ZWJraXQtZ3JpZC1yb3c6IDI7CiB9CiAKKy8qIEF1dG8gY29sdW1uIC8gcm93LiAqLworLmF1
dG9Sb3dBdXRvQ29sdW1uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwaW5rOworICAgIC13ZWJr
aXQtZ3JpZC1jb2x1bW46IGF1dG87CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKK30KKwor
LmZpcnN0Um93QXV0b0NvbHVtbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAt
d2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE7Cit9CisK
Ky5zZWNvbmRSb3dBdXRvQ29sdW1uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGU7Cisg
ICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtcm93OiAyOwor
fQorCisudGhpcmRSb3dBdXRvQ29sdW1uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBuYXZ5Owor
ICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87CisgICAgLXdlYmtpdC1ncmlkLXJvdzogMzsK
K30KKworLmF1dG9Sb3dGaXJzdENvbHVtbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogbGltZTsK
KyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAxOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87
Cit9CisKKy5hdXRvUm93U2Vjb25kQ29sdW1uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFu
Z2U7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogMjsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBh
dXRvOworfQorCisuYXV0b1Jvd1RoaXJkQ29sdW1uIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBt
YWdlbnRhOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDM7CisgICAgLXdlYmtpdC1ncmlkLXJv
dzogYXV0bzsKK30KKworLyogR3JpZCBlbGVtZW50IGZsb3cuICovCiAuZ3JpZEF1dG9GbG93Tm9u
ZSB7CiAgICAgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdzogbm9uZTsKIH0KQEAgLTU1LDYgKzk5LDEz
IEBACiAgICAgaGVpZ2h0OiAxMDAwcHg7CiB9CiAKKy5zaXplZFRvR3JpZEFyZWEgeworICAgIGZv
bnQ6IDEwcHgvMSBBaGVtOworICAgIC8qIE1ha2UgdXMgZml0IG91ciBncmlkIGFyZWEuICovCisg
ICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworfQorCiAudmVydGljYWxSTCB7CiAg
ICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189154</attachid>
            <date>2013-02-19 13:33:13 -0800</date>
            <delta_ts>2013-02-19 15:36:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-110244-20130219132935.patch</filename>
            <type>text/plain</type>
            <size>12151</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjYmRhNjVlYmMzN2I0
ZDI2OTRiOGM2MTIzNGVlZGQwYzFkYmFmNS4uMjFkNDNiMmIyNzIzZDUxMmQxYmEwNzZlOTdmOWI1
ODY1MjUyZWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEzLTAyLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFJlZmFjdG9yIHRoZSBjb2RlIGluIHByZXBhcmF0aW9uIG9mIGF1dG8gcGxhY2Vt
ZW50IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDI0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAg
VGVzdDogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1s
CisKKyAgICAgICAgSW4gb3JkZXIgdG8gc3VwcG9ydCBhdXRvIHBsYWNlbWVudCwgd2UgbmVlZCB0
byBpdGVyYXRlIG92ZXIgdGhlIGdyaWQgaXRlbXMgd2l0aAorICAgICAgICBhdXRvIHJvdyAvIGNv
bHVtbiBzZXZlcmFsIHRpbWVzLiBUaGlzIGNoYW5nZXMgbWFrZXMgdXMgZG8gdGhhdCBpbiBhIHZl
cnkgc2ltcGxlLAorICAgICAgICBub3QteWV0LWNvbmZvcm1hbnQgd2F5LiBXaGlsZSB0b3VjaGlu
ZyB0aGlzIGNvZGUsIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIGdyaWQtYXV0by1mbG93CisgICAg
ICAgIG5vbmUgYW5kIHJvdyAvIGNvbHVtbiB3YXMgYmV0dGVyIGRyYXduIChhbmQgZW5mb3JjZWQp
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIE1h
ZGUgaXQgaWxsZWdhbCB0byBjYWxsIHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUgaWYgdGhl
IGdyaWQgdHJhY2sgaXMgYXV0byBhbmQKKyAgICAgICAgZ3JpZC1hdXRvLWZsb3cgaXMgbm90IG5v
bmUuIFRoaXMgd291bGQgY2F0Y2ggYmFkIHVzZSBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6Om1heGltdW1JbmRleEluRGlyZWN0aW9uKToKKyAgICAgICAg
VXBkYXRlZCB0byBiYWlsIG91dCBpZiB0aGUgZ3JpZCB0cmFjayBpcyBhdXRvLiBBbHNvIGltcHJv
dmVkIHRoZSBjb21tZW50LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0
ZW1zT25HcmlkKToKKyAgICAgICAgVXBkYXRlZCB0aGUgZnVuY3Rpb24gdG8gZG8gc2V2ZXJhbCBp
dGVyYXRpb25zLiBBbHNvIGhhbmRsZWQgdGhlIGdyaWQtYXV0by1mbG93OiBub25lCisgICAgICAg
IGNhc2UgZGlmZmVyZW50bHkgYXMgaXQgc2hvdWxkbid0IG5lZWQgdGhlIGV4dHJhIGl0ZXJhdGlv
bihzKS4KKworMjAxMy0wMi0xOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0
Lm9yZz4KKwogICAgICAgICBSZW5kZXJHcmlkOjpjb21wdXRlZFVzZWRCcmVhZHRoT2ZHcmlkVHJh
Y2tzIGNhbiByZWFkIHBhc3QgbV9ncmlkJ3Mgc2l6ZQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTI2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcAppbmRleCA2OTBkYWQyOTUxNDhlMTNjM2EyNjgyNzExYmMyODFmNTc0ZTQ4
Y2JjLi4wZDdlOWI1MDc3ZTg4NmI4ZTlmNmFkNzUzMjEwN2RiNmM2ZmRkMjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0zMTcsNyArMzE3LDEyIEBAIHNpemVf
dCBSZW5kZXJHcmlkOjptYXhpbXVtSW5kZXhJbkRpcmVjdGlvbihUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENo
aWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CiAgICAg
ICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVt
bnMpID8gY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCkgOiBjaGlsZC0+c3R5bGUoKS0+
Z3JpZEl0ZW1Sb3coKTsKLSAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgY2Fj
aGUgYXMgaXQgaXMgdXNlZCB0byBidWlsZCBpdC4gQWxzbyAnYXV0bycgaXRlbXMgd2lsbCBuZWVk
IHRvIGJlIHJlc29sdmVkIGluIHNlcGVyYXRlIHBoYXNlcyBhbnl3YXkuCisgICAgICAgIC8vICdh
dXRvJyBpdGVtcyB3aWxsIG5lZWQgdG8gYmUgcmVzb2x2ZWQgaW4gc2VwZXJhdGUgcGhhc2VzIGFu
eXdheS4gTm90ZSB0aGF0IGJlY2F1c2UgbWF4aW11bUluZGV4IGlzIGF0IGxlYXN0IDEsCisgICAg
ICAgIC8vIHRoZSBncmlkLWF1dG8tZmxvdyA9PSBub25lIGNhc2UgaXMgYXV0b21hdGljYWxseSBo
YW5kbGVkLgorICAgICAgICBpZiAocG9zaXRpb24uaXNBdXRvKCkpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAoY2Fj
aGVkR3JpZENvb3JkaW5hdGUoKSkgYXMgaXQgaXMgdXNlZCB0byBidWlsZCBpdC4KICAgICAgICAg
bWF4aW11bUluZGV4ID0gc3RkOjptYXgobWF4aW11bUluZGV4LCByZXNvbHZlR3JpZFBvc2l0aW9u
RnJvbVN0eWxlKHBvc2l0aW9uKSArIDEpOwogICAgIH0KIApAQCAtNDg2LDE0ICs0OTEsMzkgQEAg
dm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fZ3JpZC5zaXplKCk7ICsraSkKICAgICAgICAgbV9ncmlkW2ldLmdyb3cobWF4aW11
bUNvbHVtbkluZGV4KTsKIAorICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBhdXRvR3JpZEl0ZW1zOwor
ICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCktPmdyaWRBdXRvRmxvdygpOwogICAg
IGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKLSAgICAgICAgc2l6ZV90IGNvbHVtblRyYWNrID0g
cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjaGlsZC0+c3R5bGUoKS0+Z3JpZEl0ZW1Db2x1
bW4oKSk7Ci0gICAgICAgIHNpemVfdCByb3dUcmFjayA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9t
U3R5bGUoY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtUm93KCkpOworICAgICAgICBjb25zdCBHcmlk
UG9zaXRpb24mIGNvbHVtblBvc2l0aW9uID0gY2hpbGQtPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1u
KCk7CisgICAgICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgcm93UG9zaXRpb24gPSBjaGlsZC0+c3R5
bGUoKS0+Z3JpZEl0ZW1Sb3coKTsKKyAgICAgICAgaWYgKGF1dG9GbG93ICE9IEF1dG9GbG93Tm9u
ZSAmJiAoY29sdW1uUG9zaXRpb24uaXNBdXRvKCkgfHwgcm93UG9zaXRpb24uaXNBdXRvKCkpKSB7
CisgICAgICAgICAgICBhdXRvR3JpZEl0ZW1zLmFwcGVuZChjaGlsZCk7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBzaXplX3QgY29sdW1uVHJhY2sgPSByZXNvbHZl
R3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbHVtblBvc2l0aW9uKTsKKyAgICAgICAgc2l6ZV90IHJv
d1RyYWNrID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShyb3dQb3NpdGlvbik7CiAgICAg
ICAgIGluc2VydEl0ZW1JbnRvR3JpZChjaGlsZCwgcm93VHJhY2ssIGNvbHVtblRyYWNrKTsKICAg
ICB9CiAKICAgICBBU1NFUlQoZ3JpZFJvd0NvdW50KCkgPj0gc3R5bGUoKS0+Z3JpZFJvd3MoKS5z
aXplKCkpOwogICAgIEFTU0VSVChncmlkQ29sdW1uQ291bnQoKSA+PSBzdHlsZSgpLT5ncmlkQ29s
dW1ucygpLnNpemUoKSk7CisKKyAgICBpZiAoYXV0b0Zsb3cgPT0gQXV0b0Zsb3dOb25lKSB7Cisg
ICAgICAgIC8vIElmIHdlIGRpZCBjb2xsZWN0IHNvbWUgZ3JpZCBpdGVtcywgdGhleSB3b24ndCBi
ZSBwbGFjZWQgdGh1cyBuZXZlciBsYWlkIG91dC4KKyAgICAgICAgQVNTRVJUKCFhdXRvR3JpZEl0
ZW1zLnNpemUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgaW1wbGVtZW50IHRoZSBhdXRvIGZsb3cgYWxnb3JpdGhtIChodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9iLzEwMzMxNikuCisgICAgLy8gVG8ga2VlcCBvdXIgdGVzdHMgcGFzc2luZywg
d2UganVzdCBpbnNlcnQgdGhlbSBpbiB0aGUgZ3JpZCBhcyBpZiBncmlkLWF1dG8tZmxvdyB3YXMg
bm9uZS4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF1dG9HcmlkSXRlbXMuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBjb2x1bW5Qb3NpdGlvbiA9IGF1dG9H
cmlkSXRlbXNbaV0tPnN0eWxlKCktPmdyaWRJdGVtQ29sdW1uKCk7CisgICAgICAgIGNvbnN0IEdy
aWRQb3NpdGlvbiYgcm93UG9zaXRpb24gPSBhdXRvR3JpZEl0ZW1zW2ldLT5zdHlsZSgpLT5ncmlk
SXRlbVJvdygpOworICAgICAgICBzaXplX3QgY29sdW1uVHJhY2sgPSBjb2x1bW5Qb3NpdGlvbi5p
c0F1dG8oKSA/IDAgOiByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbHVtblBvc2l0aW9u
KTsKKyAgICAgICAgc2l6ZV90IHJvd1RyYWNrID0gcm93UG9zaXRpb24uaXNBdXRvKCkgPyAwIDog
cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShyb3dQb3NpdGlvbik7CisKKyAgICAgICAgaW5z
ZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbXNbaV0sIHJvd1RyYWNrLCBjb2x1bW5UcmFjayk7
CisgICAgfQogfQogCiB2b2lkIFJlbmRlckdyaWQ6OmNsZWFyR3JpZCgpCkBAIC01NjYsOSArNTk2
LDggQEAgc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29u
c3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbikgY28KIAogICAgICAgICByZXR1cm4gcG9zaXRpb24u
aW50ZWdlclBvc2l0aW9uKCkgLSAxOwogICAgIGNhc2UgQXV0b1Bvc2l0aW9uOgotICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGZvbGxvdyAnZ3JpZC1hdXRvLWZsb3cnIGZvciByZXNvbHV0aW9u
LgotICAgICAgICAvLyBVbnRpbCB0aGVuLCB3ZSB1c2UgdGhlICdncmlkLWF1dG8tZmxvdzogbm9u
ZScgYmVoYXZpb3IgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KQotICAgICAgICAvLyBhbmQgcmVzb2x2
ZSAnYXV0bycgYXMgdGhlIGZpcnN0IHJvdyAvIGNvbHVtbi4KKyAgICAgICAgLy8gV2UgY2Fubm90
IHJlc29sdmUgZ3JpZCBwb3NpdGlvbnMgaWYgZ3JpZC1hdXRvLWZsb3cgIT0gbm9uZSBhcyBpdCBy
ZXF1aXJlcyBzZXZlcmFsIGl0ZXJhdGlvbnMuCisgICAgICAgIEFTU0VSVChzdHlsZSgpLT5ncmlk
QXV0b0Zsb3coKSA9PSBBdXRvRmxvd05vbmUpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjE3MjZkZDdlMDI5NTlhNzg2NTk2NDE4
OWQ4OTE5M2ZiYjUzYTkyNy4uMjdlOTdjN2M1Y2NkMmE5OTk4NmU3NGIzNWUzMTNmMDc4NzI1ZWNh
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDEzLTAyLTE5ICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCisgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFJlZmFj
dG9yIHRoZSBjb2RlIGluIHByZXBhcmF0aW9uIG9mIGF1dG8gcGxhY2VtZW50IHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDI0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWF1dG8tZmxvdy1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9pbXBsaWNpdC1wb3Np
dGlvbi1keW5hbWljLWNoYW5nZS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L3Jlc291cmNlcy9ncmlkLmNzczoKKyAgICAgICAgKC5hdXRvUm93QXV0b0NvbHVtbik6CisgICAg
ICAgICguZmlyc3RSb3dBdXRvQ29sdW1uKToKKyAgICAgICAgKC5zZWNvbmRSb3dBdXRvQ29sdW1u
KToKKyAgICAgICAgKC50aGlyZFJvd0F1dG9Db2x1bW4pOgorICAgICAgICAoLmF1dG9Sb3dGaXJz
dENvbHVtbik6CisgICAgICAgICguYXV0b1Jvd1NlY29uZENvbHVtbik6CisgICAgICAgICguYXV0
b1Jvd1RoaXJkQ29sdW1uKToKKyAgICAgICAgQWRkZWQgdGhlc2UgaGVscGVyIGNsYXNzZXMsIHNv
bWUgd2lsbCBiZSB1c2VkIGluIGEgZm9sbG93LXVwIHBhdGNoLgorCisgICAgICAgICguc2l6ZWRU
b0dyaWRBcmVhKToKKyAgICAgICAgSG9pc3RlZCB0aGlzIGNsYXNzIGludG8gdGhlIGNvbW1vbiBz
dHlsZS4KKworMjAxMy0wMi0xOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0
Lm9yZz4KKwogICAgICAgICBSZW5kZXJHcmlkOjpjb21wdXRlZFVzZWRCcmVhZHRoT2ZHcmlkVHJh
Y2tzIGNhbiByZWFkIHBhc3QgbV9ncmlkJ3Mgc2l6ZQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTI2CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVz
b2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZlMjdmZTVhMTVhZGU2MzNhZmE5NzA0
YWRmN2I3MGE5MmVkZDlhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MnIGF1dG8gcG9zaXRp
b24gYXJlIHByb3Blcmx5IHJlc29sdmVkIG9uIGEgc3RhdGljIGdyaWQuCisKK1hYWFhYIFhYWFhY
IFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1hYWFhYIFhYWFhY
IFhYWFhYCitYWFhYWCBYWFhYWCBYWFhYWAorWFhYWFggWFhYWFggWFhYWFgKK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LXJl
c29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0
by1mbG93LXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTY5M2U4OGJhOTc5M2U0ZTJiZTZm
ZGZjZDdiYTk0ZmRmNzQ0NWU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEs
MzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlk
TGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMvZ3Jp
ZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c3R5bGU+Cisuc21hbGxHcmlkIHsKKyAgICAtd2Vi
a2l0LWdyaWQtY29sdW1uczogNTBweCAxMDBweDsKKyAgICAtd2Via2l0LWdyaWQtcm93czogNTBw
eCAxMDBweDsKK30KKworLnVuY29uc3RyYWluZWRDb250YWluZXIgeworICAgIC8qIEZvciBhY2N1
cmF0ZSB4IC8geSBvZmZzZXQuICovCisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorPC9zdHls
ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3Njcmlw
dD4KKzxib2R5IG9ubG9hZD0iY2hlY2tMYXlvdXQoJy5ncmlkJykiPgorCis8cD5UaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgdGhlIHRyYWNrcycgYXV0byBwb3NpdGlvbiBhcmUgcHJvcGVybHkgcmVzb2x2
ZWQgb24gYSBzdGF0aWMgZ3JpZC48L3A+CisKKzxkaXYgY2xhc3M9InVuY29uc3RyYWluZWRDb250
YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQgc21hbGxHcmlkIGdyaWRBdXRvRmxvd05vbmUi
IGlkPSJncmlkQXV0b0Zsb3dOb25lIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRB
cmVhIGF1dG9Sb3dBdXRvQ29sdW1uIiBkYXRhLW9mZnNldC14PSIwIiBkYXRhLW9mZnNldC15PSIw
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
c2Vjb25kUm93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0iNTAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
YXV0b1Jvd1NlY29uZENvbHVtbiIgZGF0YS1vZmZzZXQteD0iNTAiIGRhdGEtb2Zmc2V0LXk9IjAi
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5YWFhY
WCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEg
c2Vjb25kUm93U2Vjb25kQ29sdW1uIiBkYXRhLW9mZnNldC14PSI1MCIgZGF0YS1vZmZzZXQteT0i
NTAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjEwMCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+
WFhYWFggWFhYWFggWFhYWFg8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRB
cmVhIHRoaXJkUm93QXV0b0NvbHVtbiIgZGF0YS1vZmZzZXQteD0iMCIgZGF0YS1vZmZzZXQteT0i
MTUwIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjMwIj5Y
WFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFy
ZWEgYXV0b1Jvd1RoaXJkQ29sdW1uIiBkYXRhLW9mZnNldC14PSIxNTAiIGRhdGEtb2Zmc2V0LXk9
IjAiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjE3MCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjUwIj5Y
WFhYWCBYWFhYWCBYWFhYWDwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2ltcGxp
Y2l0LXBvc2l0aW9uLWR5bmFtaWMtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9pbXBsaWNpdC1wb3NpdGlvbi1keW5hbWljLWNoYW5nZS5odG1sCmluZGV4IDRi
OGRkNTMyNWYwOTU4ZDU1N2JmZTU5YTBkOWMwNTYyMWUxMmRlZGQuLmRiMzlmMDQ3YmQzZjU1N2Mx
ZDhmZWZkODc5ZDI2MGNlNTM4OTIyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2ltcGxpY2l0LXBvc2l0aW9uLWR5bmFtaWMtY2hhbmdlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvaW1wbGljaXQtcG9zaXRpb24tZHluYW1p
Yy1jaGFuZ2UuaHRtbApAQCAtMTAsMTMgKzEwLDYgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiA1MHB4IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50
LCA1MHB4KSBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgNTBweCkgbWlubWF4KDUwcHgsIC13
ZWJraXQtbWluLWNvbnRlbnQpOwogICAgIC13ZWJraXQtZ3JpZC1yb3dzOiA3MHB4IG1pbm1heCgt
d2Via2l0LW1heC1jb250ZW50LCA3MHB4KSBtaW5tYXgoNTBweCwgLXdlYmtpdC1taW4tY29udGVu
dCkgbWlubWF4KDY1cHgsIC13ZWJraXQtbWF4LWNvbnRlbnQpOwogfQotCi0uc2l6ZWRUb0dyaWRB
cmVhIHsKLSAgICBmb250OiAxMHB4LzEgQWhlbTsKLSAgICAvKiBNYWtlIHVzIGZpdCBvdXIgZ3Jp
ZCBhcmVhLiAqLwotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwJTsKLX0KIDwvc3R5
bGU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvcmVzb3VyY2VzL2dyaWQuY3NzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
cmVzb3VyY2VzL2dyaWQuY3NzCmluZGV4IGE4ZDUwYzMyOGRkNDFlZjUyYmFkNWU5MDdkZThhZDlm
MWFjMDFjODIuLjk1NTQ3NGUzYWJjNTY1MDM5MzE2N2IyZjU5NjNiZGRmMDFiODg3OTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLmNz
cworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC5j
c3MKQEAgLTMyLDYgKzMyLDUwIEBACiAgICAgLXdlYmtpdC1ncmlkLXJvdzogMjsKIH0KIAorLyog
QXV0byBjb2x1bW4gLyByb3cuICovCisuYXV0b1Jvd0F1dG9Db2x1bW4geworICAgIGJhY2tncm91
bmQtY29sb3I6IHBpbms7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKKyAgICAtd2Vi
a2l0LWdyaWQtcm93OiBhdXRvOworfQorCisuZmlyc3RSb3dBdXRvQ29sdW1uIHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87CisgICAg
LXdlYmtpdC1ncmlkLXJvdzogMTsKK30KKworLnNlY29uZFJvd0F1dG9Db2x1bW4geworICAgIGJh
Y2tncm91bmQtY29sb3I6IHB1cnBsZTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOwor
ICAgIC13ZWJraXQtZ3JpZC1yb3c6IDI7Cit9CisKKy50aGlyZFJvd0F1dG9Db2x1bW4geworICAg
IGJhY2tncm91bmQtY29sb3I6IG5hdnk7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsK
KyAgICAtd2Via2l0LWdyaWQtcm93OiAzOworfQorCisuYXV0b1Jvd0ZpcnN0Q29sdW1uIHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBsaW1lOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDE7Cisg
ICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKK30KKworLmF1dG9Sb3dTZWNvbmRDb2x1bW4gewor
ICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAy
OworICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5hdXRvUm93VGhpcmRDb2x1bW4g
eworICAgIGJhY2tncm91bmQtY29sb3I6IG1hZ2VudGE7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVt
bjogMzsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworfQorCisvKiBHcmlkIGVsZW1lbnQg
Zmxvdy4gKi8KIC5ncmlkQXV0b0Zsb3dOb25lIHsKICAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93
OiBub25lOwogfQpAQCAtNTUsNiArOTksMTMgQEAKICAgICBoZWlnaHQ6IDEwMDBweDsKIH0KIAor
LnNpemVkVG9HcmlkQXJlYSB7CisgICAgZm9udDogMTBweC8xIEFoZW07CisgICAgLyogTWFrZSB1
cyBmaXQgb3VyIGdyaWQgYXJlYS4gKi8KKyAgICB3aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEw
MCU7Cit9CisKIC52ZXJ0aWNhbFJMIHsKICAgICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGlj
YWwtcmw7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>