<?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>96659</bug_id>
          
          <creation_ts>2012-09-13 09:09:58 -0700</creation_ts>
          <short_desc>Evas_Object* is a ref&apos;ed structure, so tread it as such</short_desc>
          <delta_ts>2012-09-14 02:27:08 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>abarth</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>719570</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 09:09:58 -0700</bug_when>
    <thetext>Replace the OwnPtr support with that of RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719617</commentid>
    <comment_count>1</comment_count>
      <attachid>163897</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 10:05:07 -0700</bug_when>
    <thetext>Created attachment 163897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719626</commentid>
    <comment_count>2</comment_count>
      <attachid>163897</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 10:11:55 -0700</bug_when>
    <thetext>Comment on attachment 163897
Patch

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

&gt; Source/WTF/wtf/efl/RefPtrEfl.cpp:45
&gt; +template&lt;&gt; void refIfNotNull(Evas_Object* ptr)
&gt; +{
&gt; +    if (LIKELY(!!ptr)) {
&gt; +        evas_object_ref(ptr);
&gt; +        evas_object_del(ptr); // Schedule for deletion when ref reaches 0;
&gt; +    }
&gt; +}
&gt; +
&gt; +template&lt;&gt; void derefIfNotNull(Evas_Object* ptr)
&gt; +{
&gt; +    if (LIKELY(!!ptr))
&gt; +        evas_object_unref(ptr);
&gt; +}

I guess this wont be working with adoptRef and then deref.

I guess I need to call _del always in derefIfNotNull :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719640</commentid>
    <comment_count>3</comment_count>
      <attachid>163902</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 10:22:45 -0700</bug_when>
    <thetext>Created attachment 163902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719655</commentid>
    <comment_count>4</comment_count>
      <attachid>163902</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 10:40:07 -0700</bug_when>
    <thetext>Comment on attachment 163902
Patch

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

&gt; Source/WTF/wtf/RefPtr.h:212
&gt; +#if PLATFORM(EFL)
&gt; +typedef struct _Evas_Object Evas_Object;
&gt; +
&gt; +namespace WTF {
&gt; +
&gt; +template&lt;&gt; void refIfNotNull(Evas_Object* ptr);
&gt; +template&lt;&gt; void derefIfNotNull(Evas_Object* ptr);
&gt; +
&gt; +}
&gt; +#endif

I don&apos;t think we should be adding EFL-specific code to RefPtr.h.  Notice that we don&apos;t do the same thing for integration with CF ref counting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719657</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 10:41:17 -0700</bug_when>
    <thetext>Where do you add it then? I need to use a different header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719661</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 10:47:55 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Where do you add it then? I need to use a different header?

RefPtr are used like this for Cairo types, but it is only available in WebCore Source/WebCore/platform/graphics/cairo/RefPtrCairo.h

I guess this is an OK solution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719670</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 10:54:41 -0700</bug_when>
    <thetext>Yeah, integrating with RefPtr is fine.  It&apos;s better to just avoid adding cruft to RefPtr.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719687</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 11:08:43 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Yeah, integrating with RefPtr is fine.  It&apos;s better to just avoid adding cruft to RefPtr.h.

It is OK to add this in wtf/efl/RefPtrEfl.h so that it is accessible from say Tools/DumpRenderTree/efl/ImageDiff.cpp ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719698</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 11:13:40 -0700</bug_when>
    <thetext>Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719707</commentid>
    <comment_count>10</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-13 11:16:52 -0700</bug_when>
    <thetext>Does it make sense to keep both OwnPtr and RefPtr around?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719742</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-13 11:51:21 -0700</bug_when>
    <thetext>&gt; I don&apos;t think we should be adding EFL-specific code to RefPtr.h.  Notice that we don&apos;t do the same thing for integration with CF ref counting.

+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719876</commentid>
    <comment_count>12</comment_count>
      <attachid>163955</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 13:45:26 -0700</bug_when>
    <thetext>Created attachment 163955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719881</commentid>
    <comment_count>13</comment_count>
      <attachid>163955</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-13 13:50:38 -0700</bug_when>
    <thetext>Comment on attachment 163955
Patch

This looks great.  I presume things don&apos;t compile if you forget to include RefPtrEfl.h (rather than compile but be broken).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719884</commentid>
    <comment_count>14</comment_count>
      <attachid>163955</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 13:52:57 -0700</bug_when>
    <thetext>Comment on attachment 163955
Patch

They don&apos;t compile if not included</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719909</commentid>
    <comment_count>15</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-09-13 14:06:21 -0700</bug_when>
    <thetext>I really like this change. OwnPtr will always compile, but at the risk of leaking memory if deleteOwnedPtr is not implemented for that particular type. As Adam pointed out, by using RefPtr, we add a compile time check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719928</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 14:19:54 -0700</bug_when>
    <thetext>Landed in 128507</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720376</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-13 23:57:22 -0700</bug_when>
    <thetext>This patch seems to introduce a lot of crashes. The bot is now aborting early after 20 crashes :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720382</commentid>
    <comment_count>18</comment_count>
      <attachid>163955</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-09-14 00:05:26 -0700</bug_when>
    <thetext>Comment on attachment 163955
Patch

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

&gt; Source/WTF/wtf/efl/RefPtrEfl.cpp:36
&gt; +        evas_object_del(ptr);

Shouldn&apos;t this only _unref_ and only delete if the refcount is zero? It looks like it&apos;s always deleting it on every deref :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720390</commentid>
    <comment_count>19</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-14 00:12:37 -0700</bug_when>
    <thetext>Reverted r128507 for reason:

Revert

Committed r128565: &lt;http://trac.webkit.org/changeset/128565&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720399</commentid>
    <comment_count>20</comment_count>
      <attachid>163955</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-14 00:22:29 -0700</bug_when>
    <thetext>Comment on attachment 163955
Patch

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

&gt;&gt; Source/WTF/wtf/efl/RefPtrEfl.cpp:36
&gt;&gt; +        evas_object_del(ptr);
&gt; 
&gt; Shouldn&apos;t this only _unref_ and only delete if the refcount is zero? It looks like it&apos;s always deleting it on every deref :)

Just FYI, removing the _del() line seems to fix the issue for me. This is definitely related to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720414</commentid>
    <comment_count>21</comment_count>
      <attachid>163955</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 00:45:31 -0700</bug_when>
    <thetext>Comment on attachment 163955
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/efl/RefPtrEfl.cpp:36
&gt;&gt;&gt; +        evas_object_del(ptr);
&gt;&gt; 
&gt;&gt; Shouldn&apos;t this only _unref_ and only delete if the refcount is zero? It looks like it&apos;s always deleting it on every deref :)
&gt; 
&gt; Just FYI, removing the _del() line seems to fix the issue for me. This is definitely related to it.

The ref counting is like &quot;external&quot; so it starts with a ref of 0, and unref only deletes if del was called before. So there is like an invisible ref :-)

it should be if (evas_object_ref_get() &gt; 0) unref else del</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720445</commentid>
    <comment_count>22</comment_count>
      <attachid>164071</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 01:48:18 -0700</bug_when>
    <thetext>Created attachment 164071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720447</commentid>
    <comment_count>23</comment_count>
      <attachid>164071</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-14 01:57:45 -0700</bug_when>
    <thetext>Comment on attachment 164071
Patch

Please land this patch after double checking by Intel guys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720455</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-14 02:07:02 -0700</bug_when>
    <thetext>I cannot reproduce the crash with the latest patch. LGTM. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720468</commentid>
    <comment_count>25</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-14 02:27:08 -0700</bug_when>
    <thetext>Landed in r128573</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163897</attachid>
            <date>2012-09-13 10:05:07 -0700</date>
            <delta_ts>2012-09-13 10:22:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96659-20120913190439.patch</filename>
            <type>text/plain</type>
            <size>15192</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkN2VmNzBmNmRhYWQ3YjUxOWIzYWQ5
