<?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>131240</bug_id>
          
          <creation_ts>2014-04-04 15:19:38 -0700</creation_ts>
          <short_desc>[Bindings] &quot;nullable&quot; sequence&lt;T&gt; support is incomplete</short_desc>
          <delta_ts>2014-06-16 10:43:19 -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>Bindings</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="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997697</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-04-04 15:19:38 -0700</bug_when>
    <thetext>sample foo.idl:

[
    Conditional=XXX,
] interface Foo {
    [RaisesException] void fooIt(sequence&lt;unsigned long&gt;? seq);
}

Generated JSFoo.cpp code:

EncodedJSValue JSC_HOST_CALL jsFooPrototypeFunctionFooIt(ExecState* exec)
{
    JSValue thisValue = exec-&gt;hostThisValue();
    JSFoo* castedThis = jsDynamicCast&lt;JSFoo*&gt;(thisValue);
    if (!castedThis)
        return throwVMTypeError(exec);
    ASSERT_GC_OBJECT_INHERITS(castedThis, JSFoo::info());
    Foo&amp; impl = castedThis-&gt;impl();
    if (exec-&gt;argumentCount() != 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    ExceptionCode ec = 0;
    Vector&lt;unsigned&gt; seq(toNativeArray&lt;unsigned&gt;(exec, exec-&gt;argument(0)));
    if (exec-&gt;hadException())
        return JSValue::encode(jsUndefined());
    impl.fooIt(seq, ec);
    setDOMException(exec, ec);
    return JSValue::encode(jsUndefined());
}

In JSDOMBindings.h, &quot;toNativeArray&quot; bails out early if JSValue&apos;s (i.e. argument0) getObject is null, throwing a VM error &quot;Value is not a sequence&quot;.

According to WebIDL [1] there is no restriction for nullable sequences.

[1] http://www.w3.org/TR/WebIDL/#dfn-nullable-type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998022</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-06 11:56:26 -0700</bug_when>
    <thetext>Do we have one of these nullable sequences in our bindings already? Can we make a regression test showing that null doesn’t work for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998239</commentid>
    <comment_count>2</comment_count>
      <attachid>228758</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-04-07 14:26:08 -0700</bug_when>
    <thetext>Created attachment 228758
patch

I choose to add a bool parameter, named &quot;acceptsNullable&quot;, to JSDOMBindings::toNativeArray method, and set it to &quot;true&quot; from the generated code upon the presence of &quot;?&quot; in the idl definition.

It might be that we should simply make toNativeArray to accept &quot;null&quot; arrays always, similarly to toRefPtrNativeArray.

Please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998240</commentid>
    <comment_count>3</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-04-07 14:28:28 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Do we have one of these nullable sequences in our bindings already? Can we make a regression test showing that null doesn’t work for that?

I am afraid it is not there yet, but this discrepancy between toNativeArray and toRefPtrNative array was what brought my attention to this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998448</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-07 23:11:20 -0700</bug_when>
    <thetext>I’m not really happy doing this patch when there is no binding yet that uses it. It prevents us from doing any real testing. I suggest we hold off on this until we are actually using it in at least one binding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998676</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-04-08 11:40:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I’m not really happy doing this patch when there is no binding yet that uses it. It prevents us from doing any real testing. I suggest we hold off on this until we are actually using it in at least one binding.

Hi Darin. Would you be ok with a less intrusive approach/patch, where no changes to the perl code is made, as proposed in comment #2?

Reasons I particularly insist are:

- it seems logical to me to make toNativeArray in pair with toRefPtrNativeArray in that sense (acceptance of null as a valid sequence valid). Particularly, toRefPtrNativeArray does take &quot;null&quot; ok as an empty sequence, while toNativeArray does not.

- there is support for nullable sequences in in the generated code for this***, so it seems logical to make both methods actually called by it (i.e. toNativeArray and toRefPtrNativeArray) to support it.

- there are a couple of specifications making use of this nullable sequence:

1) 
https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#options-object-
concept

2) http://www.khronos.org/registry/webcl/specs/latest/1.0/#3.5
if you look at
 void enqueueNDRangeKernel(...,
                    sequence&lt;CLuint&gt;?                     globalWorkOffset, 
                    sequence&lt;CLuint&gt;                      globalWorkSize,
                    optional sequence&lt;CLuint&gt;?            localWorkSize,
                    optional sequence&lt;WebCLEvent&gt;?        eventWaitList,
                    optional WebCLEvent?                  event);

&quot;eventWaitList&quot; goes through toRefPtrNativeArray code path and can take &quot;null&quot; just fine. globalWorkSize does through toNativeArray, and fails to accept it.




***see that if (arg.isNull() || ...) gets added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998911</commentid>
    <comment_count>6</comment_count>
      <attachid>228919</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-04-08 17:36:01 -0700</bug_when>
    <thetext>Created attachment 228919
simpler patch

Patch that does not change the code generator, and simply makes toNativeArray in pair with toRefPtrNativeArray.

Darin, would you mind to look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999167</commentid>
    <comment_count>7</comment_count>
      <attachid>228919</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-09 07:33:10 -0700</bug_when>
    <thetext>Comment on attachment 228919
simpler patch

This change is completely reasonable. But it needs a real regression test, testing its effect on an actual binding.

If this change has no effect on any actual generated binding, we should not make the change at this time, until it does have an effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999169</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-09 07:34:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; - there are a couple of specifications making use of this nullable sequence:
&gt; 
&gt; 1) 
&gt; https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#options-object-
&gt; concept
&gt; 
&gt; 2) http://www.khronos.org/registry/webcl/specs/latest/1.0/#3.5
&gt; if you look at
&gt;  void enqueueNDRangeKernel(...,
&gt;                     sequence&lt;CLuint&gt;?                     globalWorkOffset, 
&gt;                     sequence&lt;CLuint&gt;                      globalWorkSize,
&gt;                     optional sequence&lt;CLuint&gt;?            localWorkSize,
&gt;                     optional sequence&lt;WebCLEvent&gt;?        eventWaitList,
&gt;                     optional WebCLEvent?                  event);
&gt; 
&gt; &quot;eventWaitList&quot; goes through toRefPtrNativeArray code path and can take &quot;null&quot; just fine. globalWorkSize does through toNativeArray, and fails to accept it.

We should land this change when we are landing one of these bindings, so the change has an actual effect on WebKit rather than a theoretical one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999268</commentid>
    <comment_count>9</comment_count>
      <attachid>228919</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-04-09 13:20:52 -0700</bug_when>
    <thetext>Comment on attachment 228919
simpler patch

Ok. Removing the r? flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011983</commentid>
    <comment_count>10</comment_count>
      <attachid>232133</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-05-27 09:15:56 -0700</bug_when>
    <thetext>Created attachment 232133
simpler patch (2) - with WebSocket.idl changes

It turns out WebSocket.idl can benefit from this patch. Changes incorporated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012015</commentid>
    <comment_count>11</comment_count>
      <attachid>232133</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-05-27 10:48:37 -0700</bug_when>
    <thetext>Comment on attachment 232133
simpler patch (2) - with WebSocket.idl changes

Darin, could you look again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013333</commentid>
    <comment_count>12</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-06-04 10:43:38 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 232133 [details])
&gt; Darin, could you look again?

Friendly re-ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013396</commentid>
    <comment_count>13</comment_count>
      <attachid>232133</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-06-04 15:20:33 -0700</bug_when>
    <thetext>Comment on attachment 232133
simpler patch (2) - with WebSocket.idl changes

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

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:212
&gt; +    void    methodWithAndWithoutNullableSequence(sequence&lt;unsigned long&gt; arrayArg, sequence&lt;unsigned long&gt;? nullableArrayArg);
&gt; +    void    methodWithAndWithoutNullableSequence2(unsigned long[] arrayArg, unsigned long[]? nullableArrayArg);

Should not have four spaces after &quot;void&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013398</commentid>
    <comment_count>14</comment_count>
      <attachid>232133</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-06-04 15:21:03 -0700</bug_when>
    <thetext>Comment on attachment 232133
