<?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>149522</bug_id>
          
          <creation_ts>2015-09-24 06:53:32 -0700</creation_ts>
          <short_desc>Remove the need for DOMClass in case of JSBuiltinConstructor WebIDL</short_desc>
          <delta_ts>2015-09-29 19:17:09 -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>WebCore Misc.</component>
          <version>WebKit 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1128477</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-24 06:53:32 -0700</bug_when>
    <thetext>When a WebIDL interface is defined as JSBuiltinConstructor, the DOM class is really a dummy class.
While it may be good to remove the need to allocate a DOM class object alltogether, an intermediate approach might just be to generate the dummy class by the binding generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128483</commentid>
    <comment_count>1</comment_count>
      <attachid>261867</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-24 07:08:25 -0700</bug_when>
    <thetext>Created attachment 261867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128492</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-24 07:57:40 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created attachment 261867 [details]
&gt; Patch

Took the simple approach of generating the dummy DOM class.
It might be nice to remove the need for the memory allocation and counter at a later stage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128495</commentid>
    <comment_count>3</comment_count>
      <attachid>261867</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-24 08:10:31 -0700</bug_when>
    <thetext>Comment on attachment 261867
Patch

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

This is OK and an improvement, but I think we can easily go a bit further.

&gt; Source/WebCore/bindings/js/JSDOMWrapper.h:52
&gt; +class DummyDOMClass: public RefCounted&lt;DummyDOMClass&gt; {

Missing space before &quot;:&quot;.

&gt; Source/WebCore/bindings/js/JSDOMWrapper.h:54
&gt; +    virtual ~DummyDOMClass() { }

Not sure why this is needed. Do we need the class to seem polymorphic for some reason?

&gt; Source/WebCore/bindings/js/JSDOMWrapper.h:56
&gt; +protected:
&gt; +    DummyDOMClass() { }

This doesn’t really achieve all that much. I think we’d want the constructor to be private in the actual generated classes too, not just this dummy class. I’d be slightly tempted to just leave this out entirely and let the constructor be public.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:5099
&gt; +    push(@headerContent, &quot;    class $className : public DummyDOMClass {\n&quot;);

If all my comments about DummyDOMClass a correct, then I think we might just be able to derive from RefCounted&lt;$className&gt; here and not have DummyDOMClass at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128497</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-24 08:40:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 261867 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261867&amp;action=review
&gt; 
&gt; This is OK and an improvement, but I think we can easily go a bit further.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWrapper.h:52
&gt; &gt; +class DummyDOMClass: public RefCounted&lt;DummyDOMClass&gt; {
&gt; 
&gt; Missing space before &quot;:&quot;.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWrapper.h:54
&gt; &gt; +    virtual ~DummyDOMClass() { }
&gt; 
&gt; Not sure why this is needed. Do we need the class to seem polymorphic for
&gt; some reason?

This is required by RefCounted IIRC.

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWrapper.h:56
&gt; &gt; +protected:
&gt; &gt; +    DummyDOMClass() { }
&gt; 
&gt; This doesn’t really achieve all that much. I think we’d want the constructor
&gt; to be private in the actual generated classes too, not just this dummy
&gt; class. I’d be slightly tempted to just leave this out entirely and let the
&gt; constructor be public.
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:5099
&gt; &gt; +    push(@headerContent, &quot;    class $className : public DummyDOMClass {\n&quot;);
&gt; 
&gt; If all my comments about DummyDOMClass a correct, then I think we might just
&gt; be able to derive from RefCounted&lt;$className&gt; here and not have
&gt; DummyDOMClass at all.

OK. Let&apos;s remove DummyDOMClass and generate the destructor directly then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128676</commentid>
    <comment_count>5</comment_count>
      <attachid>261916</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 00:08:35 -0700</bug_when>
    <thetext>Created attachment 261916
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128682</commentid>
    <comment_count>6</comment_count>
      <attachid>261919</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 01:57:12 -0700</bug_when>
    <thetext>Created attachment 261919
Rebasing for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128683</commentid>
    <comment_count>7</comment_count>
      <attachid>261919</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-25 01:59:05 -0700</bug_when>
    <thetext>Comment on attachment 261919
Rebasing for landing

Rejecting attachment 261919 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 261919, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/210930</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128684</commentid>
    <comment_count>8</comment_count>
      <attachid>261920</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 02:02:56 -0700</bug_when>
    <thetext>Created attachment 261920
Rebasing for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128691</commentid>
    <comment_count>9</comment_count>
      <attachid>261920</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-25 02:57:44 -0700</bug_when>
    <thetext>Comment on attachment 261920
Rebasing for landing

Clearing flags on attachment: 261920

Committed r190239: &lt;http://trac.webkit.org/changeset/190239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128692</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-25 02:57:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128714</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-25 09:35:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; &gt; Source/WebCore/bindings/js/JSDOMWrapper.h:54
&gt; &gt; &gt; +    virtual ~DummyDOMClass() { }
&gt; &gt; 
&gt; &gt; Not sure why this is needed. Do we need the class to seem polymorphic for
&gt; &gt; some reason?
&gt; 
&gt; This is required by RefCounted IIRC.

RefCounted itself definitely does *not* require that the class be polymorphic so it doesn’t require a virtual destructor.

We need to make the destructor virtual if we are going to deref or delete these objects in a polymorphic way, using a pointer to a base class. I think you could revisit this and make the class both &quot;final&quot; and not define a virtual destructor.

You also talked about cleaning things up further so the class isn’t needed at all; if you do that this won’t matter at all.

If we do need to keep this class, then we can do another trick for better efficiency:

    class $className {
    public:
        static Ref&lt;$className&gt; create() { return adoptRef(singleton()); }\n&quot;); 
        static void ref() { }
        static void deref() { }
    private:
        static $className&amp; singleton() { static NeverDestroyed&lt;$className&gt; singleton; return singleton; }
    };

No memory allocation, no incrementing and decrementing reference counts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128715</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 09:52:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; Source/WebCore/bindings/js/JSDOMWrapper.h:54
&gt; &gt; &gt; &gt; +    virtual ~DummyDOMClass() { }
&gt; &gt; &gt; 
&gt; &gt; &gt; Not sure why this is needed. Do we need the class to seem polymorphic for
&gt; &gt; &gt; some reason?
&gt; &gt; 
&gt; &gt; This is required by RefCounted IIRC.
&gt; 
&gt; RefCounted itself definitely does *not* require that the class be
&gt; polymorphic so it doesn’t require a virtual destructor.
&gt; 
&gt; We need to make the destructor virtual if we are going to deref or delete
&gt; these objects in a polymorphic way, using a pointer to a base class. I think
&gt; you could revisit this and make the class both &quot;final&quot; and not define a
&gt; virtual destructor.

Thanks for the information.

&gt; 
&gt; You also talked about cleaning things up further so the class isn’t needed
&gt; at all; if you do that this won’t matter at all.
&gt; 
&gt; If we do need to keep this class, then we can do another trick for better
&gt; efficiency:
&gt; 
&gt;     class $className {
&gt;     public:
&gt;         static Ref&lt;$className&gt; create() { return adoptRef(singleton());
&gt; }\n&quot;); 
&gt;         static void ref() { }
&gt;         static void deref() { }
&gt;     private:
&gt;         static $className&amp; singleton() { static NeverDestroyed&lt;$className&gt;
&gt; singleton; return singleton; }
&gt;     };
&gt; 
&gt; No memory allocation, no incrementing and decrementing reference counts.

Yes, that is one approach I though of.
It requires bypassing JSDOMGlobalObject wrapper cache, which is another efficiency bonus.

We may also want to use a single singleton for all builtin classes.

To go further, we may want to skip generation of some needless code (toJS, releaseImpl...).

Choice may be guided by the added complexity to the binding generator.
I plan to take some time on this once the JS builtin architecture is ready to implement ReadableStream and WritableStream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128717</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-25 09:55:00 -0700</bug_when>
    <thetext>Filed bug 149556 to keep track of this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128805</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-25 15:48:07 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; It requires bypassing JSDOMGlobalObject wrapper cache, which is another
&gt; efficiency bonus.

My proposal above does not require bypassing the wrapper cache. The singleton wrapper will simply be found in the cache (many times over).

However, of course we can do further optimization to bypass the wrapper cache.

&gt; We may also want to use a single singleton for all builtin classes.

We may not need an object at all if we are changing things like the wrapper class. I think we should create a JavaScript object that doesn’t wrap a DOM object at all. And I’m not even sure it’s all that challenging to do that. I might take a crack at it.

&gt; To go further, we may want to skip generation of some needless code (toJS,
&gt; releaseImpl...).
&gt; 
&gt; Choice may be guided by the added complexity to the binding generator.
&gt; I plan to take some time on this once the JS builtin architecture is ready
&gt; to implement ReadableStream and WritableStream.

You may be misunderstanding.

My specific proposed change above is entirely local and doesn’t add any complexity to the bindings generator.

Your more ambitious project is different; that will require a change to the bindings generator, but even that probably does not require not a huge one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129474</commentid>
    <comment_count>15</comment_count>
      <attachid>261920</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-29 19:17:09 -0700</bug_when>
    <thetext>Comment on attachment 261920
Rebasing for landing

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1751
&gt; +    AddIncludesForTypeInImpl($implType) if not UseDummyDOMClass($interface);

if not == unless</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261867</attachid>
            <date>2015-09-24 07:08:25 -0700</date>
            <delta_ts>2015-09-25 00:08:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149522-20150924110805.patch</filename>
            <type>text/plain</type>
            <size>11481</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRhMzA2MmQ2ZTQxMzVk
OTZmOTkyMzgwZjk2M2FhMjBmMjFmMWFmNi4uMzQ5Mjc0NmMzMDNjMGQ0MWE4MTkwMDBmYzhlMGIz
YzBmZmY1ZDFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE1LTA5LTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKKyAgICAgICAgUmVtb3Zl
IHRoZSBuZWVkIGZvciBET01DbGFzcyBpbiBjYXNlIG9mIEpTQnVpbHRpbkNvbnN0cnVjdG9yIFdl
YklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
NTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aW5nIGdlbmVyYXRpb24gb2YgdGhlIGR1bW15IERPTSBjbGFzcyBmb3IgSlNCdWlsdGluQ29uc3Ry
dWN0b3IgaW50ZXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBhcHBsaWVkIHRvIENvdW50UXVldWlu
Z1N0cmF0ZWd5LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgb2YgQ291bnRR
dWV1aW5nU3RyYXRlZ3kuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5n
U3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOiBUaGUgZHVt
bXkgRE9NIGNsYXNzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFk
ZXIgaW5jbHVkZSBhbmQgZ2VuZXJhdGlvbiBvZiBkdW1teSBjbGFzcy4KKyAgICAgICAgKEdlbmVy
YXRlSW1wbGVtZW50YXRpb24pOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIgaW5jbHVkZS4K
KyAgICAgICAgKFVzZUR1bW15RE9NQ2xhc3MpOiBIZWxwZXIgcm91dGluZS4KKyAgICAgICAgKEdl
bmVyYXRlRHVtbXlET01DbGFzc0ZvckpTQnVpbHRpbik6IERpdHRvLgorCisyMDE1LTA5LTI0ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKICAgICAgICAgW1N0
cmVhbXMgQVBJXSBBZGQgc3VwcG9ydCBmb3IgcHJpdmF0ZSBXZWJDb3JlIEpTIGJ1aWx0aW5zIGZ1
bmN0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5NTE4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Db3Vu
dFF1ZXVpbmdTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL0NvdW50
UXVldWluZ1N0cmF0ZWd5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMTRhODcz
ZDA5ZDQwNTE5MmExMmNhYzU1ZDExY2VjM2U1Y2VkMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL0Nv
dW50UXVldWluZ1N0cmF0ZWd5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIHJlcXVp
cmVkIHRvIGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBD
QU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
LSAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENvdW50UXVldWluZ1N0cmF0ZWd5X2gKLSNkZWZpbmUg
Q291bnRRdWV1aW5nU3RyYXRlZ3lfaAotCi0jaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQotCi0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotLy8gQ291bnRRdWV1aW5nU3RyYXRlZ3kgaXMgaW1wbGVtZW50ZWQg
YXMgSlMgYnVpbHRpbi4KLS8vIFRoaXMgY2xhc3Mgb25seSBzZXJ2ZXMgdG8gaW50ZWdyYXRlIHdp
dGggV2ViSURMIGF1dG8tZ2VuZXJhdGVkIGNvZGUuCi1jbGFzcyBDb3VudFF1ZXVpbmdTdHJhdGVn
eSA6IHB1YmxpYyBSZWZDb3VudGVkPENvdW50UXVldWluZ1N0cmF0ZWd5PiB7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxDb3VudFF1ZXVpbmdTdHJhdGVneT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDb3VudFF1ZXVpbmdTdHJhdGVneSk7IH0KLQotICAgIHZpcnR1YWwgfkNvdW50
UXVldWluZ1N0cmF0ZWd5KCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAgQ291bnRRdWV1aW5nU3RyYXRl
Z3koKSB7IH0KLX07Ci0KLX0KLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBDb3VudFF1ZXVpbmdTdHJh
dGVneV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agppbmRleCA5NjQ3ZWRkZTQxNDA0ZWFkMGRiZjU4OGU1YTYzODliNTdlMTg2OGU0Li45OTk2MWQ0
ZjM1MjRmMDRlODNmYTBiNWIzMGU3MTgxOTE2Y2E3YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTIwNTc1LDcgKzIwNTc1LDYgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbm90aWZpY2F0aW9uc1xOb3RpZmlj
YXRpb25DbGllbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbm90
aWZpY2F0aW9uc1xXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNccGx1Z2luc1xQbHVnaW5SZXBsYWNlbWVudC5oIiAv
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzdHJlYW1zXENvdW50UXVldWlu
Z1N0cmF0ZWd5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHN0cmVh
bXNcUmVhZGFibGVTdHJlYW0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVs
ZXNcc3RyZWFtc1xSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXE1vZHVsZXNcc3RyZWFtc1xSZWFkYWJsZVN0cmVhbVJlYWRlci5oIiAvPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDZlNDhlMWI3NDQyYjJmY2QzMWRiMTE4MTBhNDQ0NTViMGE2YjMwMmYuLjkxZmUwZjViYTVj
NWNjMDc1MzFjNjU1OGYxMzZkMWJhMGQwMzk0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxOSw3ICs2MTksNiBAQAogCQkx
NDc5RkFGNDEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUVDMTA5QUUzNzUwMERFRDY1
NSAvKiBSZW5kZXJSdWJ5VGV4dC5oICovOyB9OwogCQkxNDhBRkRBNTBBRjU4MzYwMDA4Q0M3MDAg
LyogRXhjZXB0aW9uSGFuZGxlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0OEFGREEzMEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVy
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0
OEFGREE2MEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OEFGREE0MEFGNTgzNjAwMDhD
QzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSAqLzsgfTsKLQkJMTQ4QjRGRkUxQjY5MDRBQTAw
Qzk1NEU0IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDhCNEZGRDFCNjkwNEFBMDBDOTU0RTQgLyogQ291bnRR
dWV1aW5nU3RyYXRlZ3kuaCAqLzsgfTsKIAkJMTQ5NDdGRkQxMkY4MENEMjAwQTBGNjMxIC8qIERv
Y3VtZW50T3JkZXJlZE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDk0N0ZGQjEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFw
LmNwcCAqLzsgfTsKIAkJMTQ5NDdGRkUxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJl
ZE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5
NDdGRkMxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0OTkzQkU1MEIyRjJCMUMw
MDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29u
dHJvbGxlci5jcHAgKi87IH07CkBAIC03Nzk5LDcgKzc3OTgsNiBAQAogCQkxNDgxM0JGMzA5RURG
ODhFMDBGNzU3RTEgLyogSURMUGFyc2VyLnBtICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsg
bmFtZSA9IElETFBhcnNlci5wbTsgcGF0aCA9IHNjcmlwdHMvSURMUGFyc2VyLnBtOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNDhBRkRBMzBBRjU4MzYwMDA4Q0M3MDAgLyogRXhjZXB0
aW9uSGFuZGxlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlv
bkhhbmRsZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OEFGREE0MEFGNTgz
NjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBFeGNlcHRpb25IYW5kbGVycy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMTQ4QjRGRkQxQjY5MDRBQTAwQzk1NEU0IC8qIENvdW50UXVldWluZ1N0
cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0
cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OEI0RkZGMUI2OTA0QzUw
MEM5NTRFNCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxNDk0N0ZGQjEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50T3JkZXJlZE1hcC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OTQ3RkZDMTJGODBDRDIwMEEwRjYzMSAv
KiBEb2N1bWVudE9yZGVyZWRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RG9jdW1lbnRPcmRlcmVkTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjIw
NCw3ICsxNjIwMiw2IEBACiAJCTQxQTAyM0VBMUEzOURCNzkwMEY3MjJDRiAvKiBzdHJlYW1zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkxNDhCNEZGRDFC
NjkwNEFBMDBDOTU0RTQgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCAqLywKIAkJCQkxNDhCNEZG
RjFCNjkwNEM1MDBDOTU0RTQgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsICovLAogCQkJCTQx
QTAyM0VCMUEzOURCNzkwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFB
MDIzRUMxQTM5REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmggKi8sCkBAIC0yNTM0MSw3
ICsyNTMzOCw2IEBACiAJCQkJOTc3QjM4NzYxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRS
dW5uZXJIb3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEODA5NzM3NEY2MDBENzQ0NjMg
LyogSFRNTFNlbGVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0E4MENENjMz
MTAwMEZBREE3NSAvKiBIVE1MU291cmNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ4
QjRGRkUxQjY5MDRBQTAwQzk1NEU0IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzdFMkRDRTEyRjBFMjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3OEFENjc1MTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3Bh
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzNkQ1QTIwMTkzRTE4RTkwMENFNENBQiAv
KiBIVE1MU3Jjc2V0UGFyc2VyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XcmFwcGVyLmgKaW5kZXggOGRlZDk4MDE5N2JhNTY5NWQ5YTRkNjE2ZTI4NTQ2
YWY0MTAxZDUwMi4uNmNkYjRiMTllZWZjNjI5NzllZjY4YTBlZDA4MDZiODJhNWY2Nzg3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKQEAgLTQ4LDYgKzQ4LDE0
IEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCisvLyBUaGlzIGNsYXNzIGlzIHVzZWQgYnkgYmlu
ZGluZyBnZW5lcmF0b3Igd2hlbiB0aGVyZSBpcyBubyBuZWVkIGZvciBhIHJlYWwgRE9NIGNsYXNz
LgorY2xhc3MgRHVtbXlET01DbGFzczogcHVibGljIFJlZkNvdW50ZWQ8RHVtbXlET01DbGFzcz4g
eworcHVibGljOgorICAgIHZpcnR1YWwgfkR1bW15RE9NQ2xhc3MoKSB7IH0KK3Byb3RlY3RlZDoK
KyAgICBEdW1teURPTUNsYXNzKCkgeyB9Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBKU0RPTVdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkZWM2YTc4ZWFlNWFiZmMwMWVjYWZl
YzgwNjhlYTI3ODNhZGY2MDMwLi42OTlkYzdiNjQ2MzJlN2U5MzNhYThhNmIyYzliMDNhZGMyYzM2
MWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtODY2LDYgKzg2Niw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAg
bXkgJGV4cG9ydExhYmVsID0gRXhwb3J0TGFiZWxGb3JDbGFzcygkY2xhc3NOYW1lKTsKIAorICAg
IEdlbmVyYXRlRHVtbXlET01DbGFzc0ZvckpTQnVpbHRpbigkaW1wbFR5cGUpIGlmIFVzZUR1bW15
RE9NQ2xhc3MoJGludGVyZmFjZSk7CisKICAgICAjIENsYXNzIGRlY2xhcmF0aW9uCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgImNsYXNzICRleHBvcnRMYWJlbCRjbGFzc05hbWUgOiBwdWJsaWMg
JHBhcmVudENsYXNzTmFtZSB7XG4iKTsKIApAQCAtODk4LDcgKzkwMCw3IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gcHRy
O1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKICAgICB9
IGVsc2UgewotICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVu
bGVzcyAkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGU7CisgICAgICAgIEFkZEluY2x1ZGVz
Rm9yVHlwZUluSGVhZGVyKCRpbXBsVHlwZSkgdW5sZXNzICRzdmdQcm9wZXJ0eU9yTGlzdFByb3Bl
cnR5VHlwZSB8fCBVc2VEdW1teURPTUNsYXNzKCRpbnRlcmZhY2UpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPCRpbXBs
VHlwZT4mJiBpbXBsKVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xu
Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0
ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsT2Jq
ZWN0LT52bSgpLmhlYXApKSAkY2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEY6
Om1vdmUoaW1wbCkpO1xuIik7CkBAIC0xNzQ2LDcgKzE3NDgsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5
Lmg+In0gPSAxIGlmICRpbmRleGVkR2V0dGVyRnVuY3Rpb247CiAKICAgICBteSAkaW1wbFR5cGUg
PSBHZXRJbXBsQ2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKLSAgICBBZGRJbmNsdWRlc0ZvclR5
cGVJbkltcGwoJGltcGxUeXBlKTsKKyAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJGltcGxU
eXBlKSBpZiBub3QgVXNlRHVtbXlET01DbGFzcygkaW50ZXJmYWNlKTsKIAogICAgIEFkZEluY2x1
ZGVzRm9ySlNCdWlsdGluTWV0aG9kcygkaW50ZXJmYWNlKTsKIApAQCAtNTA4Myw0ICs1MDg1LDIx
IEBAIHN1YiBBZGRJbmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMoKQogCiB9CiAKK3N1YiBVc2VE
dW1teURPTUNsYXNzKCkKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICByZXR1
cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbkNvbnN0cnVjdG9y
In07Cit9CisKK3N1YiBHZW5lcmF0ZUR1bW15RE9NQ2xhc3NGb3JKU0J1aWx0aW4oKQoreworICAg
IG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
Y2xhc3MgJGNsYXNzTmFtZSA6IHB1YmxpYyBEdW1teURPTUNsYXNzIHtcbiIpOworICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgcHVibGljOlxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAgICAgc3RhdGljIFJlZjwkY2xhc3NOYW1lPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZigqIG5ldyAkY2xhc3NOYW1lKTsgfVxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICB9O1xuXG4iKTsKK30KKwogMTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261916</attachid>
            <date>2015-09-25 00:08:35 -0700</date>
            <delta_ts>2015-09-25 01:57:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-149522-20150925040814.patch</filename>
            <type>text/plain</type>
            <size>10856</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRhMzA2MmQ2ZTQxMzVk
OTZmOTkyMzgwZjk2M2FhMjBmMjFmMWFmNi4uNjFkMzBkMzQxZWFkMWE4NDIxNDYyNjM3OGNjNTEx
OWNmMGMxZDJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE1LTA5LTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKKyAgICAgICAgUmVtb3Zl
IHRoZSBuZWVkIGZvciBET01DbGFzcyBpbiBjYXNlIG9mIEpTQnVpbHRpbkNvbnN0cnVjdG9yIFdl
YklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
NTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5n
IGdlbmVyYXRpb24gb2YgdGhlIGR1bW15IERPTSBjbGFzcyBmb3IgSlNCdWlsdGluQ29uc3RydWN0
b3IgaW50ZXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBhcHBsaWVkIHRvIENvdW50UXVldWluZ1N0
cmF0ZWd5LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgb2YgQ291bnRRdWV1
aW5nU3RyYXRlZ3kuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3Ry
YXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIgaW5j
bHVkZSBhbmQgZ2VuZXJhdGlvbiBvZiBkdW1teSBjbGFzcy4KKyAgICAgICAgKEdlbmVyYXRlSW1w
bGVtZW50YXRpb24pOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIgaW5jbHVkZS4KKyAgICAg
ICAgKFVzZUR1bW15RE9NQ2xhc3MpOiBIZWxwZXIgcm91dGluZS4KKyAgICAgICAgKEdlbmVyYXRl
RHVtbXlET01DbGFzc0ZvckpTQnVpbHRpbik6IERpdHRvLgorCisyMDE1LTA5LTI0ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKICAgICAgICAgW1N0cmVhbXMg
QVBJXSBBZGQgc3VwcG9ydCBmb3IgcHJpdmF0ZSBXZWJDb3JlIEpTIGJ1aWx0aW5zIGZ1bmN0aW9u
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NTE4
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Db3VudFF1ZXVp
bmdTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWlu
Z1N0cmF0ZWd5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMTRhODczZDA5ZDQw
NTE5MmExMmNhYzU1ZDExY2VjM2U1Y2VkMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVl
dWluZ1N0cmF0ZWd5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIHJlcXVpcmVkIHRv
IGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
Q0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIENvdW50UXVldWluZ1N0cmF0ZWd5X2gKLSNkZWZpbmUgQ291bnRR
dWV1aW5nU3RyYXRlZ3lfaAotCi0jaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQotCi0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotLy8gQ291bnRRdWV1aW5nU3RyYXRlZ3kgaXMgaW1wbGVtZW50ZWQgYXMgSlMg
YnVpbHRpbi4KLS8vIFRoaXMgY2xhc3Mgb25seSBzZXJ2ZXMgdG8gaW50ZWdyYXRlIHdpdGggV2Vi
SURMIGF1dG8tZ2VuZXJhdGVkIGNvZGUuCi1jbGFzcyBDb3VudFF1ZXVpbmdTdHJhdGVneSA6IHB1
YmxpYyBSZWZDb3VudGVkPENvdW50UXVldWluZ1N0cmF0ZWd5PiB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxDb3VudFF1ZXVpbmdTdHJhdGVneT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDb3VudFF1ZXVpbmdTdHJhdGVneSk7IH0KLQotICAgIHZpcnR1YWwgfkNvdW50UXVldWlu
Z1N0cmF0ZWd5KCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAgQ291bnRRdWV1aW5nU3RyYXRlZ3koKSB7
IH0KLX07Ci0KLX0KLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBDb3VudFF1ZXVpbmdTdHJhdGVneV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRl
eCA5NjQ3ZWRkZTQxNDA0ZWFkMGRiZjU4OGU1YTYzODliNTdlMTg2OGU0Li45OTk2MWQ0ZjM1MjRm
MDRlODNmYTBiNWIzMGU3MTgxOTE2Y2E3YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTIwNTc1LDcgKzIwNTc1LDYgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25D
bGllbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbm90aWZpY2F0
aW9uc1xXb3JrZXJHbG9iYWxTY29wZU5vdGlmaWNhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXE1vZHVsZXNccGx1Z2luc1xQbHVnaW5SZXBsYWNlbWVudC5oIiAvPgotICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzdHJlYW1zXENvdW50UXVldWluZ1N0cmF0
ZWd5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHN0cmVhbXNcUmVh
ZGFibGVTdHJlYW0uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc3Ry
ZWFtc1xSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXE1vZHVsZXNcc3RyZWFtc1xSZWFkYWJsZVN0cmVhbVJlYWRlci5oIiAvPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZl
NDhlMWI3NDQyYjJmY2QzMWRiMTE4MTBhNDQ0NTViMGE2YjMwMmYuLjkxZmUwZjViYTVjNWNjMDc1
MzFjNjU1OGYxMzZkMWJhMGQwMzk0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxOSw3ICs2MTksNiBAQAogCQkxNDc5RkFG
NDEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUVDMTA5QUUzNzUwMERFRDY1NSAvKiBS
ZW5kZXJSdWJ5VGV4dC5oICovOyB9OwogCQkxNDhBRkRBNTBBRjU4MzYwMDA4Q0M3MDAgLyogRXhj
ZXB0aW9uSGFuZGxlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0OEFGREEzMEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0OEFGREE2
MEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OEFGREE0MEFGNTgzNjAwMDhDQzcwMCAv
KiBFeGNlcHRpb25IYW5kbGVycy5tbSAqLzsgfTsKLQkJMTQ4QjRGRkUxQjY5MDRBQTAwQzk1NEU0
IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDhCNEZGRDFCNjkwNEFBMDBDOTU0RTQgLyogQ291bnRRdWV1aW5n
U3RyYXRlZ3kuaCAqLzsgfTsKIAkJMTQ5NDdGRkQxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50
T3JkZXJlZE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDk0N0ZGQjEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCAq
LzsgfTsKIAkJMTQ5NDdGRkUxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5NDdGRkMx
MkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0OTkzQkU1MEIyRjJCMUMwMDUwNDk3
RiAvKiBGb2N1c0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTQ5OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxl
ci5jcHAgKi87IH07CkBAIC03Nzk5LDcgKzc3OTgsNiBAQAogCQkxNDgxM0JGMzA5RURGODhFMDBG
NzU3RTEgLyogSURMUGFyc2VyLnBtICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgbmFtZSA9
IElETFBhcnNlci5wbTsgcGF0aCA9IHNjcmlwdHMvSURMUGFyc2VyLnBtOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDhBRkRBMzBBRjU4MzYwMDA4Q0M3MDAgLyogRXhjZXB0aW9uSGFu
ZGxlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkhhbmRs
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OEFGREE0MEFGNTgzNjAwMDhD
QzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBFeGNlcHRpb25IYW5kbGVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTQ4QjRGRkQxQjY5MDRBQTAwQzk1NEU0IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50UXVldWluZ1N0cmF0ZWd5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OEI0RkZGMUI2OTA0QzUwMEM5NTRF
NCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ291
bnRRdWV1aW5nU3RyYXRlZ3kuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDk0
N0ZGQjEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50T3JkZXJlZE1hcC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OTQ3RkZDMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1
bWVudE9yZGVyZWRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1l
bnRPcmRlcmVkTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjIwNCw3ICsx
NjIwMiw2IEBACiAJCTQxQTAyM0VBMUEzOURCNzkwMEY3MjJDRiAvKiBzdHJlYW1zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkxNDhCNEZGRDFCNjkwNEFB
MDBDOTU0RTQgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCAqLywKIAkJCQkxNDhCNEZGRjFCNjkw
NEM1MDBDOTU0RTQgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuaWRsICovLAogCQkJCTQxQTAyM0VC
MUEzOURCNzkwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFBMDIzRUMx
QTM5REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmggKi8sCkBAIC0yNTM0MSw3ICsyNTMz
OCw2IEBACiAJCQkJOTc3QjM4NzYxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRSdW5uZXJI
b3N0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEODA5NzM3NEY2MDBENzQ0NjMgLyogSFRN
TFNlbGVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0E4MENENjMzMTAwMEZB
REE3NSAvKiBIVE1MU291cmNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ4QjRGRkUx
QjY5MDRBQTAwQzk1NEU0IC8qIENvdW50UXVldWluZ1N0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NzdFMkRDRTEyRjBFMjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3OEFENjc1MTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzNkQ1QTIwMTkzRTE4RTkwMENFNENBQiAvKiBIVE1M
U3Jjc2V0UGFyc2VyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZGVjNmE3OGVhZTVhYmZjMDFl
Y2FmZWM4MDY4ZWEyNzgzYWRmNjAzMC4uMmVhOTQzZmI0ZTIwZTkxNDhmMzVhMDIxZjJiZWEyYWQ5
YTc2OGQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTg2Niw2ICs4NjYsOCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAog
ICAgIG15ICRleHBvcnRMYWJlbCA9IEV4cG9ydExhYmVsRm9yQ2xhc3MoJGNsYXNzTmFtZSk7CiAK
KyAgICBHZW5lcmF0ZUR1bW15RE9NQ2xhc3NGb3JKU0J1aWx0aW4oJGltcGxUeXBlKSBpZiBVc2VE
dW1teURPTUNsYXNzKCRpbnRlcmZhY2UpOworCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlvbgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkZXhwb3J0TGFiZWwkY2xhc3NOYW1lIDogcHVi
bGljICRwYXJlbnRDbGFzc05hbWUge1xuIik7CiAKQEAgLTg5OCw3ICs5MDAsNyBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5IZWFkZXIoJGltcGxUeXBl
KSB1bmxlc3MgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlOworICAgICAgICBBZGRJbmNs
dWRlc0ZvclR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxpc3RQ
cm9wZXJ0eVR5cGUgfHwgVXNlRHVtbXlET01DbGFzcygkaW50ZXJmYWNlKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjwk
aW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NOYW1l
KiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KGdsb2Jh
bE9iamVjdC0+dm0oKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwg
V1RGOjptb3ZlKGltcGwpKTtcbiIpOwpAQCAtMTc0Niw3ICsxNzQ4LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5oPiJ9ID0gMSBpZiAkaW5kZXhlZEdldHRlckZ1bmN0aW9uOwogCiAgICAgbXkgJGltcGxU
eXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgQWRkSW5jbHVkZXNG
b3JUeXBlSW5JbXBsKCRpbXBsVHlwZSk7CisgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRp
bXBsVHlwZSkgaWYgbm90IFVzZUR1bW15RE9NQ2xhc3MoJGludGVyZmFjZSk7CiAKICAgICBBZGRJ
bmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMoJGludGVyZmFjZSk7CiAKQEAgLTUwODMsNCArNTA4
NSwyMiBAQCBzdWIgQWRkSW5jbHVkZXNGb3JKU0J1aWx0aW5NZXRob2RzKCkKIAogfQogCitzdWIg
VXNlRHVtbXlET01DbGFzcygpCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisgICAg
cmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW5Db25zdHJ1
Y3RvciJ9OworfQorCitzdWIgR2VuZXJhdGVEdW1teURPTUNsYXNzRm9ySlNCdWlsdGluKCkKK3sK
KyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
Y2xhc3MgJGNsYXNzTmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPCRjbGFzc05hbWU+IHtcbiIpOwor
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyBSZWY8JGNsYXNzTmFtZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKiBuZXcgJGNsYXNzTmFtZSk7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCB+JGNsYXNzTmFtZSgpIHsgfVxuIik7CisgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIn07XG5cbiIpOworfQorCiAxOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261919</attachid>
            <date>2015-09-25 01:57:12 -0700</date>
            <delta_ts>2015-09-25 02:02:50 -0700</delta_ts>
            <desc>Rebasing for landing</desc>
            <filename>bug-149522-20150925055652.patch</filename>
            <type>text/plain</type>
            <size>10292</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU2NjE2NjBiOWY3MThl
YWVmMTdkYWY3MWQ3MDRkOTRjNzU0NTBiNS4uMzFjMGVlMzg3OWZlYWIyZDMxNWE4ZjI3NDQzZDFi
NWVjN2VhZWIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA5LTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBuZWVkIGZvciBET01DbGFzcyBpbiBjYXNlIG9mIEpTQnVpbHRpbkNvbnN0cnVjdG9yIFdl
YklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
NTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aW5nIGdlbmVyYXRpb24gb2YgdGhlIGR1bW15IERPTSBjbGFzcyBmb3IgSlNCdWlsdGluQ29uc3Ry
dWN0b3IgaW50ZXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBhcHBsaWVkIHRvIENvdW50UXVldWlu
Z1N0cmF0ZWd5LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgb2YgQ291bnRR
dWV1aW5nU3RyYXRlZ3kuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5n
U3RyYXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIg
aW5jbHVkZSBhbmQgZ2VuZXJhdGlvbiBvZiBkdW1teSBjbGFzcy4KKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIgaW5jbHVkZS4KKyAg
ICAgICAgKFVzZUR1bW15RE9NQ2xhc3MpOiBIZWxwZXIgcm91dGluZS4KKyAgICAgICAgKEdlbmVy
YXRlRHVtbXlET01DbGFzc0ZvckpTQnVpbHRpbik6IERpdHRvLgorCiAyMDE1LTA5LTI0ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIFN1cHBvcnQg
Y29tcG9zaXRlZCBjb250ZW50IGluIFdlYlZpZXcgcmVuZGVyLXRvLWNvbnRleHQgbWV0aG9kcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0
cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3Ry
YXRlZ3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNGE4NzNkMDlkNDA1MTky
YTEyY2FjNTVkMTFjZWMzZTVjZWQwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5n
U3RyYXRlZ3kuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQ2Fub24gSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5P
TiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgQ291bnRRdWV1aW5nU3RyYXRlZ3lfaAotI2RlZmluZSBDb3VudFF1ZXVp
bmdTdHJhdGVneV9oCi0KLSNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCi0KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi0vLyBDb3VudFF1ZXVpbmdTdHJhdGVneSBpcyBpbXBsZW1lbnRlZCBhcyBKUyBidWls
dGluLgotLy8gVGhpcyBjbGFzcyBvbmx5IHNlcnZlcyB0byBpbnRlZ3JhdGUgd2l0aCBXZWJJREwg
YXV0by1nZW5lcmF0ZWQgY29kZS4KLWNsYXNzIENvdW50UXVldWluZ1N0cmF0ZWd5IDogcHVibGlj
IFJlZkNvdW50ZWQ8Q291bnRRdWV1aW5nU3RyYXRlZ3k+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPENvdW50UXVldWluZ1N0cmF0ZWd5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IENvdW50UXVldWluZ1N0cmF0ZWd5KTsgfQotCi0gICAgdmlydHVhbCB+Q291bnRRdWV1aW5nU3Ry
YXRlZ3koKSB7IH0KLQotcHJpdmF0ZToKLSAgICBDb3VudFF1ZXVpbmdTdHJhdGVneSgpIHsgfQot
fTsKLQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIENvdW50UXVldWluZ1N0cmF0ZWd5X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDBj
YmQ5ZTlkM2U5ZmRhNTA5ZGVjMWFlNWY5NzBiM2NhNzA5ZGVhY2YuLmJiOGE0Njc0MTM1MDkyYzU1
ZDExZTI2ZTViMmExMjFlMmNmZjhjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMjA1NjEsNyArMjA1NjEsNiBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNsaWVu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xub3RpZmljYXRpb25z
XFdvcmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cTW9kdWxlc1xwbHVnaW5zXFBsdWdpblJlcGxhY2VtZW50LmgiIC8+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHN0cmVhbXNcQ291bnRRdWV1aW5nU3RyYXRlZ3ku
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc3RyZWFtc1xSZWFkYWJs
ZVN0cmVhbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzdHJlYW1z
XFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cTW9kdWxlc1xzdHJlYW1zXFJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiIC8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTI4NDAz
MGI2NzcwZTQxMzUwNTE0MWRhNDhlNjhhZjZkZmFmMDA2My4uNWIwNDIyMzAzYTM1OWY2NGI5YTJh
MDZiZDU4ZTQ3OWYzZjhjNzZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDcgKzYxOSw2IEBACiAJCTE0NzlGQUY0MTA5
QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5VGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3OUZBRUMxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRl
clJ1YnlUZXh0LmggKi87IH07CiAJCTE0OEFGREE1MEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRp
b25IYW5kbGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ4QUZEQTMwQUY1ODM2MDAwOENDNzAwIC8qIEV4Y2VwdGlvbkhhbmRsZXJzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ4QUZEQTYwQUY1
ODM2MDAwOENDNzAwIC8qIEV4Y2VwdGlvbkhhbmRsZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4QUZEQTQwQUY1ODM2MDAwOENDNzAwIC8qIEV4
Y2VwdGlvbkhhbmRsZXJzLm1tICovOyB9OwotCQkxNDhCNEZGRTFCNjkwNEFBMDBDOTU0RTQgLyog
Q291bnRRdWV1aW5nU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0OEI0RkZEMUI2OTA0QUEwMEM5NTRFNCAvKiBDb3VudFF1ZXVpbmdTdHJh
dGVneS5oICovOyB9OwogCQkxNDk0N0ZGRDEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0OTQ3RkZCMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwICovOyB9
OwogCQkxNDk0N0ZGRTEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDk0N0ZGQzEyRjgw
Q0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ5OTNCRTUwQjJGMkIxQzAwNTA0OTdGIC8q
IEZvY3VzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDk5M0JFMzBCMkYyQjFDMDA1MDQ5N0YgLyogRm9jdXNDb250cm9sbGVyLmNw
cCAqLzsgfTsKQEAgLTc3OTgsNyArNzc5Nyw2IEBACiAJCTE0ODEzQkYzMDlFREY4OEUwMEY3NTdF
MSAvKiBJRExQYXJzZXIucG0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBuYW1lID0gSURM
UGFyc2VyLnBtOyBwYXRoID0gc2NyaXB0cy9JRExQYXJzZXIucG07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0OEFGREEzMEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uSGFuZGxlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QUZEQTQwQUY1ODM2MDAwOENDNzAw
IC8qIEV4Y2VwdGlvbkhhbmRsZXJzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEV4Y2VwdGlvbkhhbmRsZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxNDhCNEZGRDFCNjkwNEFBMDBDOTU0RTQgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRRdWV1aW5nU3RyYXRlZ3kuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QjRGRkYxQjY5MDRDNTAwQzk1NEU0IC8q
IENvdW50UXVldWluZ1N0cmF0ZWd5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb3VudFF1
ZXVpbmdTdHJhdGVneS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OTQ3RkZC
MTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRPcmRlcmVkTWFwLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ5NDdGRkMxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50
T3JkZXJlZE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudE9y
ZGVyZWRNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjAyLDcgKzE2MjAw
LDYgQEAKIAkJNDFBMDIzRUExQTM5REI3OTAwRjcyMkNGIC8qIHN0cmVhbXMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTE0OEI0RkZEMUI2OTA0QUEwMEM5
NTRFNCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5oICovLAogCQkJCTE0OEI0RkZGMUI2OTA0QzUw
MEM5NTRFNCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgKi8sCiAJCQkJNDFBMDIzRUIxQTM5
REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MUEwMjNFQzFBMzlE
Qjc5MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJlYW0uaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggOTRlZTMwN2Y5ZGIy
ODY0NDczNGQ4MjU4NjEzMjRkODU4N2VhMjllMC4uOWJjMGVlNTQ1ZDE3MDc3ZTkwMWI2ZTFiMGM3
NTE5MjkyZjkzOGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTg2Niw2ICs4NjYsOCBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKIAogICAgIG15ICRleHBvcnRMYWJlbCA9IEV4cG9ydExhYmVsRm9yQ2xhc3MoJGNsYXNzTmFt
ZSk7CiAKKyAgICBHZW5lcmF0ZUR1bW15RE9NQ2xhc3NGb3JKU0J1aWx0aW4oJGltcGxUeXBlKSBp
ZiBVc2VEdW1teURPTUNsYXNzKCRpbnRlcmZhY2UpOworCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlv
bgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkZXhwb3J0TGFiZWwkY2xhc3NOYW1l
IDogcHVibGljICRwYXJlbnRDbGFzc05hbWUge1xuIik7CiAKQEAgLTg5OCw3ICs5MDAsNyBAQCBz
dWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAg
cmV0dXJuIHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxu
Iik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5IZWFkZXIoJGlt
cGxUeXBlKSB1bmxlc3MgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlOworICAgICAgICBB
ZGRJbmNsdWRlc0ZvclR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlP
ckxpc3RQcm9wZXJ0eVR5cGUgfHwgVXNlRHVtbXlET01DbGFzcygkaW50ZXJmYWNlKTsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjwkaW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICAkY2xh
c3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+
KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9i
amVjdCwgV1RGOjptb3ZlKGltcGwpKTtcbiIpOwpAQCAtMTc0Niw3ICsxNzQ4LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9Qcm9wZXJ0
eU5hbWVBcnJheS5oPiJ9ID0gMSBpZiAkaW5kZXhlZEdldHRlckZ1bmN0aW9uOwogCiAgICAgbXkg
JGltcGxUeXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgQWRkSW5j
bHVkZXNGb3JUeXBlSW5JbXBsKCRpbXBsVHlwZSk7CisgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5J
bXBsKCRpbXBsVHlwZSkgaWYgbm90IFVzZUR1bW15RE9NQ2xhc3MoJGludGVyZmFjZSk7CiAKICAg
ICBBZGRJbmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMoJGludGVyZmFjZSk7CiAKQEAgLTUwODIs
NCArNTA4NCwyMiBAQCBzdWIgQWRkSW5jbHVkZXNGb3JKU0J1aWx0aW5NZXRob2RzKCkKIAogfQog
CitzdWIgVXNlRHVtbXlET01DbGFzcygpCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0Owor
CisgICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW5D
b25zdHJ1Y3RvciJ9OworfQorCitzdWIgR2VuZXJhdGVEdW1teURPTUNsYXNzRm9ySlNCdWlsdGlu
KCkKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisKKyAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiY2xhc3MgJGNsYXNzTmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPCRjbGFzc05hbWU+IHtc
biIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBSZWY8JGNsYXNzTmFtZT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKiBuZXcgJGNsYXNzTmFtZSk7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgdmlydHVhbCB+JGNsYXNzTmFtZSgpIHsgfVxuIik7CisgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIn07XG5cbiIpOworfQorCiAxOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261920</attachid>
            <date>2015-09-25 02:02:56 -0700</date>
            <delta_ts>2015-09-25 02:57:44 -0700</delta_ts>
            <desc>Rebasing for landing</desc>
            <filename>bug-149522-20150925060235.patch</filename>
            <type>text/plain</type>
            <size>10289</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTU2NjE2NjBiOWY3MThl
YWVmMTdkYWY3MWQ3MDRkOTRjNzU0NTBiNS4uYWFkOTZhN2U0YzRiZDY0NTdmNWI2ZWUyYjY5MTdm
NTI0NjhkYjU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA5LTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBuZWVkIGZvciBET01DbGFzcyBpbiBjYXNlIG9mIEpTQnVpbHRpbkNvbnN0cnVjdG9yIFdl
YklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
NTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5n
IGdlbmVyYXRpb24gb2YgdGhlIGR1bW15IERPTSBjbGFzcyBmb3IgSlNCdWlsdGluQ29uc3RydWN0
b3IgaW50ZXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBhcHBsaWVkIHRvIENvdW50UXVldWluZ1N0
cmF0ZWd5LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMgb2YgQ291bnRRdWV1
aW5nU3RyYXRlZ3kuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3Ry
YXRlZ3kuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIgaW5j
bHVkZSBhbmQgZ2VuZXJhdGlvbiBvZiBkdW1teSBjbGFzcy4KKyAgICAgICAgKEdlbmVyYXRlSW1w
bGVtZW50YXRpb24pOiBSZW1vdmFsIG9mIERPTSBjbGFzcyBoZWFkZXIgaW5jbHVkZS4KKyAgICAg
ICAgKFVzZUR1bW15RE9NQ2xhc3MpOiBIZWxwZXIgcm91dGluZS4KKyAgICAgICAgKEdlbmVyYXRl
RHVtbXlET01DbGFzc0ZvckpTQnVpbHRpbik6IERpdHRvLgorCiAyMDE1LTA5LTI0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIFN1cHBvcnQgY29t
cG9zaXRlZCBjb250ZW50IGluIFdlYlZpZXcgcmVuZGVyLXRvLWNvbnRleHQgbWV0aG9kcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL0NvdW50UXVldWluZ1N0cmF0
ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3RyYXRl
Z3kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNGE4NzNkMDlkNDA1MTkyYTEy
Y2FjNTVkMTFjZWMzZTVjZWQwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvQ291bnRRdWV1aW5nU3Ry
YXRlZ3kuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQ2Fub24gSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
LSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotICogQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgQ291bnRRdWV1aW5nU3RyYXRlZ3lfaAotI2RlZmluZSBDb3VudFF1ZXVpbmdT
dHJhdGVneV9oCi0KLSNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCi0KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0vLyBDb3VudFF1ZXVpbmdTdHJhdGVneSBpcyBpbXBsZW1lbnRlZCBhcyBKUyBidWlsdGlu
LgotLy8gVGhpcyBjbGFzcyBvbmx5IHNlcnZlcyB0byBpbnRlZ3JhdGUgd2l0aCBXZWJJREwgYXV0
by1nZW5lcmF0ZWQgY29kZS4KLWNsYXNzIENvdW50UXVldWluZ1N0cmF0ZWd5IDogcHVibGljIFJl
ZkNvdW50ZWQ8Q291bnRRdWV1aW5nU3RyYXRlZ3k+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PENvdW50UXVldWluZ1N0cmF0ZWd5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENv
dW50UXVldWluZ1N0cmF0ZWd5KTsgfQotCi0gICAgdmlydHVhbCB+Q291bnRRdWV1aW5nU3RyYXRl
Z3koKSB7IH0KLQotcHJpdmF0ZToKLSAgICBDb3VudFF1ZXVpbmdTdHJhdGVneSgpIHsgfQotfTsK
LQotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIENvdW50UXVldWluZ1N0cmF0ZWd5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDBjYmQ5
ZTlkM2U5ZmRhNTA5ZGVjMWFlNWY5NzBiM2NhNzA5ZGVhY2YuLmJiOGE0Njc0MTM1MDkyYzU1ZDEx
ZTI2ZTViMmExMjFlMmNmZjhjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMjA1NjEsNyArMjA1NjEsNiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNsaWVudC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xub3RpZmljYXRpb25zXFdv
cmtlckdsb2JhbFNjb3BlTm90aWZpY2F0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cTW9kdWxlc1xwbHVnaW5zXFBsdWdpblJlcGxhY2VtZW50LmgiIC8+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHN0cmVhbXNcQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc3RyZWFtc1xSZWFkYWJsZVN0
cmVhbS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzdHJlYW1zXFJl
YWRhYmxlU3RyZWFtQ29udHJvbGxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
TW9kdWxlc1xzdHJlYW1zXFJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiIC8+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTI4NDAzMGI2
NzcwZTQxMzUwNTE0MWRhNDhlNjhhZjZkZmFmMDA2My4uNWIwNDIyMzAzYTM1OWY2NGI5YTJhMDZi
ZDU4ZTQ3OWYzZjhjNzZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE5LDcgKzYxOSw2IEBACiAJCTE0NzlGQUY0MTA5QUUz
NzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5VGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3OUZBRUMxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1
YnlUZXh0LmggKi87IH07CiAJCTE0OEFGREE1MEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25I
YW5kbGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQ4QUZEQTMwQUY1ODM2MDAwOENDNzAwIC8qIEV4Y2VwdGlvbkhhbmRsZXJzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ4QUZEQTYwQUY1ODM2
MDAwOENDNzAwIC8qIEV4Y2VwdGlvbkhhbmRsZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ4QUZEQTQwQUY1ODM2MDAwOENDNzAwIC8qIEV4Y2Vw
dGlvbkhhbmRsZXJzLm1tICovOyB9OwotCQkxNDhCNEZGRTFCNjkwNEFBMDBDOTU0RTQgLyogQ291
bnRRdWV1aW5nU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0OEI0RkZEMUI2OTA0QUEwMEM5NTRFNCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVn
eS5oICovOyB9OwogCQkxNDk0N0ZGRDEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVk
TWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
OTQ3RkZCMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwICovOyB9Owog
CQkxNDk0N0ZGRTEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDk0N0ZGQzEyRjgwQ0Qy
MDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ5OTNCRTUwQjJGMkIxQzAwNTA0OTdGIC8qIEZv
Y3VzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDk5M0JFMzBCMkYyQjFDMDA1MDQ5N0YgLyogRm9jdXNDb250cm9sbGVyLmNwcCAq
LzsgfTsKQEAgLTc3OTgsNyArNzc5Nyw2IEBACiAJCTE0ODEzQkYzMDlFREY4OEUwMEY3NTdFMSAv
KiBJRExQYXJzZXIucG0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBuYW1lID0gSURMUGFy
c2VyLnBtOyBwYXRoID0gc2NyaXB0cy9JRExQYXJzZXIucG07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0OEFGREEzMEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uSGFuZGxlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QUZEQTQwQUY1ODM2MDAwOENDNzAwIC8q
IEV4Y2VwdGlvbkhhbmRsZXJzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEV4Y2VwdGlvbkhhbmRsZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxNDhCNEZGRDFCNjkwNEFBMDBDOTU0RTQgLyogQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRRdWV1aW5nU3RyYXRlZ3kuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4QjRGRkYxQjY5MDRDNTAwQzk1NEU0IC8qIENv
dW50UXVldWluZ1N0cmF0ZWd5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb3VudFF1ZXVp
bmdTdHJhdGVneS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0OTQ3RkZCMTJG
ODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRPcmRlcmVkTWFwLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTQ5NDdGRkMxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3Jk
ZXJlZE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudE9yZGVy
ZWRNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjAyLDcgKzE2MjAwLDYg
QEAKIAkJNDFBMDIzRUExQTM5REI3OTAwRjcyMkNGIC8qIHN0cmVhbXMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTE0OEI0RkZEMUI2OTA0QUEwMEM5NTRF
NCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5oICovLAogCQkJCTE0OEI0RkZGMUI2OTA0QzUwMEM5
NTRFNCAvKiBDb3VudFF1ZXVpbmdTdHJhdGVneS5pZGwgKi8sCiAJCQkJNDFBMDIzRUIxQTM5REI3
OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MUEwMjNFQzFBMzlEQjc5
MDBGNzIyQ0YgLyogUmVhZGFibGVTdHJlYW0uaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggOTRlZTMwN2Y5ZGIyODY0
NDczNGQ4MjU4NjEzMjRkODU4N2VhMjllMC4uOWJjMGVlNTQ1ZDE3MDc3ZTkwMWI2ZTFiMGM3NTE5
MjkyZjkzOGY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTg2Niw2ICs4NjYsOCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
IAogICAgIG15ICRleHBvcnRMYWJlbCA9IEV4cG9ydExhYmVsRm9yQ2xhc3MoJGNsYXNzTmFtZSk7
CiAKKyAgICBHZW5lcmF0ZUR1bW15RE9NQ2xhc3NGb3JKU0J1aWx0aW4oJGltcGxUeXBlKSBpZiBV
c2VEdW1teURPTUNsYXNzKCRpbnRlcmZhY2UpOworCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlvbgog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkZXhwb3J0TGFiZWwkY2xhc3NOYW1lIDog
cHVibGljICRwYXJlbnRDbGFzc05hbWUge1xuIik7CiAKQEAgLTg5OCw3ICs5MDAsNyBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIHB0cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5IZWFkZXIoJGltcGxU
eXBlKSB1bmxlc3MgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlOworICAgICAgICBBZGRJ
bmNsdWRlc0ZvclR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxp
c3RQcm9wZXJ0eVR5cGUgfHwgVXNlRHVtbXlET01DbGFzcygkaW50ZXJmYWNlKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3JlYXRlKEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
ZjwkaW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NO
YW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KGds
b2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVj
dCwgV1RGOjptb3ZlKGltcGwpKTtcbiIpOwpAQCAtMTc0Niw3ICsxNzQ4LDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9Qcm9wZXJ0eU5h
bWVBcnJheS5oPiJ9ID0gMSBpZiAkaW5kZXhlZEdldHRlckZ1bmN0aW9uOwogCiAgICAgbXkgJGlt
cGxUeXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgQWRkSW5jbHVk
ZXNGb3JUeXBlSW5JbXBsKCRpbXBsVHlwZSk7CisgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBs
KCRpbXBsVHlwZSkgaWYgbm90IFVzZUR1bW15RE9NQ2xhc3MoJGludGVyZmFjZSk7CiAKICAgICBB
ZGRJbmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMoJGludGVyZmFjZSk7CiAKQEAgLTUwODIsNCAr
NTA4NCwyMiBAQCBzdWIgQWRkSW5jbHVkZXNGb3JKU0J1aWx0aW5NZXRob2RzKCkKIAogfQogCitz
dWIgVXNlRHVtbXlET01DbGFzcygpCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisg
ICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW5Db25z
dHJ1Y3RvciJ9OworfQorCitzdWIgR2VuZXJhdGVEdW1teURPTUNsYXNzRm9ySlNCdWlsdGluKCkK
K3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiY2xhc3MgJGNsYXNzTmFtZSA6IHB1YmxpYyBSZWZDb3VudGVkPCRjbGFzc05hbWU+IHtcbiIp
OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKKyAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBSZWY8JGNsYXNzTmFtZT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYoKiBuZXcgJGNsYXNzTmFtZSk7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgdmlydHVhbCB+JGNsYXNzTmFtZSgpIHsgfVxuIik7CisgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIn07XG5cbiIpOworfQorCiAxOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>