YmMwZDE4NTk2ZTIyNWNmNWEuLjUxMDFlYzY1ZTFkZDY1MWQwMTQ4YjMzNjM2MTcwYjg4MzQ5YjU3
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBh
IHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIE93blB0ciBzdXBwb3J0IGZvciBF
dmFzX09iamVjdCogYW5kIGFkZCBzdXBwb3J0IGZvciBpdAorICAgICAgICB3aXRoIFJlZlB0ciBp
bnN0ZWFkLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIHd0
Zi9SZWZQdHIuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL2VmbC9Pd25QdHJFZmwu
Y3BwOgorICAgICAgICAqIHd0Zi9lZmwvUmVmUHRyRWZsLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dURi93dGYvZWZsL093blB0ckVmbC5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RG
OjpyZWZJZk5vdE51bGwpOgorICAgICAgICAoV1RGOjpkZXJlZklmTm90TnVsbCk6CisKIDIwMTIt
MDktMTIgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSTogbWlncmF0ZSBjb3JlIGluc3RydW1lbnRhdGlvbiBjb2RlIHRv
IFdURiBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlODg3MjBmODRlZDc1MzQ0MjAzZmIwNjhiNzQ4
NDEzMmI3N2VlNjNlLi5mY2EyZmNhZWE5NDNiZTQ0OTNhNzg0NzBhMGVjY2Q0NzIzMmFkMzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIEV2YXNfT2JqZWN0KiBp
cyBhIHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBPd25QdHI8RXZhc19PYmpl
Y3Q+IHdpdGggUmVmUHRyLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVu
dHJ5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OmxvYWRUaGVt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YXBwbHlQYXJ0RGVzY3JpcHRp
b25zRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAg
ICAgIChSZW5kZXJUaGVtZUVmbCk6CisgICAgICAgIChUaGVtZVBhcnRDYWNoZUVudHJ5KToKKwor
MjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CisKICAgICAgICAgW0VGTF0gVXNlIFJlZlB0ciBmb3Igc3RvcmluZyBjYWlyb19zdXJmYWNl
X3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjQ3
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCA1Zjc0ZjViZGI1NzFlZTI1OTliMDg4YzQwMWJiY2ZlZTVi
MzMyYzE0Li4yMGM0NTVkYTNlZmE0NDE2MWMwODc5ZTk3NTMyOWQyM2Y5YWI4OTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIEV2YXNfT2JqZWN0KiBp
cyBhIHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBPd25QdHI8RXZhc19PYmpl
Y3Q+IHdpdGggUmVmUHRyLgorCisgICAgICAgICogdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0
Vmlldy5jcHA6CisgICAgICAgIChFV0tVbml0VGVzdHM6OkVXS1Rlc3RWaWV3Ojppbml0KToKKyAg
ICAgICAgKiB0ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3Lmg6CisgICAgICAgIChFV0tU
ZXN0Vmlldyk6CisKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2Vu
bmV0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtFRkxdW0RSVF0gSW1wbGVtZW50IExheW91dFRl
c3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMjk0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggMDVhZDg0NzhkOWI2M2NiZTNjNWViYTg4NDc5YTVlYmQ4MWZkNDlmNC4uNDNlYzcwODZlYzE5
NTVhOWUwMDNjMmJiNGJlZmFiYzNkZjc2M2QyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTEsNiArMSw3IEBACiBMSVNUKEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWluVGhy
ZWFkRWZsLmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCisgICAgZWZsL1JlZlB0ckVmbC5jcHAK
ICAgICBnb2JqZWN0L0dPd25QdHIuY3BwCiAgICAgZ29iamVjdC9HUmVmUHRyLmNwcAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CmluZGV4IDMyMmNiZDZmOGY3YjIwNTU1ZGRhOTdmOGJhNDZlOGU2Mjg0MDA1MTkuLmQwZmQ1NzBh
MDkxZmY2YWQxODA3OWMzNTk4ZGQyOTA2ZmZkYWQzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCkBAIC0yMDAsNiArMjAw
LDE3IEBAIG5hbWVzcGFjZSBXVEYgewogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAorI2lmIFBMQVRG
T1JNKEVGTCkKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoRXZhc19PYmplY3Qq
IHB0cik7Cit0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cik7
CisKK30KKyNlbmRpZgorCiB1c2luZyBXVEY6OlJlZlB0cjsKIHVzaW5nIFdURjo6c3RhdGljX3Bv
aW50ZXJfY2FzdDsKIHVzaW5nIFdURjo6Y29uc3RfcG9pbnRlcl9jYXN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3du
UHRyRWZsLmNwcAppbmRleCA2NTAxYTk2MDg2MTMxZmQzYTk4Njc2NzM2ZDFmMGNhMTI3YmI4OGNk
Li5jNmNhNWUyMjA5NjhhMDAxOGI2MzE0ZWZiZGViZGQ3OTM1MWI0MzQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
T3duUHRyRWZsLmNwcApAQCAtNDAsMTEgKzQwLDYgQEAgdm9pZCBkZWxldGVPd25lZFB0cihFY29y
ZV9FdmFzKiBwdHIpCiAgICAgICAgIGVjb3JlX2V2YXNfZnJlZShwdHIpOwogfQogCi12b2lkIGRl
bGV0ZU93bmVkUHRyKEV2YXNfT2JqZWN0KiBwdHIpCi17Ci0gICAgZXZhc19vYmplY3RfZGVsKHB0
cik7Ci19Ci0KIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSogcHRyKQogewogICAgIGlm
IChwdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvUmVmUHRyRWZsLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2VmbC9SZWZQdHJFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYzRhN2NhMDBlYzVl
OTM2MDRlMDY3YWExYTczYmU5NDNmMTI1ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9lZmwvUmVmUHRyRWZsLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWZQdHIuaCIKKworI2luY2x1ZGUgPEV2
YXMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwo
RXZhc19PYmplY3QqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKCEhcHRyKSkgeworICAgICAgICBl
dmFzX29iamVjdF9yZWYocHRyKTsKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKHB0cik7IC8vIFNj
aGVkdWxlIGZvciBkZWxldGlvbiB3aGVuIHJlZiByZWFjaGVzIDA7CisgICAgfQorfQorCit0ZW1w
bGF0ZTw+IHZvaWQgZGVyZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cikKK3sKKyAgICBpZiAo
TElLRUxZKCEhcHRyKSkKKyAgICAgICAgZXZhc19vYmplY3RfdW5yZWYocHRyKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXgg
Y2Y3ZWRiMDJjODYwNjY0MGIxZTc4NWIyZTA2MzQ1ZGQ2NTY0MTg1Ny4uOWFmZjI4Y2E2MTcxZWNk
ZmY4OTJjOWJlMTdjODVhYjY2NTliODdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgUmVuZGVyVGhlbWVF
Zmw6OlRoZW1lUGFydENhY2hlRW50cnkqIFJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVu
dHJ5OjpjcmVhdGUKICAgICAvLyBCeSBkZWZhdWx0IEVGTCBjcmVhdGVzIGJ1ZmZlcnMgd2l0aG91
dCBhbHBoYS4KICAgICBlY29yZV9ldmFzX2FscGhhX3NldChlbnRyeS0+Y2FudmFzKCksIEVJTkFf
VFJVRSk7CiAKLSAgICBlbnRyeS0+bV9lZGplID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVj
b3JlX2V2YXNfZ2V0KGVudHJ5LT5jYW52YXMoKSkpKTsKKyAgICBlbnRyeS0+bV9lZGplID0gYWRv
cHRSZWYoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNfZ2V0KGVudHJ5LT5jYW52YXMoKSkpKTsK
ICAgICBBU1NFUlQoZW50cnktPmVkamUoKSk7CiAKICAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9y
RWRqZU9iamVjdChlbnRyeS0+ZWRqZSgpLCB0aGVtZVBhdGgsIHRvRWRqZUdyb3VwKHR5cGUpKSkK
QEAgLTUwNSw3ICs1MDUsNyBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpsb2FkVGhlbWUoKQogICAg
ICAgICAgICAgICAgICJDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyByZXF1aXJlZCBieSB0aGVtZSwg
dGhpbmdzIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuIik7CiAgICAgfQogCi0gICAgT3duUHRyPEV2
YXNfT2JqZWN0PiBvID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNfZ2V0KGNh
bnZhcygpKSkpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbyA9IGFkb3B0UmVmKGVkamVfb2Jq
ZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAgICBfQVNTRVJUX09OX1JFTEVB
U0VfUkVUVVJOX1ZBTChvLCBmYWxzZSwgIkNvdWxkIG5vdCBjcmVhdGUgbmV3IGJhc2UgRWRqZSBv
YmplY3QuIik7CiAKICAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRqZU9iamVjdChvLmdldCgp
LCBtX3RoZW1lUGF0aCwgIndlYmtpdC9iYXNlIikpCkBAIC01MTYsNyArNTE2LDcgQEAgYm9vbCBS
ZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKCkKICAgICAgICAgZmx1c2hUaGVtZVBhcnRDYWNoZSgp
OwogCiAgICAgLy8gU2V0IG5ldyBsb2FkZWQgdGhlbWUsIGFuZCBhcHBseSBpdC4KLSAgICBtX2Vk
amUuc3dhcChvKTsKKyAgICBtX2VkamUgPSBvOwogCiAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2Nh
bGxiYWNrX2FkZChlZGplKCksICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L3NlbGVjdGlvbi9h
Y3RpdmUiLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwogICAgIGVkamVfb2JqZWN0X3NpZ25h
bF9jYWxsYmFja19hZGQoZWRqZSgpLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtpdC9zZWxlY3Rp
b24vaW5hY3RpdmUiLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwpAQCAtNTk3LDcgKzU5Nyw3
IEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5UGFydERlc2NyaXB0aW9uKEV2YXNfT2JqZWN0
KiBvYmplY3QsIFRoZW1lUGFydERlc2MqIGRlCiAKIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5
UGFydERlc2NyaXB0aW9uc0Zyb20oY29uc3QgU3RyaW5nJiB0aGVtZVBhdGgpCiB7Ci0gICAgT3du
UHRyPEV2YXNfT2JqZWN0PiB0ZW1wID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2
YXNfZ2V0KGNhbnZhcygpKSkpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gdGVtcCA9IGFkb3B0
UmVmKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAgICBfQVNT
RVJUX09OX1JFTEVBU0VfUkVUVVJOKHRlbXAsICJDb3VsZCBub3QgY3JlYXRlIEVkamUgb2JqZWN0
LiIpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBGb3JtVHlwZUxhc3Q7IGkrKykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAppbmRleCBkMWI4
MWUwYmNjMmUxYjlhOGNkOWM4MzRmOGE0Y2IwZGE1ZGRiZDU5Li5kNTNiMDE1YjI1YmE1NTAyZWEw
MWJjN2Y5ZWQ3ZWQ4OTY0ZWIzYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaApAQCAtMjUwLDcgKzI1MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fdGhlbWVQYXRoOwogICAgIC8vIE9yZGVyIHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ry
b3llZCBhdCBsYXN0LgogICAgIE93blB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKLSAgICBPd25Q
dHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsK
IAogICAgIHN0cnVjdCBUaGVtZVBhcnREZXNjIHsKICAgICAgICAgRm9ybVR5cGUgdHlwZTsKQEAg
LTI3NSw3ICsyNzUsNyBAQCBwcml2YXRlOgogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIE9yZGVy
IHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ryb3llZCBhdCBsYXN0LgogICAgICAgICBPd25Q
dHI8RWNvcmVfRXZhcz4gbV9jYW52YXM7Ci0gICAgICAgIE93blB0cjxFdmFzX09iamVjdD4gbV9l
ZGplOworICAgICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKICAgICAgICAgUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAKaW5kZXggZmQy
OWI4MTFjNjI2YTU1NmEwNGRlMmZjMzQwMzc1ZTJiNDJhZDljMy4uZGJiMDA5MmU4ZjAzZGE0YWIy
N2FmODI0MDVjOTE3M2FlM2JhMzVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvdGVz
dHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
dGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNp
bmNsdWRlIDxFV2ViS2l0Lmg+CiAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIEVXS1VuaXRUZXN0cyB7CiAKQEAgLTk4LDEx
ICs5OSwxMSBAQCBib29sIEVXS1Rlc3RWaWV3Ojppbml0KCkKIAogICAgIHN3aXRjaCAobV9kZWZh
dWx0Vmlld1R5cGUpIHsKICAgICBjYXNlIFNpbmdsZVZpZXc6Ci0gICAgICAgIG1fd2ViVmlldyA9
IGFkb3B0UHRyKGV3a192aWV3X3NpbmdsZV9hZGQobV9ldmFzKSk7CisgICAgICAgIG1fd2ViVmll
dyA9IGFkb3B0UmVmKGV3a192aWV3X3NpbmdsZV9hZGQobV9ldmFzKSk7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBUaWxlZFZpZXc6Ci0gICAgICAgIG1fd2ViVmlldyA9IGFkb3B0UHRyKGV3
a192aWV3X3RpbGVkX2FkZChtX2V2YXMpKTsKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHRSZWYo
ZXdrX3ZpZXdfdGlsZWRfYWRkKG1fZXZhcykpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcu
aAppbmRleCA2ZDE1ZDBkMzAyNzY5ZmQ4M2JkYTgxOGEzM2RjZWNhZTU4NTNjNWViLi5jNjhhNGVi
ZGNjY2ZlNmZmOTJiZGIwYzYxY2Q1OTk2ZjdjMzJjMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5oCkBAIC0yMyw2ICsyMyw3
IEBACiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgRVdLVW5pdFRl
c3RzIHsKIApAQCAtNjMsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIEVXS1Rlc3RWaWV3IG9wZXJh
dG9yPShjb25zdCBFV0tUZXN0VmlldyYpOwogCiAgICAgRXZhcyogbV9ldmFzOwotICAgIE93blB0
cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV93ZWJW
aWV3OwogCiAgICAgaW50IG1fd2lkdGgsIG1faGVpZ2h0OwogICAgIEV3a1ZpZXdUeXBlIG1fZGVm
YXVsdFZpZXdUeXBlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDM3Yzg3ZGI1YzgwNzE1ZjM3ZGY1ZGMyNjNiOTM2Yzk3NjgyOWI5NWYuLmYwNmVj
MTlmMmFjYWVlMjUwYzAwYTZjYTljNWY5NzZmOTY0NWFhYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMi0wOS0x
MyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKKyAg
ICAgICAgRXZhc19PYmplY3QqIGlzIGEgcmVmJ2VkIHN0cnVjdHVyZSwgc28gdHJlYWQgaXQgYXMg
c3VjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBs
YWNlIE93blB0cjxFdmFzX09iamVjdD4gd2l0aCBSZWZQdHIuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcDoKKyAgICAgICAgKGNhbGN1bGF0ZURpZmZlcmVuY2Up
OgorICAgICAgICAocHJpbnRJbWFnZURpZmZlcmVuY2VzKToKKyAgICAgICAgKHJlYWRJbWFnZUZy
b21TdGRpbik6CisgICAgICAgIChtYWluKToKKworMjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgVGhlIFNjcmlwdCBy
dW4tbGF1bmNoZXIgc2hvdWxkIHN1cHBvcnQgLTIgaW4gY29tYmluYXRpb24gd2l0aCAtLWVmbAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2MzkKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0ltYWdlRGlmZi5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcAppbmRleCA4OGEwZTRhMWY0MjM0MDY2
MmE2ZjEwNTIxNDBkYmM1NzU0MDE0Yzg3Li5iMWQ0ODVhNmE5NTNmYjk0MGExMmU2YTg3MzAwYzEx
MDYxMzgzZjY1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZm
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcApAQCAtNDUs
NiArNDUsOCBAQAogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBlbnVtIFBpeGVsQ29tcG9uZW50
IHsKICAgICBSZWQsCkBAIC0xMDYsNyArMTA4LDcgQEAgc3RhdGljIGZsb2F0IGNhbGN1bGF0ZVBp
eGVsRGlmZmVyZW5jZSh1bnNpZ25lZCBjaGFyKiBiYXNlUGl4ZWwsIHVuc2lnbmVkIGNoYXIqIGEK
ICAgICByZXR1cm4gc3FydGYocmVkICogcmVkICsgZ3JlZW4gKiBncmVlbiArIGJsdWUgKiBibHVl
ICsgYWxwaGEgKiBhbHBoYSkgLyAyLjBmOwogfQogCi1zdGF0aWMgZmxvYXQgY2FsY3VsYXRlRGlm
ZmVyZW5jZShFdmFzX09iamVjdCogYmFzZWxpbmVJbWFnZSwgRXZhc19PYmplY3QqIGFjdHVhbElt
YWdlLCBPd25QdHI8RXZhc19PYmplY3Q+JiBkaWZmZXJlbmNlSW1hZ2UpCitzdGF0aWMgZmxvYXQg
Y2FsY3VsYXRlRGlmZmVyZW5jZShFdmFzX09iamVjdCogYmFzZWxpbmVJbWFnZSwgRXZhc19PYmpl
Y3QqIGFjdHVhbEltYWdlLCBSZWZQdHI8RXZhc19PYmplY3Q+JiBkaWZmZXJlbmNlSW1hZ2UpCiB7
CiAgICAgaW50IHdpZHRoLCBoZWlnaHQsIGJhc2VsaW5lV2lkdGgsIGJhc2VsaW5lSGVpZ2h0Owog
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KGFjdHVhbEltYWdlLCAmd2lkdGgsICZoZWln
aHQpOwpAQCAtMTYzLDcgKzE2NSw3IEBAIHN0YXRpYyBmbG9hdCBjYWxjdWxhdGVEaWZmZXJlbmNl
KEV2YXNfT2JqZWN0KiBiYXNlbGluZUltYWdlLCBFdmFzX09iamVjdCogYWN0dWFsCiAgICAgICAg
IGRpZmZlcmVuY2UgPSByb3VuZGYoZGlmZmVyZW5jZSAqIDEwMC4wZikgLyAxMDAuMGY7CiAgICAg
ICAgIGRpZmZlcmVuY2UgPSBzdGQ6Om1heChkaWZmZXJlbmNlLCAwLjAxZik7IC8vIHJvdW5kIHRv
IDIgZGVjaW1hbCBwbGFjZXMKIAotICAgICAgICBkaWZmZXJlbmNlSW1hZ2UgPSBhZG9wdFB0cihk
aWZmZXJlbmNlSW1hZ2VGcm9tRGlmZmVyZW5jZUJ1ZmZlcihldmFzX29iamVjdF9ldmFzX2dldChi
YXNlbGluZUltYWdlKSwgZGlmZkJ1ZmZlci5nZXQoKSwgd2lkdGgsIGhlaWdodCkpOworICAgICAg
ICBkaWZmZXJlbmNlSW1hZ2UgPSBhZG9wdFJlZihkaWZmZXJlbmNlSW1hZ2VGcm9tRGlmZmVyZW5j
ZUJ1ZmZlcihldmFzX29iamVjdF9ldmFzX2dldChiYXNlbGluZUltYWdlKSwgZGlmZkJ1ZmZlci5n
ZXQoKSwgd2lkdGgsIGhlaWdodCkpOwogICAgIH0KIAogICAgIHJldHVybiBkaWZmZXJlbmNlOwpA
QCAtMjI2LDcgKzIyOCw3IEBAIHN0YXRpYyB2b2lkIHByaW50SW1hZ2UoRXZhc19PYmplY3QqIGlt
YWdlKQogCiBzdGF0aWMgdm9pZCBwcmludEltYWdlRGlmZmVyZW5jZXMoRXZhc19PYmplY3QqIGJh
c2VsaW5lSW1hZ2UsIEV2YXNfT2JqZWN0KiBhY3R1YWxJbWFnZSkKIHsKLSAgICBPd25QdHI8RXZh
c19PYmplY3Q+IGRpZmZlcmVuY2VJbWFnZTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IGRpZmZl
cmVuY2VJbWFnZTsKICAgICBjb25zdCBmbG9hdCBkaWZmZXJlbmNlID0gY2FsY3VsYXRlRGlmZmVy
ZW5jZShiYXNlbGluZUltYWdlLCBhY3R1YWxJbWFnZSwgZGlmZmVyZW5jZUltYWdlKTsKIAogICAg
IGlmIChkaWZmZXJlbmNlID4gMC4wZikgewpAQCAtMjU0LDcgKzI1Niw3IEBAIHN0YXRpYyB2b2lk
IHJlc2l6ZUVjb3JlRXZhc0lmTmVlZGVkKEV2YXNfT2JqZWN0KiBpbWFnZSkKICAgICBlY29yZV9l
dmFzX3Jlc2l6ZShnRWNvcmVFdmFzLmdldCgpLCBjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQp
OwogfQogCi1zdGF0aWMgUGFzc093blB0cjxFdmFzX09iamVjdD4gcmVhZEltYWdlRnJvbVN0ZGlu
KEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXplKQorc3RhdGljIFBhc3NSZWZQdHI8RXZhc19PYmpl
Y3Q+IHJlYWRJbWFnZUZyb21TdGRpbihFdmFzKiBldmFzLCBsb25nIGltYWdlU2l6ZSkKIHsKICAg
ICBPd25BcnJheVB0cjx1bnNpZ25lZCBjaGFyPiBpbWFnZUJ1ZmZlciA9IGFkb3B0QXJyYXlQdHIo
bmV3IHVuc2lnbmVkIGNoYXJbaW1hZ2VTaXplXSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKQEAg
LTI2Miw3ICsyNjQsNyBAQCBzdGF0aWMgUGFzc093blB0cjxFdmFzX09iamVjdD4gcmVhZEltYWdl
RnJvbVN0ZGluKEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXplKQogCiAgICAgY29uc3Qgc2l6ZV90
IGJ5dGVzUmVhZCA9IGZyZWFkKGltYWdlQnVmZmVyLmdldCgpLCAxLCBpbWFnZVNpemUsIHN0ZGlu
KTsKICAgICBpZiAoIWJ5dGVzUmVhZCkKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8RXZhc19P
YmplY3Q+KCk7CisgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPEV2YXNfT2JqZWN0PigpOwogCiAg
ICAgRXZhc19PYmplY3QqIGltYWdlID0gZXZhc19vYmplY3RfaW1hZ2VfZmlsbGVkX2FkZChldmFz
KTsKICAgICBldmFzX29iamVjdF9pbWFnZV9jb2xvcnNwYWNlX3NldChpbWFnZSwgRVZBU19DT0xP
UlNQQUNFX0FSR0I4ODg4KTsKQEAgLTI3MCw3ICsyNzIsNyBAQCBzdGF0aWMgUGFzc093blB0cjxF
dmFzX09iamVjdD4gcmVhZEltYWdlRnJvbVN0ZGluKEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXpl
KQogCiAgICAgcmVzaXplRWNvcmVFdmFzSWZOZWVkZWQoaW1hZ2UpOwogCi0gICAgcmV0dXJuIGFk
b3B0UHRyKGltYWdlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoaW1hZ2UpOwogfQogCiBzdGF0aWMg
Ym9vbCBwYXJzZUNvbW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCkBAIC0z
MzEsOCArMzMzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIAogICAgIEV2
YXMqIGV2YXMgPSBpbml0RWZsKCk7CiAKLSAgICBPd25QdHI8RXZhc19PYmplY3Q+IGFjdHVhbElt
YWdlOwotICAgIE93blB0cjxFdmFzX09iamVjdD4gYmFzZWxpbmVJbWFnZTsKKyAgICBSZWZQdHI8
RXZhc19PYmplY3Q+IGFjdHVhbEltYWdlOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gYmFzZWxp
bmVJbWFnZTsKIAogICAgIGNoYXIgYnVmZmVyWzIwNDhdOwogICAgIHdoaWxlIChmZ2V0cyhidWZm
ZXIsIHNpemVvZihidWZmZXIpLCBzdGRpbikpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163902</attachid>
            <date>2012-09-13 10:22:45 -0700</date>
            <delta_ts>2012-09-13 13:45:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96659-20120913192216.patch</filename>
            <type>text/plain</type>
            <size>15192</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkN2VmNzBmNmRhYWQ3YjUxOWIzYWQ5