simpler patch (2) - with WebSocket.idl changes

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

&gt; Source/WebCore/Modules/websockets/WebSocket.idl:37
&gt; +    Constructor(DOMString url, [Default=Undefined] optional sequence&lt;DOMString&gt;? protocols),

Do we have test coverage for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015892</commentid>
    <comment_count>15</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2014-06-16 10:43:19 -0700</bug_when>
    <thetext>Fixed by &lt;https://webkit.org/b/131240&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228758</attachid>
            <date>2014-04-07 14:26:08 -0700</date>
            <delta_ts>2014-04-08 17:36:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Bindings-nullable-sequence-support-is-incomplete-i.e.patch</filename>
            <type>text/plain</type>
            <size>16497</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA5MGJkMGQ1ZWRmNTcwMTU0ZDU0Y2I5NDM0NWZmMzdlOWZiNzJmOGY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhMS5nb21lc0BzaXNhLnNhbXN1bmcu
Y29tPgpEYXRlOiBNb24sIDcgQXByIDIwMTQgMTE6MTk6MzUgLTA0MDAKU3ViamVjdDogW1BBVENI
XSBbQmluZGluZ3NdICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRlIChp
LmUuCiBzZXF1ZW5jZTxOYXRpdmVUeXBlPj8pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzEyNDAKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpQYXRjaCBieSBB
bnRvbmlvIEdvbWVzIDxhMS5nb21lc0BzaXNhLnNhbXN1bmcuY29tPgoKTnVsbGFibGUgc2VxdWVu
Y2VzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkIGluIFdlYktpdCdzCmNvZGUgZ2VuZXJhdG9yIG1h
Y2hpbmVyeS4gQWx0aG91Z2ggdGhlIGdlbmVyYXRlZCBjb2RlCmRvZXMgYWRkICJpcyBudWxsYWJs
ZSIgY2hlY2sgdG8gdGhlIGV2YWx1YXRpb24gY29uZGl0aW9uCihpLmUuIGlmIChhcmcuaXNOdWxs
KCkgfHwgLi4uKSksIHdoZW4gdGhlIEpTVmFsdWUKdGhhdCBob2xkcyBhICJudWxsIiBKU09iamVj
dCBpcyBhY3R1YWxseSB0byBiZSAiY29udmVydGVkIgp0byBhIG5hdGl2ZSBWZWN0b3I8VD4sIGl0
IGZhaWxzLgoKVGhlIHJlYXNvbiBmb3IgdGhlIGZhaWx1cmUgaXMgaW4gSlNET01CaW5kaW5nczo6
dG9OYXRpdmVBcnJheS4KVGhpcyBtZXRob2QgdmVyaWZpZXMgdGhhdCBKU1ZhbHVlIGRvZXMgbm90
IGhvbGQgYSAibm9uLW51bGwiCm9iamVjdCwgYW5kIGl0IGJhaWxzIG91dC4KQW5hbG9nbHksIHRo
ZSAicmVmIHB0ciIgdmFyaWFudCBvZiB0aGlzIG1ldGhvZCAodG9SZWZQdHJOYXRpdmVBcnJheSkK
ZG9lcyBzdXBwb3J0IG51bGxhYmxlcy4KClBhdGNoIGZpeGVzIGl0IGJlIGNoZWNraW5nIGZvciBh
ICJudWxsIiBKU1ZhbHVlIGNoZWNrIGJlZm9yZSBoYW5kLgoKVGVzdHM6IEJpbmRpbmcgdGVzdHMg
dXBkYXRlZC4KCiogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CihXZWJDb3JlOjp0b05hdGl2
ZUFycmF5KToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKEpTVmFsdWVU
b05hdGl2ZSk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAyOSArKysrKysrKwogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggICAgICAgICAgfCAgOSArKy0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtIHwgIDggKystCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCB8IDgwICsrKysrKysrKysrKysrKysrLS0tLS0KIC4u
Li9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCAgIHwgIDIgKwog
Li4uL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsICAgfCAg
MyArCiA3IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggODcwZjJiNC4uMWI3MmE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE0LTA0LTA1ICBBbnRvbmlvIEdvbWVzICA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNv
bT4KKworICAgICAgICBbQmluZGluZ3NdICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBp
bmNvbXBsZXRlIChpLmUuIHNlcXVlbmNlPE5hdGl2ZVR5cGU+PykKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE51bGxhYmxlIHNlcXVlbmNlcyBhcmUgbm90
IGZ1bGx5IHN1cHBvcnRlZCBpbiBXZWJLaXQncworICAgICAgICBjb2RlIGdlbmVyYXRvciBtYWNo
aW5lcnkuIEFsdGhvdWdoIHRoZSBnZW5lcmF0ZWQgY29kZQorICAgICAgICBkb2VzIGFkZCAiaXMg
bnVsbGFibGUiIGNoZWNrIHRvIHRoZSBldmFsdWF0aW9uIGNvbmRpdGlvbgorICAgICAgICAoaS5l
LiBpZiAoYXJnLmlzTnVsbCgpIHx8IC4uLikpLCB3aGVuIHRoZSBKU1ZhbHVlCisgICAgICAgIHRo
YXQgaG9sZHMgYSAibnVsbCIgSlNPYmplY3QgaXMgYWN0dWFsbHkgdG8gYmUgImNvbnZlcnRlZCIK
KyAgICAgICAgdG8gYSBuYXRpdmUgVmVjdG9yPFQ+LCBpdCBmYWlscy4KKworICAgICAgICBUaGUg
cmVhc29uIGZvciB0aGUgZmFpbHVyZSBpcyBpbiBKU0RPTUJpbmRpbmdzOjp0b05hdGl2ZUFycmF5
LgorICAgICAgICBUaGlzIG1ldGhvZCB2ZXJpZmllcyB0aGF0IEpTVmFsdWUgZG9lcyBub3QgaG9s
ZCBhICJub24tbnVsbCIKKyAgICAgICAgb2JqZWN0LCBhbmQgaXQgYmFpbHMgb3V0LgorICAgICAg
ICBBbmFsb2dseSwgdGhlICJyZWYgcHRyIiB2YXJpYW50IG9mIHRoaXMgbWV0aG9kICh0b1JlZlB0
ck5hdGl2ZUFycmF5KQorICAgICAgICBkb2VzIHN1cHBvcnQgbnVsbGFibGVzLgorCisgICAgICAg
IFBhdGNoIGZpeGVzIGl0IGJlIGNoZWNraW5nIGZvciBhICJudWxsIiBKU1ZhbHVlIGNoZWNrIGJl
Zm9yZSBoYW5kLgorCisgICAgICAgIFRlc3RzOiBCaW5kaW5nIHRlc3RzIHVwZGF0ZWQuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
TmF0aXZlQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKwogMjAxNC0wNC0wMSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgTG9hZCBNZWRpYSBDb250cm9scyBqcy9j
c3MgZnJvbSBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
aW5kZXggNzA1YjhkNS4uMWE5MTA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgKQEAgLTUyMCw4ICs1MjAsMTMgQEAgVmVjdG9yPFJlZlB0cjxUPj4gdG9SZWZQ
dHJOYXRpdmVBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLAog
fQogCiB0ZW1wbGF0ZSA8Y2xhc3MgVD4KLVZlY3RvcjxUPiB0b05hdGl2ZUFycmF5KEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpCitWZWN0b3I8VD4gdG9OYXRpdmVBcnJh
eShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBib29sIGFjY2VwdHNO
dWxsID0gZmFsc2UpCiB7CisgICAgSlNDOjpKU09iamVjdCogb2JqZWN0ID0gdmFsdWUuZ2V0T2Jq
ZWN0KCk7CisgICAgVmVjdG9yPFQ+IHJlc3VsdDsKKyAgICBpZiAoIW9iamVjdCAmJiBhY2NlcHRz
TnVsbCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IDA7
CiAgICAgaWYgKGlzSlNBcnJheSh2YWx1ZSkpIHsKICAgICAgICAgSlNDOjpKU0FycmF5KiBhcnJh
eSA9IGFzQXJyYXkodmFsdWUpOwpAQCAtNTI5LDggKzUzNCw2IEBAIFZlY3RvcjxUPiB0b05hdGl2
ZUFycmF5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiAgICAgfSBl
bHNlCiAgICAgICAgIHRvSlNTZXF1ZW5jZShleGVjLCB2YWx1ZSwgbGVuZ3RoKTsKIAotICAgIEpT
Qzo6SlNPYmplY3QqIG9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwotICAgIFZlY3RvcjxUPiBy
ZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKICAgICB0
eXBlZGVmIE5hdGl2ZVZhbHVlVHJhaXRzPFQ+IFRyYWl0c1R5cGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZDE5M2Y3
OC4uZmE5YjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTM4MjAsNyArMzgyMCwxMyBAQCBzdWIgSlNWYWx1ZVRvTmF0
aXZlCiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMke2FycmF5T3JTZXF1ZW5jZVR5
cGV9LmgiKTsKICAgICAgICAgICAgIHJldHVybiAiKHRvUmVmUHRyTmF0aXZlQXJyYXk8JHthcnJh
eU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9PihleGVjLCAkdmFsdWUs
ICZ0byR7YXJyYXlPclNlcXVlbmNlVHlwZX0pKSI7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
ICJ0b05hdGl2ZUFycmF5PCIgLiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUoJGFycmF5T3JTZXF1
ZW5jZVR5cGUpIC4gIj4oZXhlYywgJHZhbHVlKSI7CisKKyAgICAgICAgbXkgJGlzTnVsbGFibGUg
PSAkc2lnbmF0dXJlLT5pc051bGxhYmxlOworICAgICAgICBpZiAoJGlzTnVsbGFibGUpIHsKKyAg
ICAgICAgICAgIHJldHVybiAidG9OYXRpdmVBcnJheTwiIC4gR2V0TmF0aXZlVmVjdG9ySW5uZXJU
eXBlKCRhcnJheU9yU2VxdWVuY2VUeXBlKSAuICI+KGV4ZWMsICR2YWx1ZSwgdHJ1ZSAvKmlzTnVs
bGFibGUqLykiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICJ0b05hdGl2
ZUFycmF5PCIgLiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUp
IC4gIj4oZXhlYywgJHZhbHVlKSI7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzRW51bVR5cGUoJHR5cGUpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDJiNmI5YzkuLjBm
ODQ2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9IHsK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7
IDEyNiwgLTEgfSwKKyAgICB7IDEyOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBd
ID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDUsIC0xIH0sCi0g
ICAgeyAxMzQsIC0xIH0sCisgICAgeyAxMzYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00MjUsOCArNDI1LDggQEAgc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhb
NTMwXSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKLSAgICB7IDEyNywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAorICAgIHsgMTI5LCAtMSB9LAor
ICAgIHsgMTIyLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LApAQCAtNTA3LDEwICs1MDcsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21w
YWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9IHsKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgOCwgNTEyIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEzMCwg
LTEgfSwKKyAgICB7IDEzMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgNTgsIDUyOCB9
LAotICAgIHsgMTM1LCAtMSB9LAorICAgIHsgMTM3LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTE5LDcgKzUxOSw3IEBAIHN0YXRp
YyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUlu
ZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAxMzEsIC0xIH0sCisgICAgeyAxMzMsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IDEwMywgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTY1LDggKzU2NSw4IEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMjgsIC0xIH0sCi0gICAgeyAxMjMsIC0xIH0sCisgICAgeyAx
MzAsIC0xIH0sCisgICAgeyAxMjUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC01OTMsNyArNTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9
IHsKICAgICB7IDQzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAorICAgIHsgMTIxLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNjE2LDcgKzYxNiw3IEBAIHN0YXRpYyBjb25z
dCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUz
MF0gPSB7CiAgICAgeyAyOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAxMjQsIC0xIH0sCisgICAgeyAxMjYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IDM1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC03MjEsNyArNzIxLDcgQEAgc3RhdGlj
IGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5k
ZXhbNTMwXSA9IHsKICAgICB7IDUyLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA3NCwg
LTEgfSwKLSAgICB7IDEzMiwgLTEgfSwKKyAgICB7IDEzNCwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTc2MCwxMSArNzYwLDExIEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDcsIDUyNSB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMjUsIC0xIH0sCisgICAgeyAxMjcsIC0xIH0sCiAgICAgeyAx
MDYsIC0xIH0sCiAgICAgeyA3NSwgNTIwIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEyMiwg
LTEgfSwKKyAgICB7IDEyNCwgLTEgfSwKICAgICB7IDgzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKQEAgLTc4Nyw5ICs3ODcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBdID0gewog
ICAgIHsgMTA0LCAtMSB9LAogICAgIHsgMTE1LCAtMSB9LAogICAgIHsgMTE2LCAtMSB9LAotICAg
IHsgMTIxLCAtMSB9LAotICAgIHsgMTI5LCAtMSB9LAotICAgIHsgMTMzLCAtMSB9LAorICAgIHsg
MTIzLCAtMSB9LAorICAgIHsgMTMxLCAtMSB9LAorICAgIHsgMTM1LCAtMSB9LAogfTsKIAogCkBA
IC05NDQsNiArOTQ0LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1
ZW5jZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2ln
bmVkTG9uZ1NlcXVlbmNlKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJzdHJpbmdBcnJheUZ1
bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1
bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJkb21TdHJpbmdMaXN0RnVuY3Rpb24i
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlv
biksIChpbnRwdHJfdCkgKDEpIH0sCisgICAgeyAibWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJs
ZVNlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
QW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpLCAoaW50cHRyX3QpICgyKSB9LAorICAgIHsgIm1l
dGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIpLCAo
aW50cHRyX3QpICgyKSB9LAogICAgIHsgImdldFNWR0RvY3VtZW50IiwgSlNDOjpGdW5jdGlvbiwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudCksIChpbnRwdHJfdCkgKDApIH0sCiAg
ICAgeyAiY29udmVydDEiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQxKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJjb252ZXJ0MiIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIpLCAoaW50cHRyX3QpICgxKSB9LApAQCAtOTYx
LDcgKzk2Myw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJhbnkiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkFueSksIChpbnRwdHJfdCkgKDIpIH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFz
aFRhYmxlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlID0geyAxMzYsIDUxMSwgdHJ1ZSwgSlNUZXN0
T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAsIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXgg
fTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGUgPSB7IDEz
OCwgNTExLCB0cnVlLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgMCwgSlNUZXN0T2Jq
UHJvdG90eXBlVGFibGVJbmRleCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9ialByb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdE9iamVjdFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sICZKU1Rl
c3RPYmpQcm90b3R5cGVUYWJsZSwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmpQcm90
b3R5cGUpIH07CiAKIEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtNDExNiw3ICs0MTE4LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kNygKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAg
ICBWZWN0b3I8U3RyaW5nPiBhcnJheUFyZyh0b05hdGl2ZUFycmF5PFN0cmluZz4oZXhlYywgZXhl
Yy0+YXJndW1lbnQoMCkpKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBhcnJheUFyZyh0b05hdGl2ZUFy
cmF5PFN0cmluZz4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksIHRydWUgLyppc051bGxhYmxlKi8p
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1l
dGhvZChhcnJheUFyZyk7CkBAIC00Mzg2LDYgKzQzODgsNDYgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlv
bihFeGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
QW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IG1ha2VET01CaW5kaW5nc1R5cGVFcnJvclN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCAiVGVzdE9i
aiIsICIuIiwgIm1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZSIsICIgb24gaW5z
dGFuY2VzIG9mICIsICJUZXN0T2JqIikpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
Y2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOworICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCisgICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoZXhlYykpOworICAgIFZlY3Rvcjx1bnNpZ25lZD4gYXJyYXlBcmcodG9OYXRpdmVBcnJheTx1
bnNpZ25lZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgIFZlY3Rvcjx1bnNpZ25lZD4gbnVsbGFibGVBcnJheUFyZyh0b05hdGl2
ZUFycmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgxKSwgdHJ1ZSAvKmlzTnVsbGFi
bGUqLykpOworICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgaW1wbC5tZXRob2RX
aXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UoYXJyYXlBcmcsIG51bGxhYmxlQXJyYXlBcmcp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOworICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKKyAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBtYWtlRE9NQmluZGluZ3NUeXBlRXJyb3JTdHJpbmcoIkNhbiBvbmx5IGNhbGwgIiwgIlRl
c3RPYmoiLCAiLiIsICJtZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UyIiwgIiBv
biBpbnN0YW5jZXMgb2YgIiwgIlRlc3RPYmoiKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7CisgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihleGVjKSk7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBhcnJheUFyZyh0b05hdGl2ZUFy
cmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSkpOworICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBudWxsYWJsZUFycmF5QXJnKHRv
TmF0aXZlQXJyYXk8dW5zaWduZWQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpLCB0cnVlIC8qaXNO
dWxsYWJsZSovKSk7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpbXBsLm1l
dGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIoYXJyYXlBcmcsIG51bGxhYmxlQXJy
YXlBcmcpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25H
ZXRTVkdEb2N1bWVudChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA4ODQ3NzFmLi4zZmQxYTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
CkBAIC0yMjIsNiArMjIyLDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXAKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhVbnNpZ25lZExvbmdTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlG
dW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKEpTQzo6
RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UoSlND
OjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIo
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KEpTQzo6RXhlY1N0YXRlKik7CiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0MShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoSlNDOjpFeGVjU3RhdGUq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGJhYWE1MzYuLjFiM2ExODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcApAQCAtNTkzLDcgKzU5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlQXJyYXlBcmcoRXhlCiAg
ICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8U3RyaW5n
PiBhcnJheUFyZyh0b05hdGl2ZUFycmF5PFN0cmluZz4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCkp
KTsKKyAgICBWZWN0b3I8U3RyaW5nPiBhcnJheUFyZyh0b05hdGl2ZUFycmF5PFN0cmluZz4oZXhl
YywgZXhlYy0+YXJndW1lbnQoMCksIHRydWUgLyppc051bGxhYmxlKi8pKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwubnVsbGFibGVBcnJheUFyZyhhcnJheUFyZyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwK
aW5kZXggZWI3M2JhNS4uODliNmYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMjA3LDYgKzIwNyw5IEBAIGVudW0gX29wdGlv
bmFsIHsgIiIsICJPcHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZh
bHVlMyIgfTsKICAgICB2b2lkIG1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZShzZXF1ZW5j
ZTx1bnNpZ25lZCBsb25nPiB1bnNpZ25lZExvbmdTZXF1ZW5jZSk7CiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gRE9NU3RyaW5nW10gc3RyaW5nQXJyYXlGdW5jdGlvbihET01TdHJpbmdbXSB2YWx1ZXMp
OwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZ0xpc3QgZG9tU3RyaW5nTGlzdEZ1bmN0
aW9uKERPTVN0cmluZ0xpc3QgdmFsdWVzKTsKKworICAgIHZvaWQgICAgbWV0aG9kV2l0aEFuZFdp
dGhvdXROdWxsYWJsZVNlcXVlbmNlKHNlcXVlbmNlPHVuc2lnbmVkIGxvbmc+IGFycmF5QXJnLCBz
ZXF1ZW5jZTx1bnNpZ25lZCBsb25nPj8gbnVsbGFibGVBcnJheUFyZyk7CisgICAgdm9pZCAgICBt
ZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UyKHVuc2lnbmVkIGxvbmdbXSBhcnJh
eUFyZywgdW5zaWduZWQgbG9uZ1tdPyBudWxsYWJsZUFycmF5QXJnKTsKICNlbmRpZgogCiAgICAg
W0NoZWNrU2VjdXJpdHlGb3JOb2RlXSByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgY29udGVu
dERvY3VtZW50OwotLSAKMS44LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228919</attachid>
            <date>2014-04-08 17:36:01 -0700</date>
            <delta_ts>2014-05-27 09:15:56 -0700</delta_ts>
            <desc>simpler patch</desc>
            <filename>0001-Bindings-nullable-sequence-support-is-incomplete-i.e.patch</filename>
            <type>text/plain</type>
            <size>13623</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAwZWI3MWZhMTQ5Y2MyOTI0YThmYjBmNTcyNGU3YTJkOGFhY2E0MWUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhMS5nb21lc0BzaXNhLnNhbXN1bmcu
