<?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>58280</bug_id>
          
          <creation_ts>2011-04-11 15:43:00 -0700</creation_ts>
          <short_desc>SerializedScriptValue shouldn&apos;t always throw exceptions</short_desc>
          <delta_ts>2011-06-18 19:17:20 -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 JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephanie Lewis">slewis</reporter>
          <assigned_to name="Stephanie Lewis">slewis</assigned_to>
          <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>383610</commentid>
    <comment_count>0</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-11 15:43:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/9252824&gt; javascript in an inconsistent state due to serialization returning an un-handled exception

SerializedScriptValue is used in several places that don&apos;t call back into javascript.  The callers should decide whether or not to throw exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383639</commentid>
    <comment_count>1</comment_count>
      <attachid>89113</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-11 16:07:21 -0700</bug_when>
    <thetext>Created attachment 89113
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383642</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-11 16:10:18 -0700</bug_when>
    <thetext>Attachment 89113 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebCore/loader/FrameLoader.h:42:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/bindings/js/SerializedScriptValue.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/bindings/js/SerializedScriptValue.h:54:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/js/SerializedScriptValue.h:54:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/js/SerializedScriptValue.h:54:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/bindings/js/SerializedScriptValue.h:67:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/js/SerializedScriptValue.h:67:  The parameter name &quot;globalObject&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/js/SerializedScriptValue.h:67:  Missing spaces around =  [whitespace/operators] [4]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1259:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1318:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1346:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1393:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1422:  Non-label code inside switch statements should be indented.  [whitespace/indent] [4]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1422:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1424:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1425:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1427:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1428:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1430:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1431:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/bindings/js/SerializedScriptValue.cpp:1434:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1239:  Missing space before ( in if(  [whitespace/parens] [5]
Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1240:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 25 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383647</commentid>
    <comment_count>3</comment_count>
      <attachid>89113</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-11 16:16:15 -0700</bug_when>
    <thetext>Comment on attachment 89113
patch

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

Rather than a bool i&apos;d prefer
enum SerializationErrorMode { Throwing, NonThrowing }

as that makes things more explicit.

The use of Global will also fail on ToT as geoff has renamed everything, i believe you&apos;ll want heap/Strong.h and Strong&lt;..&gt;

r-ing due to the style errors, and it failing to build on tot :-(

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1435
&gt; +    switch (code) {
&gt; +    case SuccessfullyCompleted:
&gt; +    	break;
&gt; +    case StackOverflowError:
&gt; +    	throwError(exec, createStackOverflowError(exec));
&gt; +    	break;
&gt; +    case InterruptedExecutionError:
&gt; +    	throwError(exec, createInterruptedExecutionException(&amp;exec-&gt;globalData()));
&gt; +    	break;
&gt; +    case ValidationError:
&gt; +    	throwError(exec, createTypeError(exec, &quot;Unable to deserialize data.&quot;));
&gt; +    	break;
&gt; +    case ExistingExceptionError:
&gt; +    case UnspecifiedError:        
&gt; +    	break;
&gt; +    }

I don&apos;t like this code, i&apos;d prefer:
if (code == SuccessfullyCompleted)
    return;
switch (code) {
case ...:
   throwError(exec, ...)
   return;
default:
   return;

Also UnspecifiedError and ExistingExceptionError should both create a generic exception message (as we apparently don&apos;t know what has gone wrong).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383667</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-04-11 16:29:36 -0700</bug_when>
    <thetext>Attachment 89113 did not build on qt:
Build output: http://queues.webkit.org/results/8391073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383777</commentid>
    <comment_count>5</comment_count>
      <attachid>89147</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-11 19:44:14 -0700</bug_when>
    <thetext>Created attachment 89147
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383779</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-11 20:00:22 -0700</bug_when>
    <thetext>Attachment 89113 did not build on win:
Build output: http://queues.webkit.org/results/8386764</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384181</commentid>
    <comment_count>7</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-04-12 11:28:16 -0700</bug_when>
    <thetext>Attachment 89147 did not build on gtk:
Build output: http://queues.webkit.org/results/8392496</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384381</commentid>
    <comment_count>8</comment_count>
      <attachid>89147</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-12 14:28:21 -0700</bug_when>
    <thetext>Comment on attachment 89147
patch

r=me, gtk seems to have failed on its own</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384403</commentid>
    <comment_count>9</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-12 14:52:26 -0700</bug_when>
    <thetext>gtk failure was fallout from removing a header from SerializedScriptValue.h.  It just needed a header include.

committed http://trac.webkit.org/projects/webkit/changeset/83645</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384467</commentid>
    <comment_count>10</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-12 16:10:03 -0700</bug_when>
    <thetext>Oops, I broke a test.  Patch to fix it coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384473</commentid>
    <comment_count>11</comment_count>
      <attachid>89299</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-12 16:16:25 -0700</bug_when>
    <thetext>Created attachment 89299
patch to fix layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384474</commentid>
    <comment_count>12</comment_count>
      <attachid>89300</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-12 16:17:51 -0700</bug_when>
    <thetext>Created attachment 89300
patch to fix layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384481</commentid>
    <comment_count>13</comment_count>
      <attachid>89300</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-12 16:21:57 -0700</bug_when>
    <thetext>Comment on attachment 89300
patch to fix layout test

r=me, but the =0/=1 are unnecessary, and i want a follow up patch that removes the implicit checks that obviously must currently exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384523</commentid>
    <comment_count>14</comment_count>
      <attachid>89311</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-12 17:09:18 -0700</bug_when>
    <thetext>Created attachment 89311
patch to fix layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384530</commentid>
    <comment_count>15</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-04-12 17:14:16 -0700</bug_when>
    <thetext>layout test fixed http://trac.webkit.org/projects/webkit/changeset/83668</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423126</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-18 10:13:10 -0700</bug_when>
    <thetext>Is this bug fixed?  If also, please close the bug and clear r+ flags so that it won&apos;t show up on the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423219</commentid>
    <comment_count>17</comment_count>
      <attachid>89300</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-18 13:23:15 -0700</bug_when>
    <thetext>Comment on attachment 89300
patch to fix layout test

Cleared Oliver Hunt&apos;s review+ from obsolete attachment 89300 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423248</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-18 13:43:08 -0700</bug_when>
    <thetext>Attachment 89311 was posted by a committer and has review+, assigning to Stephanie Lewis for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423299</commentid>
    <comment_count>19</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2011-06-18 19:17:20 -0700</bug_when>
    <thetext>was committed http://trac.webkit.org/projects/webkit/changeset/83668</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89113</attachid>
            <date>2011-04-11 16:07:21 -0700</date>
            <delta_ts>2011-04-11 19:44:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>SerializePatch</filename>
            <type>text/plain</type>
            <size>24308</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNTAxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDQtMTEgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyNTI4MjQ+IGphdmFzY3JpcHQg
aW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIGR1ZSB0byBzZXJpYWxpemF0aW9uIHJldHVybmluZyBh
biB1bi1oYW5kbGVkIGV4Y2VwdGlvbgorICAgICAgICBDdXJyZW50bHkgc2VyaWFsaXphdGlvbiBh
bmQgZGVzZXJpYWxpemF0aW9uIGNhbiB0aHJvdyBqYXZhc2NyaXB0IGV4Y2VwdGlvbnMuICBTaW5j
ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgaXMgY2FsbGVkIGluCisgICAgICAgIHNldmVyYWwgcGxh
Y2VzIHRoYXQgZG8gbm90IGFsd2F5cyBpbnZvbHZlIGRpcmVjdCBjYWxscyBpbnRvIGphdmFzY3Jp
cHQgaGF2ZSB0aGUgZnVuY3Rpb25zIHJldHVybiBhbiBlcnJvciBjb2RlIGFuZCB0aGUgY2FsbGVy
cworICAgICAgICBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gdGhyb3cgZXhjZXB0aW9ucy4KKwor
ICAgICAgICBEb24ndCBhbGxvdyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdG8gYXR0ZW1wdCB0byBz
ZXJpYWxpemUgb2JqZWN0cyB0aGF0IGluaGVyaXQgZnJvbSBKU05hdmlnYXRvci5oLiAgV2Fsa2lu
ZyB0aGF0IG9iamVjdCBjcmVhdGVzCisgICAgICAgIGFkZGl0aW9uYWwgb2JqZWN0cyB3aGljaCBl
dmVudHVhbGx5IGNhdXNlcyBzZXJpYWxpemF0aW9uIHRvIGVuZCB1cCB0aHJvd2luZyBhIHN0YWNr
IG92ZXJmbG93IGVycm9yLiAgSW5zdGVhZCBmYWlsIGltbWVkaWF0ZWx5LgorCisgICAgICAgIFVu
dGFuZ2xlIGhlYWRlciBpbmNsdWRlcy4gIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB3YXMgaW5oZXJp
dGluZyBTY3JpcHRWYWx1ZS5oLCBidXQgbm90IHVzaW5nIGl0LiAgU2luY2UgU2NyaXB0VmFsdWUg
ZGVwZW5kcyBvbgorICAgICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdGhpcyBjb3VsZCBsZWFk
IHRvIGEgY2lyY3VsYXIgaGVhZGVyIGRlcGVuZGVuY3kuCisKKyAgICAgICAgTm8gY2hhbmdlIGlu
IGZ1bmN0aW9uYWxpdHksIGNvdmVyZWQgYnkgY3VycmVudCB0ZXN0cworCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFZhbHVlOjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0VmFs
dWU6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6bWF5YmVUaHJvd0V4Y2VwdGlvbklmU2VyaWFsaXphdGlvbkZhaWxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6YXRpb25EaWRDb21w
bGV0ZVN1Y2Nlc3NmdWxseSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmg6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNw
cDogaGVhZGVyIGluY2x1ZGUgZml4CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6IGhl
YWRlciBpbmNsdWRlIGZpeAorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOiBoZWFkZXIgaW5jbHVk
ZSBmaXgKKwogMjAxMS0wNC0xMSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiA4MzEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NDcsNyArNTQ3LDcgQEAgX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIyNHNjaAogX19aTjdXZWJDb3JlMjFTVkdEb2N1bWVudEV4dGVuc2lvbnMyMXNhbXBs
ZUFuaW1hdGlvbkF0VGltZUVSS04zV1RGNlN0cmluZ0VQTlNfMTRTVkdTTUlMRWxlbWVudEVkCiBf
X1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTExZGVzZXJpYWxpemVFUEsxNU9wYXF1
ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2Ny
aXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVKU0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1ZVBTNl8K
LV9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlNmNyZWF0ZUVQTjNKU0M5RXhlY1N0
YXRlRU5TMV83SlNWYWx1ZUUKK19fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlNmNy
ZWF0ZUVQTjNKU0M5RXhlY1N0YXRlRU5TMV83SlNWYWx1ZUViCiBfX1pON1dlYkNvcmUyMVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUMxRVJOM1dURjZWZWN0b3JJaExtMEVFRQogX19aTjdXZWJDb3JlMjFT
ZXJpYWxpemVkU2NyaXB0VmFsdWVEMUV2CiBfX1pON1dlYkNvcmUyMVVzZXJDb250ZW50VVJMUGF0
dGVybjVwYXJzZUVSS04zV1RGNlN0cmluZ0UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDgzMTI4KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw4IEBAIEpTQzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVu
dDo6aW5pdE1lc3NhZ2UKICAgICBib29sIGNhbkJ1YmJsZUFyZyA9IGV4ZWMtPmFyZ3VtZW50KDEp
LnRvQm9vbGVhbihleGVjKTsKICAgICBib29sIGNhbmNlbGFibGVBcmcgPSBleGVjLT5hcmd1bWVu
dCgyKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IGRhdGFBcmcgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCBleGVjLT5h
cmd1bWVudCgzKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICBjb25zdCBVU3RyaW5nJiBvcmlnaW5BcmcgPSBleGVjLT5h
cmd1bWVudCg0KS50b1N0cmluZyhleGVjKTsKICAgICBjb25zdCBVU3RyaW5nJiBsYXN0RXZlbnRJ
ZEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDUpLnRvU3RyaW5nKGV4ZWMpOwogICAgIERPTVdpbmRvdyog
c291cmNlQXJnID0gdG9ET01XaW5kb3coZXhlYy0+YXJndW1lbnQoNikpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAJKHJl
dmlzaW9uIDgzMTI4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUg
IkpTV29ya2VyQ29udGV4dEJhc2UuaCIKIAorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgog
I2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIkpTU2hhcmVk
V29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dC5oIgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcAkocmV2aXNpb24gODMxMjgp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMCwxNCArMTAwLDE0IEBAIGJvb2wgU2NyaXB0VmFsdWU6OmlzRnVuY3Rpb24o
KSBjb25zdAogICAgIHJldHVybiBnZXRDYWxsRGF0YShtX3ZhbHVlLmdldCgpLCBjYWxsRGF0YSkg
IT0gQ2FsbFR5cGVOb25lOwogfQogCi1QYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
U2NyaXB0VmFsdWU6OnNlcmlhbGl6ZShTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUpCitQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZShTY3JpcHRT
dGF0ZSogc2NyaXB0U3RhdGUsIGJvb2wgdGhyb3dFeGNlcHRpb25zKQogewotICAgIHJldHVybiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzY3JpcHRTdGF0ZSwganNWYWx1ZSgpKTsKKyAg
ICByZXR1cm4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc2NyaXB0U3RhdGUsIGpzVmFs
dWUoKSwgdGhyb3dFeGNlcHRpb25zKTsKIH0KIAotU2NyaXB0VmFsdWUgU2NyaXB0VmFsdWU6OmRl
c2VyaWFsaXplKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgU2VyaWFsaXplZFNjcmlwdFZhbHVl
KiB2YWx1ZSkKK1NjcmlwdFZhbHVlIFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZShTY3JpcHRTdGF0
ZSogc2NyaXB0U3RhdGUsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogdmFsdWUsIGJvb2wgdGhyb3dF
eGNlcHRpb25zKQogewotICAgIHJldHVybiBTY3JpcHRWYWx1ZShzY3JpcHRTdGF0ZS0+Z2xvYmFs
RGF0YSgpLCB2YWx1ZS0+ZGVzZXJpYWxpemUoc2NyaXB0U3RhdGUsIHNjcmlwdFN0YXRlLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpKTsKKyAgICByZXR1cm4gU2NyaXB0VmFsdWUoc2NyaXB0U3RhdGUt
Pmdsb2JhbERhdGEoKSwgdmFsdWUtPmRlc2VyaWFsaXplKHNjcmlwdFN0YXRlLCBzY3JpcHRTdGF0
ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0aHJvd0V4Y2VwdGlvbnMpKTsKIH0KIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRW
YWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZh
bHVlLmgJKHJldmlzaW9uIDgzMTI4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAKICAg
ICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2NyaXB0VmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlID09IG90aGVyLm1fdmFsdWU7IH0KIAotICAgIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBzZXJpYWxpemUoU2NyaXB0U3RhdGUqKTsKLSAgICBzdGF0aWMgU2NyaXB0
VmFsdWUgZGVzZXJpYWxpemUoU2NyaXB0U3RhdGUqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUqKTsK
KyAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplKFNjcmlwdFN0
YXRlKiwgYm9vbCB0aHJvd0V4Y2VwdGlvbnMpOworICAgIHN0YXRpYyBTY3JpcHRWYWx1ZSBkZXNl
cmlhbGl6ZShTY3JpcHRTdGF0ZSosIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgdGhyb3dF
eGNlcHRpb25zKTsKIAogICAgIHN0YXRpYyBTY3JpcHRWYWx1ZSB1bmRlZmluZWQoKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCShyZXZpc2lvbiA4MzEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJKU0ZpbGUuaCIKICNpbmNsdWRlICJKU0ZpbGVMaXN0LmgiCiAjaW5jbHVk
ZSAiSlNJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJKU05hdmlnYXRvci5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9BUElDYXN0Lmg+CkBAIC0xNjAsNiArMTYxLDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGlu
dCBTdHJpbmdQb29sVGFnIAogICogICAgUmVnRXhwVGFnIDxwYXR0ZXJuOlN0cmluZ0RhdGE+PGZs
YWdzOlN0cmluZ0RhdGE+CiAgKi8KIAordHlwZWRlZiBwYWlyPEpTQzo6SlNWYWx1ZSwgU2VyaWFs
aXphdGlvblJldHVybkNvZGU+IERlc2VyaWFsaXphdGlvblJlc3VsdDsKKwogY2xhc3MgQ2xvbmVC
YXNlIHsKIHByb3RlY3RlZDoKICAgICBDbG9uZUJhc2UoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjQ3
LDcgKzI1MCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMgYm9vbCB3cml0ZUwKIAog
Y2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Ym9vbCBzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8dWlu
dDhfdD4mIG91dCkKKyAgICBzdGF0aWMgU2VyaWFsaXphdGlvblJldHVybkNvZGUgc2VyaWFsaXpl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPHVpbnQ4X3Q+JiBvdXQpCiAg
ICAgewogICAgICAgICBDbG9uZVNlcmlhbGl6ZXIgc2VyaWFsaXplcihleGVjLCBvdXQpOwogICAg
ICAgICByZXR1cm4gc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUpOwpAQCAtMjc0LDcgKzI3Nyw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9uKTsKICAgICB9CiAKLSAg
ICBib29sIHNlcmlhbGl6ZShKU1ZhbHVlIGluKTsKKyAgICBTZXJpYWxpemF0aW9uUmV0dXJuQ29k
ZSBzZXJpYWxpemUoSlNWYWx1ZSBpbik7CiAKICAgICBib29sIGlzQXJyYXkoSlNWYWx1ZSB2YWx1
ZSkKICAgICB7CkBAIC00MTQsNiArNDE3LDEzIEBAIHByaXZhdGU6CiAKICAgICAgICAgaWYgKGlz
QXJyYXkodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAKKyAg
ICAgICAgLy8gT2JqZWN0IGNhbm5vdCBiZSBzZXJpYWxpemVkIGJlY2F1c2UgdGhlIGFjdCBvZiB3
YWxraW5nIHRoZSBvYmplY3QgY3JlYXRlcyBuZXcgb2JqZWN0cworICAgICAgICBpZiAodmFsdWUu
aXNPYmplY3QoKSAmJiBhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCZKU05hdmlnYXRvcjo6c19p
bmZvKSkgeworICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAgd3JpdGUoTnVsbFRhZyk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgCisgICAgICAgIH0KIAogICAgICAgICBpZiAodmFs
dWUuaXNPYmplY3QoKSkgewogICAgICAgICAgICAgSlNPYmplY3QqIG9iaiA9IGFzT2JqZWN0KHZh
bHVlKTsKQEAgLTU5OCw3ICs2MDgsNyBAQCBwcml2YXRlOgogICAgIElkZW50aWZpZXIgbV9lbXB0
eUlkZW50aWZpZXI7CiB9OwogCi1ib29sIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFs
dWUgaW4pCitTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6
ZShKU1ZhbHVlIGluKQogewogICAgIFZlY3Rvcjx1aW50MzJfdCwgMTY+IGluZGV4U3RhY2s7CiAg
ICAgVmVjdG9yPHVpbnQzMl90LCAxNj4gbGVuZ3RoU3RhY2s7CkBAIC02MTQsMTAgKzYyNCw4IEBA
IGJvb2wgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAKICAgICAgICAgICAgIGFy
cmF5U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFN0YXRlOiB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKGlzQXJyYXkoaW5WYWx1ZSkpOwotICAgICAgICAgICAgICAgIGlm
IChpbnB1dE9iamVjdFN0YWNrLnNpemUoKSArIGlucHV0QXJyYXlTdGFjay5zaXplKCkgPiBtYXhp
bXVtRmlsdGVyUmVjdXJzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93U3RhY2tPdmVy
ZmxvdygpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmIChpbnB1dE9iamVjdFN0YWNrLnNpemUoKSArIGlucHV0
QXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gU3RhY2tPdmVyZmxvd0Vycm9yOwogCiAgICAgICAgICAgICAgICAgSlNB
cnJheSogaW5BcnJheSA9IGFzQXJyYXkoaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gaW5BcnJheS0+bGVuZ3RoKCk7CkBAIC02MzEsMTAgKzYzOSw4IEBAIGJvb2wg
Q2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAKICAgICAgICAgICAgIGFycmF5U3Rh
cnRWaXNpdE1lbWJlcjoKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFZpc2l0TWVtYmVyOiB7
CiAgICAgICAgICAgICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoZGlkVGltZU91dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0ludGVy
cnVwdGVkRXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZFRpbWVP
dXQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcnJ1cHRlZEV4ZWN1dGlv
bkVycm9yOwogICAgICAgICAgICAgICAgICAgICB0aWNrQ291bnQgPSB0aWNrc1VudGlsTmV4dENo
ZWNrKCk7CiAgICAgICAgICAgICAgICAgfQogCkBAIC02NzMsMTAgKzY3OSw4IEBAIGJvb2wgQ2xv
bmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAKICAgICAgICAgICAgIG9iamVjdFN0YXJ0
U3RhdGU6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAgICAgICAgICAg
ICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoaW5w
dXRPYmplY3RTdGFjay5zaXplKCkgKyBpbnB1dEFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZp
bHRlclJlY3Vyc2lvbikgewotICAgICAgICAgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3co
KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAoaW5wdXRPYmplY3RTdGFjay5zaXplKCkgKyBpbnB1dEFycmF5
U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFN0YWNrT3ZlcmZsb3dFcnJvcjsKICAgICAgICAgICAgICAgICBKU09iamVjdCog
aW5PYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0
T2JqZWN0KGluT2JqZWN0KSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC02ODksMTAg
KzY5Myw4IEBAIGJvb2wgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAKICAgICAg
ICAgICAgIG9iamVjdFN0YXJ0VmlzaXRNZW1iZXI6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0
YXJ0VmlzaXRNZW1iZXI6IHsKICAgICAgICAgICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBpZiAoZGlkVGltZU91dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElu
dGVycnVwdGVkRXhlY3V0aW9uRXJyb3I7CiAgICAgICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9
IHRpY2tzVW50aWxOZXh0Q2hlY2soKTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTcwOCw3ICs3
MTAsNyBAQCBib29sIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgCiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGluVmFsdWUgPSBnZXRQcm9wZXJ0eShvYmplY3Qs
IHByb3BlcnRpZXNbaW5kZXhdKTsKICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkVGVybWluYXRl
KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEV4aXN0aW5nRXhjZXB0aW9uRXJyb3I7CiAKICAgICAgICAgICAgICAgICBpZiAo
IWluVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gUHJvcGVydHkgd2FzIHJlbW92ZWQg
ZHVyaW5nIHNlcmlhbGlzYXRpb24KQEAgLTcxOCw3ICs3MjAsNyBAQCBib29sIENsb25lU2VyaWFs
aXplcjo6c2VyaWFsaXplKEpTVmFsdWUgCiAgICAgICAgICAgICAgICAgd3JpdGUocHJvcGVydGll
c1tpbmRleF0pOwogCiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFRlcm1pbmF0ZSgpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOwogCiAgICAgICAgICAgICAgICAgaWYgKCFkdW1wSWZU
ZXJtaW5hbChpblZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICBzdGF0ZVN0YWNrLmFwcGVu
ZChPYmplY3RFbmRWaXNpdE1lbWJlcik7CkBAIC03MjgsNyArNzMwLDcgQEAgYm9vbCBDbG9uZVNl
cmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVlIAogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Y2FzZSBPYmplY3RFbmRWaXNpdE1lbWJlcjogewogICAgICAgICAgICAgICAgIGlmIChzaG91bGRU
ZXJtaW5hdGUoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRXhpc3RpbmdFeGNlcHRpb25FcnJvcjsKIAogICAgICAgICAgICAg
ICAgIGluZGV4U3RhY2subGFzdCgpKys7CiAgICAgICAgICAgICAgICAgZ290byBvYmplY3RTdGFy
dFZpc2l0TWVtYmVyOwpAQCAtNzQ5LDE3ICs3NTEsMTUgQEAgYm9vbCBDbG9uZVNlcmlhbGl6ZXI6
OnNlcmlhbGl6ZShKU1ZhbHVlIAogICAgICAgICBzdGF0ZVN0YWNrLnJlbW92ZUxhc3QoKTsKIAog
ICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAgICBpZiAoZGlkVGltZU91dCgp
KSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dJbnRlcnJ1cHRlZEV4Y2VwdGlvbigpOwotICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChk
aWRUaW1lT3V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEludGVycnVwdGVkRXhlY3V0aW9u
RXJyb3I7CiAgICAgICAgICAgICB0aWNrQ291bnQgPSB0aWNrc1VudGlsTmV4dENoZWNrKCk7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgaWYgKG1fZmFpbGVkKQotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJldHVybiBVbnNwZWNpZmllZEVycm9yOwogCi0gICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIFN1Y2Nlc3NmdWxseUNvbXBsZXRlZDsKIH0KIAogY2xhc3MgQ2xvbmVEZXNlcmlh
bGl6ZXIgOiBDbG9uZUJhc2UgewpAQCAtNzgzLDE1ICs3ODMsMTMgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gU3RyaW5nKHN0ci5pbXBsKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBKU1ZhbHVl
IGRlc2VyaWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgc3RhdGljIERlc2VyaWFsaXph
dGlvblJlc3VsdCBkZXNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQogICAgIHsKICAgICAg
ICAgaWYgKCFidWZmZXIuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAg
ICAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihqc051bGwoKSwgVW5zcGVjaWZpZWRFcnJvcik7CiAg
ICAgICAgIENsb25lRGVzZXJpYWxpemVyIGRlc2VyaWFsaXplcihleGVjLCBnbG9iYWxPYmplY3Qs
IGJ1ZmZlcik7Ci0gICAgICAgIGlmICghZGVzZXJpYWxpemVyLmlzVmFsaWQoKSkgewotICAgICAg
ICAgICAgZGVzZXJpYWxpemVyLnRocm93VmFsaWRhdGlvbkVycm9yKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZSgpOwotICAgICAgICB9CisgICAgICAgIGlmICghZGVzZXJpYWxpemVyLmlz
VmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX3BhaXIoSlNWYWx1ZSgpLCBWYWxpZGF0
aW9uRXJyb3IpOwogICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyLmRlc2VyaWFsaXplKCk7CiAg
ICAgfQogCkBAIC04NDYsNyArODQ0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fdmVyc2lv
biA9IDB4RkZGRkZGRkY7CiAgICAgfQogCi0gICAgSlNWYWx1ZSBkZXNlcmlhbGl6ZSgpOworICAg
IERlc2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZSgpOwogCiAgICAgdm9pZCB0aHJvd1Zh
bGlkYXRpb25FcnJvcigpCiAgICAgewpAQCAtMTE5Myw3ICsxMTkxLDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8Q2FjaGVkU3RyaW5nPiBtX2NvbnN0YW50UG9vbDsKIH07CiAKLUpTVmFsdWUgQ2xv
bmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKCkKK0Rlc2VyaWFsaXphdGlvblJlc3VsdCBDbG9u
ZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUoKQogewogICAgIFZlY3Rvcjx1aW50MzJfdCwgMTY+
IGluZGV4U3RhY2s7CiAgICAgVmVjdG9yPElkZW50aWZpZXIsIDE2PiBwcm9wZXJ0eU5hbWVTdGFj
azsKQEAgLTEyMjIsMTAgKzEyMjAsOCBAQCBKU1ZhbHVlIENsb25lRGVzZXJpYWxpemVyOjpkZXNl
cmlhbGl6ZSgpCiAgICAgICAgIGFycmF5U3RhcnRWaXNpdE1lbWJlcjoKICAgICAgICAgY2FzZSBB
cnJheVN0YXJ0VmlzaXRNZW1iZXI6IHsKICAgICAgICAgICAgIGlmICghLS10aWNrQ291bnQpIHsK
LSAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWUoKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGRpZFRp
bWVPdXQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihKU1ZhbHVlKCks
IEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IpOwogICAgICAgICAgICAgICAgIHRpY2tDb3VudCA9
IHRpY2tzVW50aWxOZXh0Q2hlY2soKTsKICAgICAgICAgICAgIH0KIApAQCAtMTI1OSwxMCArMTI1
NSw4IEBAIEpTVmFsdWUgQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKCkKICAgICAgICAg
fQogICAgICAgICBvYmplY3RTdGFydFN0YXRlOgogICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3Rh
dGU6IHsKLSAgICAgICAgICAgIGlmIChvdXRwdXRPYmplY3RTdGFjay5zaXplKCkgKyBvdXRwdXRB
cnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pIHsKLSAgICAgICAgICAg
ICAgICB0aHJvd1N0YWNrT3ZlcmZsb3coKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZSgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG91dHB1dE9iamVjdFN0YWNrLnNp
emUoKSArIG91dHB1dEFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikK
KyAgICAgICAgICAgIAlyZXR1cm4gbWFrZV9wYWlyKEpTVmFsdWUoKSwgU3RhY2tPdmVyZmxvd0Vy
cm9yKTsKICAgICAgICAgICAgIEpTT2JqZWN0KiBvdXRPYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9i
amVjdChtX2V4ZWMsIG1fZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgIG1fZ2NCdWZmZXIuYXBw
ZW5kKG91dE9iamVjdCk7CiAgICAgICAgICAgICBvdXRwdXRPYmplY3RTdGFjay5hcHBlbmQob3V0
T2JqZWN0KTsKQEAgLTEyNzEsMTAgKzEyNjUsOCBAQCBKU1ZhbHVlIENsb25lRGVzZXJpYWxpemVy
OjpkZXNlcmlhbGl6ZSgpCiAgICAgICAgIG9iamVjdFN0YXJ0VmlzaXRNZW1iZXI6CiAgICAgICAg
IGNhc2UgT2JqZWN0U3RhcnRWaXNpdE1lbWJlcjogewogICAgICAgICAgICAgaWYgKCEtLXRpY2tD
b3VudCkgewotICAgICAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgdGhyb3dJbnRlcnJ1cHRlZEV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZSgpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoZGlkVGltZU91dCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9wYWlyKEpT
VmFsdWUoKSwgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik7CiAgICAgICAgICAgICAgICAgdGlj
a0NvdW50ID0gdGlja3NVbnRpbE5leHRDaGVjaygpOwogICAgICAgICAgICAgfQogCkBAIC0xMzIy
LDIwICsxMzE0LDE3IEBAIEpTVmFsdWUgQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKCkK
ICAgICAgICAgc3RhdGVTdGFjay5yZW1vdmVMYXN0KCk7CiAKICAgICAgICAgaWYgKCEtLXRpY2tD
b3VudCkgewotICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkgewotICAgICAgICAgICAgICAg
IHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZSgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkKKyAg
ICAgICAgICAgIAlyZXR1cm4gbWFrZV9wYWlyKEpTVmFsdWUoKSwgSW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvcik7CiAgICAgICAgICAgICB0aWNrQ291bnQgPSB0aWNrc1VudGlsTmV4dENoZWNrKCk7
CiAgICAgICAgIH0KICAgICB9CiAgICAgQVNTRVJUKG91dFZhbHVlKTsKICAgICBBU1NFUlQoIW1f
ZmFpbGVkKTsKLSAgICByZXR1cm4gb3V0VmFsdWU7CisgICAgcmV0dXJuIG1ha2VfcGFpcihvdXRW
YWx1ZSwgU3VjY2Vzc2Z1bGx5Q29tcGxldGVkKTsKIGVycm9yOgogICAgIGZhaWwoKTsKLSAgICB0
aHJvd1ZhbGlkYXRpb25FcnJvcigpOwotICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgcmV0dXJu
IG1ha2VfcGFpcihKU1ZhbHVlKCksIFZhbGlkYXRpb25FcnJvcik7CiB9CiAKIApAQCAtMTM0OSwx
MSArMTMzOCwxNiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWCiAg
ICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKIH0KIAotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIGJvb2wg
dGhyb3dFeGNlcHRpb25zKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgaWYg
KCFDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShleGVjLCB2YWx1ZSwgYnVmZmVyKSkKKyAgICBT
ZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBjb2RlID0gQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUo
ZXhlYywgdmFsdWUsIGJ1ZmZlcik7CisgICAgaWYgKHRocm93RXhjZXB0aW9ucykKKyAgICAJbWF5
YmVUaHJvd0V4Y2VwdGlvbklmU2VyaWFsaXphdGlvbkZhaWxlZChleGVjLCBjb2RlKTsKKworICAg
IGlmICghc2VyaWFsaXphdGlvbkRpZENvbXBsZXRlU3VjY2Vzc2Z1bGx5KGNvZGUpKQogICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUoYnVmZmVyKSk7CiB9CiAKQEAgLTEzOTIsOSArMTM4NiwxMiBAQCBTdHJpbmcg
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjp0b1N0cmluZygpCiAgICAgcmV0dXJuIENsb25lRGVzZXJp
YWxpemVyOjpkZXNlcmlhbGl6ZVN0cmluZyhtX2RhdGEpOwogfQogCi1KU1ZhbHVlIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQorSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFs
aXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgYm9vbCB0
aHJvd0V4Y2VwdGlvbnMpCiB7Ci0gICAgcmV0dXJuIENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlh
bGl6ZShleGVjLCBnbG9iYWxPYmplY3QsIG1fZGF0YSk7CisgICAgRGVzZXJpYWxpemF0aW9uUmVz
dWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZShleGVjLCBnbG9iYWxP
YmplY3QsIG1fZGF0YSk7CisgICAgaWYgKHRocm93RXhjZXB0aW9ucykKKyAgICAJbWF5YmVUaHJv
d0V4Y2VwdGlvbklmU2VyaWFsaXphdGlvbkZhaWxlZChleGVjLCByZXN1bHQuc2Vjb25kKTsKKyAg
ICByZXR1cm4gcmVzdWx0LmZpcnN0OwogfQogCiBKU1ZhbHVlUmVmIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6ZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGRlc3RpbmF0aW9uQ29udGV4dCwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTQxOCw0ICsxNDE1LDI5IEBAIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSogU2VyaWFsaXplZFNjcmlwdFYKICAgICByZXR1cm4gZW1wdHlWYWx1ZS5nZXQoKTsKIH0K
IAordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlh
bGl6YXRpb25GYWlsZWQoRXhlY1N0YXRlKiBleGVjLCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBj
b2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworICAgIGNhc2UgU3VjY2Vzc2Z1bGx5Q29tcGxl
dGVkOgorICAgIAlicmVhazsKKyAgICBjYXNlIFN0YWNrT3ZlcmZsb3dFcnJvcjoKKyAgICAJdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYykpOworICAgIAlicmVh
azsKKyAgICBjYXNlIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6CisgICAgCXRocm93RXJyb3Io
ZXhlYywgY3JlYXRlSW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oJmV4ZWMtPmdsb2JhbERh
dGEoKSkpOworICAgIAlicmVhazsKKyAgICBjYXNlIFZhbGlkYXRpb25FcnJvcjoKKyAgICAJdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlVuYWJsZSB0byBkZXNlcmlhbGl6
ZSBkYXRhLiIpKTsKKyAgICAJYnJlYWs7CisgICAgY2FzZSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9y
OgorICAgIGNhc2UgVW5zcGVjaWZpZWRFcnJvcjogICAgICAgIAorICAgIAlicmVhazsKKyAgICB9
Cit9CisKK2Jvb2wgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemF0aW9uRGlkQ29tcGxl
dGVTdWNjZXNzZnVsbHkoU2VyaWFsaXphdGlvblJldHVybkNvZGUgY29kZSkKK3sKKyAgICByZXR1
cm4gKGNvZGUgPT0gU3VjY2Vzc2Z1bGx5Q29tcGxldGVkKTsKK30KKwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJl
dmlzaW9uIDgzMTI4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE5ICsyNywzMSBAQAogI2lmbmRlZiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWVfaAogI2RlZmluZSBTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAog
Ci0jaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPGNvbGxlY3Rvci9oYW5kbGVzL0dsb2JhbC5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNW
YWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZUpTQ29udGV4dCogSlNDb250ZXh0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlSlNWYWx1ZSogSlNWYWx1ZVJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisgCitl
bnVtIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIHsKKyAgICBTdWNjZXNzZnVsbHlDb21wbGV0ZWQs
CisgICAgU3RhY2tPdmVyZmxvd0Vycm9yLAorICAgIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3Is
CisgICAgVmFsaWRhdGlvbkVycm9yLAorICAgIEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IsCisgICAg
VW5zcGVjaWZpZWRFcnJvcgorfTsKKwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBib29sIHRocm93RXhjZXB0aW9ucz10
cnVlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0
ZShKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoU3Ry
aW5nIHN0cmluZyk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBhZG9wdChWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKQEAgLTUwLDE0ICs2MiwxOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUo
KTsKICAgICBzdGF0aWMgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBudWxsVmFsdWUoKTsKIAotICAg
IEpTQzo6SlNWYWx1ZSBkZXNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KTsKICAgICBTdHJpbmcgdG9TdHJpbmcoKTsKKyAgICAK
KyAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgYm9vbCB0aHJvd0V4Y2VwdGlvbnM9dHJ1ZSk7
CiAgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbik7CisKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEoKSB7IHJldHVybiBt
X2RhdGE7IH0KIAogICAgIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZToKKyAg
ICBzdGF0aWMgdm9pZCBtYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0aW9uRmFpbGVkKEpT
Qzo6RXhlY1N0YXRlKiwgU2VyaWFsaXphdGlvblJldHVybkNvZGUpOworICAgIHN0YXRpYyBib29s
IHNlcmlhbGl6YXRpb25EaWRDb21wbGV0ZVN1Y2Nlc3NmdWxseShTZXJpYWxpemF0aW9uUmV0dXJu
Q29kZSk7CisgICAgCiAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiYpOwogICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBtX2RhdGE7CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDgzMTI4KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJQb2xpY3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90
aWZpZXIuaCIKICNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdFZh
bHVlLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZp
c2lvbiA4MzEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5j
bHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDgzNTAxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDQtMTEgIFN0ZXBoYW5pZSBMZXdpcyAg
PHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyNTI4MjQ+IGphdmFzY3JpcHQgaW4gYW4gaW5j
b25zaXN0ZW50IHN0YXRlIGR1ZSB0byBzZXJpYWxpemF0aW9uIHJldHVybmluZyBhbiB1bi1oYW5k
bGVkIGV4Y2VwdGlvbgorICAgICAgICBDaGFuZ2UgdXNlIG9mIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Q3JlYXRlIHRvIHVzZSB0aGUgc2FtZSBhcGkgYXMgdGhlIHJlc3Qgb2YgV2ViS2l0Mi4gIFRo
aXMgaGFzIHRoZSBiZW5lZml0CisgICAgICAgIG9mIGhhbmRsaW5nIGFueSBleGNlcHRpb25zIHNv
IEphdmFzY3JpcHQgaXMgbm90IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4KKworICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOiBmaXggYSB0eXBvCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgorCiAyMDExLTA0LTExICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2Ft
IFdlaW5pZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiA4MzEyOCkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw3ICszNiw3IEBAIGV4dGVybiAiQyIgewogV0tfRVhQT1JUIFdLVHlwZUlEIFdLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlR2V0VHlwZUlEKCk7CiAKIFdLX0VYUE9SVCBXS1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZVJlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUNyZWF0ZShKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKLVdLX0VY
UE9SVCBKU1ZhbHVlUmVmIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlRGVzZXJpYWxpemUoV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVSZWYgc2NyaXB0VmFsdWUsIEpTQ29udGV4dFJlZiBjb25zdGV4dCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKK1dLX0VYUE9SVCBKU1ZhbHVlUmVmIFdLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlRGVzZXJpYWxpemUoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgc2NyaXB0
VmFsdWUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDgzMTI4KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2
OSw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eU1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQWJz
dHJhY3REYXRhYmFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KQEAgLTEyMzEsNyArMTIzMiw4IEBAIHZvaWQgV2Vi
UGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGMKIAogICAgIEpTTG9jayBsb2NrKFNpbGVu
Y2VBc3NlcnRpb25zT25seSk7CiAgICAgaWYgKEpTVmFsdWUgcmVzdWx0VmFsdWUgPSBtX21haW5G
cmFtZS0+Y29yZUZyYW1lKCktPnNjcmlwdCgpLT5leGVjdXRlU2NyaXB0KHNjcmlwdCwgdHJ1ZSku
anNWYWx1ZSgpKSB7Ci0gICAgICAgIGlmICgoc2VyaWFsaXplZFJlc3VsdFZhbHVlID0gU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQo
KS0+Z2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKS0+Z2xvYmFsRXhlYygpLCBy
ZXN1bHRWYWx1ZSkpKQorICAgICAgICBpZihzZXJpYWxpemVkUmVzdWx0VmFsdWUgPSBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmNyZWF0ZShtX21haW5GcmFtZS0+anNDb250ZXh0KCksIAorICAgICAg
ICAJdG9SZWYobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0
KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKS0+Z2xvYmFsRXhlYygpLCByZXN1bHRWYWx1ZSksIDAp
KQogICAgICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IENvcmVJUEM6OkRhdGFSZWZlcmVuY2Uoc2Vy
aWFsaXplZFJlc3VsdFZhbHVlLT5kYXRhKCkuZGF0YSgpLCBzZXJpYWxpemVkUmVzdWx0VmFsdWUt
PmRhdGEoKS5zaXplKCkpOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="81748"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89147</attachid>
            <date>2011-04-11 19:44:14 -0700</date>
            <delta_ts>2011-04-12 14:28:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>SerializePatch</filename>
            <type>text/plain</type>
            <size>25066</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNTQ5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDQtMTEgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU4MjgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MjUyODI0PiBqYXZhc2NyaXB0IGlu
IGFuIGluY29uc2lzdGVudCBzdGF0ZSBkdWUgdG8gc2VyaWFsaXphdGlvbiByZXR1cm5pbmcgYW4g
dW4taGFuZGxlZCBleGNlcHRpb24KKyAgICAgICAgQ3VycmVudGx5IHNlcmlhbGl6YXRpb24gYW5k
IGRlc2VyaWFsaXphdGlvbiBjYW4gdGhyb3cgamF2YXNjcmlwdCBleGNlcHRpb25zLiAgU2luY2Ug
U2VyaWFsaXplZFNjcmlwdFZhbHVlIGlzIGNhbGxlZCBpbgorICAgICAgICBzZXZlcmFsIHBsYWNl
cyB0aGF0IGRvIG5vdCBhbHdheXMgaW52b2x2ZSBkaXJlY3QgY2FsbHMgaW50byBqYXZhc2NyaXB0
IGhhdmUgdGhlIGZ1bmN0aW9ucyByZXR1cm4gYW4gZXJyb3IgY29kZSBhbmQgdGhlIGNhbGxlcnMK
KyAgICAgICAgZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIHRocm93IGV4Y2VwdGlvbnMuCisKKyAg
ICAgICAgRG9uJ3QgYWxsb3cgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHRvIGF0dGVtcHQgdG8gc2Vy
aWFsaXplIG9iamVjdHMgdGhhdCBpbmhlcml0IGZyb20gSlNOYXZpZ2F0b3IuaC4gIFdhbGtpbmcg
dGhhdCBvYmplY3QgY3JlYXRlcworICAgICAgICBhZGRpdGlvbmFsIG9iamVjdHMgd2hpY2ggZXZl
bnR1YWxseSBjYXVzZXMgc2VyaWFsaXphdGlvbiB0byBlbmQgdXAgdGhyb3dpbmcgYSBzdGFjayBv
dmVyZmxvdyBlcnJvci4gIEluc3RlYWQgZmFpbCBpbW1lZGlhdGVseS4KKworICAgICAgICBVbnRh
bmdsZSBoZWFkZXIgaW5jbHVkZXMuICBTZXJpYWxpemVkU2NyaXB0VmFsdWUgd2FzIGluaGVyaXRp
bmcgU2NyaXB0VmFsdWUuaCwgYnV0IG5vdCB1c2luZyBpdC4gIFNpbmNlIFNjcmlwdFZhbHVlIGRl
cGVuZHMgb24KKyAgICAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHRoaXMgY291bGQgbGVhZCB0
byBhIGNpcmN1bGFyIGhlYWRlciBkZXBlbmRlbmN5LgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBm
dW5jdGlvbmFsaXR5LCBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKworICAgICAgICAqIFdlYkNv
cmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVl
OjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2xvbmVTZXJpYWxpemVyOjpkdW1wSWZUZXJtaW5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9u
ZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlhbGl6YXRpb25GYWlsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemF0aW9uRGlkQ29tcGxl
dGVTdWNjZXNzZnVsbHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHA6
IGhlYWRlciBpbmNsdWRlIGZpeAorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOiBoZWFk
ZXIgaW5jbHVkZSBmaXgKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogaGVhZGVyIGluY2x1ZGUg
Zml4CisKIDIwMTEtMDQtMTEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgogCiAgICAg
ICAgIEF0dGVtcHQgdG8gZml4IHRoZSBHVEsgYnVpbGQgYWZ0ZXIgY2hhbmdlc2V0IDgzNTI3IDxo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC84MzUyNz4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCShyZXZpc2lvbiA4MzU0OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC01NDcsNyArNTQ3LDYgQEAgX19aTjdXZWJDb3JlMjFSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIyNHNjaAogX19aTjdXZWJDb3JlMjFTVkdEb2N1bWVudEV4dGVuc2lvbnMy
MXNhbXBsZUFuaW1hdGlvbkF0VGltZUVSS04zV1RGNlN0cmluZ0VQTlNfMTRTVkdTTUlMRWxlbWVu
dEVkCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTExZGVzZXJpYWxpemVFUEsx
NU9wYXF1ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxp
emVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVKU0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1
ZVBTNl8KLV9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlNmNyZWF0ZUVQTjNKU0M5
RXhlY1N0YXRlRU5TMV83SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZh
bHVlQzFFUk4zV1RGNlZlY3RvckloTG0wRUVFCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUQxRXYKIF9fWk43V2ViQ29yZTIxVXNlckNvbnRlbnRVUkxQYXR0ZXJuNXBhcnNlRVJL
TjNXVEY2U3RyaW5nRQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gODM1NDkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYwLDYgKzYwLDggQEAgSlNDOjpKU1ZhbHVlIEpTTWVzc2FnZUV2ZW50Ojppbml0TWVzc2Fn
ZQogICAgIGJvb2wgY2FuQnViYmxlQXJnID0gZXhlYy0+YXJndW1lbnQoMSkudG9Cb29sZWFuKGV4
ZWMpOwogICAgIGJvb2wgY2FuY2VsYWJsZUFyZyA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvQm9vbGVh
bihleGVjKTsKICAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YUFyZyA9
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDMpKTsK
KyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogICAgIGNvbnN0IFVTdHJpbmcmIG9yaWdpbkFyZyA9IGV4ZWMtPmFyZ3VtZW50KDQpLnRv
U3RyaW5nKGV4ZWMpOwogICAgIGNvbnN0IFVTdHJpbmcmIGxhc3RFdmVudElkQXJnID0gZXhlYy0+
YXJndW1lbnQoNSkudG9TdHJpbmcoZXhlYyk7CiAgICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSB0
b0RPTVdpbmRvdyhleGVjLT5hcmd1bWVudCg2KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcAkocmV2aXNpb24gODM1NDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiSlNXb3JrZXJDb250
ZXh0QmFzZS5oIgogCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAiSlNE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiSlNTaGFyZWRXb3JrZXJDb250ZXh0
LmgiCiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lvbiA4MzU0OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAw
LDE0ICsxMDAsMTQgQEAgYm9vbCBTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbigpIGNvbnN0CiAgICAg
cmV0dXJuIGdldENhbGxEYXRhKG1fdmFsdWUuZ2V0KCksIGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5v
bmU7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTY3JpcHRWYWx1ZTo6
c2VyaWFsaXplKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSkKK1Bhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKFNjcmlwdFN0YXRlKiBzY3JpcHRT
dGF0ZSwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSB0aHJvd0V4Y2VwdGlvbnMpCiB7Ci0gICAgcmV0
dXJuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHNjcmlwdFN0YXRlLCBqc1ZhbHVlKCkp
OworICAgIHJldHVybiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzY3JpcHRTdGF0ZSwg
anNWYWx1ZSgpLCB0aHJvd0V4Y2VwdGlvbnMpOwogfQogCi1TY3JpcHRWYWx1ZSBTY3JpcHRWYWx1
ZTo6ZGVzZXJpYWxpemUoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBTZXJpYWxpemVkU2NyaXB0
VmFsdWUqIHZhbHVlKQorU2NyaXB0VmFsdWUgU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZSwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiB2YWx1ZSwgU2VyaWFs
aXphdGlvbkVycm9yTW9kZSB0aHJvd0V4Y2VwdGlvbnMpCiB7Ci0gICAgcmV0dXJuIFNjcmlwdFZh
bHVlKHNjcmlwdFN0YXRlLT5nbG9iYWxEYXRhKCksIHZhbHVlLT5kZXNlcmlhbGl6ZShzY3JpcHRT
dGF0ZSwgc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKSkpOworICAgIHJldHVybiBT
Y3JpcHRWYWx1ZShzY3JpcHRTdGF0ZS0+Z2xvYmFsRGF0YSgpLCB2YWx1ZS0+ZGVzZXJpYWxpemUo
c2NyaXB0U3RhdGUsIHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHRocm93RXhj
ZXB0aW9ucykpOwogfQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gODM1NDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUg
IlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTVmFsdWUuaD4KQEAgLTYxLDggKzYyLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFNjcmlwdFZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92YWx1ZSA9
PSBvdGhlci5tX3ZhbHVlOyB9CiAKLSAgICBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gc2VyaWFsaXplKFNjcmlwdFN0YXRlKik7Ci0gICAgc3RhdGljIFNjcmlwdFZhbHVlIGRlc2Vy
aWFsaXplKFNjcmlwdFN0YXRlKiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKik7CisgICAgUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZShTY3JpcHRTdGF0ZSosIFNlcmlh
bGl6YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7CisgICAgc3RhdGljIFNjcmlwdFZhbHVlIGRl
c2VyaWFsaXplKFNjcmlwdFN0YXRlKiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgU2VyaWFsaXph
dGlvbkVycm9yTW9kZSA9IFRocm93aW5nKTsKIAogICAgIHN0YXRpYyBTY3JpcHRWYWx1ZSB1bmRl
ZmluZWQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCShyZXZpc2lvbiA4MzU0OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0ZpbGUuaCIKICNpbmNsdWRlICJKU0ZpbGVM
aXN0LmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJKU05hdmlnYXRvci5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CkBAIC0xNjAsNiArMTYxLDggQEAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGludCBTdHJpbmdQb29sVGFnIAogICogICAgUmVnRXhwVGFnIDxwYXR0ZXJu
OlN0cmluZ0RhdGE+PGZsYWdzOlN0cmluZ0RhdGE+CiAgKi8KIAordHlwZWRlZiBwYWlyPEpTQzo6
SlNWYWx1ZSwgU2VyaWFsaXphdGlvblJldHVybkNvZGU+IERlc2VyaWFsaXphdGlvblJlc3VsdDsK
KwogY2xhc3MgQ2xvbmVCYXNlIHsKIHByb3RlY3RlZDoKICAgICBDbG9uZUJhc2UoRXhlY1N0YXRl
KiBleGVjKQpAQCAtMjQ3LDcgKzI1MCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdGF0aWMg
Ym9vbCB3cml0ZUwKIAogY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgYm9vbCBzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlLCBWZWN0b3I8dWludDhfdD4mIG91dCkKKyAgICBzdGF0aWMgU2VyaWFsaXphdGlvblJldHVy
bkNvZGUgc2VyaWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPHVp
bnQ4X3Q+JiBvdXQpCiAgICAgewogICAgICAgICBDbG9uZVNlcmlhbGl6ZXIgc2VyaWFsaXplcihl
eGVjLCBvdXQpOwogICAgICAgICByZXR1cm4gc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUpOwpA
QCAtMjc0LDcgKzI3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9u
KTsKICAgICB9CiAKLSAgICBib29sIHNlcmlhbGl6ZShKU1ZhbHVlIGluKTsKKyAgICBTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZSBzZXJpYWxpemUoSlNWYWx1ZSBpbik7CiAKICAgICBib29sIGlzQXJy
YXkoSlNWYWx1ZSB2YWx1ZSkKICAgICB7CkBAIC00MTQsNiArNDE3LDEzIEBAIHByaXZhdGU6CiAK
ICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAKKyAgICAgICAgLy8gT2JqZWN0IGNhbm5vdCBiZSBzZXJpYWxpemVkIGJlY2F1
c2UgdGhlIGFjdCBvZiB3YWxraW5nIHRoZSBvYmplY3QgY3JlYXRlcyBuZXcgb2JqZWN0cworICAg
ICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSAmJiBhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCZK
U05hdmlnYXRvcjo6c19pbmZvKSkgeworICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAg
d3JpdGUoTnVsbFRhZyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgCisgICAgICAgIH0KIAog
ICAgICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICAgICAgSlNPYmplY3QqIG9i
aiA9IGFzT2JqZWN0KHZhbHVlKTsKQEAgLTU5OCw3ICs2MDgsNyBAQCBwcml2YXRlOgogICAgIElk
ZW50aWZpZXIgbV9lbXB0eUlkZW50aWZpZXI7CiB9OwogCi1ib29sIENsb25lU2VyaWFsaXplcjo6
c2VyaWFsaXplKEpTVmFsdWUgaW4pCitTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlh
bGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVlIGluKQogewogICAgIFZlY3Rvcjx1aW50MzJfdCwgMTY+
IGluZGV4U3RhY2s7CiAgICAgVmVjdG9yPHVpbnQzMl90LCAxNj4gbGVuZ3RoU3RhY2s7CkBAIC02
MTQsMTAgKzYyNCw4IEBAIGJvb2wgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAK
ICAgICAgICAgICAgIGFycmF5U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFy
dFN0YXRlOiB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGlzQXJyYXkoaW5WYWx1ZSkpOwotICAg
ICAgICAgICAgICAgIGlmIChpbnB1dE9iamVjdFN0YWNrLnNpemUoKSArIGlucHV0QXJyYXlTdGFj
ay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHRocm93U3RhY2tPdmVyZmxvdygpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbnB1dE9iamVjdFN0YWNr
LnNpemUoKSArIGlucHV0QXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9u
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RhY2tPdmVyZmxvd0Vycm9yOwogCiAgICAg
ICAgICAgICAgICAgSlNBcnJheSogaW5BcnJheSA9IGFzQXJyYXkoaW5WYWx1ZSk7CiAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gaW5BcnJheS0+bGVuZ3RoKCk7CkBAIC02MzEsMTAg
KzYzOSw4IEBAIGJvb2wgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAKICAgICAg
ICAgICAgIGFycmF5U3RhcnRWaXNpdE1lbWJlcjoKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFy
dFZpc2l0TWVtYmVyOiB7CiAgICAgICAgICAgICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB0aHJvd0ludGVycnVwdGVkRXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGRpZFRpbWVPdXQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRl
cnJ1cHRlZEV4ZWN1dGlvbkVycm9yOwogICAgICAgICAgICAgICAgICAgICB0aWNrQ291bnQgPSB0
aWNrc1VudGlsTmV4dENoZWNrKCk7CiAgICAgICAgICAgICAgICAgfQogCkBAIC02NzMsMTAgKzY3
OSw4IEBAIGJvb2wgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSAKICAgICAgICAg
ICAgIG9iamVjdFN0YXJ0U3RhdGU6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6
IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAg
ICAgICAgICBpZiAoaW5wdXRPYmplY3RTdGFjay5zaXplKCkgKyBpbnB1dEFycmF5U3RhY2suc2l6
ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikgewotICAgICAgICAgICAgICAgICAgICB0aHJv
d1N0YWNrT3ZlcmZsb3coKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaW5wdXRPYmplY3RTdGFjay5zaXpl
KCkgKyBpbnB1dEFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0YWNrT3ZlcmZsb3dFcnJvcjsKICAgICAgICAgICAg
ICAgICBKU09iamVjdCogaW5PYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAg
ICAgICBpZiAoIXN0YXJ0T2JqZWN0KGluT2JqZWN0KSkKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC02ODksMTAgKzY5Myw4IEBAIGJvb2wgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUo
SlNWYWx1ZSAKICAgICAgICAgICAgIG9iamVjdFN0YXJ0VmlzaXRNZW1iZXI6CiAgICAgICAgICAg
ICBjYXNlIE9iamVjdFN0YXJ0VmlzaXRNZW1iZXI6IHsKICAgICAgICAgICAgICAgICBpZiAoIS0t
dGlja0NvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I7CiAgICAgICAgICAgICAgICAg
ICAgIHRpY2tDb3VudCA9IHRpY2tzVW50aWxOZXh0Q2hlY2soKTsKICAgICAgICAgICAgICAgICB9
CiAKQEAgLTcwOCw3ICs3MTAsNyBAQCBib29sIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpT
VmFsdWUgCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGluVmFsdWUgPSBnZXRQ
cm9wZXJ0eShvYmplY3QsIHByb3BlcnRpZXNbaW5kZXhdKTsKICAgICAgICAgICAgICAgICBpZiAo
c2hvdWxkVGVybWluYXRlKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4aXN0aW5nRXhjZXB0aW9uRXJyb3I7CiAKICAgICAg
ICAgICAgICAgICBpZiAoIWluVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gUHJvcGVy
dHkgd2FzIHJlbW92ZWQgZHVyaW5nIHNlcmlhbGlzYXRpb24KQEAgLTcxOCw3ICs3MjAsNyBAQCBi
b29sIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgCiAgICAgICAgICAgICAgICAg
d3JpdGUocHJvcGVydGllc1tpbmRleF0pOwogCiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFRl
cm1pbmF0ZSgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOwogCiAgICAgICAgICAgICAg
ICAgaWYgKCFkdW1wSWZUZXJtaW5hbChpblZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICBz
dGF0ZVN0YWNrLmFwcGVuZChPYmplY3RFbmRWaXNpdE1lbWJlcik7CkBAIC03MjgsNyArNzMwLDcg
QEAgYm9vbCBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVlIAogICAgICAgICAgICAg
fQogICAgICAgICAgICAgY2FzZSBPYmplY3RFbmRWaXNpdE1lbWJlcjogewogICAgICAgICAgICAg
ICAgIGlmIChzaG91bGRUZXJtaW5hdGUoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhpc3RpbmdFeGNlcHRpb25FcnJvcjsK
IAogICAgICAgICAgICAgICAgIGluZGV4U3RhY2subGFzdCgpKys7CiAgICAgICAgICAgICAgICAg
Z290byBvYmplY3RTdGFydFZpc2l0TWVtYmVyOwpAQCAtNzQ5LDE3ICs3NTEsMTUgQEAgYm9vbCBD
bG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVlIAogICAgICAgICBzdGF0ZVN0YWNrLnJl
bW92ZUxhc3QoKTsKIAogICAgICAgICBpZiAoIS0tdGlja0NvdW50KSB7Ci0gICAgICAgICAgICBp
ZiAoZGlkVGltZU91dCgpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dJbnRlcnJ1cHRlZEV4Y2Vw
dGlvbigpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChkaWRUaW1lT3V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEludGVy
cnVwdGVkRXhlY3V0aW9uRXJyb3I7CiAgICAgICAgICAgICB0aWNrQ291bnQgPSB0aWNrc1VudGls
TmV4dENoZWNrKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKG1fZmFpbGVkKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBVbnNwZWNpZmllZEVycm9yOwogCi0gICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFN1Y2Nlc3NmdWxseUNvbXBsZXRlZDsKIH0KIAogY2xh
c3MgQ2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewpAQCAtNzgzLDE1ICs3ODMsMTMgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gU3RyaW5nKHN0ci5pbXBsKCkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBKU1ZhbHVlIGRlc2VyaWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgc3Rh
dGljIERlc2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVy
KQogICAgIHsKICAgICAgICAgaWYgKCFidWZmZXIuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VfcGFpcihqc051bGwoKSwgVW5zcGVj
aWZpZWRFcnJvcik7CiAgICAgICAgIENsb25lRGVzZXJpYWxpemVyIGRlc2VyaWFsaXplcihleGVj
LCBnbG9iYWxPYmplY3QsIGJ1ZmZlcik7Ci0gICAgICAgIGlmICghZGVzZXJpYWxpemVyLmlzVmFs
aWQoKSkgewotICAgICAgICAgICAgZGVzZXJpYWxpemVyLnRocm93VmFsaWRhdGlvbkVycm9yKCk7
Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwotICAgICAgICB9CisgICAgICAgIGlmICgh
ZGVzZXJpYWxpemVyLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBtYWtlX3BhaXIoSlNW
YWx1ZSgpLCBWYWxpZGF0aW9uRXJyb3IpOwogICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVyLmRl
c2VyaWFsaXplKCk7CiAgICAgfQogCkBAIC04NDYsNyArODQ0LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIG1fdmVyc2lvbiA9IDB4RkZGRkZGRkY7CiAgICAgfQogCi0gICAgSlNWYWx1ZSBkZXNl
cmlhbGl6ZSgpOworICAgIERlc2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZSgpOwogCiAg
ICAgdm9pZCB0aHJvd1ZhbGlkYXRpb25FcnJvcigpCiAgICAgewpAQCAtMTE5Myw3ICsxMTkxLDcg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q2FjaGVkU3RyaW5nPiBtX2NvbnN0YW50UG9vbDsKIH07
CiAKLUpTVmFsdWUgQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKCkKK0Rlc2VyaWFsaXph
dGlvblJlc3VsdCBDbG9uZURlc2VyaWFsaXplcjo6ZGVzZXJpYWxpemUoKQogewogICAgIFZlY3Rv
cjx1aW50MzJfdCwgMTY+IGluZGV4U3RhY2s7CiAgICAgVmVjdG9yPElkZW50aWZpZXIsIDE2PiBw
cm9wZXJ0eU5hbWVTdGFjazsKQEAgLTEyMjIsMTAgKzEyMjAsOCBAQCBKU1ZhbHVlIENsb25lRGVz
ZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSgpCiAgICAgICAgIGFycmF5U3RhcnRWaXNpdE1lbWJlcjoK
ICAgICAgICAgY2FzZSBBcnJheVN0YXJ0VmlzaXRNZW1iZXI6IHsKICAgICAgICAgICAgIGlmICgh
LS10aWNrQ291bnQpIHsKLSAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKTsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgaWYgKGRpZFRpbWVPdXQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2Vf
cGFpcihKU1ZhbHVlKCksIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IpOwogICAgICAgICAgICAg
ICAgIHRpY2tDb3VudCA9IHRpY2tzVW50aWxOZXh0Q2hlY2soKTsKICAgICAgICAgICAgIH0KIApA
QCAtMTI1OSwxMCArMTI1NSw4IEBAIEpTVmFsdWUgQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFs
aXplKCkKICAgICAgICAgfQogICAgICAgICBvYmplY3RTdGFydFN0YXRlOgogICAgICAgICBjYXNl
IE9iamVjdFN0YXJ0U3RhdGU6IHsKLSAgICAgICAgICAgIGlmIChvdXRwdXRPYmplY3RTdGFjay5z
aXplKCkgKyBvdXRwdXRBcnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24p
IHsKLSAgICAgICAgICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3coKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZSgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG91dHB1
dE9iamVjdFN0YWNrLnNpemUoKSArIG91dHB1dEFycmF5U3RhY2suc2l6ZSgpID4gbWF4aW11bUZp
bHRlclJlY3Vyc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9wYWlyKEpTVmFsdWUo
KSwgU3RhY2tPdmVyZmxvd0Vycm9yKTsKICAgICAgICAgICAgIEpTT2JqZWN0KiBvdXRPYmplY3Qg
PSBjb25zdHJ1Y3RFbXB0eU9iamVjdChtX2V4ZWMsIG1fZ2xvYmFsT2JqZWN0KTsKICAgICAgICAg
ICAgIG1fZ2NCdWZmZXIuYXBwZW5kKG91dE9iamVjdCk7CiAgICAgICAgICAgICBvdXRwdXRPYmpl
Y3RTdGFjay5hcHBlbmQob3V0T2JqZWN0KTsKQEAgLTEyNzEsMTAgKzEyNjUsOCBAQCBKU1ZhbHVl
IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSgpCiAgICAgICAgIG9iamVjdFN0YXJ0Vmlz
aXRNZW1iZXI6CiAgICAgICAgIGNhc2UgT2JqZWN0U3RhcnRWaXNpdE1lbWJlcjogewogICAgICAg
ICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAgICAgICAgICAgICAgIGlmIChkaWRUaW1lT3V0
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhyb3dJbnRlcnJ1cHRlZEV4Y2VwdGlvbigpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwotICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAoZGlkVGltZU91dCgpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbWFrZV9wYWlyKEpTVmFsdWUoKSwgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik7CiAg
ICAgICAgICAgICAgICAgdGlja0NvdW50ID0gdGlja3NVbnRpbE5leHRDaGVjaygpOwogICAgICAg
ICAgICAgfQogCkBAIC0xMzIyLDIwICsxMzE0LDE3IEBAIEpTVmFsdWUgQ2xvbmVEZXNlcmlhbGl6
ZXI6OmRlc2VyaWFsaXplKCkKICAgICAgICAgc3RhdGVTdGFjay5yZW1vdmVMYXN0KCk7CiAKICAg
ICAgICAgaWYgKCEtLXRpY2tDb3VudCkgewotICAgICAgICAgICAgaWYgKGRpZFRpbWVPdXQoKSkg
ewotICAgICAgICAgICAgICAgIHRocm93SW50ZXJydXB0ZWRFeGNlcHRpb24oKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGRpZFRpbWVPdXQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9wYWlyKEpTVmFsdWUo
KSwgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik7CiAgICAgICAgICAgICB0aWNrQ291bnQgPSB0
aWNrc1VudGlsTmV4dENoZWNrKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgQVNTRVJUKG91dFZh
bHVlKTsKICAgICBBU1NFUlQoIW1fZmFpbGVkKTsKLSAgICByZXR1cm4gb3V0VmFsdWU7CisgICAg
cmV0dXJuIG1ha2VfcGFpcihvdXRWYWx1ZSwgU3VjY2Vzc2Z1bGx5Q29tcGxldGVkKTsKIGVycm9y
OgogICAgIGZhaWwoKTsKLSAgICB0aHJvd1ZhbGlkYXRpb25FcnJvcigpOwotICAgIHJldHVybiBK
U1ZhbHVlKCk7CisgICAgcmV0dXJuIG1ha2VfcGFpcihKU1ZhbHVlKCksIFZhbGlkYXRpb25FcnJv
cik7CiB9CiAKIApAQCAtMTM0OSwxMSArMTMzOCwxNiBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OlNlcmlhbGl6ZWRTY3JpcHRWCiAgICAgbV9kYXRhLnN3YXAoYnVmZmVyKTsKIH0KIAotUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQog
ewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgaWYgKCFDbG9uZVNlcmlhbGl6ZXI6
OnNlcmlhbGl6ZShleGVjLCB2YWx1ZSwgYnVmZmVyKSkKKyAgICBTZXJpYWxpemF0aW9uUmV0dXJu
Q29kZSBjb2RlID0gQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoZXhlYywgdmFsdWUsIGJ1ZmZl
cik7CisgICAgaWYgKHRocm93RXhjZXB0aW9ucykKKyAgICAgICAgbWF5YmVUaHJvd0V4Y2VwdGlv
bklmU2VyaWFsaXphdGlvbkZhaWxlZChleGVjLCBjb2RlKTsKKworICAgIGlmICghc2VyaWFsaXph
dGlvbkRpZENvbXBsZXRlU3VjY2Vzc2Z1bGx5KGNvZGUpKQogICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVm
ZmVyKSk7CiB9CiAKQEAgLTEzOTIsOSArMTM4NiwxMiBAQCBTdHJpbmcgU2VyaWFsaXplZFNjcmlw
dFZhbHVlOjp0b1N0cmluZygpCiAgICAgcmV0dXJuIENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlh
bGl6ZVN0cmluZyhtX2RhdGEpOwogfQogCi1KU1ZhbHVlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
ZGVzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQorSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU2VyaWFsaXphdGlvbkVycm9yTW9k
ZSB0aHJvd0V4Y2VwdGlvbnMpCiB7Ci0gICAgcmV0dXJuIENsb25lRGVzZXJpYWxpemVyOjpkZXNl
cmlhbGl6ZShleGVjLCBnbG9iYWxPYmplY3QsIG1fZGF0YSk7CisgICAgRGVzZXJpYWxpemF0aW9u
UmVzdWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZShleGVjLCBnbG9i
YWxPYmplY3QsIG1fZGF0YSk7CisgICAgaWYgKHRocm93RXhjZXB0aW9ucykKKyAgICAgICAgbWF5
YmVUaHJvd0V4Y2VwdGlvbklmU2VyaWFsaXphdGlvbkZhaWxlZChleGVjLCByZXN1bHQuc2Vjb25k
KTsKKyAgICByZXR1cm4gcmVzdWx0LmZpcnN0OwogfQogCiBKU1ZhbHVlUmVmIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmIGRlc3RpbmF0aW9uQ29udGV4dCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTQxOCw0ICsxNDE1LDM1IEBAIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSogU2VyaWFsaXplZFNjcmlwdFYKICAgICByZXR1cm4gZW1wdHlWYWx1ZS5nZXQo
KTsKIH0KIAordm9pZCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om1heWJlVGhyb3dFeGNlcHRpb25J
ZlNlcmlhbGl6YXRpb25GYWlsZWQoRXhlY1N0YXRlKiBleGVjLCBTZXJpYWxpemF0aW9uUmV0dXJu
Q29kZSBjb2RlKQoreworICAgIGlmIChjb2RlID09IFN1Y2Nlc3NmdWxseUNvbXBsZXRlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIHN3aXRjaCAoY29kZSkgeworICAgIGNhc2UgU3RhY2tP
dmVyZmxvd0Vycm9yOgorICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZs
b3dFcnJvcihleGVjKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW50ZXJydXB0ZWRFeGVj
dXRpb25FcnJvcjoKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVJbnRlcnJ1cHRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVmFsaWRhdGlvbkVycm9yOgorICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0
ZVR5cGVFcnJvcihleGVjLCAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGRhdGEuIikpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEV4aXN0aW5nRXhjZXB0aW9uRXJyb3I6CisgICAgICAgIHRocm93
RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJKYXZhc2NyaXB0IGhhcyB0aHJvd24g
YW4gZXhjZXB0aW9uLiAgSGFsdGluZyBzZXJpYWxpemF0aW9uLiIpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBVbnNwZWNpZmllZEVycm9yOgorICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNy
ZWF0ZVR5cGVFcnJvcihleGVjLCAiVW5rbm93biBlcnJvciB3aGlsZSBzZXJpYWxpemluZyBvciBk
ZXNlcmlhbGl6aW5nIGRhdGEuIikpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKK2Jvb2wgU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpzZXJpYWxpemF0aW9uRGlkQ29tcGxldGVTdWNjZXNzZnVsbHkoU2VyaWFsaXph
dGlvblJldHVybkNvZGUgY29kZSkKK3sKKyAgICByZXR1cm4gKGNvZGUgPT0gU3VjY2Vzc2Z1bGx5
Q29tcGxldGVkKTsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDgzNTQ5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDE5ICsyNywzMyBAQAogI2lmbmRlZiBTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAog
I2RlZmluZSBTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAogCi0jaW5jbHVkZSAiU2NyaXB0VmFsdWUu
aCIKKyNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
IAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0NvbnRleHRSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVKU1ZhbHVlKiBKU1ZhbHVlUmVmOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKKyAKK2VudW0gU2VyaWFsaXphdGlvblJldHVybkNvZGUgeworICAgIFN1
Y2Nlc3NmdWxseUNvbXBsZXRlZCwKKyAgICBTdGFja092ZXJmbG93RXJyb3IsCisgICAgSW50ZXJy
dXB0ZWRFeGVjdXRpb25FcnJvciwKKyAgICBWYWxpZGF0aW9uRXJyb3IsCisgICAgRXhpc3RpbmdF
eGNlcHRpb25FcnJvciwKKyAgICBVbnNwZWNpZmllZEVycm9yCit9OworICAgIAorZW51bSBTZXJp
YWxpemF0aW9uRXJyb3JNb2RlIHsgVGhyb3dpbmcsIE5vblRocm93aW5nIH07CisKIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKIAogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVibGljIFJlZkNv
dW50ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSB2YWx1ZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFNlcmlhbGl6
YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIHZhbHVlLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gY3JlYXRlKFN0cmluZyBzdHJpbmcpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCkBA
IC01MCwxNCArNjQsMTkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogbnVsbFZhbHVlKCk7CiAKLSAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCk7CiAgICAgU3Ry
aW5nIHRvU3RyaW5nKCk7CisgICAgCisgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIFNlcmlhbGl6YXRpb25FcnJvck1vZGUg
PSBUaHJvd2luZyk7CiAgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYsIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbik7CisKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEo
KSB7IHJldHVybiBtX2RhdGE7IH0KIAogICAgIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAog
cHJpdmF0ZToKKyAgICBzdGF0aWMgdm9pZCBtYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0
aW9uRmFpbGVkKEpTQzo6RXhlY1N0YXRlKiwgU2VyaWFsaXphdGlvblJldHVybkNvZGUpOworICAg
IHN0YXRpYyBib29sIHNlcmlhbGl6YXRpb25EaWRDb21wbGV0ZVN1Y2Nlc3NmdWxseShTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZSk7CisgICAgCiAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKFZlY3Rv
cjx1bnNpZ25lZCBjaGFyPiYpOwogICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBtX2RhdGE7CiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDgzNTQ5KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJJY29uRGF0YWJhc2VCYXNlLmgiCiAjaW5jbHVkZSAi
UG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE5vdGlmaWVyLmgiCisjaW5j
bHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgogI2luY2x1
ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAJKHJldmlzaW9uIDgzNTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNv
dXJjZUNvZGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVj
b2Rlci5oIgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gODM1NDkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNC0xMSAg
U3RlcGhhbmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTgyODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyNTI4MjQ+IGphdmFz
Y3JpcHQgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIGR1ZSB0byBzZXJpYWxpemF0aW9uIHJldHVy
bmluZyBhbiB1bi1oYW5kbGVkIGV4Y2VwdGlvbgorICAgICAgICBDaGFuZ2UgdXNlIG9mIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Q3JlYXRlIHRvIHVzZSB0aGUgc2FtZSBhcGkgYXMgdGhlIHJlc3Qg
b2YgV2ViS2l0Mi4gIFRoaXMgaGFzIHRoZSBiZW5lZml0CisgICAgICAgIG9mIGhhbmRsaW5nIGFu
eSBleGNlcHRpb25zIHNvIEphdmFzY3JpcHQgaXMgbm90IGluIGFuIGluY29uc2lzdGVudCBzdGF0
ZS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOiBm
aXggYSB0eXBvCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgorCiAyMDEx
LTA0LTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDgzNTQ5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgZXh0ZXJuICJDIiB7CiBXS19FWFBPUlQgV0tU
eXBlSUQgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JUIFdL
U2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3JlYXRlKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pOwotV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVEZXNlcmlh
bGl6ZShXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiBzY3JpcHRWYWx1ZSwgSlNDb250ZXh0UmVm
IGNvbnN0ZXh0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworV0tfRVhQT1JUIEpTVmFsdWVSZWYg
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVEZXNlcmlhbGl6ZShXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZVJlZiBzY3JpcHRWYWx1ZSwgSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gODM1NDkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9BYnN0cmFjdERhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcmNoaXZlUmVz
b3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgpAQCAtMTIzNSw3ICsxMjM2LDgg
QEAgdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoYwogCiAgICAgSlNMb2Nr
IGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICBpZiAoSlNWYWx1ZSByZXN1bHRWYWx1
ZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQoc2Ny
aXB0LCB0cnVlKS5qc1ZhbHVlKCkpIHsKLSAgICAgICAgaWYgKChzZXJpYWxpemVkUmVzdWx0VmFs
dWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShtX21haW5GcmFtZS0+Y29yZUZyYW1l
KCktPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpLT5nbG9i
YWxFeGVjKCksIHJlc3VsdFZhbHVlKSkpCisgICAgICAgIGlmICgoc2VyaWFsaXplZFJlc3VsdFZh
bHVlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUobV9tYWluRnJhbWUtPmpzQ29udGV4
dCgpLCAKKyAgICAgICAgICAgIHRvUmVmKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+c2NyaXB0
KCktPmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmdsb2JhbEV4ZWMoKSwg
cmVzdWx0VmFsdWUpLCAwKSkpCiAgICAgICAgICAgICBkYXRhUmVmZXJlbmNlID0gQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZShzZXJpYWxpemVkUmVzdWx0VmFsdWUtPmRhdGEoKS5kYXRhKCksIHNlcmlh
bGl6ZWRSZXN1bHRWYWx1ZS0+ZGF0YSgpLnNpemUoKSk7CiAgICAgfQogCg==
</data>
<flag name="review"
          id="81787"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>89299</attachid>
            <date>2011-04-12 16:16:25 -0700</date>
            <delta_ts>2011-04-12 16:17:51 -0700</delta_ts>
            <desc>patch to fix layout test</desc>
            <filename>SerializePatch2</filename>
            <type>application/octet-stream</type>
            <size>1108</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNjU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMTIgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU4MjgwCisgICAgICAgIEZpeCBMYXlvdXQgdGVzdCBicm9rZW4gYnkgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9wcm9qZWN0cy93ZWJraXQvY2hhbmdlc2V0LzgzNjQ1LgorICAgICAgICBBc3Np
Z24gdmFsdWVzIHRvIHRoZSBlbnVtLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisKIDIwMTEtMDQtMTEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJl
dmlzaW9uIDgzNjQ1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgZW51bSBTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZSB7CiAgICAgVW5zcGVjaWZpZWRFcnJvcgogfTsKICAgICAKLWVudW0g
U2VyaWFsaXphdGlvbkVycm9yTW9kZSB7IFRocm93aW5nLCBOb25UaHJvd2luZyB9OworZW51bSBT
ZXJpYWxpemF0aW9uRXJyb3JNb2RlIHsgTm9uVGhyb3dpbmcgPSAwLCBUaHJvd2luZyA9IDEgfTsK
IAogY2xhc3MgU2hhcmVkQnVmZmVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89300</attachid>
            <date>2011-04-12 16:17:51 -0700</date>
            <delta_ts>2011-06-18 13:23:15 -0700</delta_ts>
            <desc>patch to fix layout test</desc>
            <filename>SerializePatch2.txt</filename>
            <type>text/plain</type>
            <size>1108</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNjU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMTIgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU4MjgwCisgICAgICAgIEZpeCBMYXlvdXQgdGVzdCBicm9rZW4gYnkgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9wcm9qZWN0cy93ZWJraXQvY2hhbmdlc2V0LzgzNjQ1LgorICAgICAgICBBc3Np
Z24gdmFsdWVzIHRvIHRoZSBlbnVtLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg6CisKIDIwMTEtMDQtMTEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJl
dmlzaW9uIDgzNjQ1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgZW51bSBTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZSB7CiAgICAgVW5zcGVjaWZpZWRFcnJvcgogfTsKICAgICAKLWVudW0g
U2VyaWFsaXphdGlvbkVycm9yTW9kZSB7IFRocm93aW5nLCBOb25UaHJvd2luZyB9OworZW51bSBT
ZXJpYWxpemF0aW9uRXJyb3JNb2RlIHsgTm9uVGhyb3dpbmcgPSAwLCBUaHJvd2luZyA9IDEgfTsK
IAogY2xhc3MgU2hhcmVkQnVmZmVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89311</attachid>
            <date>2011-04-12 17:09:18 -0700</date>
            <delta_ts>2011-04-12 17:10:29 -0700</delta_ts>
            <desc>patch to fix layout test</desc>
            <filename>SerializePatch2.txt</filename>
            <type>text/plain</type>
            <size>2852</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgzNjYzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMTIgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVy
IEh1bnQsIEdlb2ZmIEdhcmVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTgyODAKKyAgICAgICAgRml4IGEgbGF5b3V0IHRlc3QgYnkgY29ycmVjdGx5
IGNvbXBhcmluZyBlbnVtc2ksIGFuZCBub3QgYWRkaW5nIGV4Y2VwdGlvbnMuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisKIDIwMTEtMDQtMTIgIEx1aXogQWdvc3RpbmkgIDxs
dWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVh
cyBLbGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcAkocmV2aXNpb24gODM2NDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzQyLDcgKzEzNDIsNyBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2Vy
aWFsCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKICAgICBTZXJpYWxpemF0aW9uUmV0
dXJuQ29kZSBjb2RlID0gQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoZXhlYywgdmFsdWUsIGJ1
ZmZlcik7Ci0gICAgaWYgKHRocm93RXhjZXB0aW9ucykKKyAgICBpZiAodGhyb3dFeGNlcHRpb25z
ID09IFRocm93aW5nKQogICAgICAgICBtYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0aW9u
RmFpbGVkKGV4ZWMsIGNvZGUpOwogCiAgICAgaWYgKCFzZXJpYWxpemF0aW9uRGlkQ29tcGxldGVT
dWNjZXNzZnVsbHkoY29kZSkpCkBAIC0xMzg5LDcgKzEzODksNyBAQCBTdHJpbmcgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjp0b1N0cmluZygpCiBKU1ZhbHVlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
ZGVzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTZXJpYWxpemF0aW9uRXJyb3JNb2RlIHRocm93RXhjZXB0aW9ucykKIHsKICAgICBEZXNlcmlh
bGl6YXRpb25SZXN1bHQgcmVzdWx0ID0gQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKGV4
ZWMsIGdsb2JhbE9iamVjdCwgbV9kYXRhKTsKLSAgICBpZiAodGhyb3dFeGNlcHRpb25zKQorICAg
IGlmICh0aHJvd0V4Y2VwdGlvbnMgPT0gVGhyb3dpbmcpCiAgICAgICAgIG1heWJlVGhyb3dFeGNl
cHRpb25JZlNlcmlhbGl6YXRpb25GYWlsZWQoZXhlYywgcmVzdWx0LnNlY29uZCk7CiAgICAgcmV0
dXJuIHJlc3VsdC5maXJzdDsKIH0KQEAgLTE0MzEsMTAgKzE0MzEsOCBAQCB2b2lkIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6bWF5YmVUaHJvd0V4CiAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3Jl
YXRlVHlwZUVycm9yKGV4ZWMsICJVbmFibGUgdG8gZGVzZXJpYWxpemUgZGF0YS4iKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRXhpc3RpbmdFeGNlcHRpb25FcnJvcjoKLSAgICAgICAgdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIkphdmFzY3JpcHQgaGFzIHRocm93
biBhbiBleGNlcHRpb24uICBIYWx0aW5nIHNlcmlhbGl6YXRpb24uIikpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVuc3BlY2lmaWVkRXJyb3I6Ci0gICAgICAgIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlVHlwZUVycm9yKGV4ZWMsICJVbmtub3duIGVycm9yIHdoaWxlIHNlcmlhbGl6aW5nIG9y
IGRlc2VyaWFsaXppbmcgZGF0YS4iKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHJldmlzaW9uIDgzNjQ1KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgZW51bSBTZXJpYWxpemF0aW9uUmV0dXJuQ29k
ZSB7CiAgICAgVW5zcGVjaWZpZWRFcnJvcgogfTsKICAgICAKLWVudW0gU2VyaWFsaXphdGlvbkVy
cm9yTW9kZSB7IFRocm93aW5nLCBOb25UaHJvd2luZyB9OworZW51bSBTZXJpYWxpemF0aW9uRXJy
b3JNb2RlIHsgTm9uVGhyb3dpbmcsIFRocm93aW5nIH07CiAKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsK
IAo=
</data>
<flag name="review"
          id="81971"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>