YmMwZDE4NTk2ZTIyNWNmNWEuLjUxMDFlYzY1ZTFkZDY1MWQwMTQ4YjMzNjM2MTcwYjg4MzQ5YjU3
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBh
IHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIE93blB0ciBzdXBwb3J0IGZvciBF
dmFzX09iamVjdCogYW5kIGFkZCBzdXBwb3J0IGZvciBpdAorICAgICAgICB3aXRoIFJlZlB0ciBp
bnN0ZWFkLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIHd0
Zi9SZWZQdHIuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgICogd3RmL2VmbC9Pd25QdHJFZmwu
Y3BwOgorICAgICAgICAqIHd0Zi9lZmwvUmVmUHRyRWZsLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dURi93dGYvZWZsL093blB0ckVmbC5jcHAuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RG
OjpyZWZJZk5vdE51bGwpOgorICAgICAgICAoV1RGOjpkZXJlZklmTm90TnVsbCk6CisKIDIwMTIt
MDktMTIgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSTogbWlncmF0ZSBjb3JlIGluc3RydW1lbnRhdGlvbiBjb2RlIHRv
IFdURiBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlODg3MjBmODRlZDc1MzQ0MjAzZmIwNjhiNzQ4
NDEzMmI3N2VlNjNlLi5mY2EyZmNhZWE5NDNiZTQ0OTNhNzg0NzBhMGVjY2Q0NzIzMmFkMzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIEV2YXNfT2JqZWN0KiBp
cyBhIHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBPd25QdHI8RXZhc19PYmpl
Y3Q+IHdpdGggUmVmUHRyLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVu
dHJ5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OmxvYWRUaGVt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YXBwbHlQYXJ0RGVzY3JpcHRp
b25zRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAg
ICAgIChSZW5kZXJUaGVtZUVmbCk6CisgICAgICAgIChUaGVtZVBhcnRDYWNoZUVudHJ5KToKKwor
MjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CisKICAgICAgICAgW0VGTF0gVXNlIFJlZlB0ciBmb3Igc3RvcmluZyBjYWlyb19zdXJmYWNl
X3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjQ3
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCA1Zjc0ZjViZGI1NzFlZTI1OTliMDg4YzQwMWJiY2ZlZTVi
MzMyYzE0Li4yMGM0NTVkYTNlZmE0NDE2MWMwODc5ZTk3NTMyOWQyM2Y5YWI4OTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCisgICAgICAgIEV2YXNfT2JqZWN0KiBp
cyBhIHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSBPd25QdHI8RXZhc19PYmpl
Y3Q+IHdpdGggUmVmUHRyLgorCisgICAgICAgICogdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0
Vmlldy5jcHA6CisgICAgICAgIChFV0tVbml0VGVzdHM6OkVXS1Rlc3RWaWV3Ojppbml0KToKKyAg
ICAgICAgKiB0ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3Lmg6CisgICAgICAgIChFV0tU
ZXN0Vmlldyk6CisKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2Vu
bmV0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtFRkxdW0RSVF0gSW1wbGVtZW50IExheW91dFRl
c3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMjk0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggMDVhZDg0NzhkOWI2M2NiZTNjNWViYTg4NDc5YTVlYmQ4MWZkNDlmNC4uNDNlYzcwODZlYzE5
NTVhOWUwMDNjMmJiNGJlZmFiYzNkZjc2M2QyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTEsNiArMSw3IEBACiBMSVNUKEFQUEVORCBXVEZfU09VUkNFUwogICAgIGVmbC9NYWluVGhy
ZWFkRWZsLmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCisgICAgZWZsL1JlZlB0ckVmbC5jcHAK
ICAgICBnb2JqZWN0L0dPd25QdHIuY3BwCiAgICAgZ29iamVjdC9HUmVmUHRyLmNwcAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CmluZGV4IDMyMmNiZDZmOGY3YjIwNTU1ZGRhOTdmOGJhNDZlOGU2Mjg0MDA1MTkuLmQwZmQ1NzBh
MDkxZmY2YWQxODA3OWMzNTk4ZGQyOTA2ZmZkYWQzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCkBAIC0yMDAsNiArMjAw
LDE3IEBAIG5hbWVzcGFjZSBXVEYgewogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAorI2lmIFBMQVRG
T1JNKEVGTCkKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoRXZhc19PYmplY3Qq
IHB0cik7Cit0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cik7
CisKK30KKyNlbmRpZgorCiB1c2luZyBXVEY6OlJlZlB0cjsKIHVzaW5nIFdURjo6c3RhdGljX3Bv
aW50ZXJfY2FzdDsKIHVzaW5nIFdURjo6Y29uc3RfcG9pbnRlcl9jYXN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3du
UHRyRWZsLmNwcAppbmRleCA2NTAxYTk2MDg2MTMxZmQzYTk4Njc2NzM2ZDFmMGNhMTI3YmI4OGNk
Li5jNmNhNWUyMjA5NjhhMDAxOGI2MzE0ZWZiZGViZGQ3OTM1MWI0MzQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
T3duUHRyRWZsLmNwcApAQCAtNDAsMTEgKzQwLDYgQEAgdm9pZCBkZWxldGVPd25lZFB0cihFY29y
ZV9FdmFzKiBwdHIpCiAgICAgICAgIGVjb3JlX2V2YXNfZnJlZShwdHIpOwogfQogCi12b2lkIGRl
bGV0ZU93bmVkUHRyKEV2YXNfT2JqZWN0KiBwdHIpCi17Ci0gICAgZXZhc19vYmplY3RfZGVsKHB0
cik7Ci19Ci0KIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfUGlwZSogcHRyKQogewogICAgIGlm
IChwdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvUmVmUHRyRWZsLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2VmbC9SZWZQdHJFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNTJjMzUwOGI0MWU1
NzI3ODk2MDA0Y2U2OTYyNGVlYmU1NGEwMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9lZmwvUmVmUHRyRWZsLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWZQdHIuaCIKKworI2luY2x1ZGUgPEV2
YXMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwo
RXZhc19PYmplY3QqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKCEhcHRyKSkKKyAgICAgICAgZXZh
c19vYmplY3RfcmVmKHB0cik7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChF
dmFzX09iamVjdCogcHRyKQoreworICAgIGlmIChMSUtFTFkoISFwdHIpKSB7CisgICAgICAgIGV2
YXNfb2JqZWN0X2RlbChwdHIpOyAvLyBTY2hlZHVsZSBmb3IgZGVsZXRpb24gd2hlbiByZWYgcmVh
Y2hlcyAwLgorICAgICAgICBldmFzX29iamVjdF91bnJlZihwdHIpOworICAgIH0KK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXgg
Y2Y3ZWRiMDJjODYwNjY0MGIxZTc4NWIyZTA2MzQ1ZGQ2NTY0MTg1Ny4uOWFmZjI4Y2E2MTcxZWNk
ZmY4OTJjOWJlMTdjODVhYjY2NTliODdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgUmVuZGVyVGhlbWVF
Zmw6OlRoZW1lUGFydENhY2hlRW50cnkqIFJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVu
dHJ5OjpjcmVhdGUKICAgICAvLyBCeSBkZWZhdWx0IEVGTCBjcmVhdGVzIGJ1ZmZlcnMgd2l0aG91
dCBhbHBoYS4KICAgICBlY29yZV9ldmFzX2FscGhhX3NldChlbnRyeS0+Y2FudmFzKCksIEVJTkFf
VFJVRSk7CiAKLSAgICBlbnRyeS0+bV9lZGplID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVj
b3JlX2V2YXNfZ2V0KGVudHJ5LT5jYW52YXMoKSkpKTsKKyAgICBlbnRyeS0+bV9lZGplID0gYWRv
cHRSZWYoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNfZ2V0KGVudHJ5LT5jYW52YXMoKSkpKTsK
ICAgICBBU1NFUlQoZW50cnktPmVkamUoKSk7CiAKICAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9y
RWRqZU9iamVjdChlbnRyeS0+ZWRqZSgpLCB0aGVtZVBhdGgsIHRvRWRqZUdyb3VwKHR5cGUpKSkK
QEAgLTUwNSw3ICs1MDUsNyBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpsb2FkVGhlbWUoKQogICAg
ICAgICAgICAgICAgICJDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyByZXF1aXJlZCBieSB0aGVtZSwg
dGhpbmdzIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuIik7CiAgICAgfQogCi0gICAgT3duUHRyPEV2
YXNfT2JqZWN0PiBvID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNfZ2V0KGNh
bnZhcygpKSkpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbyA9IGFkb3B0UmVmKGVkamVfb2Jq
ZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAgICBfQVNTRVJUX09OX1JFTEVB
U0VfUkVUVVJOX1ZBTChvLCBmYWxzZSwgIkNvdWxkIG5vdCBjcmVhdGUgbmV3IGJhc2UgRWRqZSBv
YmplY3QuIik7CiAKICAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRqZU9iamVjdChvLmdldCgp
LCBtX3RoZW1lUGF0aCwgIndlYmtpdC9iYXNlIikpCkBAIC01MTYsNyArNTE2LDcgQEAgYm9vbCBS
ZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKCkKICAgICAgICAgZmx1c2hUaGVtZVBhcnRDYWNoZSgp
OwogCiAgICAgLy8gU2V0IG5ldyBsb2FkZWQgdGhlbWUsIGFuZCBhcHBseSBpdC4KLSAgICBtX2Vk
amUuc3dhcChvKTsKKyAgICBtX2VkamUgPSBvOwogCiAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2Nh
bGxiYWNrX2FkZChlZGplKCksICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L3NlbGVjdGlvbi9h
Y3RpdmUiLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwogICAgIGVkamVfb2JqZWN0X3NpZ25h
bF9jYWxsYmFja19hZGQoZWRqZSgpLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtpdC9zZWxlY3Rp
b24vaW5hY3RpdmUiLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwpAQCAtNTk3LDcgKzU5Nyw3
IEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5UGFydERlc2NyaXB0aW9uKEV2YXNfT2JqZWN0
KiBvYmplY3QsIFRoZW1lUGFydERlc2MqIGRlCiAKIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5
UGFydERlc2NyaXB0aW9uc0Zyb20oY29uc3QgU3RyaW5nJiB0aGVtZVBhdGgpCiB7Ci0gICAgT3du
UHRyPEV2YXNfT2JqZWN0PiB0ZW1wID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2
YXNfZ2V0KGNhbnZhcygpKSkpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gdGVtcCA9IGFkb3B0
UmVmKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAgICBfQVNT
RVJUX09OX1JFTEVBU0VfUkVUVVJOKHRlbXAsICJDb3VsZCBub3QgY3JlYXRlIEVkamUgb2JqZWN0
LiIpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBGb3JtVHlwZUxhc3Q7IGkrKykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAppbmRleCBkMWI4
MWUwYmNjMmUxYjlhOGNkOWM4MzRmOGE0Y2IwZGE1ZGRiZDU5Li5kNTNiMDE1YjI1YmE1NTAyZWEw
MWJjN2Y5ZWQ3ZWQ4OTY0ZWIzYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaApAQCAtMjUwLDcgKzI1MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fdGhlbWVQYXRoOwogICAgIC8vIE9yZGVyIHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ry
b3llZCBhdCBsYXN0LgogICAgIE93blB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKLSAgICBPd25Q
dHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsK
IAogICAgIHN0cnVjdCBUaGVtZVBhcnREZXNjIHsKICAgICAgICAgRm9ybVR5cGUgdHlwZTsKQEAg
LTI3NSw3ICsyNzUsNyBAQCBwcml2YXRlOgogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIE9yZGVy
IHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ryb3llZCBhdCBsYXN0LgogICAgICAgICBPd25Q
dHI8RWNvcmVfRXZhcz4gbV9jYW52YXM7Ci0gICAgICAgIE93blB0cjxFdmFzX09iamVjdD4gbV9l
ZGplOworICAgICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKICAgICAgICAgUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAKaW5kZXggZmQy
OWI4MTFjNjI2YTU1NmEwNGRlMmZjMzQwMzc1ZTJiNDJhZDljMy4uZGJiMDA5MmU4ZjAzZGE0YWIy
N2FmODI0MDVjOTE3M2FlM2JhMzVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvdGVz
dHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
dGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNp
bmNsdWRlIDxFV2ViS2l0Lmg+CiAKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIEVXS1VuaXRUZXN0cyB7CiAKQEAgLTk4LDEx
ICs5OSwxMSBAQCBib29sIEVXS1Rlc3RWaWV3Ojppbml0KCkKIAogICAgIHN3aXRjaCAobV9kZWZh
dWx0Vmlld1R5cGUpIHsKICAgICBjYXNlIFNpbmdsZVZpZXc6Ci0gICAgICAgIG1fd2ViVmlldyA9
IGFkb3B0UHRyKGV3a192aWV3X3NpbmdsZV9hZGQobV9ldmFzKSk7CisgICAgICAgIG1fd2ViVmll
dyA9IGFkb3B0UmVmKGV3a192aWV3X3NpbmdsZV9hZGQobV9ldmFzKSk7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBUaWxlZFZpZXc6Ci0gICAgICAgIG1fd2ViVmlldyA9IGFkb3B0UHRyKGV3
a192aWV3X3RpbGVkX2FkZChtX2V2YXMpKTsKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHRSZWYo
ZXdrX3ZpZXdfdGlsZWRfYWRkKG1fZXZhcykpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcu
aAppbmRleCA2ZDE1ZDBkMzAyNzY5ZmQ4M2JkYTgxOGEzM2RjZWNhZTU4NTNjNWViLi5jNjhhNGVi
ZGNjY2ZlNmZmOTJiZGIwYzYxY2Q1OTk2ZjdjMzJjMjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5oCkBAIC0yMyw2ICsyMyw3
IEBACiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgRVdLVW5pdFRl
c3RzIHsKIApAQCAtNjMsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIEVXS1Rlc3RWaWV3IG9wZXJh
dG9yPShjb25zdCBFV0tUZXN0VmlldyYpOwogCiAgICAgRXZhcyogbV9ldmFzOwotICAgIE93blB0
cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV93ZWJW
aWV3OwogCiAgICAgaW50IG1fd2lkdGgsIG1faGVpZ2h0OwogICAgIEV3a1ZpZXdUeXBlIG1fZGVm
YXVsdFZpZXdUeXBlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDM3Yzg3ZGI1YzgwNzE1ZjM3ZGY1ZGMyNjNiOTM2Yzk3NjgyOWI5NWYuLmYwNmVj
MTlmMmFjYWVlMjUwYzAwYTZjYTljNWY5NzZmOTY0NWFhYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMi0wOS0x
MyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKKyAg
ICAgICAgRXZhc19PYmplY3QqIGlzIGEgcmVmJ2VkIHN0cnVjdHVyZSwgc28gdHJlYWQgaXQgYXMg
c3VjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2
NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBs
YWNlIE93blB0cjxFdmFzX09iamVjdD4gd2l0aCBSZWZQdHIuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcDoKKyAgICAgICAgKGNhbGN1bGF0ZURpZmZlcmVuY2Up
OgorICAgICAgICAocHJpbnRJbWFnZURpZmZlcmVuY2VzKToKKyAgICAgICAgKHJlYWRJbWFnZUZy
b21TdGRpbik6CisgICAgICAgIChtYWluKToKKworMjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgVGhlIFNjcmlwdCBy
dW4tbGF1bmNoZXIgc2hvdWxkIHN1cHBvcnQgLTIgaW4gY29tYmluYXRpb24gd2l0aCAtLWVmbAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2MzkKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0ltYWdlRGlmZi5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcAppbmRleCA4OGEwZTRhMWY0MjM0MDY2
MmE2ZjEwNTIxNDBkYmM1NzU0MDE0Yzg3Li5iMWQ0ODVhNmE5NTNmYjk0MGExMmU2YTg3MzAwYzEx
MDYxMzgzZjY1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZm
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcApAQCAtNDUs
NiArNDUsOCBAQAogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBlbnVtIFBpeGVsQ29tcG9uZW50
IHsKICAgICBSZWQsCkBAIC0xMDYsNyArMTA4LDcgQEAgc3RhdGljIGZsb2F0IGNhbGN1bGF0ZVBp
eGVsRGlmZmVyZW5jZSh1bnNpZ25lZCBjaGFyKiBiYXNlUGl4ZWwsIHVuc2lnbmVkIGNoYXIqIGEK
ICAgICByZXR1cm4gc3FydGYocmVkICogcmVkICsgZ3JlZW4gKiBncmVlbiArIGJsdWUgKiBibHVl
ICsgYWxwaGEgKiBhbHBoYSkgLyAyLjBmOwogfQogCi1zdGF0aWMgZmxvYXQgY2FsY3VsYXRlRGlm
ZmVyZW5jZShFdmFzX09iamVjdCogYmFzZWxpbmVJbWFnZSwgRXZhc19PYmplY3QqIGFjdHVhbElt
YWdlLCBPd25QdHI8RXZhc19PYmplY3Q+JiBkaWZmZXJlbmNlSW1hZ2UpCitzdGF0aWMgZmxvYXQg
Y2FsY3VsYXRlRGlmZmVyZW5jZShFdmFzX09iamVjdCogYmFzZWxpbmVJbWFnZSwgRXZhc19PYmpl
Y3QqIGFjdHVhbEltYWdlLCBSZWZQdHI8RXZhc19PYmplY3Q+JiBkaWZmZXJlbmNlSW1hZ2UpCiB7
CiAgICAgaW50IHdpZHRoLCBoZWlnaHQsIGJhc2VsaW5lV2lkdGgsIGJhc2VsaW5lSGVpZ2h0Owog
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX3NpemVfZ2V0KGFjdHVhbEltYWdlLCAmd2lkdGgsICZoZWln
aHQpOwpAQCAtMTYzLDcgKzE2NSw3IEBAIHN0YXRpYyBmbG9hdCBjYWxjdWxhdGVEaWZmZXJlbmNl
KEV2YXNfT2JqZWN0KiBiYXNlbGluZUltYWdlLCBFdmFzX09iamVjdCogYWN0dWFsCiAgICAgICAg
IGRpZmZlcmVuY2UgPSByb3VuZGYoZGlmZmVyZW5jZSAqIDEwMC4wZikgLyAxMDAuMGY7CiAgICAg
ICAgIGRpZmZlcmVuY2UgPSBzdGQ6Om1heChkaWZmZXJlbmNlLCAwLjAxZik7IC8vIHJvdW5kIHRv
IDIgZGVjaW1hbCBwbGFjZXMKIAotICAgICAgICBkaWZmZXJlbmNlSW1hZ2UgPSBhZG9wdFB0cihk
aWZmZXJlbmNlSW1hZ2VGcm9tRGlmZmVyZW5jZUJ1ZmZlcihldmFzX29iamVjdF9ldmFzX2dldChi
YXNlbGluZUltYWdlKSwgZGlmZkJ1ZmZlci5nZXQoKSwgd2lkdGgsIGhlaWdodCkpOworICAgICAg
ICBkaWZmZXJlbmNlSW1hZ2UgPSBhZG9wdFJlZihkaWZmZXJlbmNlSW1hZ2VGcm9tRGlmZmVyZW5j
ZUJ1ZmZlcihldmFzX29iamVjdF9ldmFzX2dldChiYXNlbGluZUltYWdlKSwgZGlmZkJ1ZmZlci5n
ZXQoKSwgd2lkdGgsIGhlaWdodCkpOwogICAgIH0KIAogICAgIHJldHVybiBkaWZmZXJlbmNlOwpA
QCAtMjI2LDcgKzIyOCw3IEBAIHN0YXRpYyB2b2lkIHByaW50SW1hZ2UoRXZhc19PYmplY3QqIGlt
YWdlKQogCiBzdGF0aWMgdm9pZCBwcmludEltYWdlRGlmZmVyZW5jZXMoRXZhc19PYmplY3QqIGJh
c2VsaW5lSW1hZ2UsIEV2YXNfT2JqZWN0KiBhY3R1YWxJbWFnZSkKIHsKLSAgICBPd25QdHI8RXZh
c19PYmplY3Q+IGRpZmZlcmVuY2VJbWFnZTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IGRpZmZl
cmVuY2VJbWFnZTsKICAgICBjb25zdCBmbG9hdCBkaWZmZXJlbmNlID0gY2FsY3VsYXRlRGlmZmVy
ZW5jZShiYXNlbGluZUltYWdlLCBhY3R1YWxJbWFnZSwgZGlmZmVyZW5jZUltYWdlKTsKIAogICAg
IGlmIChkaWZmZXJlbmNlID4gMC4wZikgewpAQCAtMjU0LDcgKzI1Niw3IEBAIHN0YXRpYyB2b2lk
IHJlc2l6ZUVjb3JlRXZhc0lmTmVlZGVkKEV2YXNfT2JqZWN0KiBpbWFnZSkKICAgICBlY29yZV9l
dmFzX3Jlc2l6ZShnRWNvcmVFdmFzLmdldCgpLCBjdXJyZW50V2lkdGgsIGN1cnJlbnRIZWlnaHQp
OwogfQogCi1zdGF0aWMgUGFzc093blB0cjxFdmFzX09iamVjdD4gcmVhZEltYWdlRnJvbVN0ZGlu
KEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXplKQorc3RhdGljIFBhc3NSZWZQdHI8RXZhc19PYmpl
Y3Q+IHJlYWRJbWFnZUZyb21TdGRpbihFdmFzKiBldmFzLCBsb25nIGltYWdlU2l6ZSkKIHsKICAg
ICBPd25BcnJheVB0cjx1bnNpZ25lZCBjaGFyPiBpbWFnZUJ1ZmZlciA9IGFkb3B0QXJyYXlQdHIo
bmV3IHVuc2lnbmVkIGNoYXJbaW1hZ2VTaXplXSk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKQEAg
LTI2Miw3ICsyNjQsNyBAQCBzdGF0aWMgUGFzc093blB0cjxFdmFzX09iamVjdD4gcmVhZEltYWdl
RnJvbVN0ZGluKEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXplKQogCiAgICAgY29uc3Qgc2l6ZV90
IGJ5dGVzUmVhZCA9IGZyZWFkKGltYWdlQnVmZmVyLmdldCgpLCAxLCBpbWFnZVNpemUsIHN0ZGlu
KTsKICAgICBpZiAoIWJ5dGVzUmVhZCkKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8RXZhc19P
YmplY3Q+KCk7CisgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPEV2YXNfT2JqZWN0PigpOwogCiAg
ICAgRXZhc19PYmplY3QqIGltYWdlID0gZXZhc19vYmplY3RfaW1hZ2VfZmlsbGVkX2FkZChldmFz
KTsKICAgICBldmFzX29iamVjdF9pbWFnZV9jb2xvcnNwYWNlX3NldChpbWFnZSwgRVZBU19DT0xP
UlNQQUNFX0FSR0I4ODg4KTsKQEAgLTI3MCw3ICsyNzIsNyBAQCBzdGF0aWMgUGFzc093blB0cjxF
dmFzX09iamVjdD4gcmVhZEltYWdlRnJvbVN0ZGluKEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXpl
KQogCiAgICAgcmVzaXplRWNvcmVFdmFzSWZOZWVkZWQoaW1hZ2UpOwogCi0gICAgcmV0dXJuIGFk
b3B0UHRyKGltYWdlKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoaW1hZ2UpOwogfQogCiBzdGF0aWMg
Ym9vbCBwYXJzZUNvbW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCkBAIC0z
MzEsOCArMzMzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIAogICAgIEV2
YXMqIGV2YXMgPSBpbml0RWZsKCk7CiAKLSAgICBPd25QdHI8RXZhc19PYmplY3Q+IGFjdHVhbElt
YWdlOwotICAgIE93blB0cjxFdmFzX09iamVjdD4gYmFzZWxpbmVJbWFnZTsKKyAgICBSZWZQdHI8
RXZhc19PYmplY3Q+IGFjdHVhbEltYWdlOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gYmFzZWxp
bmVJbWFnZTsKIAogICAgIGNoYXIgYnVmZmVyWzIwNDhdOwogICAgIHdoaWxlIChmZ2V0cyhidWZm
ZXIsIHNpemVvZihidWZmZXIpLCBzdGRpbikpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163955</attachid>
            <date>2012-09-13 13:45:26 -0700</date>
            <delta_ts>2012-09-14 00:45:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96659-20120913224457.patch</filename>
            <type>text/plain</type>
            <size>19501</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkN2VmNzBmNmRhYWQ3YjUxOWIzYWQ5