Y29tPgpEYXRlOiBUdWUsIDggQXByIDIwMTQgMjA6MzA6MTcgLTA0MDAKU3ViamVjdDogW1BBVENI
XSBbQmluZGluZ3NdICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRlIChp
LmUuCiBzZXF1ZW5jZTxOYXRpdmVUeXBlPj8pIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzEyNDAKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpQYXRjaCBieSBB
bnRvbmlvIEdvbWVzIDxhMS5nb21lc0BzaXNhLnNhbXN1bmcuY29tPgoKTnVsbGFibGUgc2VxdWVu
Y2VzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkIGluIFdlYktpdCdzCmNvZGUgZ2VuZXJhdG9yIG1h
Y2hpbmVyeS4gQWx0aG91Z2ggdGhlIGdlbmVyYXRlZCBjb2RlCmRvZXMgYWRkICJpcyBudWxsYWJs
ZSIgY2hlY2sgdG8gdGhlIGV2YWx1YXRpb24gY29uZGl0aW9uCihpLmUuIGlmIChhcmcuaXNOdWxs
KCkgfHwgLi4uKSksIHdoZW4gdGhlIEpTVmFsdWUKdGhhdCBob2xkcyBhICJudWxsIiBKU09iamVj
dCBpcyBhY3R1YWxseSB0byBiZSAiY29udmVydGVkIgp0byBhIG5hdGl2ZSBWZWN0b3I8VD4sIGl0
IGZhaWxzLgoKVGhlIHJlYXNvbiBmb3IgdGhlIGZhaWx1cmUgaXMgaW4gSlNET01CaW5kaW5nczo6
dG9OYXRpdmVBcnJheS4KVGhpcyBtZXRob2QgdmVyaWZpZXMgdGhhdCBKU1ZhbHVlIGRvZXMgbm90
IGhvbGQgYSAibm9uLW51bGwiCm9iamVjdCwgYW5kIGl0IGJhaWxzIG91dC4KQW5hbG9nbHksIHRo
ZSAicmVmIHB0ciIgdmFyaWFudCBvZiB0aGlzIG1ldGhvZCAodG9SZWZQdHJOYXRpdmVBcnJheSkK
ZG9lcyBzdXBwb3J0IG51bGxhYmxlcy4KClBhdGNoIGZpeGVzIGl0IGJlIGNoZWNraW5nIGZvciBh
ICJudWxsIiBKU1ZhbHVlIGNoZWNrIGJlZm9yZSBoYW5kLgoKVGVzdHM6IEJpbmRpbmcgdGVzdHMg
dXBkYXRlZC4KCiogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CihXZWJDb3JlOjp0b05hdGl2
ZUFycmF5KToKKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKEpTVmFsdWVU
b05hdGl2ZSk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAyOSArKysrKysrKwogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmggICAgICAgICAgfCAgNSArLQogLi4uL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAgfCA3OCArKysrKysrKysrKysrKysrKy0tLS0tCiAuLi4vV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggICB8ICAyICsKIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCAgIHwgIDMgKwogNSBm
aWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOTEwMzgyYS4uOTc4OTdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0
LTA0LTA1ICBBbnRvbmlvIEdvbWVzICA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNvbT4KKworICAg
ICAgICBbQmluZGluZ3NdICJudWxsYWJsZSIgc2VxdWVuY2Ugc3VwcG9ydCBpcyBpbmNvbXBsZXRl
IChpLmUuIHNlcXVlbmNlPE5hdGl2ZVR5cGU+PykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE51bGxhYmxlIHNlcXVlbmNlcyBhcmUgbm90IGZ1bGx5IHN1
cHBvcnRlZCBpbiBXZWJLaXQncworICAgICAgICBjb2RlIGdlbmVyYXRvciBtYWNoaW5lcnkuIEFs
dGhvdWdoIHRoZSBnZW5lcmF0ZWQgY29kZQorICAgICAgICBkb2VzIGFkZCAiaXMgbnVsbGFibGUi
IGNoZWNrIHRvIHRoZSBldmFsdWF0aW9uIGNvbmRpdGlvbgorICAgICAgICAoaS5lLiBpZiAoYXJn
LmlzTnVsbCgpIHx8IC4uLikpLCB3aGVuIHRoZSBKU1ZhbHVlCisgICAgICAgIHRoYXQgaG9sZHMg
YSAibnVsbCIgSlNPYmplY3QgaXMgYWN0dWFsbHkgdG8gYmUgImNvbnZlcnRlZCIKKyAgICAgICAg
dG8gYSBuYXRpdmUgVmVjdG9yPFQ+LCBpdCBmYWlscy4KKworICAgICAgICBUaGUgcmVhc29uIGZv
ciB0aGUgZmFpbHVyZSBpcyBpbiBKU0RPTUJpbmRpbmdzOjp0b05hdGl2ZUFycmF5LgorICAgICAg
ICBUaGlzIG1ldGhvZCB2ZXJpZmllcyB0aGF0IEpTVmFsdWUgZG9lcyBub3QgaG9sZCBhICJub24t
bnVsbCIKKyAgICAgICAgb2JqZWN0LCBhbmQgaXQgYmFpbHMgb3V0LgorICAgICAgICBBbmFsb2ds
eSwgdGhlICJyZWYgcHRyIiB2YXJpYW50IG9mIHRoaXMgbWV0aG9kICh0b1JlZlB0ck5hdGl2ZUFy
cmF5KQorICAgICAgICBkb2VzIHN1cHBvcnQgbnVsbGFibGVzLgorCisgICAgICAgIFBhdGNoIGZp
eGVzIGl0IGJlIGNoZWNraW5nIGZvciBhICJudWxsIiBKU1ZhbHVlIGNoZWNrIGJlZm9yZSBoYW5k
LgorCisgICAgICAgIFRlc3RzOiBCaW5kaW5nIHRlc3RzIHVwZGF0ZWQuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvTmF0aXZlQXJy
YXkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKwogMjAxNC0wNC0wOCAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgQ2xpcGJvYXJkIHRvIERhdGFUcmFu
c2ZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA0ODM1
MDQ5Li45OWI1MzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aApAQCAtNTEyLDYgKzUxMiwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBKU1Q+
IFZlY3RvcjxSZWZQdHI8VD4+IHRvUmVmUHRyTmF0aXZlQXJyYXkoSlNDOjpFeAogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBWZWN0b3I8VD4gdG9OYXRpdmVBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNDOjpKU1ZhbHVlIHZhbHVlKQogeworICAgIEpTQzo6SlNPYmplY3QqIG9iamVjdCA9IHZh
bHVlLmdldE9iamVjdCgpOworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gVmVjdG9y
PFQ+KCk7CisKICAgICB1bnNpZ25lZCBsZW5ndGggPSAwOwogICAgIGlmIChpc0pTQXJyYXkodmFs
dWUpKSB7CiAgICAgICAgIEpTQzo6SlNBcnJheSogYXJyYXkgPSBhc0FycmF5KHZhbHVlKTsKQEAg
LTUxOSw3ICs1MjMsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBWZWN0b3I8VD4gdG9OYXRpdmVB
cnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlCiAgICAgfSBlbHNlCiAgICAg
ICAgIHRvSlNTZXF1ZW5jZShleGVjLCB2YWx1ZSwgbGVuZ3RoKTsKIAotICAgIEpTQzo6SlNPYmpl
Y3QqIG9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwogICAgIFZlY3RvcjxUPiByZXN1bHQ7CiAg
ICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKICAgICB0eXBlZGVmIE5h
dGl2ZVZhbHVlVHJhaXRzPFQ+IFRyYWl0c1R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDgxYjNkOWYuLmMz
NzM4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9IHsK
ICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7
IDEyNiwgLTEgfSwKKyAgICB7IDEyOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBd
ID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDUsIC0xIH0sCi0g
ICAgeyAxMzQsIC0xIH0sCisgICAgeyAxMzYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00MjUsOCArNDI1LDggQEAgc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhb
NTMwXSA9IHsKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKLSAgICB7IDEyNywgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAorICAgIHsgMTI5LCAtMSB9LAor
ICAgIHsgMTIyLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LApAQCAtNTA3LDEwICs1MDcsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21w
YWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9IHsKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgOCwgNTEyIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEzMCwg
LTEgfSwKKyAgICB7IDEzMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgNTgsIDUyOCB9
LAotICAgIHsgMTM1LCAtMSB9LAorICAgIHsgMTM3LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTE5LDcgKzUxOSw3IEBAIHN0YXRp
YyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUlu
ZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAxMzEsIC0xIH0sCisgICAgeyAxMzMsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IDEwMywgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNTY1LDggKzU2NSw4IEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMjgsIC0xIH0sCi0gICAgeyAxMjMsIC0xIH0sCisgICAgeyAx
MzAsIC0xIH0sCisgICAgeyAxMjUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC01OTMsNyArNTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9
IHsKICAgICB7IDQzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAg
ICB7IC0xLCAtMSB9LAorICAgIHsgMTIxLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNjE2LDcgKzYxNiw3IEBAIHN0YXRpYyBjb25z
dCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUz
MF0gPSB7CiAgICAgeyAyOCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAxMjQsIC0xIH0sCisgICAgeyAxMjYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IDM1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC03MjEsNyArNzIxLDcgQEAgc3RhdGlj
IGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5k
ZXhbNTMwXSA9IHsKICAgICB7IDUyLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA3NCwg
LTEgfSwKLSAgICB7IDEzMiwgLTEgfSwKKyAgICB7IDEzNCwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTc2MCwxMSArNzYwLDExIEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDcsIDUyNSB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyAxMjUsIC0xIH0sCisgICAgeyAxMjcsIC0xIH0sCiAgICAgeyAx
MDYsIC0xIH0sCiAgICAgeyA3NSwgNTIwIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEyMiwg
LTEgfSwKKyAgICB7IDEyNCwgLTEgfSwKICAgICB7IDgzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKQEAgLTc4Nyw5ICs3ODcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBdID0gewog
ICAgIHsgMTA0LCAtMSB9LAogICAgIHsgMTE1LCAtMSB9LAogICAgIHsgMTE2LCAtMSB9LAotICAg
IHsgMTIxLCAtMSB9LAotICAgIHsgMTI5LCAtMSB9LAotICAgIHsgMTMzLCAtMSB9LAorICAgIHsg
MTIzLCAtMSB9LAorICAgIHsgMTMxLCAtMSB9LAorICAgIHsgMTM1LCAtMSB9LAogfTsKIAogCkBA
IC05NDQsNiArOTQ0LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1
ZW5jZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2ln
bmVkTG9uZ1NlcXVlbmNlKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJzdHJpbmdBcnJheUZ1
bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1
bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJkb21TdHJpbmdMaXN0RnVuY3Rpb24i
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlv
biksIChpbnRwdHJfdCkgKDEpIH0sCisgICAgeyAibWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJs
ZVNlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
QW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpLCAoaW50cHRyX3QpICgyKSB9LAorICAgIHsgIm1l
dGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIpLCAo
aW50cHRyX3QpICgyKSB9LAogICAgIHsgImdldFNWR0RvY3VtZW50IiwgSlNDOjpGdW5jdGlvbiwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudCksIChpbnRwdHJfdCkgKDApIH0sCiAg
ICAgeyAiY29udmVydDEiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQxKSwgKGludHB0cl90KSAoMSkgfSwKICAgICB7ICJjb252ZXJ0MiIsIEpTQzo6RnVuY3Rpb24s
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIpLCAoaW50cHRyX3QpICgxKSB9LApAQCAtOTYx
LDcgKzk2Myw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJhbnkiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkFueSksIChpbnRwdHJfdCkgKDIpIH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFz
aFRhYmxlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlID0geyAxMzYsIDUxMSwgdHJ1ZSwgSlNUZXN0
T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAsIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXgg
fTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGUgPSB7IDEz
OCwgNTExLCB0cnVlLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgMCwgSlNUZXN0T2Jq
UHJvdG90eXBlVGFibGVJbmRleCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9ialByb3RvdHlw
ZTo6c19pbmZvID0geyAiVGVzdE9iamVjdFByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sICZKU1Rl
c3RPYmpQcm90b3R5cGVUYWJsZSwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPYmpQcm90
b3R5cGUpIH07CiAKIEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5cGU6OnNlbGYoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtNDAxNyw2ICs0MDE5LDQ2IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJp
bmdMaXN0RnVuY3Rpb24oRXhlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOworICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsK
KyAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKQorICAgICAgICByZXR1cm4gdGhyb3dUaGlz
VHlwZUVycm9yKCpleGVjLCAiVGVzdE9iaiIsICJtZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxl
U2VxdWVuY2UiKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKKyAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKKyAg
ICBWZWN0b3I8dW5zaWduZWQ+IGFycmF5QXJnKHRvTmF0aXZlQXJyYXk8dW5zaWduZWQ+KGV4ZWMs
IGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICBWZWN0b3I8dW5zaWduZWQ+IG51bGxhYmxlQXJyYXlBcmcodG9OYXRpdmVBcnJheTx1bnNpZ25l
ZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgIGltcGwubWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKGFycmF5
QXJnLCBudWxsYWJsZUFycmF5QXJnKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlMihFeGVj
U3RhdGUqIGV4ZWMpCit7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKKyAgICAgICAgcmV0
dXJuIHRocm93VGhpc1R5cGVFcnJvcigqZXhlYywgIlRlc3RPYmoiLCAibWV0aG9kV2l0aEFuZFdp
dGhvdXROdWxsYWJsZVNlcXVlbmNlMiIpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
Y2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOworICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCisgICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoZXhlYykpOworICAgIFZlY3Rvcjx1bnNpZ25lZD4gYXJyYXlBcmcodG9OYXRpdmVBcnJheTx1
bnNpZ25lZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgIFZlY3Rvcjx1bnNpZ25lZD4gbnVsbGFibGVBcnJheUFyZyh0b05hdGl2
ZUFycmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOworICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgaW1wbC5tZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxl
U2VxdWVuY2UyKGFycmF5QXJnLCBudWxsYWJsZUFycmF5QXJnKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
aW5kZXggODg0NzcxZi4uM2ZkMWEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMjIyLDYgKzIyMiw4IEBAIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNs
YXNzTWV0aG9kV2l0aENsYW1wCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UoSlND
OjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UyKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRT
VkdEb2N1bWVudChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoSlNDOjpFeGVjU3RhdGUq
KTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQyKEpTQzo6RXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggZWI3M2JhNS4uODliNmYzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bApAQCAtMjA3LDYgKzIwNyw5IEBAIGVudW0gX29wdGlvbmFsIHsgIiIsICJPcHRpb25hbFZhbHVl
MSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVlMyIgfTsKICAgICB2b2lkIG1ldGhv
ZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZShzZXF1ZW5jZTx1bnNpZ25lZCBsb25nPiB1bnNpZ25l
ZExvbmdTZXF1ZW5jZSk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRE9NU3RyaW5nW10gc3RyaW5n
QXJyYXlGdW5jdGlvbihET01TdHJpbmdbXSB2YWx1ZXMpOwogICAgIFtSYWlzZXNFeGNlcHRpb25d
IERPTVN0cmluZ0xpc3QgZG9tU3RyaW5nTGlzdEZ1bmN0aW9uKERPTVN0cmluZ0xpc3QgdmFsdWVz
KTsKKworICAgIHZvaWQgICAgbWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKHNl
cXVlbmNlPHVuc2lnbmVkIGxvbmc+IGFycmF5QXJnLCBzZXF1ZW5jZTx1bnNpZ25lZCBsb25nPj8g
bnVsbGFibGVBcnJheUFyZyk7CisgICAgdm9pZCAgICBtZXRob2RXaXRoQW5kV2l0aG91dE51bGxh
YmxlU2VxdWVuY2UyKHVuc2lnbmVkIGxvbmdbXSBhcnJheUFyZywgdW5zaWduZWQgbG9uZ1tdPyBu
dWxsYWJsZUFycmF5QXJnKTsKICNlbmRpZgogCiAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgY29udGVudERvY3VtZW50OwotLSAKMS44LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232133</attachid>
            <date>2014-05-27 09:15:56 -0700</date>
            <delta_ts>2014-06-04 15:21:03 -0700</delta_ts>
            <desc>simpler patch (2) - with WebSocket.idl changes</desc>
            <filename>0001-nullable-sequence-support-is-incomplete-i.e.-sequenc.patch</filename>
            <type>text/plain</type>
            <size>14578</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA5MGE1NzFhMjBkNmVlZmMwZGQ0ZmVlYjI0ZGJmYmZkZjdmOTRmM2NhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhMS5nb21lc0BzaXNhLnNhbXN1bmcu