YmMwZDE4NTk2ZTIyNWNmNWEuLjNiOWM3NDcyMDBkOGU4MjkyMjg2Y2I0ODY2MDg2Yzk4ODU3MDNi
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBh
IHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIE93blB0ciBzdXBwb3J0IGZvciBF
dmFzX09iamVjdCogYW5kIGFkZCBzdXBwb3J0IGZvciBpdAorICAgICAgICB3aXRoIFJlZlB0ciBp
bnN0ZWFkICh0aGUgbGF0dGVyIG1vdmVkIGZyb20gV2ViQ29yZSkuCisKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOgorICAg
ICAgICAqIHd0Zi9lZmwvUmVmUHRyRWZsLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SZWZQdHJFZmwuY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdU
Rjo6cmVmSWZOb3ROdWxsKToKKyAgICAgICAgKFdURjo6ZGVyZWZJZk5vdE51bGwpOgorICAgICAg
ICAqIHd0Zi9lZmwvUmVmUHRyRWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVmUHRyRWZsLmguCisgICAgICAgIChXVEYpOgorCiAyMDEyLTA5LTEyICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUk6IG1pZ3JhdGUgY29yZSBpbnN0cnVtZW50YXRpb24gY29kZSB0byBXVEYgbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZTg4NzIwZjg0ZWQ3NTM0NDIwM2ZiMDY4Yjc0ODQxMzJiNzdlZTYz
ZS4uMjdkYzgwYTBlOWYzMWVmZDViZTMyODVkNzhiY2NlYjNkMzg3NzNjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDIzIEBACiAyMDEyLTA5LTEzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAg
PGtlbm5ldGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQg
c3RydWN0dXJlLCBzbyB0cmVhZCBpdCBhcyBzdWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgT3duUHRyPEV2YXNfT2JqZWN0PiB3aXRoIFJl
ZlB0ci4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9SZW5kZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVm
bDo6VGhlbWVQYXJ0Q2FjaGVFbnRyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lRWZsOjpsb2FkVGhlbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6
OmFwcGx5UGFydERlc2NyaXB0aW9uc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5k
ZXJUaGVtZUVmbC5oOgorICAgICAgICAoUmVuZGVyVGhlbWVFZmwpOgorICAgICAgICAoVGhlbWVQ
YXJ0Q2FjaGVFbnRyeSk6CisKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
ICA8a2VubmV0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFtFRkxdIFVzZSBSZWZQdHIgZm9yIHN0
b3JpbmcgY2Fpcm9fc3VyZmFjZV90CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NjY0NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNWY3NGY1YmRiNTcxZWUy
NTk5YjA4OGM0MDFiYmNmZWU1YjMzMmMxNC4uMjBjNDU1ZGEzZWZhNDQxNjFjMDg3OWU5NzUzMjlk
MjNmOWFiODk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTA5LTEz
ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAorICAg
ICAgICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVhZCBpdCBhcyBz
dWNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxh
Y2UgT3duUHRyPEV2YXNfT2JqZWN0PiB3aXRoIFJlZlB0ci4KKworICAgICAgICAqIHRlc3RzL1Vu
aXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwOgorICAgICAgICAoRVdLVW5pdFRlc3RzOjpFV0tU
ZXN0Vmlldzo6aW5pdCk6CisgICAgICAgICogdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmll
dy5oOgorICAgICAgICAoRVdLVGVzdFZpZXcpOgorCisyMDEyLTA5LTEzICBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBbRUZMXVtEUlRd
IEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0CiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjI5NAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRWZsLmNtYWtlCmluZGV4IDA1YWQ4NDc4ZDliNjNjYmUzYzVlYmE4ODQ3OWE1ZWJkODFm
ZDQ5ZjQuLjQ1YTA4Njg1NzY0NzFiYTFkOTkyYWM1MTY2ZTYxMzY1ZjcyYTU1NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xLDYgKzEsMTEgQEAKK0xJU1QoQVBQRU5EIFdURl9IRUFE
RVJTCisgICAgZWZsL1JlZlB0ckVmbC5oCispCisKIExJU1QoQVBQRU5EIFdURl9TT1VSQ0VTCiAg
ICAgZWZsL01haW5UaHJlYWRFZmwuY3BwCiAgICAgZWZsL093blB0ckVmbC5jcHAKKyAgICBlZmwv
UmVmUHRyRWZsLmNwcAogICAgIGdvYmplY3QvR093blB0ci5jcHAKICAgICBnb2JqZWN0L0dSZWZQ
dHIuY3BwCiAKQEAgLTMyLDYgKzM3LDcgQEAgTElTVChBUFBFTkQgV1RGX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAke0VWQVNfSU5DTFVERV9ESVJTfQogICAgICR7R0xJQl9JTkNMVURFX0RJUlN9
CiAgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQotICAgICR7SkFWQVNDUklQVENPUkVfRElSfS93dGYv
Z29iamVjdAorICAgICR7SkFWQVNDUklQVENPUkVfRElSfS93dGYvZ29iamVjdC8KICAgICAke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vd3RmL3VuaWNvZGUvCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L3d0Zi9lZmwvCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Pd25QdHJFZmwuY3BwCmluZGV4IDY1MDFhOTYwODYxMzFm
ZDNhOTg2NzY3MzZkMWYwY2ExMjdiYjg4Y2QuLmM2Y2E1ZTIyMDk2OGEwMDE4YjYzMTRlZmJkZWJk
ZDc5MzUxYjQzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Pd25QdHJFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Pd25QdHJFZmwuY3BwCkBAIC00MCwxMSArNDAsNiBA
QCB2b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3JlX0V2YXMqIHB0cikKICAgICAgICAgZWNvcmVfZXZh
c19mcmVlKHB0cik7CiB9CiAKLXZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19PYmplY3QqIHB0cikK
LXsKLSAgICBldmFzX29iamVjdF9kZWwocHRyKTsKLX0KLQogdm9pZCBkZWxldGVPd25lZFB0cihF
Y29yZV9QaXBlKiBwdHIpCiB7CiAgICAgaWYgKHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2VmbC9SZWZQdHJFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL1JlZlB0ckVmbC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTZiMTkwODJlYjI4MmNhNTdlYWMxYjc0ZDRjYzM0MjM3MDBjNjA4YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9SZWZQdHJFZmwuY3BwCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZWZQdHJFZmwuaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cikKK3sK
KyAgICBpZiAoTElLRUxZKCEhcHRyKSkKKyAgICAgICAgZXZhc19vYmplY3RfcmVmKHB0cik7Cit9
CisKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZklmTm90TnVsbChFdmFzX09iamVjdCogcHRyKQorewor
ICAgIGlmIChMSUtFTFkoISFwdHIpKSB7CisgICAgICAgIGV2YXNfb2JqZWN0X3VucmVmKHB0cik7
CisgICAgICAgIGV2YXNfb2JqZWN0X2RlbChwdHIpOworICAgIH0KK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvZWZsL1JlZlB0ckVmbC5oIGIvU291cmNlL1dURi93dGYvZWZsL1Jl
ZlB0ckVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MTUyODQyZGM4ZjQ4ZDVhNDQ3NDQxMWEyNjVhYjUxYTI4
ODkyYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvUmVmUHRyRWZsLmgK
QEAgLTAsMCArMSwzNCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVj
dHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFJlZlB0ckVmbF9oCisjZGVmaW5lIFJlZlB0ckVm
bF9oCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09i
amVjdCBFdmFzX09iamVjdDsKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9pZCBy
ZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cik7Cit0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZJZk5v
dE51bGwoRXZhc19PYmplY3QqIHB0cik7CisKK30KKworI2VuZGlmIC8vIFJlZlB0ckVmbF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDc5M2M4MjE3OGUzMTI4MmJiNjgwOWFmNWQ4MDY2
YWEzMGY0ZmEyOTAuLjcwZDY4ZDcxNDg0MjFmMjdjNWQ4Zjg4Njc1MWYyYjI4NmVlMWNmNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zOSw3ICszOSw2IEBAIExJU1QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICBwbGF0Zm9ybS9lZmwvUGxhdGZvcm1Nb3VzZUV2ZW50RWZsLmNwcAog
ICBwbGF0Zm9ybS9lZmwvUGxhdGZvcm1TY3JlZW5FZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9QbGF0
Zm9ybVdoZWVsRXZlbnRFZmwuY3BwCi0gIHBsYXRmb3JtL2VmbC9SZWZQdHJFZmwuY3BwCiAgIHBs
YXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL1J1bkxvb3BFZmwu
Y3BwCiAgIHBsYXRmb3JtL2VmbC9TY3JvbGxWaWV3RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlZlB0ckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVmUHRyRWZsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZi
MTkwODJlYjI4MmNhNTdlYWMxYjc0ZDRjYzM0MjM3MDBjNjA4Yy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVmUHRyRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
LSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWZQdHJFZmwuaCIK
LQotI2luY2x1ZGUgPEV2YXMuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gdm9p
ZCByZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cikKLXsKLSAgICBpZiAoTElLRUxZKCEhcHRy
KSkKLSAgICAgICAgZXZhc19vYmplY3RfcmVmKHB0cik7Ci19Ci0KLXRlbXBsYXRlPD4gdm9pZCBk
ZXJlZklmTm90TnVsbChFdmFzX09iamVjdCogcHRyKQotewotICAgIGlmIChMSUtFTFkoISFwdHIp
KSB7Ci0gICAgICAgIGV2YXNfb2JqZWN0X3VucmVmKHB0cik7Ci0gICAgICAgIGV2YXNfb2JqZWN0
X2RlbChwdHIpOwotICAgIH0KLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlZlB0ckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlZlB0
ckVmbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODE1Mjg0MmRjOGY0OGQ1YTQ0
NzQ0MTFhMjY1YWI1MWEyODg5MmJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZWZQdHJFZmwuaAorKysg
L2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDExIFNh
bXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBSZWZQdHJFZmxfaAotI2RlZmlu
ZSBSZWZQdHJFZmxfaAotCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi10eXBlZGVmIHN0cnVj
dCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0
ZTw+IHZvaWQgcmVmSWZOb3ROdWxsKEV2YXNfT2JqZWN0KiBwdHIpOwotdGVtcGxhdGU8PiB2b2lk
IGRlcmVmSWZOb3ROdWxsKEV2YXNfT2JqZWN0KiBwdHIpOwotCi19Ci0KLSNlbmRpZiAvLyBSZWZQ
dHJFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5j
cHAKaW5kZXggY2Y3ZWRiMDJjODYwNjY0MGIxZTc4NWIyZTA2MzQ1ZGQ2NTY0MTg1Ny4uOWFmZjI4
Y2E2MTcxZWNkZmY4OTJjOWJlMTdjODVhYjY2NTliODdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgUmVu
ZGVyVGhlbWVFZmw6OlRoZW1lUGFydENhY2hlRW50cnkqIFJlbmRlclRoZW1lRWZsOjpUaGVtZVBh
cnRDYWNoZUVudHJ5OjpjcmVhdGUKICAgICAvLyBCeSBkZWZhdWx0IEVGTCBjcmVhdGVzIGJ1ZmZl
cnMgd2l0aG91dCBhbHBoYS4KICAgICBlY29yZV9ldmFzX2FscGhhX3NldChlbnRyeS0+Y2FudmFz
KCksIEVJTkFfVFJVRSk7CiAKLSAgICBlbnRyeS0+bV9lZGplID0gYWRvcHRQdHIoZWRqZV9vYmpl
Y3RfYWRkKGVjb3JlX2V2YXNfZ2V0KGVudHJ5LT5jYW52YXMoKSkpKTsKKyAgICBlbnRyeS0+bV9l
ZGplID0gYWRvcHRSZWYoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNfZ2V0KGVudHJ5LT5jYW52
YXMoKSkpKTsKICAgICBBU1NFUlQoZW50cnktPmVkamUoKSk7CiAKICAgICBpZiAoIXNldFNvdXJj
ZUdyb3VwRm9yRWRqZU9iamVjdChlbnRyeS0+ZWRqZSgpLCB0aGVtZVBhdGgsIHRvRWRqZUdyb3Vw
KHR5cGUpKSkKQEAgLTUwNSw3ICs1MDUsNyBAQCBib29sIFJlbmRlclRoZW1lRWZsOjpsb2FkVGhl
bWUoKQogICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY3JlYXRlIGNhbnZhcyByZXF1aXJlZCBi
eSB0aGVtZSwgdGhpbmdzIHdpbGwgbm90IHdvcmsgcHJvcGVybHkuIik7CiAgICAgfQogCi0gICAg
T3duUHRyPEV2YXNfT2JqZWN0PiBvID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2
YXNfZ2V0KGNhbnZhcygpKSkpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbyA9IGFkb3B0UmVm
KGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKICAgICBfQVNTRVJU
X09OX1JFTEVBU0VfUkVUVVJOX1ZBTChvLCBmYWxzZSwgIkNvdWxkIG5vdCBjcmVhdGUgbmV3IGJh
c2UgRWRqZSBvYmplY3QuIik7CiAKICAgICBpZiAoIXNldFNvdXJjZUdyb3VwRm9yRWRqZU9iamVj
dChvLmdldCgpLCBtX3RoZW1lUGF0aCwgIndlYmtpdC9iYXNlIikpCkBAIC01MTYsNyArNTE2LDcg
QEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6bG9hZFRoZW1lKCkKICAgICAgICAgZmx1c2hUaGVtZVBh
cnRDYWNoZSgpOwogCiAgICAgLy8gU2V0IG5ldyBsb2FkZWQgdGhlbWUsIGFuZCBhcHBseSBpdC4K
LSAgICBtX2VkamUuc3dhcChvKTsKKyAgICBtX2VkamUgPSBvOwogCiAgICAgZWRqZV9vYmplY3Rf
c2lnbmFsX2NhbGxiYWNrX2FkZChlZGplKCksICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0L3Nl
bGVjdGlvbi9hY3RpdmUiLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwogICAgIGVkamVfb2Jq
ZWN0X3NpZ25hbF9jYWxsYmFja19hZGQoZWRqZSgpLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtp
dC9zZWxlY3Rpb24vaW5hY3RpdmUiLCBhcHBseUNvbG9yQ2FsbGJhY2ssIHRoaXMpOwpAQCAtNTk3
LDcgKzU5Nyw3IEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5UGFydERlc2NyaXB0aW9uKEV2
YXNfT2JqZWN0KiBvYmplY3QsIFRoZW1lUGFydERlc2MqIGRlCiAKIHZvaWQgUmVuZGVyVGhlbWVF
Zmw6OmFwcGx5UGFydERlc2NyaXB0aW9uc0Zyb20oY29uc3QgU3RyaW5nJiB0aGVtZVBhdGgpCiB7
Ci0gICAgT3duUHRyPEV2YXNfT2JqZWN0PiB0ZW1wID0gYWRvcHRQdHIoZWRqZV9vYmplY3RfYWRk
KGVjb3JlX2V2YXNfZ2V0KGNhbnZhcygpKSkpOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gdGVt
cCA9IGFkb3B0UmVmKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsK
ICAgICBfQVNTRVJUX09OX1JFTEVBU0VfUkVUVVJOKHRlbXAsICJDb3VsZCBub3QgY3JlYXRlIEVk
amUgb2JqZWN0LiIpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBGb3JtVHlwZUxhc3Q7
IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApp
bmRleCBkMWI4MWUwYmNjMmUxYjlhOGNkOWM4MzRmOGE0Y2IwZGE1ZGRiZDU5Li40YWI1ODkwNDNi
MmY4ZDAwY2VjYWY1MjhmMmQ0NzRmZGNlNDRkYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAKICNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvUmVm
UHRyRWZsLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9FY29yZV9FdmFzIEVjb3JlX0V2YXM7CiB0eXBl
ZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7CkBAIC0yNTAsNyArMjUxLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV90aGVtZVBhdGg7CiAgICAgLy8gT3JkZXIgc28gdGhhdCB0
aGUgY2FudmFzIGdldHMgZGVzdHJveWVkIGF0IGxhc3QuCiAgICAgT3duUHRyPEVjb3JlX0V2YXM+
IG1fY2FudmFzOwotICAgIE93blB0cjxFdmFzX09iamVjdD4gbV9lZGplOworICAgIFJlZlB0cjxF
dmFzX09iamVjdD4gbV9lZGplOwogCiAgICAgc3RydWN0IFRoZW1lUGFydERlc2MgewogICAgICAg
ICBGb3JtVHlwZSB0eXBlOwpAQCAtMjc1LDcgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgcHJpdmF0
ZToKICAgICAgICAgLy8gT3JkZXIgc28gdGhhdCB0aGUgY2FudmFzIGdldHMgZGVzdHJveWVkIGF0
IGxhc3QuCiAgICAgICAgIE93blB0cjxFY29yZV9FdmFzPiBtX2NhbnZhczsKLSAgICAgICAgT3du
UHRyPEV2YXNfT2JqZWN0PiBtX2VkamU7CisgICAgICAgIFJlZlB0cjxFdmFzX09iamVjdD4gbV9l
ZGplOwogICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tU
ZXN0Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rl
c3RWaWV3LmNwcAppbmRleCBmZDI5YjgxMWM2MjZhNTU2YTA0ZGUyZmMzNDAzNzVlMmI0MmFkOWMz
Li5kYmIwMDkyZThmMDNkYTRhYjI3YWY4MjQwNWM5MTczYWUzYmEzNWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RWaWV3LmNwcApA
QCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPEVXZWJLaXQuaD4KIAogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgRVdLVW5p
dFRlc3RzIHsKIApAQCAtOTgsMTEgKzk5LDExIEBAIGJvb2wgRVdLVGVzdFZpZXc6OmluaXQoKQog
CiAgICAgc3dpdGNoIChtX2RlZmF1bHRWaWV3VHlwZSkgewogICAgIGNhc2UgU2luZ2xlVmlldzoK
LSAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHRQdHIoZXdrX3ZpZXdfc2luZ2xlX2FkZChtX2V2YXMp
KTsKKyAgICAgICAgbV93ZWJWaWV3ID0gYWRvcHRSZWYoZXdrX3ZpZXdfc2luZ2xlX2FkZChtX2V2
YXMpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRpbGVkVmlldzoKLSAgICAgICAgbV93
ZWJWaWV3ID0gYWRvcHRQdHIoZXdrX3ZpZXdfdGlsZWRfYWRkKG1fZXZhcykpOworICAgICAgICBt
X3dlYlZpZXcgPSBhZG9wdFJlZihld2tfdmlld190aWxlZF9hZGQobV9ldmFzKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5p
dFRlc3RVdGlscy9FV0tUZXN0Vmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRl
c3RVdGlscy9FV0tUZXN0Vmlldy5oCmluZGV4IDZkMTVkMGQzMDI3NjlmZDgzYmRhODE4YTMzZGNl
Y2FlNTg1M2M1ZWIuLjFiZGQ5ZWRhZTBhYmQ1OGU4NmEwMmQ4Y2UxMjFlNzU0ZGY4OGIyZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rlc3RW
aWV3LmgKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8c3Ry
aW5nPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZWZsL1JlZlB0ckVm
bC5oPgogCiBuYW1lc3BhY2UgRVdLVW5pdFRlc3RzIHsKIApAQCAtNjMsNyArNjQsNyBAQCBwcml2
YXRlOgogICAgIEVXS1Rlc3RWaWV3IG9wZXJhdG9yPShjb25zdCBFV0tUZXN0VmlldyYpOwogCiAg
ICAgRXZhcyogbV9ldmFzOwotICAgIE93blB0cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OworICAg
IFJlZlB0cjxFdmFzX09iamVjdD4gbV93ZWJWaWV3OwogCiAgICAgaW50IG1fd2lkdGgsIG1faGVp
Z2h0OwogICAgIEV3a1ZpZXdUeXBlIG1fZGVmYXVsdFZpZXdUeXBlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM3Yzg3ZGI1YzgwNzE1ZjM3ZGY1
ZGMyNjNiOTM2Yzk3NjgyOWI5NWYuLmYwNmVjMTlmMmFjYWVlMjUwYzAwYTZjYTljNWY5NzZmOTY0
NWFhYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwyMCBAQAogMjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4g
IDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgRXZhc19PYmplY3QqIGlzIGEgcmVmJ2Vk
IHN0cnVjdHVyZSwgc28gdHJlYWQgaXQgYXMgc3VjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIE93blB0cjxFdmFzX09iamVjdD4gd2l0aCBS
ZWZQdHIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcDoKKyAg
ICAgICAgKGNhbGN1bGF0ZURpZmZlcmVuY2UpOgorICAgICAgICAocHJpbnRJbWFnZURpZmZlcmVu
Y2VzKToKKyAgICAgICAgKHJlYWRJbWFnZUZyb21TdGRpbik6CisgICAgICAgIChtYWluKToKKwor
MjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CisKICAgICAgICAgVGhlIFNjcmlwdCBydW4tbGF1bmNoZXIgc2hvdWxkIHN1cHBvcnQgLTIg
aW4gY29tYmluYXRpb24gd2l0aCAtLWVmbAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTY2MzkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0ltYWdlRGlmZi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZm
LmNwcAppbmRleCA4OGEwZTRhMWY0MjM0MDY2MmE2ZjEwNTIxNDBkYmM1NzU0MDE0Yzg3Li4xMjli
NmNhNTdjODU0MjM2NzI4MGFhZjQ4ZWRlMjkzODk5N2FlNWVhIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvSW1hZ2VEaWZmLmNwcApAQCAtNDUsNiArNDUsOCBAQAogI2luY2x1ZGUgPHd0Zi9Pd25B
cnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9S
ZWZQdHJFZmwuaD4KIAogZW51bSBQaXhlbENvbXBvbmVudCB7CiAgICAgUmVkLApAQCAtMTA2LDcg
KzEwOCw3IEBAIHN0YXRpYyBmbG9hdCBjYWxjdWxhdGVQaXhlbERpZmZlcmVuY2UodW5zaWduZWQg
Y2hhciogYmFzZVBpeGVsLCB1bnNpZ25lZCBjaGFyKiBhCiAgICAgcmV0dXJuIHNxcnRmKHJlZCAq
IHJlZCArIGdyZWVuICogZ3JlZW4gKyBibHVlICogYmx1ZSArIGFscGhhICogYWxwaGEpIC8gMi4w
ZjsKIH0KIAotc3RhdGljIGZsb2F0IGNhbGN1bGF0ZURpZmZlcmVuY2UoRXZhc19PYmplY3QqIGJh
c2VsaW5lSW1hZ2UsIEV2YXNfT2JqZWN0KiBhY3R1YWxJbWFnZSwgT3duUHRyPEV2YXNfT2JqZWN0
PiYgZGlmZmVyZW5jZUltYWdlKQorc3RhdGljIGZsb2F0IGNhbGN1bGF0ZURpZmZlcmVuY2UoRXZh
c19PYmplY3QqIGJhc2VsaW5lSW1hZ2UsIEV2YXNfT2JqZWN0KiBhY3R1YWxJbWFnZSwgUmVmUHRy
PEV2YXNfT2JqZWN0PiYgZGlmZmVyZW5jZUltYWdlKQogewogICAgIGludCB3aWR0aCwgaGVpZ2h0
LCBiYXNlbGluZVdpZHRoLCBiYXNlbGluZUhlaWdodDsKICAgICBldmFzX29iamVjdF9pbWFnZV9z
aXplX2dldChhY3R1YWxJbWFnZSwgJndpZHRoLCAmaGVpZ2h0KTsKQEAgLTE2Myw3ICsxNjUsNyBA
QCBzdGF0aWMgZmxvYXQgY2FsY3VsYXRlRGlmZmVyZW5jZShFdmFzX09iamVjdCogYmFzZWxpbmVJ
bWFnZSwgRXZhc19PYmplY3QqIGFjdHVhbAogICAgICAgICBkaWZmZXJlbmNlID0gcm91bmRmKGRp
ZmZlcmVuY2UgKiAxMDAuMGYpIC8gMTAwLjBmOwogICAgICAgICBkaWZmZXJlbmNlID0gc3RkOjpt
YXgoZGlmZmVyZW5jZSwgMC4wMWYpOyAvLyByb3VuZCB0byAyIGRlY2ltYWwgcGxhY2VzCiAKLSAg
ICAgICAgZGlmZmVyZW5jZUltYWdlID0gYWRvcHRQdHIoZGlmZmVyZW5jZUltYWdlRnJvbURpZmZl
cmVuY2VCdWZmZXIoZXZhc19vYmplY3RfZXZhc19nZXQoYmFzZWxpbmVJbWFnZSksIGRpZmZCdWZm
ZXIuZ2V0KCksIHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAgZGlmZmVyZW5jZUltYWdlID0gYWRv
cHRSZWYoZGlmZmVyZW5jZUltYWdlRnJvbURpZmZlcmVuY2VCdWZmZXIoZXZhc19vYmplY3RfZXZh
c19nZXQoYmFzZWxpbmVJbWFnZSksIGRpZmZCdWZmZXIuZ2V0KCksIHdpZHRoLCBoZWlnaHQpKTsK
ICAgICB9CiAKICAgICByZXR1cm4gZGlmZmVyZW5jZTsKQEAgLTIyNiw3ICsyMjgsNyBAQCBzdGF0
aWMgdm9pZCBwcmludEltYWdlKEV2YXNfT2JqZWN0KiBpbWFnZSkKIAogc3RhdGljIHZvaWQgcHJp
bnRJbWFnZURpZmZlcmVuY2VzKEV2YXNfT2JqZWN0KiBiYXNlbGluZUltYWdlLCBFdmFzX09iamVj
dCogYWN0dWFsSW1hZ2UpCiB7Ci0gICAgT3duUHRyPEV2YXNfT2JqZWN0PiBkaWZmZXJlbmNlSW1h
Z2U7CisgICAgUmVmUHRyPEV2YXNfT2JqZWN0PiBkaWZmZXJlbmNlSW1hZ2U7CiAgICAgY29uc3Qg
ZmxvYXQgZGlmZmVyZW5jZSA9IGNhbGN1bGF0ZURpZmZlcmVuY2UoYmFzZWxpbmVJbWFnZSwgYWN0
dWFsSW1hZ2UsIGRpZmZlcmVuY2VJbWFnZSk7CiAKICAgICBpZiAoZGlmZmVyZW5jZSA+IDAuMGYp
IHsKQEAgLTI1NCw3ICsyNTYsNyBAQCBzdGF0aWMgdm9pZCByZXNpemVFY29yZUV2YXNJZk5lZWRl
ZChFdmFzX09iamVjdCogaW1hZ2UpCiAgICAgZWNvcmVfZXZhc19yZXNpemUoZ0Vjb3JlRXZhcy5n
ZXQoKSwgY3VycmVudFdpZHRoLCBjdXJyZW50SGVpZ2h0KTsKIH0KIAotc3RhdGljIFBhc3NPd25Q
dHI8RXZhc19PYmplY3Q+IHJlYWRJbWFnZUZyb21TdGRpbihFdmFzKiBldmFzLCBsb25nIGltYWdl
U2l6ZSkKK3N0YXRpYyBQYXNzUmVmUHRyPEV2YXNfT2JqZWN0PiByZWFkSW1hZ2VGcm9tU3RkaW4o
RXZhcyogZXZhcywgbG9uZyBpbWFnZVNpemUpCiB7CiAgICAgT3duQXJyYXlQdHI8dW5zaWduZWQg
Y2hhcj4gaW1hZ2VCdWZmZXIgPSBhZG9wdEFycmF5UHRyKG5ldyB1bnNpZ25lZCBjaGFyW2ltYWdl
U2l6ZV0pOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCkBAIC0yNjIsNyArMjY0LDcgQEAgc3RhdGlj
IFBhc3NPd25QdHI8RXZhc19PYmplY3Q+IHJlYWRJbWFnZUZyb21TdGRpbihFdmFzKiBldmFzLCBs
b25nIGltYWdlU2l6ZSkKIAogICAgIGNvbnN0IHNpemVfdCBieXRlc1JlYWQgPSBmcmVhZChpbWFn
ZUJ1ZmZlci5nZXQoKSwgMSwgaW1hZ2VTaXplLCBzdGRpbik7CiAgICAgaWYgKCFieXRlc1JlYWQp
Ci0gICAgICAgIHJldHVybiBQYXNzT3duUHRyPEV2YXNfT2JqZWN0PigpOworICAgICAgICByZXR1
cm4gUGFzc1JlZlB0cjxFdmFzX09iamVjdD4oKTsKIAogICAgIEV2YXNfT2JqZWN0KiBpbWFnZSA9
IGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxlZF9hZGQoZXZhcyk7CiAgICAgZXZhc19vYmplY3RfaW1h
Z2VfY29sb3JzcGFjZV9zZXQoaW1hZ2UsIEVWQVNfQ09MT1JTUEFDRV9BUkdCODg4OCk7CkBAIC0y
NzAsNyArMjcyLDcgQEAgc3RhdGljIFBhc3NPd25QdHI8RXZhc19PYmplY3Q+IHJlYWRJbWFnZUZy
b21TdGRpbihFdmFzKiBldmFzLCBsb25nIGltYWdlU2l6ZSkKIAogICAgIHJlc2l6ZUVjb3JlRXZh
c0lmTmVlZGVkKGltYWdlKTsKIAotICAgIHJldHVybiBhZG9wdFB0cihpbWFnZSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKGltYWdlKTsKIH0KIAogc3RhdGljIGJvb2wgcGFyc2VDb21tYW5kTGluZU9w
dGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQpAQCAtMzMxLDggKzMzMyw4IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAKICAgICBFdmFzKiBldmFzID0gaW5pdEVmbCgpOwog
Ci0gICAgT3duUHRyPEV2YXNfT2JqZWN0PiBhY3R1YWxJbWFnZTsKLSAgICBPd25QdHI8RXZhc19P
YmplY3Q+IGJhc2VsaW5lSW1hZ2U7CisgICAgUmVmUHRyPEV2YXNfT2JqZWN0PiBhY3R1YWxJbWFn
ZTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IGJhc2VsaW5lSW1hZ2U7CiAKICAgICBjaGFyIGJ1
ZmZlclsyMDQ4XTsKICAgICB3aGlsZSAoZmdldHMoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgc3Rk
aW4pKSB7Cg==
</data>
<flag name="review"
          id="175587"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="175591"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164071</attachid>
            <date>2012-09-14 01:48:18 -0700</date>
            <delta_ts>2012-09-14 01:57:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96659-20120914104748.patch</filename>
            <type>text/plain</type>
            <size>19526</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJkYmQzZjdmODg5MmI0OTgyMTkxMDUy