Y29tPgpEYXRlOiBUdWUsIDggQXByIDIwMTQgMjA6MzA6MTcgLTA0MDAKU3ViamVjdDogW1BBVENI
XSAibnVsbGFibGUiIHNlcXVlbmNlIHN1cHBvcnQgaXMgaW5jb21wbGV0ZSAoaS5lLgogc2VxdWVu
Y2U8TmF0aXZlVHlwZT4/KSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxMjQwCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KUGF0Y2ggYnkgQW50b25pbyBHb21l
cyA8YTEuZ29tZXNAc2lzYS5zYW1zdW5nLmNvbT4KCk51bGxhYmxlIHNlcXVlbmNlcyBhcmUgbm90
IGZ1bGx5IHN1cHBvcnRlZCBpbiBXZWJLaXQncwpjb2RlIGdlbmVyYXRvciBtYWNoaW5lcnkuIEFs
dGhvdWdoIHRoZSBnZW5lcmF0ZWQgY29kZQpkb2VzIGFkZCAiaXMgbnVsbGFibGUiIGNoZWNrIHRv
IHRoZSBldmFsdWF0aW9uIGNvbmRpdGlvbgooaS5lLiBpZiAoYXJnLmlzTnVsbCgpIHx8IC4uLikp
LCB3aGVuIHRoZSBKU1ZhbHVlCnRoYXQgaG9sZHMgYSAibnVsbCIgSlNPYmplY3QgaXMgYWN0dWFs
bHkgdG8gYmUgImNvbnZlcnRlZCIKdG8gYSBuYXRpdmUgVmVjdG9yPFQ+LCBpdCBmYWlscy4KClRo
ZSByZWFzb24gZm9yIHRoZSBmYWlsdXJlIGlzIGluIEpTRE9NQmluZGluZ3M6OnRvTmF0aXZlQXJy
YXkuClRoaXMgbWV0aG9kIHZlcmlmaWVzIHRoYXQgSlNWYWx1ZSBkb2VzIG5vdCBob2xkIGEgIm5v
bi1udWxsIgpvYmplY3QsIGFuZCBpdCBiYWlscyBvdXQuCkFuYWxvZ2x5LCB0aGUgInJlZiBwdHIi
IHZhcmlhbnQgb2YgdGhpcyBtZXRob2QgKHRvUmVmUHRyTmF0aXZlQXJyYXkpCmRvZXMgc3VwcG9y
dCBudWxsYWJsZXMuCgpQYXRjaCBmaXhlcyBpdCBiZSBjaGVja2luZyBmb3IgYSAibnVsbCIgSlNW
YWx1ZSBjaGVjayBiZWZvcmUgaGFuZC4KClRlc3RzOiBCaW5kaW5nIHRlc3RzIHVwZGF0ZWQuCgoq
IGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgooV2ViQ29yZTo6dG9OYXRpdmVBcnJheSk6Ciog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CihKU1ZhbHVlVG9OYXRpdmUpOgoq
IE1vZHVsZXMvd2Vic29ja2V0L1dlYlNvY2tldC5pZGw6ClJlbW92ZWQgb25lIG92ZXJsb2FkIGN0
b3Igbm93IHRoYXQKd2UgY2FuIHVzZSBudWxsYWJsZSBzZXF1ZW5jZXMuCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMiArKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsICAgIHwgIDMg
Ky0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oICAgICAgICAgIHwg
IDUgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
IHwgNzggKysrKysrKysrKysrKysrKystLS0tLQogLi4uL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgICB8ICAzICsKIDYgZmlsZXMgY2hhbmdlZCwgMTAyIGlu
c2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwM2E3ZjNiLi4yNjg3
ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTQtMDQtMDUgIEFudG9uaW8gR29t
ZXMgIDxhMS5nb21lc0BzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIFtCaW5kaW5nc10gIm51
bGxhYmxlIiBzZXF1ZW5jZSBzdXBwb3J0IGlzIGluY29tcGxldGUgKGkuZS4gc2VxdWVuY2U8TmF0
aXZlVHlwZT4/KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMxMjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTnVsbGFibGUgc2VxdWVuY2VzIGFyZSBub3QgZnVsbHkgc3VwcG9ydGVkIGluIFdlYktpdCdz
CisgICAgICAgIGNvZGUgZ2VuZXJhdG9yIG1hY2hpbmVyeS4gQWx0aG91Z2ggdGhlIGdlbmVyYXRl
ZCBjb2RlCisgICAgICAgIGRvZXMgYWRkICJpcyBudWxsYWJsZSIgY2hlY2sgdG8gdGhlIGV2YWx1
YXRpb24gY29uZGl0aW9uCisgICAgICAgIChpLmUuIGlmIChhcmcuaXNOdWxsKCkgfHwgLi4uKSks
IHdoZW4gdGhlIEpTVmFsdWUKKyAgICAgICAgdGhhdCBob2xkcyBhICJudWxsIiBKU09iamVjdCBp
cyBhY3R1YWxseSB0byBiZSAiY29udmVydGVkIgorICAgICAgICB0byBhIG5hdGl2ZSBWZWN0b3I8
VD4sIGl0IGZhaWxzLgorCisgICAgICAgIFRoZSByZWFzb24gZm9yIHRoZSBmYWlsdXJlIGlzIGlu
IEpTRE9NQmluZGluZ3M6OnRvTmF0aXZlQXJyYXkuCisgICAgICAgIFRoaXMgbWV0aG9kIHZlcmlm
aWVzIHRoYXQgSlNWYWx1ZSBkb2VzIG5vdCBob2xkIGEgIm5vbi1udWxsIgorICAgICAgICBvYmpl
Y3QsIGFuZCBpdCBiYWlscyBvdXQuCisgICAgICAgIEFuYWxvZ2x5LCB0aGUgInJlZiBwdHIiIHZh
cmlhbnQgb2YgdGhpcyBtZXRob2QgKHRvUmVmUHRyTmF0aXZlQXJyYXkpCisgICAgICAgIGRvZXMg
c3VwcG9ydCBudWxsYWJsZXMuCisKKyAgICAgICAgUGF0Y2ggZml4ZXMgaXQgYmUgY2hlY2tpbmcg
Zm9yIGEgIm51bGwiIEpTVmFsdWUgY2hlY2sgYmVmb3JlIGhhbmQuCisKKyAgICAgICAgVGVzdHM6
IEJpbmRpbmcgdGVzdHMgdXBkYXRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6dG9OYXRpdmVBcnJheSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChKU1ZhbHVlVG9OYXRp
dmUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0L1dlYlNvY2tldC5pZGw6CisgICAgICAg
IFJlbW92ZWQgb25lIG92ZXJsb2FkIGN0b3Igbm93IHRoYXQKKyAgICAgICAgd2UgY2FuIHVzZSBu
dWxsYWJsZSBzZXF1ZW5jZXMuCisKIDIwMTQtMDUtMjcgIFRpYm9yIE1lc3phcm9zICA8dG1lc3ph
cm9zLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmVtb3ZlIEJMT0Ig
Z3VhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aWRsCmluZGV4IDU5ZGU5NjkuLmJkNWNiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCkBAIC0zNCw4ICszNCw3IEBACiAgICAgRW5hYmxl
ZEF0UnVudGltZSwKICAgICBDb25kaXRpb25hbD1XRUJfU09DS0VUUywKICAgICBBY3RpdmVET01P
YmplY3QsCi0gICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHVybCksCi0gICAgQ29uc3RydWN0b3Io
RE9NU3RyaW5nIHVybCwgc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm90b2NvbHMpLAorICAgIENvbnN0
cnVjdG9yKERPTVN0cmluZyB1cmwsIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgc2VxdWVu
Y2U8RE9NU3RyaW5nPj8gcHJvdG9jb2xzKSwKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdXJs
LCBET01TdHJpbmcgcHJvdG9jb2wpLAogICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAog
ICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggMGQxMjE0YS4uYTljOGRiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTUxMyw2ICs1
MTMsMTAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSlNUPiBWZWN0b3I8UmVmUHRy
PFQ+PiB0b1JlZlB0ck5hdGl2ZUFycmF5KEpTQzo6RXgKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
VmVjdG9yPFQ+IHRvTmF0aXZlQXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKKyAgICBKU0M6OkpTT2JqZWN0KiBvYmplY3QgPSB2YWx1ZS5nZXRPYmplY3Qo
KTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIFZlY3RvcjxUPigpOworCiAgICAg
dW5zaWduZWQgbGVuZ3RoID0gMDsKICAgICBpZiAoaXNKU0FycmF5KHZhbHVlKSkgewogICAgICAg
ICBKU0M6OkpTQXJyYXkqIGFycmF5ID0gYXNBcnJheSh2YWx1ZSk7CkBAIC01MjAsNyArNTI0LDYg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVmVjdG9yPFQ+IHRvTmF0aXZlQXJyYXkoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZQogICAgIH0gZWxzZQogICAgICAgICB0b0pTU2VxdWVu
Y2UoZXhlYywgdmFsdWUsIGxlbmd0aCk7CiAKLSAgICBKU0M6OkpTT2JqZWN0KiBvYmplY3QgPSB2
YWx1ZS5nZXRPYmplY3QoKTsKICAgICBWZWN0b3I8VD4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CiAgICAgdHlwZWRlZiBOYXRpdmVWYWx1ZVRyYWl0
czxUPiBUcmFpdHNUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAwZWNkNjUxLi5hNWMzYTY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcApAQCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMjYsIC0xIH0sCisg
ICAgeyAxMjgsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0
SGFzaEluZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9IHsKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA1LCAtMSB9LAotICAgIHsgMTM0LCAtMSB9
LAorICAgIHsgMTM2LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LApAQCAtNDI1LDggKzQyNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29t
cGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUzMF0gPSB7CiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMjcs
IC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKKyAgICB7IDEyOSwgLTEgfSwKKyAgICB7IDEyMiwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAg
LTUwNywxMCArNTA3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBK
U1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IDgsIDUxMiB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMzAsIC0xIH0sCisgICAgeyAx
MzIsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDU4LCA1MjggfSwKLSAgICB7IDEzNSwg
LTEgfSwKKyAgICB7IDEzNywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKQEAgLTUxOSw3ICs1MTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBdID0gewog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsg
MTMxLCAtMSB9LAorICAgIHsgMTMzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAxMDMs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTU2NSw4ICs1NjUsOCBAQCBzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBd
ID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMTI4LCAtMSB9LAotICAgIHsgMTIzLCAtMSB9LAorICAgIHsgMTMwLCAtMSB9LAorICAg
IHsgMTI1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LApAQCAtNTkzLDcgKzU5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhh
c2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUzMF0gPSB7CiAgICAgeyA0Mywg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwK
KyAgICB7IDEyMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKQEAgLTYxNiw3ICs2MTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBh
Y3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBdID0gewogICAgIHsg
MjgsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTI0LCAt
MSB9LAorICAgIHsgMTI2LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAzNSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LApAQCAtNzIxLDcgKzcyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4WzUzMF0gPSB7CiAg
ICAgeyA1MiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgNzQsIC0xIH0sCi0gICAgeyAx
MzIsIC0xIH0sCisgICAgeyAxMzQsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC03NjAsMTEgKzc2MCwxMSBAQCBzdGF0aWMgY29uc3Qg
c3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleFs1MzBd
ID0gewogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA3LCA1MjUgfSwKICAgICB7IC0xLCAtMSB9LAot
ICAgIHsgMTI1LCAtMSB9LAorICAgIHsgMTI3LCAtMSB9LAogICAgIHsgMTA2LCAtMSB9LAogICAg
IHsgNzUsIDUyMCB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMjIsIC0xIH0sCisgICAgeyAx
MjQsIC0xIH0sCiAgICAgeyA4MywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCkBAIC03ODcsOSArNzg3LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTVGVzdE9ialByb3RvdHlwZVRhYmxlSW5kZXhbNTMwXSA9IHsKICAgICB7IDEwNCwgLTEg
fSwKICAgICB7IDExNSwgLTEgfSwKICAgICB7IDExNiwgLTEgfSwKLSAgICB7IDEyMSwgLTEgfSwK
LSAgICB7IDEyOSwgLTEgfSwKLSAgICB7IDEzMywgLTEgfSwKKyAgICB7IDEyMywgLTEgfSwKKyAg
ICB7IDEzMSwgLTEgfSwKKyAgICB7IDEzNSwgLTEgfSwKIH07CiAKIApAQCAtOTQ0LDYgKzk0NCw4
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5j
ZSksIChpbnRwdHJfdCkgKDEpIH0sCiAgICAgeyAic3RyaW5nQXJyYXlGdW5jdGlvbiIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbiksIChpbnRw
dHJfdCkgKDEpIH0sCiAgICAgeyAiZG9tU3RyaW5nTGlzdEZ1bmN0aW9uIiwgSlNDOjpGdW5jdGlv
biwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24pLCAoaW50cHRyX3Qp
ICgxKSB9LAorICAgIHsgIm1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZSIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxs
YWJsZVNlcXVlbmNlKSwgKGludHB0cl90KSAoMikgfSwKKyAgICB7ICJtZXRob2RXaXRoQW5kV2l0
aG91dE51bGxhYmxlU2VxdWVuY2UyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UyKSwgKGludHB0cl90KSAoMikg
fSwKICAgICB7ICJnZXRTVkdEb2N1bWVudCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uR2V0U1ZHRG9jdW1lbnQpLCAoaW50cHRyX3QpICgwKSB9LAogICAgIHsgImNvbnZlcnQx
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MSksIChpbnRwdHJf
dCkgKDEpIH0sCiAgICAgeyAiY29udmVydDIiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQyKSwgKGludHB0cl90KSAoMSkgfSwKQEAgLTk2MSw3ICs5NjMsNyBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiAgICAgeyAiYW55IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Bbnkp
LCAoaW50cHRyX3QpICgyKSB9LAogfTsKIAotc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RP
YmpQcm90b3R5cGVUYWJsZSA9IHsgMTM2LCA1MTEsIHRydWUsIEpTVGVzdE9ialByb3RvdHlwZVRh
YmxlVmFsdWVzLCAwLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZUluZGV4IH07CitzdGF0aWMgY29u
c3QgSGFzaFRhYmxlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlID0geyAxMzgsIDUxMSwgdHJ1ZSwg
SlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAsIEpTVGVzdE9ialByb3RvdHlwZVRhYmxl
SW5kZXggfTsKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IlRlc3RPYmplY3RQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0T2JqUHJvdG90eXBl
VGFibGUsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T2JqUHJvdG90eXBlKSB9OwogCiBK
U09iamVjdCogSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKQEAgLTQxNzMsNiArNDE3NSw0NiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9u
KEV4ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAorRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhB
bmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKKyAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqZXhl
YywgIlRlc3RPYmoiLCAibWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlIik7Cisg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8o
KSk7CisgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKKyAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CisgICAgVmVjdG9yPHVuc2ln
bmVkPiBhcnJheUFyZyh0b05hdGl2ZUFycmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVu
dCgwKSkpOworICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgVmVjdG9yPHVuc2ln
bmVkPiBudWxsYWJsZUFycmF5QXJnKHRvTmF0aXZlQXJyYXk8dW5zaWduZWQ+KGV4ZWMsIGV4ZWMt
PmFyZ3VtZW50KDEpKSk7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpbXBs
Lm1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZShhcnJheUFyZywgbnVsbGFibGVB
cnJheUFyZyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30K
KworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZTIoRXhlY1N0YXRlKiBleGVjKQor
eworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CisgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCisgICAgICAgIHJldHVybiB0aHJvd1RoaXNU
eXBlRXJyb3IoKmV4ZWMsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVT
ZXF1ZW5jZTIiKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpT
VGVzdE9iajo6aW5mbygpKTsKKyAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKKyAg
ICBWZWN0b3I8dW5zaWduZWQ+IGFycmF5QXJnKHRvTmF0aXZlQXJyYXk8dW5zaWduZWQ+KGV4ZWMs
IGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICBWZWN0b3I8dW5zaWduZWQ+IG51bGxhYmxlQXJyYXlBcmcodG9OYXRpdmVBcnJheTx1bnNpZ25l
ZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgIGltcGwubWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlMihhcnJh
eUFyZywgbnVsbGFibGVBcnJheUFyZyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDg4NDc3MWYu
LjNmZDFhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmgKQEAgLTIyMiw2ICsyMjIsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhD
bGFtcAogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEpTQzo6RXhlY1N0YXRlKik7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdM
aXN0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVs
bGFibGVTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXRO
dWxsYWJsZVNlcXVlbmNlMihKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQoSlND
OjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0
MihKU0M6OkV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDE4NzRlNzkuLmJkMWY4OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTIwNyw2ICsy
MDcsOSBAQCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9uYWxW
YWx1ZTIiLCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgdm9pZCBtZXRob2RXaXRoVW5zaWduZWRM
b25nU2VxdWVuY2Uoc2VxdWVuY2U8dW5zaWduZWQgbG9uZz4gdW5zaWduZWRMb25nU2VxdWVuY2Up
OwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZ1tdIHN0cmluZ0FycmF5RnVuY3Rpb24o
RE9NU3RyaW5nW10gdmFsdWVzKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBET01TdHJpbmdMaXN0
IGRvbVN0cmluZ0xpc3RGdW5jdGlvbihET01TdHJpbmdMaXN0IHZhbHVlcyk7CisKKyAgICB2b2lk
ICAgIG1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZShzZXF1ZW5jZTx1bnNpZ25l
ZCBsb25nPiBhcnJheUFyZywgc2VxdWVuY2U8dW5zaWduZWQgbG9uZz4/IG51bGxhYmxlQXJyYXlB
cmcpOworICAgIHZvaWQgICAgbWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlMih1
bnNpZ25lZCBsb25nW10gYXJyYXlBcmcsIHVuc2lnbmVkIGxvbmdbXT8gbnVsbGFibGVBcnJheUFy
Zyk7CiAjZW5kaWYKIAogICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gcmVhZG9ubHkgYXR0cmli
dXRlIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKLS0gCjEuOC40LjEKCg==
</data>
<flag name="review"
          id="256621"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>