ZGY1NTcwZjVjYzk5M2QzNzEuLjE0OWE1ZjY4ZDhhNDY5OThhNzE4ZjY1M2YxMGQzNjdkMTlhY2Vh
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBh
IHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIE93blB0ciBzdXBwb3J0IGZvciBF
dmFzX09iamVjdCogYW5kIGFkZCBzdXBwb3J0IGZvciBpdAorICAgICAgICB3aXRoIFJlZlB0ciBp
bnN0ZWFkICh0aGUgbGF0dGVyIG1vdmVkIGZyb20gV2ViQ29yZSkuCisKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOgorICAg
ICAgICAqIHd0Zi9lZmwvUmVmUHRyRWZsLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SZWZQdHJFZmwuY3BwLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdU
Rjo6cmVmSWZOb3ROdWxsKToKKyAgICAgICAgKFdURjo6ZGVyZWZJZk5vdE51bGwpOgorICAgICAg
ICAqIHd0Zi9lZmwvUmVmUHRyRWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVmUHRyRWZsLmguCisgICAgICAgIChXVEYpOgorCiAyMDEyLTA5LTEzICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIDggYml0IHBh
dGggdG8gV2lkdGhJdGVyYXRvcjo6YWR2YW5jZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI0ZDI4YTZlMTNk
NzlhYzgwYjU1ZmJkODY1NjVkNWYxZGMxNzMyZS4uZWQ3NWQ0NDIzZTNhOTI5MjVmODE3NWVhZGZk
ZmFhYWZhNTdhNjk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA5LTEzICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBFdmFzX09iamVjdCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVhZCBpdCBhcyBzdWNo
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1OQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgUmVwbGFjZSBPd25Q
dHI8RXZhc19PYmplY3Q+IHdpdGggUmVmUHRyLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVudHJ5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmw6OmxvYWRUaGVtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6YXBwbHlQYXJ0RGVzY3JpcHRpb25zRnJvbSk6CisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgIChSZW5kZXJUaGVt
ZUVmbCk6CisgICAgICAgIChUaGVtZVBhcnRDYWNoZUVudHJ5KToKKwogMjAxMi0wOS0xMyAgTWlj
aGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRlZCA4IGJpdCBw
YXRoIHRvIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDkzZjQ4
OGZlODczZTVlYjFjNmU0ZDIwMTc3YjE3ZmQwYjgyOWRlZmYuLmQyNDVjZGU2NTZiNWJmNTgwMjA5
NWVmZjZmYzgyMzk1YTRhZTUzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMi0wOS0xMyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgRXZhc19PYmplY3QqIGlzIGEgcmVmJ2VkIHN0cnVjdHVyZSwgc28gdHJl
YWQgaXQgYXMgc3VjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTY2NTkKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAg
IFJlcGxhY2UgT3duUHRyPEV2YXNfT2JqZWN0PiB3aXRoIFJlZlB0ci4KKworICAgICAgICAqIHRl
c3RzL1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuY3BwOgorICAgICAgICAoRVdLVW5pdFRlc3Rz
OjpFV0tUZXN0Vmlldzo6aW5pdCk6CisgICAgICAgICogdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tU
ZXN0Vmlldy5oOgorICAgICAgICAoRVdLVGVzdFZpZXcpOgorCiAyMDEyLTA5LTEzICBDaHJpc3Rv
cGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0g
UmVtb3ZlIGEgbG90IG9mIEMnaXNtIGZyb20gRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMDVhZDg0NzhkOWI2M2NiZTNjNWViYTg4NDc5YTVlYmQ4
MWZkNDlmNC4uMmQ2NjNmYThmNDE1N2MxZTQ3MjVhZGJkODcwYmQ0YmYyMjU4OGIzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEsNiArMSw3IEBACiBMSVNUKEFQUEVORCBXVEZfU09V
UkNFUwogICAgIGVmbC9NYWluVGhyZWFkRWZsLmNwcAogICAgIGVmbC9Pd25QdHJFZmwuY3BwCisg
ICAgZWZsL1JlZlB0ckVmbC5jcHAKICAgICBnb2JqZWN0L0dPd25QdHIuY3BwCiAgICAgZ29iamVj
dC9HUmVmUHRyLmNwcAogCkBAIC0zMyw1ICszNCw2IEBAIExJU1QoQVBQRU5EIFdURl9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgJHtHTElCX0lOQ0xVREVfRElSU30KICAgICAke0lDVV9JTkNMVURF
X0RJUlN9CiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3d0Zi9nb2JqZWN0Ci0gICAgJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L3d0Zi91bmljb2RlLworICAgICR7SkFWQVNDUklQVENPUkVfRElSfS93
dGYvdW5pY29kZQorICAgICR7SkFWQVNDUklQVENPUkVfRElSfS93dGYvZWZsCiApCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2Vm
bC9Pd25QdHJFZmwuY3BwCmluZGV4IDY1MDFhOTYwODYxMzFmZDNhOTg2NzY3MzZkMWYwY2ExMjdi
Yjg4Y2QuLmM2Y2E1ZTIyMDk2OGEwMDE4YjYzMTRlZmJkZWJkZDc5MzUxYjQzNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Pd25QdHJFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L2VmbC9Pd25QdHJFZmwuY3BwCkBAIC00MCwxMSArNDAsNiBAQCB2b2lkIGRlbGV0ZU93bmVkUHRy
KEVjb3JlX0V2YXMqIHB0cikKICAgICAgICAgZWNvcmVfZXZhc19mcmVlKHB0cik7CiB9CiAKLXZv
aWQgZGVsZXRlT3duZWRQdHIoRXZhc19PYmplY3QqIHB0cikKLXsKLSAgICBldmFzX29iamVjdF9k
ZWwocHRyKTsKLX0KLQogdm9pZCBkZWxldGVPd25lZFB0cihFY29yZV9QaXBlKiBwdHIpCiB7CiAg
ICAgaWYgKHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9SZWZQdHJFZmwuY3Bw
IGIvU291cmNlL1dURi93dGYvZWZsL1JlZlB0ckVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIxNDM2NDAy
YmI1N2U3NzM3MTdjZTBjM2ZkODJkMDdhMmJiOTljNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2VmbC9SZWZQdHJFZmwuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWZQdHJFZmwuaCIK
KworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gdm9p
ZCByZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKCEhcHRy
KSkKKyAgICAgICAgZXZhc19vYmplY3RfcmVmKHB0cik7Cit9CisKK3RlbXBsYXRlPD4gdm9pZCBk
ZXJlZklmTm90TnVsbChFdmFzX09iamVjdCogcHRyKQoreworICAgIC8vIFJlZmNvdW50aW5nIGlu
IEV2YXNfT2JqZWN0IGlzIGRpZmZlcmVudCB0aGF0IG5vcm1hbC4gVGhlIG9iamVjdCBpcyBjcmVh
dGVkCisgICAgLy8gd2l0aCBhbiBleHRlcm5hbCByZWYgY291bnQgb2YgMCwgYnV0IHdpdGggb25l
IGludGVybmFsIGNvdW50IG9mIDEgd2hpY2ggY2FuCisgICAgLy8gb25seSBiZSByZW1vdmVkIGJ5
IGNhbGxpbmcgX2RlbC4gQ2FsbGluZyBfZGVsIHdpdGggYW4gZXh0ZXJuYWwgcmVmIGNvdW50ID4g
MCwKKyAgICAvLyBwb3N0cG9zZXMgZGVsZXRpb24gdW50aWwgaXQgcmVhY2hlcyAwLgorCisgICAg
aWYgKExJS0VMWSghIXB0cikpIHsKKyAgICAgICAgaWYgKGV2YXNfb2JqZWN0X3JlZl9nZXQocHRy
KSA+IDApCisgICAgICAgICAgICBldmFzX29iamVjdF91bnJlZihwdHIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBldmFzX29iamVjdF9kZWwocHRyKTsKKyAgICB9Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9SZWZQdHJFZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2Vm
bC9SZWZQdHJFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODE1Mjg0MmRjOGY0OGQ1YTQ0NzQ0MTFhMjY1YWI1
MWEyODg5MmJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1JlZlB0ckVm
bC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBSZWZQdHJFZmxfaAorI2RlZmluZSBSZWZQ
dHJFZmxfaAorCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCit0eXBlZGVmIHN0cnVjdCBfRXZh
c19PYmplY3QgRXZhc19PYmplY3Q7CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHZv
aWQgcmVmSWZOb3ROdWxsKEV2YXNfT2JqZWN0KiBwdHIpOwordGVtcGxhdGU8PiB2b2lkIGRlcmVm
SWZOb3ROdWxsKEV2YXNfT2JqZWN0KiBwdHIpOworCit9CisKKyNlbmRpZiAvLyBSZWZQdHJFZmxf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA3OTNjODIxNzhlMzEyODJiYjY4MDlhZjVk
ODA2NmFhMzBmNGZhMjkwLi43MGQ2OGQ3MTQ4NDIxZjI3YzVkOGY4ODY3NTFmMmIyODZlZTFjZjQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMzksNyArMzksNiBAQCBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVudEVmbC5j
cHAKICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtU2NyZWVuRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwv
UGxhdGZvcm1XaGVlbEV2ZW50RWZsLmNwcAotICBwbGF0Zm9ybS9lZmwvUmVmUHRyRWZsLmNwcAog
ICBwbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9SdW5Mb29w
RWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvU2Nyb2xsVmlld0VmbC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZWZQdHJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1JlZlB0ckVmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE2YjE5MDgyZWIyODJjYTU3ZWFjMWI3NGQ0Y2MzNDIzNzAwYzYwOGMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1JlZlB0ckVmbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICog
IENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVmUHRyRWZs
LmgiCi0KLSNpbmNsdWRlIDxFdmFzLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+
IHZvaWQgcmVmSWZOb3ROdWxsKEV2YXNfT2JqZWN0KiBwdHIpCi17Ci0gICAgaWYgKExJS0VMWSgh
IXB0cikpCi0gICAgICAgIGV2YXNfb2JqZWN0X3JlZihwdHIpOwotfQotCi10ZW1wbGF0ZTw+IHZv
aWQgZGVyZWZJZk5vdE51bGwoRXZhc19PYmplY3QqIHB0cikKLXsKLSAgICBpZiAoTElLRUxZKCEh
cHRyKSkgewotICAgICAgICBldmFzX29iamVjdF91bnJlZihwdHIpOwotICAgICAgICBldmFzX29i
amVjdF9kZWwocHRyKTsKLSAgICB9Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9SZWZQdHJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9S
ZWZQdHJFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDgxNTI4NDJkYzhmNDhk
NWE0NDc0NDExYTI2NWFiNTFhMjg4OTJiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVmUHRyRWZsLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAx
MSBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgUmVmUHRyRWZsX2gKLSNk
ZWZpbmUgUmVmUHRyRWZsX2gKLQotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotdHlwZWRlZiBz
dHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwotCi1uYW1lc3BhY2UgV1RGIHsKLQotdGVt
cGxhdGU8PiB2b2lkIHJlZklmTm90TnVsbChFdmFzX09iamVjdCogcHRyKTsKLXRlbXBsYXRlPD4g
dm9pZCBkZXJlZklmTm90TnVsbChFdmFzX09iamVjdCogcHRyKTsKLQotfQotCi0jZW5kaWYgLy8g
UmVmUHRyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5k
ZXJUaGVtZUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVF
ZmwuY3BwCmluZGV4IDY0ODNlZTcwYmRmYWM0ZTBlYjgwZGRhMDQ1ODk0ZDAyOTk0MzM2NDAuLmI0
ZTQwM2E5NzhjYWNjMjYxYWI0MTA0MzQ4NTk4ZDJkYzY5OTk0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcApAQCAtMjE0LDcgKzIxNCw3IEBA
IFJlbmRlclRoZW1lRWZsOjpUaGVtZVBhcnRDYWNoZUVudHJ5KiBSZW5kZXJUaGVtZUVmbDo6VGhl
bWVQYXJ0Q2FjaGVFbnRyeTo6Y3JlYXRlCiAgICAgLy8gQnkgZGVmYXVsdCBFRkwgY3JlYXRlcyBi
dWZmZXJzIHdpdGhvdXQgYWxwaGEuCiAgICAgZWNvcmVfZXZhc19hbHBoYV9zZXQoZW50cnktPmNh
bnZhcygpLCBFSU5BX1RSVUUpOwogCi0gICAgZW50cnktPm1fZWRqZSA9IGFkb3B0UHRyKGVkamVf
b2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChlbnRyeS0+Y2FudmFzKCkpKSk7CisgICAgZW50cnkt
Pm1fZWRqZSA9IGFkb3B0UmVmKGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChlbnRyeS0+
Y2FudmFzKCkpKSk7CiAgICAgQVNTRVJUKGVudHJ5LT5lZGplKCkpOwogCiAgICAgaWYgKCFzZXRT
b3VyY2VHcm91cEZvckVkamVPYmplY3QoZW50cnktPmVkamUoKSwgdGhlbWVQYXRoLCB0b0VkamVH
cm91cCh0eXBlKSkpCkBAIC01MDksNyArNTA5LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6bG9h
ZFRoZW1lKCkKICAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNyZWF0ZSBjYW52YXMgcmVxdWly
ZWQgYnkgdGhlbWUsIHRoaW5ncyB3aWxsIG5vdCB3b3JrIHByb3Blcmx5LiIpOwogICAgIH0KIAot
ICAgIE93blB0cjxFdmFzX09iamVjdD4gbyA9IGFkb3B0UHRyKGVkamVfb2JqZWN0X2FkZChlY29y
ZV9ldmFzX2dldChjYW52YXMoKSkpKTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG8gPSBhZG9w
dFJlZihlZGplX29iamVjdF9hZGQoZWNvcmVfZXZhc19nZXQoY2FudmFzKCkpKSk7CiAgICAgX0FT
U0VSVF9PTl9SRUxFQVNFX1JFVFVSTl9WQUwobywgZmFsc2UsICJDb3VsZCBub3QgY3JlYXRlIG5l
dyBiYXNlIEVkamUgb2JqZWN0LiIpOwogCiAgICAgaWYgKCFzZXRTb3VyY2VHcm91cEZvckVkamVP
YmplY3Qoby5nZXQoKSwgbV90aGVtZVBhdGgsICJ3ZWJraXQvYmFzZSIpKQpAQCAtNTIwLDcgKzUy
MCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6OmxvYWRUaGVtZSgpCiAgICAgICAgIGZsdXNoVGhl
bWVQYXJ0Q2FjaGUoKTsKIAogICAgIC8vIFNldCBuZXcgbG9hZGVkIHRoZW1lLCBhbmQgYXBwbHkg
aXQuCi0gICAgbV9lZGplLnN3YXAobyk7CisgICAgbV9lZGplID0gbzsKIAogICAgIGVkamVfb2Jq
ZWN0X3NpZ25hbF9jYWxsYmFja19hZGQoZWRqZSgpLCAiY29sb3JfY2xhc3Msc2V0IiwgIndlYmtp
dC9zZWxlY3Rpb24vYWN0aXZlIiwgYXBwbHlDb2xvckNhbGxiYWNrLCB0aGlzKTsKICAgICBlZGpl
X29iamVjdF9zaWduYWxfY2FsbGJhY2tfYWRkKGVkamUoKSwgImNvbG9yX2NsYXNzLHNldCIsICJ3
ZWJraXQvc2VsZWN0aW9uL2luYWN0aXZlIiwgYXBwbHlDb2xvckNhbGxiYWNrLCB0aGlzKTsKQEAg
LTYwMSw3ICs2MDEsNyBAQCB2b2lkIFJlbmRlclRoZW1lRWZsOjphcHBseVBhcnREZXNjcmlwdGlv
bihFdmFzX09iamVjdCogb2JqZWN0LCBUaGVtZVBhcnREZXNjKiBkZQogCiB2b2lkIFJlbmRlclRo
ZW1lRWZsOjphcHBseVBhcnREZXNjcmlwdGlvbnNGcm9tKGNvbnN0IFN0cmluZyYgdGhlbWVQYXRo
KQogewotICAgIE93blB0cjxFdmFzX09iamVjdD4gdGVtcCA9IGFkb3B0UHRyKGVkamVfb2JqZWN0
X2FkZChlY29yZV9ldmFzX2dldChjYW52YXMoKSkpKTsKKyAgICBSZWZQdHI8RXZhc19PYmplY3Q+
IHRlbXAgPSBhZG9wdFJlZihlZGplX29iamVjdF9hZGQoZWNvcmVfZXZhc19nZXQoY2FudmFzKCkp
KSk7CiAgICAgX0FTU0VSVF9PTl9SRUxFQVNFX1JFVFVSTih0ZW1wLCAiQ291bGQgbm90IGNyZWF0
ZSBFZGplIG9iamVjdC4iKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgRm9ybVR5cGVM
YXN0OyBpKyspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5k
ZXJUaGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZs
LmgKaW5kZXggZDFiODFlMGJjYzJlMWI5YThjZDljODM0ZjhhNGNiMGRhNWRkYmQ1OS4uNGFiNTg5
MDQzYjJmOGQwMGNlY2FmNTI4ZjJkNDc0ZmRjZTQ0ZGJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZS5oIgogCiAjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDx3dGYvZWZs
L1JlZlB0ckVmbC5oPgogCiB0eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwog
dHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwpAQCAtMjUwLDcgKzI1MSw3
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdGhlbWVQYXRoOwogICAgIC8vIE9yZGVyIHNvIHRo
YXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ryb3llZCBhdCBsYXN0LgogICAgIE93blB0cjxFY29yZV9F
dmFzPiBtX2NhbnZhczsKLSAgICBPd25QdHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKKyAgICBSZWZQ
dHI8RXZhc19PYmplY3Q+IG1fZWRqZTsKIAogICAgIHN0cnVjdCBUaGVtZVBhcnREZXNjIHsKICAg
ICAgICAgRm9ybVR5cGUgdHlwZTsKQEAgLTI3NSw3ICsyNzYsNyBAQCBwcml2YXRlOgogICAgIHBy
aXZhdGU6CiAgICAgICAgIC8vIE9yZGVyIHNvIHRoYXQgdGhlIGNhbnZhcyBnZXRzIGRlc3Ryb3ll
ZCBhdCBsYXN0LgogICAgICAgICBPd25QdHI8RWNvcmVfRXZhcz4gbV9jYW52YXM7Ci0gICAgICAg
IE93blB0cjxFdmFzX09iamVjdD4gbV9lZGplOworICAgICAgICBSZWZQdHI8RXZhc19PYmplY3Q+
IG1fZWRqZTsKICAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwogICAg
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMv
RVdLVGVzdFZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9F
V0tUZXN0Vmlldy5jcHAKaW5kZXggZmQyOWI4MTFjNjI2YTU1NmEwNGRlMmZjMzQwMzc1ZTJiNDJh
ZDljMy4uZGJiMDA5MmU4ZjAzZGE0YWIyN2FmODI0MDVjOTE3M2FlM2JhMzVlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tUZXN0Vmlldy5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxFV2ViS2l0Lmg+CiAKICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIEVX
S1VuaXRUZXN0cyB7CiAKQEAgLTk4LDExICs5OSwxMSBAQCBib29sIEVXS1Rlc3RWaWV3Ojppbml0
KCkKIAogICAgIHN3aXRjaCAobV9kZWZhdWx0Vmlld1R5cGUpIHsKICAgICBjYXNlIFNpbmdsZVZp
ZXc6Ci0gICAgICAgIG1fd2ViVmlldyA9IGFkb3B0UHRyKGV3a192aWV3X3NpbmdsZV9hZGQobV9l
dmFzKSk7CisgICAgICAgIG1fd2ViVmlldyA9IGFkb3B0UmVmKGV3a192aWV3X3NpbmdsZV9hZGQo
bV9ldmFzKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUaWxlZFZpZXc6Ci0gICAgICAg
IG1fd2ViVmlldyA9IGFkb3B0UHRyKGV3a192aWV3X3RpbGVkX2FkZChtX2V2YXMpKTsKKyAgICAg
ICAgbV93ZWJWaWV3ID0gYWRvcHRSZWYoZXdrX3ZpZXdfdGlsZWRfYWRkKG1fZXZhcykpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3Rz
L1VuaXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL1Vu
aXRUZXN0VXRpbHMvRVdLVGVzdFZpZXcuaAppbmRleCA2ZDE1ZDBkMzAyNzY5ZmQ4M2JkYTgxOGEz
M2RjZWNhZTU4NTNjNWViLi4xYmRkOWVkYWUwYWJkNThlODZhMDJkOGNlMTIxZTc1NGRmODhiMmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXS1Rl
c3RWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0tU
ZXN0Vmlldy5oCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUg
PHN0cmluZz4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2VmbC9SZWZQ
dHJFZmwuaD4KIAogbmFtZXNwYWNlIEVXS1VuaXRUZXN0cyB7CiAKQEAgLTYzLDcgKzY0LDcgQEAg
cHJpdmF0ZToKICAgICBFV0tUZXN0VmlldyBvcGVyYXRvcj0oY29uc3QgRVdLVGVzdFZpZXcmKTsK
IAogICAgIEV2YXMqIG1fZXZhczsKLSAgICBPd25QdHI8RXZhc19PYmplY3Q+IG1fd2ViVmlldzsK
KyAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1fd2ViVmlldzsKIAogICAgIGludCBtX3dpZHRoLCBt
X2hlaWdodDsKICAgICBFd2tWaWV3VHlwZSBtX2RlZmF1bHRWaWV3VHlwZTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NzZlNjNiMWU4NDczZWU0
OTc3MTllYjI2ZDA0M2ZjNGU0OWFkYjgxLi5lN2MxYTk5OGViMDE3YjAxZWI0ZjFmNDE0YjBmNjZm
MjI5NTY5YjgwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMTMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEV2YXNfT2JqZWN0KiBpcyBhIHJl
ZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KKworICAgICAgICBSZXBsYWNlIE93blB0cjxFdmFzX09iamVjdD4gd2l0aCBS
ZWZQdHIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvSW1hZ2VEaWZmLmNwcDoKKyAg
ICAgICAgKGNhbGN1bGF0ZURpZmZlcmVuY2UpOgorICAgICAgICAocHJpbnRJbWFnZURpZmZlcmVu
Y2VzKToKKyAgICAgICAgKHJlYWRJbWFnZUZyb21TdGRpbik6CisgICAgICAgIChtYWluKToKKwog
MjAxMi0wOS0xMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE9uZSBtb3JlIHVucmV2aWV3ZWQgdHJpdmlhbCBmaXggYWZ0ZXIgcjEyODM5OS4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9JbWFnZURpZmYuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0ltYWdlRGlmZi5jcHAKaW5kZXggODhhMGU0YTFmNDIzNDA2NjJhNmYx
MDUyMTQwZGJjNTc1NDAxNGM4Ny4uMTI5YjZjYTU3Yzg1NDIzNjcyODBhYWY0OGVkZTI5Mzg5OTdh
ZTVlYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0ltYWdlRGlmZi5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0ltYWdlRGlmZi5jcHAKQEAgLTQ1LDYgKzQ1
LDggQEAKICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9lZmwvUmVmUHRyRWZsLmg+CiAKIGVudW0gUGl4ZWxDb21wb25l
bnQgewogICAgIFJlZCwKQEAgLTEwNiw3ICsxMDgsNyBAQCBzdGF0aWMgZmxvYXQgY2FsY3VsYXRl
UGl4ZWxEaWZmZXJlbmNlKHVuc2lnbmVkIGNoYXIqIGJhc2VQaXhlbCwgdW5zaWduZWQgY2hhciog
YQogICAgIHJldHVybiBzcXJ0ZihyZWQgKiByZWQgKyBncmVlbiAqIGdyZWVuICsgYmx1ZSAqIGJs
dWUgKyBhbHBoYSAqIGFscGhhKSAvIDIuMGY7CiB9CiAKLXN0YXRpYyBmbG9hdCBjYWxjdWxhdGVE
aWZmZXJlbmNlKEV2YXNfT2JqZWN0KiBiYXNlbGluZUltYWdlLCBFdmFzX09iamVjdCogYWN0dWFs
SW1hZ2UsIE93blB0cjxFdmFzX09iamVjdD4mIGRpZmZlcmVuY2VJbWFnZSkKK3N0YXRpYyBmbG9h
dCBjYWxjdWxhdGVEaWZmZXJlbmNlKEV2YXNfT2JqZWN0KiBiYXNlbGluZUltYWdlLCBFdmFzX09i
amVjdCogYWN0dWFsSW1hZ2UsIFJlZlB0cjxFdmFzX09iamVjdD4mIGRpZmZlcmVuY2VJbWFnZSkK
IHsKICAgICBpbnQgd2lkdGgsIGhlaWdodCwgYmFzZWxpbmVXaWR0aCwgYmFzZWxpbmVIZWlnaHQ7
CiAgICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9nZXQoYWN0dWFsSW1hZ2UsICZ3aWR0aCwgJmhl
aWdodCk7CkBAIC0xNjMsNyArMTY1LDcgQEAgc3RhdGljIGZsb2F0IGNhbGN1bGF0ZURpZmZlcmVu
Y2UoRXZhc19PYmplY3QqIGJhc2VsaW5lSW1hZ2UsIEV2YXNfT2JqZWN0KiBhY3R1YWwKICAgICAg
ICAgZGlmZmVyZW5jZSA9IHJvdW5kZihkaWZmZXJlbmNlICogMTAwLjBmKSAvIDEwMC4wZjsKICAg
ICAgICAgZGlmZmVyZW5jZSA9IHN0ZDo6bWF4KGRpZmZlcmVuY2UsIDAuMDFmKTsgLy8gcm91bmQg
dG8gMiBkZWNpbWFsIHBsYWNlcwogCi0gICAgICAgIGRpZmZlcmVuY2VJbWFnZSA9IGFkb3B0UHRy
KGRpZmZlcmVuY2VJbWFnZUZyb21EaWZmZXJlbmNlQnVmZmVyKGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KGJhc2VsaW5lSW1hZ2UpLCBkaWZmQnVmZmVyLmdldCgpLCB3aWR0aCwgaGVpZ2h0KSk7CisgICAg
ICAgIGRpZmZlcmVuY2VJbWFnZSA9IGFkb3B0UmVmKGRpZmZlcmVuY2VJbWFnZUZyb21EaWZmZXJl
bmNlQnVmZmVyKGV2YXNfb2JqZWN0X2V2YXNfZ2V0KGJhc2VsaW5lSW1hZ2UpLCBkaWZmQnVmZmVy
LmdldCgpLCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGRpZmZlcmVuY2U7
CkBAIC0yMjYsNyArMjI4LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRJbWFnZShFdmFzX09iamVjdCog
aW1hZ2UpCiAKIHN0YXRpYyB2b2lkIHByaW50SW1hZ2VEaWZmZXJlbmNlcyhFdmFzX09iamVjdCog
YmFzZWxpbmVJbWFnZSwgRXZhc19PYmplY3QqIGFjdHVhbEltYWdlKQogewotICAgIE93blB0cjxF
dmFzX09iamVjdD4gZGlmZmVyZW5jZUltYWdlOworICAgIFJlZlB0cjxFdmFzX09iamVjdD4gZGlm
ZmVyZW5jZUltYWdlOwogICAgIGNvbnN0IGZsb2F0IGRpZmZlcmVuY2UgPSBjYWxjdWxhdGVEaWZm
ZXJlbmNlKGJhc2VsaW5lSW1hZ2UsIGFjdHVhbEltYWdlLCBkaWZmZXJlbmNlSW1hZ2UpOwogCiAg
ICAgaWYgKGRpZmZlcmVuY2UgPiAwLjBmKSB7CkBAIC0yNTQsNyArMjU2LDcgQEAgc3RhdGljIHZv
aWQgcmVzaXplRWNvcmVFdmFzSWZOZWVkZWQoRXZhc19PYmplY3QqIGltYWdlKQogICAgIGVjb3Jl
X2V2YXNfcmVzaXplKGdFY29yZUV2YXMuZ2V0KCksIGN1cnJlbnRXaWR0aCwgY3VycmVudEhlaWdo
dCk7CiB9CiAKLXN0YXRpYyBQYXNzT3duUHRyPEV2YXNfT2JqZWN0PiByZWFkSW1hZ2VGcm9tU3Rk
aW4oRXZhcyogZXZhcywgbG9uZyBpbWFnZVNpemUpCitzdGF0aWMgUGFzc1JlZlB0cjxFdmFzX09i
amVjdD4gcmVhZEltYWdlRnJvbVN0ZGluKEV2YXMqIGV2YXMsIGxvbmcgaW1hZ2VTaXplKQogewog
ICAgIE93bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGltYWdlQnVmZmVyID0gYWRvcHRBcnJheVB0
cihuZXcgdW5zaWduZWQgY2hhcltpbWFnZVNpemVdKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQpA
QCAtMjYyLDcgKzI2NCw3IEBAIHN0YXRpYyBQYXNzT3duUHRyPEV2YXNfT2JqZWN0PiByZWFkSW1h
Z2VGcm9tU3RkaW4oRXZhcyogZXZhcywgbG9uZyBpbWFnZVNpemUpCiAKICAgICBjb25zdCBzaXpl
X3QgYnl0ZXNSZWFkID0gZnJlYWQoaW1hZ2VCdWZmZXIuZ2V0KCksIDEsIGltYWdlU2l6ZSwgc3Rk
aW4pOwogICAgIGlmICghYnl0ZXNSZWFkKQotICAgICAgICByZXR1cm4gUGFzc093blB0cjxFdmFz
X09iamVjdD4oKTsKKyAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8RXZhc19PYmplY3Q+KCk7CiAK
ICAgICBFdmFzX09iamVjdCogaW1hZ2UgPSBldmFzX29iamVjdF9pbWFnZV9maWxsZWRfYWRkKGV2
YXMpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2NvbG9yc3BhY2Vfc2V0KGltYWdlLCBFVkFTX0NP
TE9SU1BBQ0VfQVJHQjg4ODgpOwpAQCAtMjcwLDcgKzI3Miw3IEBAIHN0YXRpYyBQYXNzT3duUHRy
PEV2YXNfT2JqZWN0PiByZWFkSW1hZ2VGcm9tU3RkaW4oRXZhcyogZXZhcywgbG9uZyBpbWFnZVNp
emUpCiAKICAgICByZXNpemVFY29yZUV2YXNJZk5lZWRlZChpbWFnZSk7CiAKLSAgICByZXR1cm4g
YWRvcHRQdHIoaW1hZ2UpOworICAgIHJldHVybiBhZG9wdFJlZihpbWFnZSk7CiB9CiAKIHN0YXRp
YyBib29sIHBhcnNlQ29tbWFuZExpbmVPcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikKQEAg
LTMzMSw4ICszMzMsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogCiAgICAg
RXZhcyogZXZhcyA9IGluaXRFZmwoKTsKIAotICAgIE93blB0cjxFdmFzX09iamVjdD4gYWN0dWFs
SW1hZ2U7Ci0gICAgT3duUHRyPEV2YXNfT2JqZWN0PiBiYXNlbGluZUltYWdlOworICAgIFJlZlB0
cjxFdmFzX09iamVjdD4gYWN0dWFsSW1hZ2U7CisgICAgUmVmUHRyPEV2YXNfT2JqZWN0PiBiYXNl
bGluZUltYWdlOwogCiAgICAgY2hhciBidWZmZXJbMjA0OF07CiAgICAgd2hpbGUgKGZnZXRzKGJ1
ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHN0ZGluKSkgewo=
</data>
<flag name="review"
          id="175739"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>