<?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>78608</bug_id>
          
          <creation_ts>2012-02-14 08:50:26 -0800</creation_ts>
          <short_desc>[BlackBerry] Dragging a selection handle outside of the content bounding box does not update the selection range correctly</short_desc>
          <delta_ts>2012-02-27 12:03:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>0</everconfirmed>
          <reporter>edbaker</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>556332</commentid>
    <comment_count>0</comment_count>
    <who name="">edbaker</who>
    <bug_when>2012-02-14 08:50:26 -0800</bug_when>
    <thetext>The selection point that is not being dragged can change causing the selection range to alter in a manner that is inconsistent with where the handle is being dragged</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556357</commentid>
    <comment_count>1</comment_count>
      <attachid>126988</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-14 09:44:52 -0800</bug_when>
    <thetext>Created attachment 126988
Patch to fix out of bounds selection bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556362</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 09:48:35 -0800</bug_when>
    <thetext>Attachment 126988 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
From git://git.webkit.org/WebKit
   6640514..bdb5923  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 107712 = 66405148c5f7c19d2179ddbd3d3d5ee458d4b6d6
r107713 = bdb5923a53a7eb41b8caa692aeda37d9f1396079
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168776 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556366</commentid>
    <comment_count>3</comment_count>
      <attachid>126991</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-14 09:56:07 -0800</bug_when>
    <thetext>Created attachment 126991
Patch to fix out of bounds selection bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556392</commentid>
    <comment_count>4</comment_count>
      <attachid>126991</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-02-14 10:33:48 -0800</bug_when>
    <thetext>Comment on attachment 126991
Patch to fix out of bounds selection bug

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556454</commentid>
    <comment_count>5</comment_count>
      <attachid>126991</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 11:40:14 -0800</bug_when>
    <thetext>Comment on attachment 126991
Patch to fix out of bounds selection bug

Clearing flags on attachment: 126991

Committed r107719: &lt;http://trac.webkit.org/changeset/107719&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556455</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 11:40:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557014</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 01:10:23 -0800</bug_when>
    <thetext>Attachment 126991 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
Using index info to reconstruct a base tree...
&lt;stdin&gt;:1578: trailing whitespace.
        
&lt;stdin&gt;:1647: trailing whitespace.
    
&lt;stdin&gt;:1657: trailing whitespace.
    
&lt;stdin&gt;:1672: trailing whitespace.
        return 0;        
&lt;stdin&gt;:1674: trailing whitespace.
    
warning: squelched 7 whitespace errors
warning: 12 lines add whitespace errors.
Falling back to patching base and 3-way merge...
warning: too many files (created: 168753 deleted: 3), skipping inexact rename detection
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/wk2/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/css/CSSCalculationValue.cpp
Auto-merging Source/WebCore/css/CSSCalculationValue.h
Auto-merging Source/WebCore/css/CSSParser.cpp
Auto-merging Source/WebKit/mac/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit/mac/ChangeLog
Auto-merging Source/WebKit2/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit2/ChangeLog
Auto-merging Tools/ChangeLog
CONFLICT (content): Merge conflict in Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564358</commentid>
    <comment_count>8</comment_count>
      <attachid>128741</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-24 09:09:09 -0800</bug_when>
    <thetext>Created attachment 128741
reverts revision 107719</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564441</commentid>
    <comment_count>9</comment_count>
      <attachid>128757</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-24 10:35:40 -0800</bug_when>
    <thetext>Created attachment 128757
reverts revision 107719</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564998</commentid>
    <comment_count>10</comment_count>
      <attachid>128877</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-25 11:54:30 -0800</bug_when>
    <thetext>Created attachment 128877
Patch to fix out of bounds selection bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564999</commentid>
    <comment_count>11</comment_count>
    <who name="">edbaker</who>
    <bug_when>2012-02-25 11:55:18 -0800</bug_when>
    <thetext>Needs to reopened as fix introduced a regression that needs to be resolved</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565000</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-25 11:58:26 -0800</bug_when>
    <thetext>Attachment 128877 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/blackberry/ChangeLog&apos;, u&apos;Sou...&quot; exit_code: 1
Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp:762:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 5 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>565001</commentid>
    <comment_count>13</comment_count>
      <attachid>128878</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-25 12:01:26 -0800</bug_when>
    <thetext>Created attachment 128878
Patch to fix out of bounds selection bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565609</commentid>
    <comment_count>14</comment_count>
      <attachid>129026</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-27 06:19:23 -0800</bug_when>
    <thetext>Created attachment 129026
Patch to fix out of bounds selection bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565733</commentid>
    <comment_count>15</comment_count>
      <attachid>129053</attachid>
    <who name="">edbaker</who>
    <bug_when>2012-02-27 09:28:10 -0800</bug_when>
    <thetext>Created attachment 129053
Patch to fix out of bounds selection bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565780</commentid>
    <comment_count>16</comment_count>
      <attachid>129053</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-27 10:20:46 -0800</bug_when>
    <thetext>Comment on attachment 129053
Patch to fix out of bounds selection bug

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

&gt; Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp:361
&gt; +        targetPoint = IntPoint(targetPoint.x() &lt; targetFrameRect.x() ? targetFrameRect.x() : std::min(targetPoint.x(), targetFrameRect.maxX()),
&gt; +                targetPoint.y() &lt; targetFrameRect.y() ? targetFrameRect.y() : std::min(targetPoint.y(), targetFrameRect.maxY()));

looks mis-indented.

&gt; Source/WebKit/blackberry/WebKitSupport/DOMSupport.h:75
&gt; +WebCore::IntPoint convertPointToFrame(const WebCore::Frame* sourceFrame, const WebCore::Frame* targetFrame, const WebCore::IntPoint&amp; sourcePoint, const bool clampToTargetFrame = false);

&apos;const&apos; for the bool is uncommon, but that is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565874</commentid>
    <comment_count>17</comment_count>
      <attachid>129053</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 12:03:26 -0800</bug_when>
    <thetext>Comment on attachment 129053
Patch to fix out of bounds selection bug

Clearing flags on attachment: 129053

Committed r109013: &lt;http://trac.webkit.org/changeset/109013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565875</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 12:03:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126988</attachid>
            <date>2012-02-14 09:44:52 -0800</date>
            <delta_ts>2012-02-14 09:56:07 -0800</delta_ts>
            <desc>Patch to fix out of bounds selection bug</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>9278</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSAyMDgxYzkyMDI1NzY0N2UyNDAxNThkODY4M2NhZGIxZGJhMTdhYmNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFZCBCYWtlciA8ZWRiYWtlckByaW0uY29tPgpEYXRlOiBNb24s
IDEzIEZlYiAyMDEyIDEzOjIzOjMyIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0wMi0xMyAg
RWQgQmFrZXIgIDxlZGJha2VyQHJpbS5jb20+CgogICAgICAgIFBSICMgMTM1NTI0CgogICAgICAg
IEVuc3VyZSB0aGF0IHdoZW4gc2VsZWN0aW9uIGhhbmRsZXMgbGVhdmUgdGhlIGNvbnRlbnQgYm91
bmRpbmcgYm94IHRoYXQKICAgICAgICB0aGUgaGFuZGxlIG5vdCBiZWluZyBkcmFnZ2VkIHJlbWFp
bnMgZml4ZWQuIERvIG5vdCBhcHBseWluZyBwYWRkaW5nIHRvCiAgICAgICAgYSBkaXJlY3Rpb24g
dGhhdCB3b3VsZCBjYXVzZSB0aGUgc2VsZWN0aW9uIHRvIHNocmluayB3aGVuIHBlcmZvcm1pbmcK
ICAgICAgICB0aGUgaGFuZGxlIGRpcmVjdGlvbiBkZXRlY3Rpb24uCgogICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9T
ZWxlY3Rpb25IYW5kbGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpkaXJlY3Rp
b25PZlBvaW50UmVsYXRpdmVUb1JlY3QpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNl
bGVjdGlvbkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeSk6CiAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKToKLS0t
CiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTkgKysrKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5k
bGVyLmNwcCAgfCAgIDM5ICsrKysrKysrKysrKysrKy0tLS0tCiAuLi4vYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaCAgICB8ICAgIDEgKwogMyBmaWxlcyBjaGFuZ2Vk
LCA1MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzU2NzMzYy4u
ZDI4ZjJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMi0xNCAgRWQgQmFrZXIg
IDxlZGJha2VyQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIERyYWdnaW5nIGEgc2Vs
ZWN0aW9uIGhhbmRsZSBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCBkb2VzIG5v
dCB1cGRhdGUgdGhlIHNlbGVjdGlvbiByYW5nZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA4CisgICAgICAgIAorICAgICAgICBF
bnN1cmUgdGhhdCB3aGVuIHNlbGVjdGlvbiBoYW5kbGVzIGxlYXZlIHRoZSBjb250ZW50IGJvdW5k
aW5nIGJveCB0aGF0CisgICAgICAgIHRoZSBoYW5kbGUgbm90IGJlaW5nIGRyYWdnZWQgcmVtYWlu
cyBmaXhlZC4gRG8gbm90IGFwcGx5aW5nIHBhZGRpbmcgdG8KKyAgICAgICAgYSBkaXJlY3Rpb24g
dGhhdCB3b3VsZCBjYXVzZSB0aGUgc2VsZWN0aW9uIHRvIHNocmluayB3aGVuIHBlcmZvcm1pbmcK
KyAgICAgICAgdGhlIGhhbmRsZSBkaXJlY3Rpb24gZGV0ZWN0aW9uLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0Ojpk
aXJlY3Rpb25PZlBvaW50UmVsYXRpdmVUb1JlY3QpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpleHRlbmRTZWxlY3Rpb25Ub0ZpZWxkQm91bmRhcnkpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpjbGlwUG9pbnRU
b0ZvY3VzTm9kZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRs
ZXI6OnNldFNlbGVjdGlvbik6CisgICAgICAgICogYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuaDoKKwogMjAxMi0wMi0xMyAgTmltYSBHaGFuYXZhdGlhbiAgPG5naGFu
YXZhdGlhbkByaW0uY29tPgogCiAgICAgICAgIEluaXRpYWwgdXBzdHJlYW1pbmcgb2Ygc2VsZWN0
aW9uIGhhbmRsaW5nIGNvZGUgZm9yIEJsYWNrQmVycnkgcG9ydApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNw
cAppbmRleCAzYzc2MmNhLi5jNWQ2NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcApAQCAtMTcw
LDcgKzE3MCw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yUG9p
bnRJZ25vcmluZ0NsaXBwaW5nKGNvbnN0IEZyYW1lJiBmcmFtCiAgICAgcmV0dXJuIHZpc2libGVQ
b3M7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb25PZlBvaW50UmVsYXRpdmVU
b1JlY3QoY29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQorc3RhdGlj
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbk9mUG9pbnRSZWxhdGl2ZVRvUmVjdChjb25zdCBJbnRQ
b2ludCYgcG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IGJvb2wgdXNlVG9wUGFkZGlu
ZyA9IHRydWUsIGNvbnN0IGJvb2wgdXNlQm90dG9tUGFkZGluZyA9IHRydWUpCiB7CiAgICAgQVNT
RVJUKCFyZWN0LmNvbnRhaW5zKHBvaW50KSk7CiAKQEAgLTE3OSw5ICsxNzksOSBAQCBzdGF0aWMg
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KGNvbnN0IEludFBv
aW50JiBwb2ludCwgY29ucwogCiAgICAgLy8gRG8gaGVpZ2h0IG1vdmVtZW50IGNoZWNrIGZpcnN0
IGJ1dCBhZGQgcGFkZGluZy4gV2UgbWF5IGJlIG9mZiBvbiBib3RoIHggJiB5IGF4aXMgYW5kIG9u
bHkKICAgICAvLyB3YW50IHRvIG1vdmUgaW4gb25lIGRpcmVjdGlvbiBhdCBhIHRpbWUuCi0gICAg
aWYgKHBvaW50LnkoKSArIHZlcnRpY2FsUGFkZGluZyA8IHJlY3QueSgpKQorICAgIGlmIChwb2lu
dC55KCkgKyAodXNlVG9wUGFkZGluZyA/IHZlcnRpY2FsUGFkZGluZyA6IDApIDwgcmVjdC55KCkp
CiAgICAgICAgIHJldHVybiBLRVlDT0RFX1VQOwotICAgIGlmIChwb2ludC55KCkgPiByZWN0Lm1h
eFkoKSArIHZlcnRpY2FsUGFkZGluZykKKyAgICBpZiAocG9pbnQueSgpID4gcmVjdC5tYXhZKCkg
KyAodXNlQm90dG9tUGFkZGluZyA/IHZlcnRpY2FsUGFkZGluZyA6IDApKQogICAgICAgICByZXR1
cm4gS0VZQ09ERV9ET1dOOwogICAgIGlmIChwb2ludC54KCkgPCByZWN0LmxvY2F0aW9uKCkueCgp
KQogICAgICAgICByZXR1cm4gS0VZQ09ERV9MRUZUOwpAQCAtMzQyLDEwICszNDIsMTEgQEAgdW5z
aWduZWQgc2hvcnQgU2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5k
YXJ5KGJvb2wgaXNTdGFydEhhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlRW5kKCkuYWJzb2x1dGVDYXJldEJv
dW5kcygpOwogCiAgICAgSW50UmVjdCBub2RlQm91bmRpbmdCb3ggPSBmb2N1c2VkRnJhbWUtPmRv
Y3VtZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hS
ZWN0KCk7CisgICAgbm9kZUJvdW5kaW5nQm94LmluZmxhdGUoLTEpOwogCiAgICAgLy8gU3RhcnQg
aGFuZGxlIGlzIG91dHNpZGUgb2YgdGhlIGZpZWxkLiBUcmVhdCBpdCBhcyB0aGUgY2hhbmdlZCBo
YW5kbGUgYW5kIG1vdmUKICAgICAvLyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgY2FyZXQgcmVjdC4K
LSAgICB1bnNpZ25lZCBzaG9ydCBjaGFyYWN0ZXIgPSBkaXJlY3Rpb25PZlBvaW50UmVsYXRpdmVU
b1JlY3Qoc2VsZWN0aW9uUG9pbnQsIGNhcmV0UmVjdCk7CisgICAgdW5zaWduZWQgc2hvcnQgY2hh
cmFjdGVyID0gZGlyZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KHNlbGVjdGlvblBvaW50LCBj
YXJldFJlY3QsIGlzU3RhcnRIYW5kbGUgLyp1c2VUb3BQYWRkaW5nKi8sICFpc1N0YXJ0SGFuZGxl
IC8qdXNlQm90dG9tUGFkZGluZyovKTsKIAogICAgIC8vIFByZXZlbnQgaW5jb3JyZWN0IG1vdmVt
ZW50LCBoYW5kbGVzIGNhbiBvbmx5IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRoaXMgd2F5CiAgICAg
Ly8gdG8gcHJldmVudCBpbnZlcnNpb24gb2YgdGhlIGhhbmRsZXMuCkBAIC0zNTMsMTYgKzM1NCwx
NiBAQCB1bnNpZ25lZCBzaG9ydCBTZWxlY3Rpb25IYW5kbGVyOjpleHRlbmRTZWxlY3Rpb25Ub0Zp
ZWxkQm91bmRhcnkoYm9vbCBpc1N0YXJ0SGFuZAogICAgICAgICB8fCAhaXNTdGFydEhhbmRsZSAm
JiAoY2hhcmFjdGVyID09IEtFWUNPREVfTEVGVCB8fCBjaGFyYWN0ZXIgPT0gS0VZQ09ERV9VUCkp
CiAgICAgICAgIGNoYXJhY3RlciA9IDA7CiAKLSAgICBWaXNpYmxlUG9zaXRpb24gbmV3VmlzaWJs
ZVBvc2l0aW9uID0gY29udHJvbGxlci0+c2VsZWN0aW9uKCkuc3RhcnQoKTsKKyAgICBWaXNpYmxl
UG9zaXRpb24gbmV3VmlzaWJsZVBvc2l0aW9uID0gaXNTdGFydEhhbmRsZSA/IGNvbnRyb2xsZXIt
PnNlbGVjdGlvbigpLmV4dGVudCgpIDogY29udHJvbGxlci0+c2VsZWN0aW9uKCkuYmFzZSgpOwog
ICAgIC8vIEV4dGVuZCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBib3VuZHMgb2YgdGhlIGJveCBiZWZv
cmUgZG9pbmcgaW5jcmVtZW50YWwgc2Nyb2xsIGlmIHRoZSBwb2ludCBpcyBvdXRzaWRlIHRoZSBu
b2RlLgogICAgIC8vIERvbid0IGV4dGVuZCBzZWxlY3Rpb24gYW5kIGhhbmRsZSB0aGUgY2hhcmFj
dGVyIGF0IHRoZSBzYW1lIHRpbWUuCiAgICAgaWYgKHBvaW50SXNPdXRzaWRlT2ZCb3VuZGluZ0Jv
eEluRGlyZWN0aW9uKGNoYXJhY3Rlciwgc2VsZWN0aW9uUG9pbnQsIG5vZGVCb3VuZGluZ0JveCkp
CiAgICAgICAgIG5ld1Zpc2libGVQb3NpdGlvbiA9IGRpcmVjdGlvbmFsVmlzaWJsZVBvc2l0aW9u
QXRFeHRlbnRPZkJveChmb2N1c2VkRnJhbWUsIG5vZGVCb3VuZGluZ0JveCwgY2hhcmFjdGVyLCBz
ZWxlY3Rpb25Qb2ludCk7CiAKICAgICBpZiAoaXNTdGFydEhhbmRsZSkKLSAgICAgICAgbmV3U2Vs
ZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihuZXdWaXNpYmxlUG9zaXRpb24sIG5ld1NlbGVjdGlv
bi52aXNpYmxlRW5kKCksIHRydWUgLyppc0RpcmVjdGlvbmFsKi8pOworICAgICAgICBuZXdTZWxl
Y3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKG5ld1Zpc2libGVQb3NpdGlvbiwgbmV3U2VsZWN0aW9u
LmV4dGVudCgpLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKICAgICBlbHNlCi0gICAgICAgIG5l
d1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obmV3U2VsZWN0aW9uLnZpc2libGVTdGFydCgp
LCBuZXdWaXNpYmxlUG9zaXRpb24sIHRydWUgLyppc0RpcmVjdGlvbmFsKi8pOworICAgICAgICBu
ZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbi5iYXNlKCksIG5ld1Zp
c2libGVQb3NpdGlvbiwgdHJ1ZSAvKmlzRGlyZWN0aW9uYWwqLyk7CiAKICAgICAvLyBJZiBubyBz
ZWxlY3Rpb24gd2lsbCBiZSBjaGFuZ2VkLCByZXR1cm4gdGhlIGNoYXJhY3RlciB0byBleHRlbmQg
dXNpbmcgbmF2aWdhdGlvbi4KICAgICBpZiAoY29udHJvbGxlci0+c2VsZWN0aW9uKCkgPT0gbmV3
U2VsZWN0aW9uKQpAQCAtNDMyLDYgKzQzMywyNiBAQCBib29sIFNlbGVjdGlvbkhhbmRsZXI6OnVw
ZGF0ZU9ySGFuZGxlSW5wdXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aQog
ICAgIHJldHVybiB0cnVlOwogfQogCitJbnRQb2ludCBTZWxlY3Rpb25IYW5kbGVyOjpjbGlwUG9p
bnRUb0ZvY3VzTm9kZShjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgRnJhbWUqIGZvY3Vz
ZWRGcmFtZSA9IG1fd2ViUGFnZS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgRnJhbWVTZWxl
Y3Rpb24qIGNvbnRyb2xsZXIgPSBmb2N1c2VkRnJhbWUtPnNlbGVjdGlvbigpOworCisgICAgaWYg
KCFmb2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgfHwgIWZvY3VzZWRGcmFt
ZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJu
IHBvaW50OworCisgICAgSW50UmVjdCBmb2N1c2VkTm9kZUJvdW5kaW5nQm94ID0gZm9jdXNlZEZy
YW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5k
aW5nQm94UmVjdCgpOworICAgIGZvY3VzZWROb2RlQm91bmRpbmdCb3guaW5mbGF0ZSgtMSk7CisK
KyAgICBJbnRQb2ludCBjbGlwcGVkUG9pbnQgPSBwb2ludDsKKyAgICBpZiAoIWZvY3VzZWROb2Rl
Qm91bmRpbmdCb3guY29udGFpbnMoY2xpcHBlZFBvaW50KSkKKyAgICAgICAgY2xpcHBlZFBvaW50
ID0gSW50UG9pbnQoCisgICAgICAgICAgICBwb2ludC54KCkgPCBmb2N1c2VkTm9kZUJvdW5kaW5n
Qm94LngoKSA/IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueCgpIDogc3RkOjptaW4oZm9jdXNlZE5v
ZGVCb3VuZGluZ0JveC5tYXhYKCksIHBvaW50LngoKSksCisgICAgICAgICAgICBwb2ludC55KCkg
PCBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LnkoKSA/IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueSgp
IDogc3RkOjptaW4oZm9jdXNlZE5vZGVCb3VuZGluZ0JveC5tYXhZKCksIHBvaW50LnkoKSkpOwor
CisgICAgcmV0dXJuIGNsaXBwZWRQb2ludDsKK30KKwogdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpz
ZXRTZWxlY3Rpb24oY29uc3QgSW50UG9pbnQmIHN0YXJ0LCBjb25zdCBJbnRQb2ludCYgZW5kKQog
ewogICAgIG1fc2VsZWN0aW9uQWN0aXZlID0gdHJ1ZTsKQEAgLTQ2Niw3ICs0ODcsNyBAQCB2b2lk
IFNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbihjb25zdCBJbnRQb2ludCYgc3RhcnQsIGNv
bnN0IEludFBvaW50JiBlbmQpCiAgICAgICAgIHJlbGF0aXZlU3RhcnQgPSBET01TdXBwb3J0Ojpj
b252ZXJ0UG9pbnRUb0ZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCksIGZvY3VzZWRGcmFtZSwg
c3RhcnQpOwogCiAgICAgICAgIC8vIFNldCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRhdGlvbi4K
LSAgICAgICAgbmV3U2VsZWN0aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25v
cmluZ0NsaXBwaW5nKCpmb2N1c2VkRnJhbWUsIHJlbGF0aXZlU3RhcnQpKTsKKyAgICAgICAgbmV3
U2VsZWN0aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5n
KCpmb2N1c2VkRnJhbWUsIGNsaXBQb2ludFRvRm9jdXNOb2RlKHJlbGF0aXZlU3RhcnQpKSk7CiAK
ICAgICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3RpbmcgZXh0ZW50
IHdpdGhvdXQgdmFsaWRhdGlvbi4KICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxp
ZGF0aW9uKG5ld1NlbGVjdGlvbi5iYXNlKCksIGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLmVuZCgp
KTsKQEAgLTQ3Niw3ICs0OTcsNyBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlv
bihjb25zdCBJbnRQb2ludCYgc3RhcnQsIGNvbnN0IEludFBvaW50JiBlbmQpCiAgICAgICAgIHJl
bGF0aXZlRW5kID0gRE9NU3VwcG9ydDo6Y29udmVydFBvaW50VG9GcmFtZShtX3dlYlBhZ2UtPm1h
aW5GcmFtZSgpLCBmb2N1c2VkRnJhbWUsIGVuZCk7CiAKICAgICAgICAgLy8gU2V0IHRoZSBzZWxl
Y3Rpb24gd2l0aCB2YWxpZGF0aW9uLgotICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHZp
c2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCByZWxh
dGl2ZUVuZCkpOworICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHZpc2libGVQb3NpdGlv
bkZvclBvaW50SWdub3JpbmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCBjbGlwUG9pbnRUb0ZvY3Vz
Tm9kZShyZWxhdGl2ZUVuZCkpKTsKIAogICAgICAgICAvLyBSZXNldCB0aGUgc2VsZWN0aW9uIHVz
aW5nIHRoZSBleGlzdGluZyBiYXNlIHdpdGhvdXQgdmFsaWRhdGlvbi4KICAgICAgICAgbmV3U2Vs
ZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLnN0YXJ0
KCksIG5ld1NlbGVjdGlvbi5leHRlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmgKaW5kZXggYWQ0ZTM5
OC4uYzAzYzUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaApAQCAtNzcsNiArNzcsNyBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6Ok5vZGUqIERPTUNvbnRhaW5lck5vZGVGb3JWaXNpYmxlUG9zaXRpb24o
Y29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJikgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRV
cGRhdGVTZWxlY3Rpb25PckNhcmV0Rm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBzdGFydENhcmV0ID0gdHJ1ZSkgY29uc3Q7CiAg
ICAgdW5zaWduZWQgc2hvcnQgZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KGJvb2wgaXNT
dGFydEhhbmRsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNlbGVjdGlvblBvaW50LCBXZWJD
b3JlOjpWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pOworICAgIFdlYkNvcmU6OkludFBv
aW50IGNsaXBQb2ludFRvRm9jdXNOb2RlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAKICAg
ICBXZWJQYWdlUHJpdmF0ZSogbV93ZWJQYWdlOwogCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126991</attachid>
            <date>2012-02-14 09:56:07 -0800</date>
            <delta_ts>2012-02-24 09:09:09 -0800</delta_ts>
            <desc>Patch to fix out of bounds selection bug</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>9270</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSBkYjRmNWEyZWUwZDVjNmQ4NGYxYjM3YzY2ZjM0Mjk4MTEwMjM0ODk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFZCBCYWtlciA8ZWRiYWtlckByaW0uY29tPgpEYXRlOiBNb24s
IDEzIEZlYiAyMDEyIDEzOjIzOjMyIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0wMi0xMyAg
RWQgQmFrZXIgIDxlZGJha2VyQHJpbS5jb20+CgogICAgICAgIFBSICMgMTM1NTI0CgogICAgICAg
IEVuc3VyZSB0aGF0IHdoZW4gc2VsZWN0aW9uIGhhbmRsZXMgbGVhdmUgdGhlIGNvbnRlbnQgYm91
bmRpbmcgYm94IHRoYXQKICAgICAgICB0aGUgaGFuZGxlIG5vdCBiZWluZyBkcmFnZ2VkIHJlbWFp
bnMgZml4ZWQuIERvIG5vdCBhcHBseWluZyBwYWRkaW5nIHRvCiAgICAgICAgYSBkaXJlY3Rpb24g
dGhhdCB3b3VsZCBjYXVzZSB0aGUgc2VsZWN0aW9uIHRvIHNocmluayB3aGVuIHBlcmZvcm1pbmcK
ICAgICAgICB0aGUgaGFuZGxlIGRpcmVjdGlvbiBkZXRlY3Rpb24uCgogICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9T
ZWxlY3Rpb25IYW5kbGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpkaXJlY3Rp
b25PZlBvaW50UmVsYXRpdmVUb1JlY3QpOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNl
bGVjdGlvbkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeSk6CiAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKToKLS0t
CiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTkgKysrKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5k
bGVyLmNwcCAgfCAgIDM5ICsrKysrKysrKysrKysrKy0tLS0tCiAuLi4vYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaCAgICB8ICAgIDEgKwogMyBmaWxlcyBjaGFuZ2Vk
LCA1MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzU2NzMzYy4u
MGUxYmVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMi0xNCAgRWQgQmFrZXIg
IDxlZGJha2VyQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIERyYWdnaW5nIGEgc2Vs
ZWN0aW9uIGhhbmRsZSBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCBkb2VzIG5v
dCB1cGRhdGUgdGhlIHNlbGVjdGlvbiByYW5nZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA4CisKKyAgICAgICAgRW5zdXJlIHRo
YXQgd2hlbiBzZWxlY3Rpb24gaGFuZGxlcyBsZWF2ZSB0aGUgY29udGVudCBib3VuZGluZyBib3gg
dGhhdAorICAgICAgICB0aGUgaGFuZGxlIG5vdCBiZWluZyBkcmFnZ2VkIHJlbWFpbnMgZml4ZWQu
IERvIG5vdCBhcHBseWluZyBwYWRkaW5nIHRvCisgICAgICAgIGEgZGlyZWN0aW9uIHRoYXQgd291
bGQgY2F1c2UgdGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nCisgICAgICAg
IHRoZSBoYW5kbGUgZGlyZWN0aW9uIGRldGVjdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxl
Y3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6ZGlyZWN0aW9u
T2ZQb2ludFJlbGF0aXZlVG9SZWN0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2Vs
ZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9Gb2N1c05v
ZGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRT
ZWxlY3Rpb24pOgorICAgICAgICAqIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25I
YW5kbGVyLmg6CisKIDIwMTItMDItMTMgIE5pbWEgR2hhbmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5A
cmltLmNvbT4KIAogICAgICAgICBJbml0aWFsIHVwc3RyZWFtaW5nIG9mIHNlbGVjdGlvbiBoYW5k
bGluZyBjb2RlIGZvciBCbGFja0JlcnJ5IHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXgg
M2M3NjJjYS4uYzVkNjQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTE3MCw3ICsxNzAs
NyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3Jp
bmdDbGlwcGluZyhjb25zdCBGcmFtZSYgZnJhbQogICAgIHJldHVybiB2aXNpYmxlUG9zOwogfQog
Ci1zdGF0aWMgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KGNv
bnN0IEludFBvaW50JiBwb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3N0YXRpYyB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb25PZlBvaW50UmVsYXRpdmVUb1JlY3QoY29uc3QgSW50UG9pbnQmIHBv
aW50LCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBib29sIHVzZVRvcFBhZGRpbmcgPSB0cnVl
LCBjb25zdCBib29sIHVzZUJvdHRvbVBhZGRpbmcgPSB0cnVlKQogewogICAgIEFTU0VSVCghcmVj
dC5jb250YWlucyhwb2ludCkpOwogCkBAIC0xNzksOSArMTc5LDkgQEAgc3RhdGljIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbk9mUG9pbnRSZWxhdGl2ZVRvUmVjdChjb25zdCBJbnRQb2ludCYgcG9p
bnQsIGNvbnMKIAogICAgIC8vIERvIGhlaWdodCBtb3ZlbWVudCBjaGVjayBmaXJzdCBidXQgYWRk
IHBhZGRpbmcuIFdlIG1heSBiZSBvZmYgb24gYm90aCB4ICYgeSBheGlzIGFuZCBvbmx5CiAgICAg
Ly8gd2FudCB0byBtb3ZlIGluIG9uZSBkaXJlY3Rpb24gYXQgYSB0aW1lLgotICAgIGlmIChwb2lu
dC55KCkgKyB2ZXJ0aWNhbFBhZGRpbmcgPCByZWN0LnkoKSkKKyAgICBpZiAocG9pbnQueSgpICsg
KHVzZVRvcFBhZGRpbmcgPyB2ZXJ0aWNhbFBhZGRpbmcgOiAwKSA8IHJlY3QueSgpKQogICAgICAg
ICByZXR1cm4gS0VZQ09ERV9VUDsKLSAgICBpZiAocG9pbnQueSgpID4gcmVjdC5tYXhZKCkgKyB2
ZXJ0aWNhbFBhZGRpbmcpCisgICAgaWYgKHBvaW50LnkoKSA+IHJlY3QubWF4WSgpICsgKHVzZUJv
dHRvbVBhZGRpbmcgPyB2ZXJ0aWNhbFBhZGRpbmcgOiAwKSkKICAgICAgICAgcmV0dXJuIEtFWUNP
REVfRE9XTjsKICAgICBpZiAocG9pbnQueCgpIDwgcmVjdC5sb2NhdGlvbigpLngoKSkKICAgICAg
ICAgcmV0dXJuIEtFWUNPREVfTEVGVDsKQEAgLTM0MiwxMCArMzQyLDExIEBAIHVuc2lnbmVkIHNo
b3J0IFNlbGVjdGlvbkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29s
IGlzU3RhcnRIYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29u
dHJvbGxlci0+c2VsZWN0aW9uKCkudmlzaWJsZUVuZCgpLmFic29sdXRlQ2FyZXRCb3VuZHMoKTsK
IAogICAgIEludFJlY3Qgbm9kZUJvdW5kaW5nQm94ID0gZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgp
LT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOwor
ICAgIG5vZGVCb3VuZGluZ0JveC5pbmZsYXRlKC0xKTsKIAogICAgIC8vIFN0YXJ0IGhhbmRsZSBp
cyBvdXRzaWRlIG9mIHRoZSBmaWVsZC4gVHJlYXQgaXQgYXMgdGhlIGNoYW5nZWQgaGFuZGxlIGFu
ZCBtb3ZlCiAgICAgLy8gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IGNhcmV0IHJlY3QuCi0gICAgdW5z
aWduZWQgc2hvcnQgY2hhcmFjdGVyID0gZGlyZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KHNl
bGVjdGlvblBvaW50LCBjYXJldFJlY3QpOworICAgIHVuc2lnbmVkIHNob3J0IGNoYXJhY3RlciA9
IGRpcmVjdGlvbk9mUG9pbnRSZWxhdGl2ZVRvUmVjdChzZWxlY3Rpb25Qb2ludCwgY2FyZXRSZWN0
LCBpc1N0YXJ0SGFuZGxlIC8qdXNlVG9wUGFkZGluZyovLCAhaXNTdGFydEhhbmRsZSAvKnVzZUJv
dHRvbVBhZGRpbmcqLyk7CiAKICAgICAvLyBQcmV2ZW50IGluY29ycmVjdCBtb3ZlbWVudCwgaGFu
ZGxlcyBjYW4gb25seSBleHRlbmQgdGhlIHNlbGVjdGlvbiB0aGlzIHdheQogICAgIC8vIHRvIHBy
ZXZlbnQgaW52ZXJzaW9uIG9mIHRoZSBoYW5kbGVzLgpAQCAtMzUzLDE2ICszNTQsMTYgQEAgdW5z
aWduZWQgc2hvcnQgU2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5k
YXJ5KGJvb2wgaXNTdGFydEhhbmQKICAgICAgICAgfHwgIWlzU3RhcnRIYW5kbGUgJiYgKGNoYXJh
Y3RlciA9PSBLRVlDT0RFX0xFRlQgfHwgY2hhcmFjdGVyID09IEtFWUNPREVfVVApKQogICAgICAg
ICBjaGFyYWN0ZXIgPSAwOwogCi0gICAgVmlzaWJsZVBvc2l0aW9uIG5ld1Zpc2libGVQb3NpdGlv
biA9IGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLnN0YXJ0KCk7CisgICAgVmlzaWJsZVBvc2l0aW9u
IG5ld1Zpc2libGVQb3NpdGlvbiA9IGlzU3RhcnRIYW5kbGUgPyBjb250cm9sbGVyLT5zZWxlY3Rp
b24oKS5leHRlbnQoKSA6IGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLmJhc2UoKTsKICAgICAvLyBF
eHRlbmQgdGhlIHNlbGVjdGlvbiB0byB0aGUgYm91bmRzIG9mIHRoZSBib3ggYmVmb3JlIGRvaW5n
IGluY3JlbWVudGFsIHNjcm9sbCBpZiB0aGUgcG9pbnQgaXMgb3V0c2lkZSB0aGUgbm9kZS4KICAg
ICAvLyBEb24ndCBleHRlbmQgc2VsZWN0aW9uIGFuZCBoYW5kbGUgdGhlIGNoYXJhY3RlciBhdCB0
aGUgc2FtZSB0aW1lLgogICAgIGlmIChwb2ludElzT3V0c2lkZU9mQm91bmRpbmdCb3hJbkRpcmVj
dGlvbihjaGFyYWN0ZXIsIHNlbGVjdGlvblBvaW50LCBub2RlQm91bmRpbmdCb3gpKQogICAgICAg
ICBuZXdWaXNpYmxlUG9zaXRpb24gPSBkaXJlY3Rpb25hbFZpc2libGVQb3NpdGlvbkF0RXh0ZW50
T2ZCb3goZm9jdXNlZEZyYW1lLCBub2RlQm91bmRpbmdCb3gsIGNoYXJhY3Rlciwgc2VsZWN0aW9u
UG9pbnQpOwogCiAgICAgaWYgKGlzU3RhcnRIYW5kbGUpCi0gICAgICAgIG5ld1NlbGVjdGlvbiA9
IFZpc2libGVTZWxlY3Rpb24obmV3VmlzaWJsZVBvc2l0aW9uLCBuZXdTZWxlY3Rpb24udmlzaWJs
ZUVuZCgpLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKKyAgICAgICAgbmV3U2VsZWN0aW9uID0g
VmlzaWJsZVNlbGVjdGlvbihuZXdWaXNpYmxlUG9zaXRpb24sIG5ld1NlbGVjdGlvbi5leHRlbnQo
KSwgdHJ1ZSAvKmlzRGlyZWN0aW9uYWwqLyk7CiAgICAgZWxzZQotICAgICAgICBuZXdTZWxlY3Rp
b24gPSBWaXNpYmxlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSwgbmV3Vmlz
aWJsZVBvc2l0aW9uLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKKyAgICAgICAgbmV3U2VsZWN0
aW9uID0gVmlzaWJsZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24uYmFzZSgpLCBuZXdWaXNpYmxlUG9z
aXRpb24sIHRydWUgLyppc0RpcmVjdGlvbmFsKi8pOwogCiAgICAgLy8gSWYgbm8gc2VsZWN0aW9u
IHdpbGwgYmUgY2hhbmdlZCwgcmV0dXJuIHRoZSBjaGFyYWN0ZXIgdG8gZXh0ZW5kIHVzaW5nIG5h
dmlnYXRpb24uCiAgICAgaWYgKGNvbnRyb2xsZXItPnNlbGVjdGlvbigpID09IG5ld1NlbGVjdGlv
bikKQEAgLTQzMiw2ICs0MzMsMjYgQEAgYm9vbCBTZWxlY3Rpb25IYW5kbGVyOjp1cGRhdGVPckhh
bmRsZUlucHV0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorSW50UG9pbnQgU2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9Gb2N1
c05vZGUoY29uc3QgSW50UG9pbnQmIHBvaW50KQoreworICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUg
PSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEZyYW1lU2VsZWN0aW9uKiBj
b250cm9sbGVyID0gZm9jdXNlZEZyYW1lLT5zZWxlY3Rpb24oKTsKKworICAgIGlmICghZm9jdXNl
ZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpIHx8ICFmb2N1c2VkRnJhbWUtPmRvY3Vt
ZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBwb2ludDsK
KworICAgIEludFJlY3QgZm9jdXNlZE5vZGVCb3VuZGluZ0JveCA9IGZvY3VzZWRGcmFtZS0+ZG9j
dW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QoKTsKKyAgICBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LmluZmxhdGUoLTEpOworCisgICAgSW50
UG9pbnQgY2xpcHBlZFBvaW50ID0gcG9pbnQ7CisgICAgaWYgKCFmb2N1c2VkTm9kZUJvdW5kaW5n
Qm94LmNvbnRhaW5zKGNsaXBwZWRQb2ludCkpCisgICAgICAgIGNsaXBwZWRQb2ludCA9IEludFBv
aW50KAorICAgICAgICAgICAgcG9pbnQueCgpIDwgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC54KCkg
PyBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LngoKSA6IHN0ZDo6bWluKGZvY3VzZWROb2RlQm91bmRp
bmdCb3gubWF4WCgpLCBwb2ludC54KCkpLAorICAgICAgICAgICAgcG9pbnQueSgpIDwgZm9jdXNl
ZE5vZGVCb3VuZGluZ0JveC55KCkgPyBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LnkoKSA6IHN0ZDo6
bWluKGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4WSgpLCBwb2ludC55KCkpKTsKKworICAgIHJl
dHVybiBjbGlwcGVkUG9pbnQ7Cit9CisKIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0
aW9uKGNvbnN0IEludFBvaW50JiBzdGFydCwgY29uc3QgSW50UG9pbnQmIGVuZCkKIHsKICAgICBt
X3NlbGVjdGlvbkFjdGl2ZSA9IHRydWU7CkBAIC00NjYsNyArNDg3LDcgQEAgdm9pZCBTZWxlY3Rp
b25IYW5kbGVyOjpzZXRTZWxlY3Rpb24oY29uc3QgSW50UG9pbnQmIHN0YXJ0LCBjb25zdCBJbnRQ
b2ludCYgZW5kKQogICAgICAgICByZWxhdGl2ZVN0YXJ0ID0gRE9NU3VwcG9ydDo6Y29udmVydFBv
aW50VG9GcmFtZShtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLCBmb2N1c2VkRnJhbWUsIHN0YXJ0KTsK
IAogICAgICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB3aXRoIHZhbGlkYXRpb24uCi0gICAgICAg
IG5ld1NlbGVjdGlvbi5zZXRCYXNlKHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlw
cGluZygqZm9jdXNlZEZyYW1lLCByZWxhdGl2ZVN0YXJ0KSk7CisgICAgICAgIG5ld1NlbGVjdGlv
bi5zZXRCYXNlKHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlwcGluZygqZm9jdXNl
ZEZyYW1lLCBjbGlwUG9pbnRUb0ZvY3VzTm9kZShyZWxhdGl2ZVN0YXJ0KSkpOwogCiAgICAgICAg
IC8vIFJlc2V0IHRoZSBzZWxlY3Rpb24gdXNpbmcgdGhlIGV4aXN0aW5nIGV4dGVudCB3aXRob3V0
IHZhbGlkYXRpb24uCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihu
ZXdTZWxlY3Rpb24uYmFzZSgpLCBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS5lbmQoKSk7CkBAIC00
NzYsNyArNDk3LDcgQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb24oY29uc3Qg
SW50UG9pbnQmIHN0YXJ0LCBjb25zdCBJbnRQb2ludCYgZW5kKQogICAgICAgICByZWxhdGl2ZUVu
ZCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUo
KSwgZm9jdXNlZEZyYW1lLCBlbmQpOwogCiAgICAgICAgIC8vIFNldCB0aGUgc2VsZWN0aW9uIHdp
dGggdmFsaWRhdGlvbi4KLSAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVudCh2aXNpYmxlUG9z
aXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRGcmFtZSwgcmVsYXRpdmVFbmQp
KTsKKyAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVudCh2aXNpYmxlUG9zaXRpb25Gb3JQb2lu
dElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRGcmFtZSwgY2xpcFBvaW50VG9Gb2N1c05vZGUocmVs
YXRpdmVFbmQpKSk7CiAKICAgICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUg
ZXhpc3RpbmcgYmFzZSB3aXRob3V0IHZhbGlkYXRpb24uCiAgICAgICAgIG5ld1NlbGVjdGlvbi5z
ZXRXaXRob3V0VmFsaWRhdGlvbihjb250cm9sbGVyLT5zZWxlY3Rpb24oKS5zdGFydCgpLCBuZXdT
ZWxlY3Rpb24uZXh0ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCmluZGV4IGFkNGUzOTguLmMwM2M1
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25IYW5kbGVyLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpOb2RlKiBET01Db250YWluZXJOb2RlRm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFdl
YkNvcmU6OlZpc2libGVQb3NpdGlvbiYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkVXBkYXRlU2Vs
ZWN0aW9uT3JDYXJldEZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGJvb2wgc3RhcnRDYXJldCA9IHRydWUpIGNvbnN0OwogICAgIHVuc2ln
bmVkIHNob3J0IGV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3RhcnRIYW5k
bGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzZWxlY3Rpb25Qb2ludCwgV2ViQ29yZTo6Vmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlw
UG9pbnRUb0ZvY3VzTm9kZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCiAgICAgV2ViUGFn
ZVByaXZhdGUqIG1fd2ViUGFnZTsKIAotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128741</attachid>
            <date>2012-02-24 09:09:09 -0800</date>
            <delta_ts>2012-02-24 10:35:40 -0800</delta_ts>
            <desc>reverts revision 107719</desc>
            <filename>revert.patch</filename>
            <type>text/plain</type>
            <size>8576</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSA0M2JiOTVmNDZkYmU2MTdjODU0NWM0NTA2OWE2N2Q4NGFjYjkyOGM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDT01NSVRCT1QgPFRvcmNoQnVpbGRCb3RAcmltLmNvbT4KRGF0
ZTogRnJpLCAyNCBGZWIgMjAxMiAwOTowOTo1MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIFJldmVy
dCAiQ2hlcnJ5LXBpY2sgdXBzdHJlYW0gcGF0Y2ggcjEwNzcxOSIKClRoaXMgcmV2ZXJ0cyBjb21t
aXQgcmV2IDEwNzcxOS4KLS0tCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9TZWxlY3Rpb25IYW5kbGVyLmNwcCAgfCAgIDQxICsrKystLS0tLS0tLS0tLS0tLS0KIC4uLi9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAgMSAtCiAz
IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDVhZTY4MzkuLmI4NTc2ZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTI0ICBDT01NSVRC
T1QgIDxUb3JjaEJ1aWxkQm90QHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIFRoaXMg
cmV2ZXJ0cyBjb21taXQgcmV2IDEwNzcxOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDgKKworICAgICAgICBSZXYgMTA3NzE5IGRvZXMgbm90IHBh
c3Mgc3R5bGUgY2hlY2sgYW5kIHNob3VsZCBiZSByZXZlcnRlZC4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9u
SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlvbk9mUG9p
bnRSZWxhdGl2ZVRvUmVjdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeSk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbik6CisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmg6CisKIDIwMTItMDItMjQgIE1pa2Ug
RmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRWxpbWlu
YXRlIGV4Y2Vzc2l2ZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybSB1c2UgaW4gU2VsZWN0aW9uSGFuZGxl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggZmRhNzFiNC4uZTVhYTQ0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0
aW9uSGFuZGxlci5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlwcGluZyhjb25zdCBGcmFtZSYgZnJh
bQogICAgIHJldHVybiB2aXNpYmxlUG9zOwogfQogCi1zdGF0aWMgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2lu
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgY29uc3QgYm9vbCB1c2VUb3BQYWRkaW5n
ID0gdHJ1ZSwgY29uc3QgYm9vbCB1c2VCb3R0b21QYWRkaW5nID0gdHJ1ZSkKK3N0YXRpYyB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb25PZlBvaW50UmVsYXRpdmVUb1JlY3QoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvaW50LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWMpCiB7CiAgICAgQVNT
RVJUKCFyZWN0LmNvbnRhaW5zKHBvaW50KSk7CiAKQEAgLTE1OCw5ICsxNTgsOSBAQCBzdGF0aWMg
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwbwogCiAgICAgLy8gRG8gaGVpZ2h0IG1vdmVtZW50IGNoZWNrIGZpcnN0
IGJ1dCBhZGQgcGFkZGluZy4gV2UgbWF5IGJlIG9mZiBvbiBib3RoIHggJiB5IGF4aXMgYW5kIG9u
bHkKICAgICAvLyB3YW50IHRvIG1vdmUgaW4gb25lIGRpcmVjdGlvbiBhdCBhIHRpbWUuCi0gICAg
aWYgKHBvaW50LnkoKSArICh1c2VUb3BQYWRkaW5nID8gdmVydGljYWxQYWRkaW5nIDogMCkgPCBy
ZWN0LnkoKSkKKyAgICBpZiAocG9pbnQueSgpICsgdmVydGljYWxQYWRkaW5nIDwgcmVjdC55KCkp
CiAgICAgICAgIHJldHVybiBLRVlDT0RFX1VQOwotICAgIGlmIChwb2ludC55KCkgPiByZWN0Lm1h
eFkoKSArICh1c2VCb3R0b21QYWRkaW5nID8gdmVydGljYWxQYWRkaW5nIDogMCkpCisgICAgaWYg
KHBvaW50LnkoKSA+IHJlY3QubWF4WSgpICsgdmVydGljYWxQYWRkaW5nKQogICAgICAgICByZXR1
cm4gS0VZQ09ERV9ET1dOOwogICAgIGlmIChwb2ludC54KCkgPCByZWN0LmxvY2F0aW9uKCkueCgp
KQogICAgICAgICByZXR1cm4gS0VZQ09ERV9MRUZUOwpAQCAtMzIxLDExICszMjEsMTAgQEAgdW5z
aWduZWQgc2hvcnQgU2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5k
YXJ5KGJvb2wgaXNTdGFydEhhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlRW5kKCkuYWJzb2x1dGVDYXJldEJv
dW5kcygpOwogCiAgICAgV2ViQ29yZTo6SW50UmVjdCBub2RlQm91bmRpbmdCb3ggPSBmb2N1c2Vk
RnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCktPmFic29sdXRlQm91
bmRpbmdCb3hSZWN0KCk7Ci0gICAgbm9kZUJvdW5kaW5nQm94LmluZmxhdGUoLTEpOwogCiAgICAg
Ly8gU3RhcnQgaGFuZGxlIGlzIG91dHNpZGUgb2YgdGhlIGZpZWxkLiBUcmVhdCBpdCBhcyB0aGUg
Y2hhbmdlZCBoYW5kbGUgYW5kIG1vdmUKICAgICAvLyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgY2Fy
ZXQgcmVjdC4KLSAgICB1bnNpZ25lZCBzaG9ydCBjaGFyYWN0ZXIgPSBkaXJlY3Rpb25PZlBvaW50
UmVsYXRpdmVUb1JlY3Qoc2VsZWN0aW9uUG9pbnQsIGNhcmV0UmVjdCwgaXNTdGFydEhhbmRsZSAv
KnVzZVRvcFBhZGRpbmcqLywgIWlzU3RhcnRIYW5kbGUgLyp1c2VCb3R0b21QYWRkaW5nKi8pOwor
ICAgIHVuc2lnbmVkIHNob3J0IGNoYXJhY3RlciA9IGRpcmVjdGlvbk9mUG9pbnRSZWxhdGl2ZVRv
UmVjdChzZWxlY3Rpb25Qb2ludCwgY2FyZXRSZWN0KTsKIAogICAgIC8vIFByZXZlbnQgaW5jb3Jy
ZWN0IG1vdmVtZW50LCBoYW5kbGVzIGNhbiBvbmx5IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRoaXMg
d2F5CiAgICAgLy8gdG8gcHJldmVudCBpbnZlcnNpb24gb2YgdGhlIGhhbmRsZXMuCkBAIC0zMzMs
MTYgKzMzMiwxNiBAQCB1bnNpZ25lZCBzaG9ydCBTZWxlY3Rpb25IYW5kbGVyOjpleHRlbmRTZWxl
Y3Rpb25Ub0ZpZWxkQm91bmRhcnkoYm9vbCBpc1N0YXJ0SGFuZAogICAgICAgICB8fCAhaXNTdGFy
dEhhbmRsZSAmJiAoY2hhcmFjdGVyID09IEtFWUNPREVfTEVGVCB8fCBjaGFyYWN0ZXIgPT0gS0VZ
Q09ERV9VUCkpCiAgICAgICAgIGNoYXJhY3RlciA9IDA7CiAKLSAgICBWaXNpYmxlUG9zaXRpb24g
bmV3VmlzaWJsZVBvc2l0aW9uID0gaXNTdGFydEhhbmRsZSA/IGNvbnRyb2xsZXItPnNlbGVjdGlv
bigpLmV4dGVudCgpIDogY29udHJvbGxlci0+c2VsZWN0aW9uKCkuYmFzZSgpOworICAgIFZpc2li
bGVQb3NpdGlvbiBuZXdWaXNpYmxlUG9zaXRpb24gPSBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS5z
dGFydCgpOwogICAgIC8vIEV4dGVuZCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBib3VuZHMgb2YgdGhl
IGJveCBiZWZvcmUgZG9pbmcgaW5jcmVtZW50YWwgc2Nyb2xsIGlmIHRoZSBwb2ludCBpcyBvdXRz
aWRlIHRoZSBub2RlLgogICAgIC8vIERvbid0IGV4dGVuZCBzZWxlY3Rpb24gYW5kIGhhbmRsZSB0
aGUgY2hhcmFjdGVyIGF0IHRoZSBzYW1lIHRpbWUuCiAgICAgaWYgKHBvaW50SXNPdXRzaWRlT2ZC
b3VuZGluZ0JveEluRGlyZWN0aW9uKGNoYXJhY3Rlciwgc2VsZWN0aW9uUG9pbnQsIG5vZGVCb3Vu
ZGluZ0JveCkpCiAgICAgICAgIG5ld1Zpc2libGVQb3NpdGlvbiA9IGRpcmVjdGlvbmFsVmlzaWJs
ZVBvc2l0aW9uQXRFeHRlbnRPZkJveChmb2N1c2VkRnJhbWUsIG5vZGVCb3VuZGluZ0JveCwgY2hh
cmFjdGVyLCBzZWxlY3Rpb25Qb2ludCk7CiAKICAgICBpZiAoaXNTdGFydEhhbmRsZSkKLSAgICAg
ICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihuZXdWaXNpYmxlUG9zaXRpb24sIG5l
d1NlbGVjdGlvbi5leHRlbnQoKSwgdHJ1ZSAvKmlzRGlyZWN0aW9uYWwqLyk7CisgICAgICAgIG5l
d1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obmV3VmlzaWJsZVBvc2l0aW9uLCBuZXdTZWxl
Y3Rpb24udmlzaWJsZUVuZCgpLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKICAgICBlbHNlCi0g
ICAgICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obmV3U2VsZWN0aW9uLmJhc2Uo
KSwgbmV3VmlzaWJsZVBvc2l0aW9uLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKKyAgICAgICAg
bmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24udmlzaWJsZVN0YXJ0
KCksIG5ld1Zpc2libGVQb3NpdGlvbiwgdHJ1ZSAvKmlzRGlyZWN0aW9uYWwqLyk7CiAKICAgICAv
LyBJZiBubyBzZWxlY3Rpb24gd2lsbCBiZSBjaGFuZ2VkLCByZXR1cm4gdGhlIGNoYXJhY3RlciB0
byBleHRlbmQgdXNpbmcgbmF2aWdhdGlvbi4KICAgICBpZiAoY29udHJvbGxlci0+c2VsZWN0aW9u
KCkgPT0gbmV3U2VsZWN0aW9uKQpAQCAtNDEyLDI4ICs0MTEsNiBAQCBib29sIFNlbGVjdGlvbkhh
bmRsZXI6OnVwZGF0ZU9ySGFuZGxlSW5wdXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aQogICAgIHJldHVybiB0cnVlOwogfQogCi1XZWJDb3JlOjpJbnRQb2ludCBTZWxlY3Rp
b25IYW5kbGVyOjpjbGlwUG9pbnRUb0ZvY3VzTm9kZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9pbnQpCi17Ci0gICAgLy8gQ2xpcHBpbmcgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIHdlIGFyZSBp
biBhbiBpbnB1dCBmaWVsZC4KLSAgICBpZiAoIW1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPmlz
SW5wdXRNb2RlKCkpCi0gICAgICAgIHJldHVybiBwb2ludDsKLQotICAgIEZyYW1lKiBmb2N1c2Vk
RnJhbWUgPSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGlmICghZm9jdXNl
ZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpIHx8ICFmb2N1c2VkRnJhbWUtPmRvY3Vt
ZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBwb2ludDsK
LQotICAgIFdlYkNvcmU6OkludFJlY3QgZm9jdXNlZE5vZGVCb3VuZGluZ0JveCA9IGZvY3VzZWRG
cmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3Vu
ZGluZ0JveFJlY3QoKTsKLSAgICBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LmluZmxhdGUoLTEpOwot
Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgY2xpcHBlZFBvaW50ID0gcG9pbnQ7Ci0gICAgaWYgKCFm
b2N1c2VkTm9kZUJvdW5kaW5nQm94LmNvbnRhaW5zKGNsaXBwZWRQb2ludCkpCi0gICAgICAgIGNs
aXBwZWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KAotICAgICAgICAgICAgcG9pbnQueCgpIDwg
Zm9jdXNlZE5vZGVCb3VuZGluZ0JveC54KCkgPyBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LngoKSA6
IHN0ZDo6bWluKGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4WCgpLCBwb2ludC54KCkpLAotICAg
ICAgICAgICAgcG9pbnQueSgpIDwgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC55KCkgPyBmb2N1c2Vk
Tm9kZUJvdW5kaW5nQm94LnkoKSA6IHN0ZDo6bWluKGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4
WSgpLCBwb2ludC55KCkpKTsKLQotICAgIHJldHVybiBjbGlwcGVkUG9pbnQ7Ci19Ci0KIHZvaWQg
U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBz
dGFydCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGVuZCkKIHsKICAgICBtX3NlbGVjdGlvbkFj
dGl2ZSA9IHRydWU7CkBAIC00NjgsNyArNDQ1LDcgQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpz
ZXRTZWxlY3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJDb3IK
ICAgICAgICAgcmVsYXRpdmVTdGFydCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUo
bV93ZWJQYWdlLT5tYWluRnJhbWUoKSwgZm9jdXNlZEZyYW1lLCBzdGFydCk7CiAKICAgICAgICAg
Ly8gU2V0IHRoZSBzZWxlY3Rpb24gd2l0aCB2YWxpZGF0aW9uLgotICAgICAgICBuZXdTZWxlY3Rp
b24uc2V0QmFzZSh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3Vz
ZWRGcmFtZSwgY2xpcFBvaW50VG9Gb2N1c05vZGUocmVsYXRpdmVTdGFydCkpKTsKKyAgICAgICAg
bmV3U2VsZWN0aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBw
aW5nKCpmb2N1c2VkRnJhbWUsIHJlbGF0aXZlU3RhcnQpKTsKIAogICAgICAgICAvLyBSZXNldCB0
aGUgc2VsZWN0aW9uIHVzaW5nIHRoZSBleGlzdGluZyBleHRlbnQgd2l0aG91dCB2YWxpZGF0aW9u
LgogICAgICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlkYXRpb24obmV3U2VsZWN0aW9u
LmJhc2UoKSwgY29udHJvbGxlci0+c2VsZWN0aW9uKCkuZW5kKCkpOwpAQCAtNDc4LDcgKzQ1NSw3
IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzdGFydCwgY29uc3QgV2ViQ29yCiAgICAgICAgIHJlbGF0aXZlRW5kID0gRE9NU3Vw
cG9ydDo6Y29udmVydFBvaW50VG9GcmFtZShtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLCBmb2N1c2Vk
RnJhbWUsIGVuZCk7CiAKICAgICAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gd2l0aCB2YWxpZGF0
aW9uLgotICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHZpc2libGVQb3NpdGlvbkZvclBv
aW50SWdub3JpbmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCBjbGlwUG9pbnRUb0ZvY3VzTm9kZShy
ZWxhdGl2ZUVuZCkpKTsKKyAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVudCh2aXNpYmxlUG9z
aXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRGcmFtZSwgcmVsYXRpdmVFbmQp
KTsKIAogICAgICAgICAvLyBSZXNldCB0aGUgc2VsZWN0aW9uIHVzaW5nIHRoZSBleGlzdGluZyBi
YXNlIHdpdGhvdXQgdmFsaWRhdGlvbi4KICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRW
YWxpZGF0aW9uKGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLnN0YXJ0KCksIG5ld1NlbGVjdGlvbi5l
eHRlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmgKaW5kZXggOGM1ZmU3Ni4uYTFlYjkyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFu
ZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbkhhbmRsZXIuaApAQCAtNzYsNyArNzYsNiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6Ok5v
ZGUqIERPTUNvbnRhaW5lck5vZGVGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6Vmlz
aWJsZVBvc2l0aW9uJikgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRVcGRhdGVTZWxlY3Rpb25PckNh
cmV0Rm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgYm9vbCBzdGFydENhcmV0ID0gdHJ1ZSkgY29uc3Q7CiAgICAgdW5zaWduZWQgc2hvcnQg
ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KGJvb2wgaXNTdGFydEhhbmRsZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNlbGVjdGlvblBvaW50LCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24pOwotICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBQb2ludFRvRm9j
dXNOb2RlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAKICAgICBXZWJQYWdlUHJpdmF0ZSog
bV93ZWJQYWdlOwogCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128757</attachid>
            <date>2012-02-24 10:35:40 -0800</date>
            <delta_ts>2012-02-25 11:54:30 -0800</delta_ts>
            <desc>reverts revision 107719</desc>
            <filename>revert.patch</filename>
            <type>text/plain</type>
            <size>8577</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSA1YjY4MjdiZjM0ZDMwZmIzNjBiNWFiYjEzOWFkYTJkNTViZGZkZjY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDT01NSVRCT1QgPFRvcmNoQnVpbGRCb3RAcmltLmNvbT4KRGF0
ZTogRnJpLCAyNCBGZWIgMjAxMiAwOTowOTo1MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIFJldmVy
dCAiQ2hlcnJ5LXBpY2sgdXBzdHJlYW0gcGF0Y2ggcjEwNzcxOSIKClRoaXMgcmV2ZXJ0cyBjb21t
aXQgcmV2IDEwNzcxOS4KLS0tCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9TZWxlY3Rpb25IYW5kbGVyLmNwcCAgfCAgIDQxICsrKystLS0tLS0tLS0tLS0tLS0KIC4uLi9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAgMSAtCiAz
IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDVhZTY4MzkuLmI4NTc2ZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAyLTI0ICBDT01NSVRC
T1QgIDxUb3JjaEJ1aWxkQm90QHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIFRoaXMg
cmV2ZXJ0cyBjb21taXQgcmV2IDEwNzcxOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDgKKworICAgICAgICBSZXYgMTA3NzE5IGRvZXMgbm90IHBh
c3Mgc3R5bGUgY2hlY2sgYW5kIHNob3VsZCBiZSByZXZlcnRlZC4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9u
SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlvbk9mUG9p
bnRSZWxhdGl2ZVRvUmVjdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeSk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbik6CisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmg6CisKIDIwMTItMDItMjQgIE1pa2Ug
RmVudG9uICA8bWlmZW50b25AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRWxpbWlu
YXRlIGV4Y2Vzc2l2ZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybSB1c2UgaW4gU2VsZWN0aW9uSGFuZGxl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggZmRhNzFiNC4uM2RmZTI0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0
aW9uSGFuZGxlci5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlwcGluZyhjb25zdCBGcmFtZSYgZnJh
bQogICAgIHJldHVybiB2aXNpYmxlUG9zOwogfQogCi1zdGF0aWMgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2lu
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgY29uc3QgYm9vbCB1c2VUb3BQYWRkaW5n
ID0gdHJ1ZSwgY29uc3QgYm9vbCB1c2VCb3R0b21QYWRkaW5nID0gdHJ1ZSkKK3N0YXRpYyB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb25PZlBvaW50UmVsYXRpdmVUb1JlY3QoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvaW50LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewogICAgIEFT
U0VSVCghcmVjdC5jb250YWlucyhwb2ludCkpOwogCkBAIC0xNTgsOSArMTU4LDkgQEAgc3RhdGlj
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbk9mUG9pbnRSZWxhdGl2ZVRvUmVjdChjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG8KIAogICAgIC8vIERvIGhlaWdodCBtb3ZlbWVudCBjaGVjayBmaXJz
dCBidXQgYWRkIHBhZGRpbmcuIFdlIG1heSBiZSBvZmYgb24gYm90aCB4ICYgeSBheGlzIGFuZCBv
bmx5CiAgICAgLy8gd2FudCB0byBtb3ZlIGluIG9uZSBkaXJlY3Rpb24gYXQgYSB0aW1lLgotICAg
IGlmIChwb2ludC55KCkgKyAodXNlVG9wUGFkZGluZyA/IHZlcnRpY2FsUGFkZGluZyA6IDApIDwg
cmVjdC55KCkpCisgICAgaWYgKHBvaW50LnkoKSArIHZlcnRpY2FsUGFkZGluZyA8IHJlY3QueSgp
KQogICAgICAgICByZXR1cm4gS0VZQ09ERV9VUDsKLSAgICBpZiAocG9pbnQueSgpID4gcmVjdC5t
YXhZKCkgKyAodXNlQm90dG9tUGFkZGluZyA/IHZlcnRpY2FsUGFkZGluZyA6IDApKQorICAgIGlm
IChwb2ludC55KCkgPiByZWN0Lm1heFkoKSArIHZlcnRpY2FsUGFkZGluZykKICAgICAgICAgcmV0
dXJuIEtFWUNPREVfRE9XTjsKICAgICBpZiAocG9pbnQueCgpIDwgcmVjdC5sb2NhdGlvbigpLngo
KSkKICAgICAgICAgcmV0dXJuIEtFWUNPREVfTEVGVDsKQEAgLTMyMSwxMSArMzIxLDEwIEBAIHVu
c2lnbmVkIHNob3J0IFNlbGVjdGlvbkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3Vu
ZGFyeShib29sIGlzU3RhcnRIYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogY29udHJvbGxlci0+c2VsZWN0aW9uKCkudmlzaWJsZUVuZCgpLmFic29sdXRlQ2FyZXRC
b3VuZHMoKTsKIAogICAgIFdlYkNvcmU6OkludFJlY3Qgbm9kZUJvdW5kaW5nQm94ID0gZm9jdXNl
ZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdCgpOwotICAgIG5vZGVCb3VuZGluZ0JveC5pbmZsYXRlKC0xKTsKIAogICAg
IC8vIFN0YXJ0IGhhbmRsZSBpcyBvdXRzaWRlIG9mIHRoZSBmaWVsZC4gVHJlYXQgaXQgYXMgdGhl
IGNoYW5nZWQgaGFuZGxlIGFuZCBtb3ZlCiAgICAgLy8gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IGNh
cmV0IHJlY3QuCi0gICAgdW5zaWduZWQgc2hvcnQgY2hhcmFjdGVyID0gZGlyZWN0aW9uT2ZQb2lu
dFJlbGF0aXZlVG9SZWN0KHNlbGVjdGlvblBvaW50LCBjYXJldFJlY3QsIGlzU3RhcnRIYW5kbGUg
Lyp1c2VUb3BQYWRkaW5nKi8sICFpc1N0YXJ0SGFuZGxlIC8qdXNlQm90dG9tUGFkZGluZyovKTsK
KyAgICB1bnNpZ25lZCBzaG9ydCBjaGFyYWN0ZXIgPSBkaXJlY3Rpb25PZlBvaW50UmVsYXRpdmVU
b1JlY3Qoc2VsZWN0aW9uUG9pbnQsIGNhcmV0UmVjdCk7CiAKICAgICAvLyBQcmV2ZW50IGluY29y
cmVjdCBtb3ZlbWVudCwgaGFuZGxlcyBjYW4gb25seSBleHRlbmQgdGhlIHNlbGVjdGlvbiB0aGlz
IHdheQogICAgIC8vIHRvIHByZXZlbnQgaW52ZXJzaW9uIG9mIHRoZSBoYW5kbGVzLgpAQCAtMzMz
LDE2ICszMzIsMTYgQEAgdW5zaWduZWQgc2hvcnQgU2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2Vs
ZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KGJvb2wgaXNTdGFydEhhbmQKICAgICAgICAgfHwgIWlzU3Rh
cnRIYW5kbGUgJiYgKGNoYXJhY3RlciA9PSBLRVlDT0RFX0xFRlQgfHwgY2hhcmFjdGVyID09IEtF
WUNPREVfVVApKQogICAgICAgICBjaGFyYWN0ZXIgPSAwOwogCi0gICAgVmlzaWJsZVBvc2l0aW9u
IG5ld1Zpc2libGVQb3NpdGlvbiA9IGlzU3RhcnRIYW5kbGUgPyBjb250cm9sbGVyLT5zZWxlY3Rp
b24oKS5leHRlbnQoKSA6IGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLmJhc2UoKTsKKyAgICBWaXNp
YmxlUG9zaXRpb24gbmV3VmlzaWJsZVBvc2l0aW9uID0gY29udHJvbGxlci0+c2VsZWN0aW9uKCku
c3RhcnQoKTsKICAgICAvLyBFeHRlbmQgdGhlIHNlbGVjdGlvbiB0byB0aGUgYm91bmRzIG9mIHRo
ZSBib3ggYmVmb3JlIGRvaW5nIGluY3JlbWVudGFsIHNjcm9sbCBpZiB0aGUgcG9pbnQgaXMgb3V0
c2lkZSB0aGUgbm9kZS4KICAgICAvLyBEb24ndCBleHRlbmQgc2VsZWN0aW9uIGFuZCBoYW5kbGUg
dGhlIGNoYXJhY3RlciBhdCB0aGUgc2FtZSB0aW1lLgogICAgIGlmIChwb2ludElzT3V0c2lkZU9m
Qm91bmRpbmdCb3hJbkRpcmVjdGlvbihjaGFyYWN0ZXIsIHNlbGVjdGlvblBvaW50LCBub2RlQm91
bmRpbmdCb3gpKQogICAgICAgICBuZXdWaXNpYmxlUG9zaXRpb24gPSBkaXJlY3Rpb25hbFZpc2li
bGVQb3NpdGlvbkF0RXh0ZW50T2ZCb3goZm9jdXNlZEZyYW1lLCBub2RlQm91bmRpbmdCb3gsIGNo
YXJhY3Rlciwgc2VsZWN0aW9uUG9pbnQpOwogCiAgICAgaWYgKGlzU3RhcnRIYW5kbGUpCi0gICAg
ICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obmV3VmlzaWJsZVBvc2l0aW9uLCBu
ZXdTZWxlY3Rpb24uZXh0ZW50KCksIHRydWUgLyppc0RpcmVjdGlvbmFsKi8pOworICAgICAgICBu
ZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKG5ld1Zpc2libGVQb3NpdGlvbiwgbmV3U2Vs
ZWN0aW9uLnZpc2libGVFbmQoKSwgdHJ1ZSAvKmlzRGlyZWN0aW9uYWwqLyk7CiAgICAgZWxzZQot
ICAgICAgICBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbi5iYXNl
KCksIG5ld1Zpc2libGVQb3NpdGlvbiwgdHJ1ZSAvKmlzRGlyZWN0aW9uYWwqLyk7CisgICAgICAg
IG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obmV3U2VsZWN0aW9uLnZpc2libGVTdGFy
dCgpLCBuZXdWaXNpYmxlUG9zaXRpb24sIHRydWUgLyppc0RpcmVjdGlvbmFsKi8pOwogCiAgICAg
Ly8gSWYgbm8gc2VsZWN0aW9uIHdpbGwgYmUgY2hhbmdlZCwgcmV0dXJuIHRoZSBjaGFyYWN0ZXIg
dG8gZXh0ZW5kIHVzaW5nIG5hdmlnYXRpb24uCiAgICAgaWYgKGNvbnRyb2xsZXItPnNlbGVjdGlv
bigpID09IG5ld1NlbGVjdGlvbikKQEAgLTQxMiwyOCArNDExLDYgQEAgYm9vbCBTZWxlY3Rpb25I
YW5kbGVyOjp1cGRhdGVPckhhbmRsZUlucHV0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViQ29yZTo6SW50UG9pbnQgU2VsZWN0
aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9Gb2N1c05vZGUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvaW50KQotewotICAgIC8vIENsaXBwaW5nIHNob3VsZCBvbmx5IGhhcHBlbiBpZiB3ZSBhcmUg
aW4gYW4gaW5wdXQgZmllbGQuCi0gICAgaWYgKCFtX3dlYlBhZ2UtPm1faW5wdXRIYW5kbGVyLT5p
c0lucHV0TW9kZSgpKQotICAgICAgICByZXR1cm4gcG9pbnQ7Ci0KLSAgICBGcmFtZSogZm9jdXNl
ZEZyYW1lID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBpZiAoIWZvY3Vz
ZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSB8fCAhZm9jdXNlZEZyYW1lLT5kb2N1
bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gcG9pbnQ7
Ci0KLSAgICBXZWJDb3JlOjpJbnRSZWN0IGZvY3VzZWROb2RlQm91bmRpbmdCb3ggPSBmb2N1c2Vk
RnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCktPmFic29sdXRlQm91
bmRpbmdCb3hSZWN0KCk7Ci0gICAgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC5pbmZsYXRlKC0xKTsK
LQotICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBwZWRQb2ludCA9IHBvaW50OwotICAgIGlmICgh
Zm9jdXNlZE5vZGVCb3VuZGluZ0JveC5jb250YWlucyhjbGlwcGVkUG9pbnQpKQotICAgICAgICBj
bGlwcGVkUG9pbnQgPSBXZWJDb3JlOjpJbnRQb2ludCgKLSAgICAgICAgICAgIHBvaW50LngoKSA8
IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueCgpID8gZm9jdXNlZE5vZGVCb3VuZGluZ0JveC54KCkg
OiBzdGQ6Om1pbihmb2N1c2VkTm9kZUJvdW5kaW5nQm94Lm1heFgoKSwgcG9pbnQueCgpKSwKLSAg
ICAgICAgICAgIHBvaW50LnkoKSA8IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueSgpID8gZm9jdXNl
ZE5vZGVCb3VuZGluZ0JveC55KCkgOiBzdGQ6Om1pbihmb2N1c2VkTm9kZUJvdW5kaW5nQm94Lm1h
eFkoKSwgcG9pbnQueSgpKSk7Ci0KLSAgICByZXR1cm4gY2xpcHBlZFBvaW50OwotfQotCiB2b2lk
IFNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c3RhcnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBlbmQpCiB7CiAgICAgbV9zZWxlY3Rpb25B
Y3RpdmUgPSB0cnVlOwpAQCAtNDY4LDcgKzQ0NSw3IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29uc3QgV2ViQ29y
CiAgICAgICAgIHJlbGF0aXZlU3RhcnQgPSBET01TdXBwb3J0Ojpjb252ZXJ0UG9pbnRUb0ZyYW1l
KG1fd2ViUGFnZS0+bWFpbkZyYW1lKCksIGZvY3VzZWRGcmFtZSwgc3RhcnQpOwogCiAgICAgICAg
IC8vIFNldCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRhdGlvbi4KLSAgICAgICAgbmV3U2VsZWN0
aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5nKCpmb2N1
c2VkRnJhbWUsIGNsaXBQb2ludFRvRm9jdXNOb2RlKHJlbGF0aXZlU3RhcnQpKSk7CisgICAgICAg
IG5ld1NlbGVjdGlvbi5zZXRCYXNlKHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlw
cGluZygqZm9jdXNlZEZyYW1lLCByZWxhdGl2ZVN0YXJ0KSk7CiAKICAgICAgICAgLy8gUmVzZXQg
dGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3RpbmcgZXh0ZW50IHdpdGhvdXQgdmFsaWRhdGlv
bi4KICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKG5ld1NlbGVjdGlv
bi5iYXNlKCksIGNvbnRyb2xsZXItPnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTQ3OCw3ICs0NTUs
NyBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgc3RhcnQsIGNvbnN0IFdlYkNvcgogICAgICAgICByZWxhdGl2ZUVuZCA9IERPTVN1
cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSwgZm9jdXNl
ZEZyYW1lLCBlbmQpOwogCiAgICAgICAgIC8vIFNldCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRh
dGlvbi4KLSAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVudCh2aXNpYmxlUG9zaXRpb25Gb3JQ
b2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRGcmFtZSwgY2xpcFBvaW50VG9Gb2N1c05vZGUo
cmVsYXRpdmVFbmQpKSk7CisgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQodmlzaWJsZVBv
c2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5nKCpmb2N1c2VkRnJhbWUsIHJlbGF0aXZlRW5k
KSk7CiAKICAgICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3Rpbmcg
YmFzZSB3aXRob3V0IHZhbGlkYXRpb24uCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0
VmFsaWRhdGlvbihjb250cm9sbGVyLT5zZWxlY3Rpb24oKS5zdGFydCgpLCBuZXdTZWxlY3Rpb24u
ZXh0ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCmluZGV4IDhjNWZlNzYuLmExZWI5MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxl
Y3Rpb25IYW5kbGVyLmgKQEAgLTc2LDcgKzc2LDYgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpO
b2RlKiBET01Db250YWluZXJOb2RlRm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OlZp
c2libGVQb3NpdGlvbiYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkVXBkYXRlU2VsZWN0aW9uT3JD
YXJldEZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGJvb2wgc3RhcnRDYXJldCA9IHRydWUpIGNvbnN0OwogICAgIHVuc2lnbmVkIHNob3J0
IGV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3RhcnRIYW5kbGUsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzZWxlY3Rpb25Qb2ludCwgV2ViQ29yZTo6VmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uKTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlwUG9pbnRUb0Zv
Y3VzTm9kZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCiAgICAgV2ViUGFnZVByaXZhdGUq
IG1fd2ViUGFnZTsKIAotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128877</attachid>
            <date>2012-02-25 11:54:30 -0800</date>
            <delta_ts>2012-02-25 12:01:26 -0800</delta_ts>
            <desc>Patch to fix out of bounds selection bug</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>14298</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSBhNjU3NThiNmE1MzdkMDc2OGY3NmU4N2YxYTQzMjc0M2FkN2NiZTNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDT01NSVRCT1QgPFRvcmNoQnVpbGRCb3RAcmltLmNvbT4KRGF0
ZTogRnJpLCAyNCBGZWIgMjAxMiAwOTowOTo1MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTIt
MDItMjUgIEVkIEJha2VyICA8ZWRiYWtlckByaW0uY29tPgoKICAgICAgICBFbnN1cmUgdGhhdCB3
aGVuIHNlbGVjdGlvbiBoYW5kbGVzIGxlYXZlIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCB0aGF0
CiAgICAgICAgdGhlIGhhbmRsZSBub3QgYmVpbmcgZHJhZ2dlZCByZW1haW5zIGZpeGVkLiBEbyBu
b3QgYXBwbHkgcGFkZGluZyB0byBhCiAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1c2Ug
dGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQogICAgICAgIGhhbmRs
ZSBkaXJlY3Rpb24gZGV0ZWN0aW9uLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KCiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUpOgogICAgICAg
ICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0Lmg6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlv
bk9mUG9pbnRSZWxhdGl2ZVRvUmVjdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6Y2xh
bXApOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlvbmFsVmlzaWJsZVBvc2l0
aW9uQXRFeHRlbnRPZkJveCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb24pOgogICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmNsaXBQb2ludFRvVmlzaWJsZUNv
bnRhaW5lcik6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaDoKLS0t
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAg
MjMgKysrKysrKwogLi4uL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9y
dC5jcHAgfCAgIDEwICsrLQogLi4uL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5oICAgfCAgICAyICstCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbkhhbmRsZXIuY3BwICB8ICAgNjggKysrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAgMiArLQogNSBmaWxl
cyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCA1ZjE4NmI3Li5mYWY0YjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0yNSAgRWQgQmFrZXIgIDxl
ZGJha2VyQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIERyYWdnaW5nIGEgc2VsZWN0
aW9uIGhhbmRsZSBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCBkb2VzIG5vdCB1
cGRhdGUgdGhlIHNlbGVjdGlvbiByYW5nZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA4CisKKyAgICAgICAgRW5zdXJlIHRoYXQg
d2hlbiBzZWxlY3Rpb24gaGFuZGxlcyBsZWF2ZSB0aGUgY29udGVudCBib3VuZGluZyBib3ggdGhh
dAorICAgICAgICB0aGUgaGFuZGxlIG5vdCBiZWluZyBkcmFnZ2VkIHJlbWFpbnMgZml4ZWQuIERv
IG5vdCBhcHBseSBwYWRkaW5nIHRvIGEKKyAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1
c2UgdGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQorICAgICAgICBo
YW5kbGUgZGlyZWN0aW9uIGRldGVjdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OmNsYW1wKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6ZGlyZWN0aW9uYWxWaXNp
YmxlUG9zaXRpb25BdEV4dGVudE9mQm94KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
U2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50
VG9WaXNpYmxlQ29udGFpbmVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhh
bmRsZXIuaDoKKwogMjAxMi0wMi0yNCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgog
CiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbGltaW5hdGUgZXhjZXNzaXZlIEJsYWNrQmVycnk6OlBs
YXRmb3JtIHVzZSBpbiBJbnB1dEhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKaW5kZXggOWRkNWQyMS4uNTNmZDg3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
RE9NU3VwcG9ydC5jcHAKQEAgLTMzNiw3ICszMzYsNyBAQCBib29sIGVsZW1lbnRJZE9yTmFtZUlu
ZGljYXRlc05vQXV0b2NvbXBsZXRlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1JbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9p
bnQpCitJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBzb3VyY2VGcmFt
ZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0
IGJvb2wgY2xhbXBUb1RhcmdldEZyYW1lKQogewogICAgIEFTU0VSVChzb3VyY2VGcmFtZSAmJiB0
YXJnZXRGcmFtZSk7CiAgICAgaWYgKHNvdXJjZUZyYW1lID09IHRhcmdldEZyYW1lKQpAQCAtMzQ3
LDYgKzM0Nyw3IEBAIEludFBvaW50IGNvbnZlcnRQb2ludFRvRnJhbWUoY29uc3QgRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUsCiAKICAgICBGcmFtZSogdGFyZ2V0
RnJhbWVQYXJlbnQgPSB0YXJnZXRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAgICBJbnRSZWN0
IHRhcmdldEZyYW1lUmVjdCA9IHRhcmdldEZyYW1lLT52aWV3KCktPmZyYW1lUmVjdCgpOworICAg
IEludFBvaW50IHRhcmdldFBvaW50ID0gcG9pbnQ7CiAKICAgICAvLyBDb252ZXJ0IHRoZSB0YXJn
ZXQgZnJhbWUgcmVjdCB0byBzb3VyY2Ugd2luZG93IGNvbnRlbnQgY29vcmRpbmF0ZXMuIFRoaXMg
aXMgb25seSByZXF1aXJlZAogICAgIC8vIGlmIHRoZSBwYXJlbnQgZnJhbWUgaXMgbm90IHRoZSBz
b3VyY2UuIElmIHRoZSBwYXJlbnQgaXMgdGhlIHNvdXJjZSwgc3ViZnJhbWVSZWN0CkBAIC0zNTUs
MTEgKzM1NiwxNCBAQCBJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLAogICAgICAgICB0YXJnZXRGcmFt
ZVJlY3QgPSBzb3VyY2VGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHRhcmdldEZyYW1l
UGFyZW50LT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3codGFyZ2V0RnJhbWVSZWN0KSk7CiAKICAg
ICAvLyBSZXF1ZXN0ZWQgcG9pbnQgaXMgb3V0c2lkZSBvZiB0YXJnZXQgZnJhbWUsIHJldHVybiBJ
bnZhbGlkUG9pbnQuCi0gICAgaWYgKCF0YXJnZXRGcmFtZVJlY3QuY29udGFpbnMocG9pbnQpKQor
ICAgIGlmIChjbGFtcFRvVGFyZ2V0RnJhbWUgJiYgIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyh0
YXJnZXRQb2ludCkpCisgICAgICAgIHRhcmdldFBvaW50ID0gSW50UG9pbnQodGFyZ2V0UG9pbnQu
eCgpIDwgdGFyZ2V0RnJhbWVSZWN0LngoKSA/IHRhcmdldEZyYW1lUmVjdC54KCkgOiBzdGQ6Om1p
bih0YXJnZXRQb2ludC54KCksIHRhcmdldEZyYW1lUmVjdC5tYXhYKCkpLAorICAgICAgICAgICAg
ICAgIHRhcmdldFBvaW50LnkoKSA8IHRhcmdldEZyYW1lUmVjdC55KCkgPyB0YXJnZXRGcmFtZVJl
Y3QueSgpIDogc3RkOjptaW4odGFyZ2V0UG9pbnQueSgpLCB0YXJnZXRGcmFtZVJlY3QubWF4WSgp
KSk7CisgICAgZWxzZSBpZiAoIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyh0YXJnZXRQb2ludCkp
CiAgICAgICAgIHJldHVybiBJbnZhbGlkUG9pbnQ7CiAKICAgICAvLyBBZGp1c3QgdGhlIHBvaW50
cyB0byBiZSByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0LgotICAgIHJldHVybiB0YXJnZXRGcmFtZS0+
dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHNvdXJjZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9X
aW5kb3cocG9pbnQpKTsKKyAgICByZXR1cm4gdGFyZ2V0RnJhbWUtPnZpZXcoKS0+d2luZG93VG9D
b250ZW50cyhzb3VyY2VGcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHRhcmdldFBvaW50
KSk7CiB9CiAKIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbkZvckNsb3Nlc3RBY3R1
YWxXb3JkU3RhcnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oCmluZGV4
IDFlMDk0NTEuLjFmNTg1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmgKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBpc1Bvc2l0
aW9uSW5Ob2RlKFdlYkNvcmU6Ok5vZGUqLCBjb25zdCBXZWJDb3JlOjpQb3NpdGlvbiYpOwogQXR0
cmlidXRlU3RhdGUgZWxlbWVudFN1cHBvcnRzQXV0b2NvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQqKTsKIGJvb2wgZWxlbWVudElkT3JOYW1lSW5kaWNhdGVzTm9BdXRvY29tcGxldGUoY29u
c3QgV2ViQ29yZTo6RWxlbWVudCopOwogCi1XZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0UG9pbnRU
b0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgV2ViQ29yZTo6
RnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc291cmNlUG9pbnQp
OworV2ViQ29yZTo6SW50UG9pbnQgY29udmVydFBvaW50VG9GcmFtZShjb25zdCBXZWJDb3JlOjpG
cmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZyYW1lKiB0YXJnZXRGcmFtZSwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHNvdXJjZVBvaW50LCBjb25zdCBib29sIGNsYW1wVG9UYXJn
ZXRGcmFtZSA9IGZhbHNlKTsKIAogc3RhdGljIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IEludmFs
aWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KC0xLCAtMSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5j
cHAKaW5kZXggZmRhNzFiNC4uZGQxYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTI3
MSw2ICsyNzEsMTEgQEAgc3RhdGljIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9uSW5EaXJlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLAogICAgIHJldHVybiB0ZW1wU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnNlbGVjdGlvblR5cGUoKSA9PSBWaXNpYmxlU2VsZWN0aW9uOjpS
YW5nZVNlbGVjdGlvbjsKIH0KIAorc3RhdGljIGludCBjbGFtcChjb25zdCBpbnQgbWluLCBjb25z
dCBpbnQgdmFsdWUsIGNvbnN0IGludCBtYXgpCit7CisgICAgcmV0dXJuIHZhbHVlIDwgbWluID8g
bWluIDogc3RkOjptaW4odmFsdWUsIG1heCk7Cit9CisKIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24g
ZGlyZWN0aW9uYWxWaXNpYmxlUG9zaXRpb25BdEV4dGVudE9mQm94KEZyYW1lKiBmcmFtZSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRpbmdCb3gsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGJhc2VQb2ludCkKIHsKICAgICBBU1NFUlQoZnJh
bWUpOwpAQCAtMjgwLDE3ICsyODUsMTcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBkaXJlY3Rp
b25hbFZpc2libGVQb3NpdGlvbkF0RXh0ZW50T2ZCb3goRnJhbWUqIGZyYW1lLCBjb24KIAogICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBLRVlDT0RFX0xFRlQ6Ci0gICAgICAgIC8v
IEV4dGVuZCB4IHRvIHN0YXJ0IHdpdGhvdXQgbW9kaWZ5aW5nIHkuCi0gICAgICAgIHJldHVybiBm
cmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdC
b3gueCgpLCBiYXNlUG9pbnQueSgpKSk7CisgICAgICAgIC8vIEV4dGVuZCB4IHRvIHN0YXJ0IGFu
ZCBjbGFtcCB5IHRvIHRoZSBlZGdlIG9mIGJvdW5kaW5nIGJveC4KKyAgICAgICAgcmV0dXJuIGZy
YW1lLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludChib3VuZGluZ0Jv
eC54KCksIGNsYW1wKGJvdW5kaW5nQm94LnkoKSwgYmFzZVBvaW50LnkoKSwgYm91bmRpbmdCb3gu
bWF4WSgpKSkpOwogICAgIGNhc2UgS0VZQ09ERV9SSUdIVDoKLSAgICAgICAgLy8gRXh0ZW5kIHgg
dG8gZW5kIHdpdGhvdXQgbW9kaWZ5aW5nIHkuCi0gICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdCb3gubWF4WCgpLCBi
YXNlUG9pbnQueSgpKSk7CisgICAgICAgIC8vIEV4dGVuZCB4IHRvIGVuZCBhbmQgY2xhbXAgeSB0
byB0aGUgZWRnZSBvZiBib3VuZGluZyBib3guCisgICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdCb3gubWF4WCgpLCBj
bGFtcChib3VuZGluZ0JveC55KCksIGJhc2VQb2ludC55KCksIGJvdW5kaW5nQm94Lm1heFkoKSkp
KTsKICAgICBjYXNlIEtFWUNPREVfVVA6Ci0gICAgICAgIC8vIEV4dGVuZCB5IHRvIHRvcCB3aXRo
b3V0IG1vZGlmeWluZyB4LgotICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZv
clBvaW50KFdlYkNvcmU6OkludFBvaW50KGJhc2VQb2ludC54KCksIGJvdW5kaW5nQm94LnkoKSkp
OworICAgICAgICAvLyBFeHRlbmQgeSB0byB0b3AgYW5kIGNsYW1wIHggdG8gdGhlIGVkZ2Ugb2Yg
Ym91bmRpbmcgYm94LgorICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBv
aW50KFdlYkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgYmFzZVBvaW50Lngo
KSwgYm91bmRpbmdCb3gubWF4WCgpKSwgYm91bmRpbmdCb3gueSgpKSk7CiAgICAgY2FzZSBLRVlD
T0RFX0RPV046Ci0gICAgICAgIC8vIEV4dGVuZCB5IHRvIGJvdHRvbSB3aXRob3V0IG1vZGlmeWlu
ZyB4LgotICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdlYkNv
cmU6OkludFBvaW50KGJhc2VQb2ludC54KCksIGJvdW5kaW5nQm94Lm1heFkoKSkpOworICAgICAg
ICAvLyBFeHRlbmQgeSB0byBib3R0b20gYW5kIGNsYW1wIHggdG8gdGhlIGVkZ2Ugb2YgYm91bmRp
bmcgYm94LgorICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdl
YkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgYmFzZVBvaW50LngoKSwgYm91
bmRpbmdCb3gubWF4WCgpKSwgYm91bmRpbmdCb3gubWF4WSgpKSk7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzE3LDggKzMyMiw4IEBAIHVuc2lnbmVkIHNob3J0IFNl
bGVjdGlvbkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3Rh
cnRIYW5kCiAKICAgICBGcmFtZVNlbGVjdGlvbiogY29udHJvbGxlciA9IGZvY3VzZWRGcmFtZS0+
c2VsZWN0aW9uKCk7CiAKLSAgICBXZWJDb3JlOjpJbnRSZWN0IGNhcmV0UmVjdCA9IGlzU3RhcnRI
YW5kbGUgPyBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKS5hYnNvbHV0ZUNh
cmV0Qm91bmRzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250
cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlRW5kKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpOwor
ICAgIFdlYkNvcmU6OkludFJlY3QgY2FyZXRSZWN0ID0gaXNTdGFydEhhbmRsZSA/IGNvbnRyb2xs
ZXItPnNlbGVjdGlvbigpLnZpc2libGVCYXNlKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbGxlci0+c2VsZWN0aW9u
KCkudmlzaWJsZUV4dGVudCgpLmFic29sdXRlQ2FyZXRCb3VuZHMoKTsKIAogICAgIFdlYkNvcmU6
OkludFJlY3Qgbm9kZUJvdW5kaW5nQm94ID0gZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1
c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOwogICAgIG5v
ZGVCb3VuZGluZ0JveC5pbmZsYXRlKC0xKTsKQEAgLTQxMiwyOCArNDE3LDYgQEAgYm9vbCBTZWxl
Y3Rpb25IYW5kbGVyOjp1cGRhdGVPckhhbmRsZUlucHV0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViQ29yZTo6SW50UG9pbnQg
U2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9Gb2N1c05vZGUoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvaW50KQotewotICAgIC8vIENsaXBwaW5nIHNob3VsZCBvbmx5IGhhcHBlbiBpZiB3
ZSBhcmUgaW4gYW4gaW5wdXQgZmllbGQuCi0gICAgaWYgKCFtX3dlYlBhZ2UtPm1faW5wdXRIYW5k
bGVyLT5pc0lucHV0TW9kZSgpKQotICAgICAgICByZXR1cm4gcG9pbnQ7Ci0KLSAgICBGcmFtZSog
Zm9jdXNlZEZyYW1lID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBpZiAo
IWZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSB8fCAhZm9jdXNlZEZyYW1l
LT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4g
cG9pbnQ7Ci0KLSAgICBXZWJDb3JlOjpJbnRSZWN0IGZvY3VzZWROb2RlQm91bmRpbmdCb3ggPSBm
b2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCktPmFic29s
dXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0gICAgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC5pbmZsYXRl
KC0xKTsKLQotICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBwZWRQb2ludCA9IHBvaW50OwotICAg
IGlmICghZm9jdXNlZE5vZGVCb3VuZGluZ0JveC5jb250YWlucyhjbGlwcGVkUG9pbnQpKQotICAg
ICAgICBjbGlwcGVkUG9pbnQgPSBXZWJDb3JlOjpJbnRQb2ludCgKLSAgICAgICAgICAgIHBvaW50
LngoKSA8IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueCgpID8gZm9jdXNlZE5vZGVCb3VuZGluZ0Jv
eC54KCkgOiBzdGQ6Om1pbihmb2N1c2VkTm9kZUJvdW5kaW5nQm94Lm1heFgoKSwgcG9pbnQueCgp
KSwKLSAgICAgICAgICAgIHBvaW50LnkoKSA8IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueSgpID8g
Zm9jdXNlZE5vZGVCb3VuZGluZ0JveC55KCkgOiBzdGQ6Om1pbihmb2N1c2VkTm9kZUJvdW5kaW5n
Qm94Lm1heFkoKSwgcG9pbnQueSgpKSk7Ci0KLSAgICByZXR1cm4gY2xpcHBlZFBvaW50OwotfQot
CiB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc3RhcnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBlbmQpCiB7CiAgICAgbV9zZWxl
Y3Rpb25BY3RpdmUgPSB0cnVlOwpAQCAtNDY4LDcgKzQ1MSw3IEBAIHZvaWQgU2VsZWN0aW9uSGFu
ZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29uc3Qg
V2ViQ29yCiAgICAgICAgIHJlbGF0aXZlU3RhcnQgPSBET01TdXBwb3J0Ojpjb252ZXJ0UG9pbnRU
b0ZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCksIGZvY3VzZWRGcmFtZSwgc3RhcnQpOwogCiAg
ICAgICAgIC8vIFNldCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRhdGlvbi4KLSAgICAgICAgbmV3
U2VsZWN0aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5n
KCpmb2N1c2VkRnJhbWUsIGNsaXBQb2ludFRvRm9jdXNOb2RlKHJlbGF0aXZlU3RhcnQpKSk7Cisg
ICAgICAgIG5ld1NlbGVjdGlvbi5zZXRCYXNlKHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3Jp
bmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCBjbGlwUG9pbnRUb1Zpc2libGVDb250YWluZXIoc3Rh
cnQpKSk7CiAKICAgICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3Rp
bmcgZXh0ZW50IHdpdGhvdXQgdmFsaWRhdGlvbi4KICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdp
dGhvdXRWYWxpZGF0aW9uKG5ld1NlbGVjdGlvbi5iYXNlKCksIGNvbnRyb2xsZXItPnNlbGVjdGlv
bigpLmVuZCgpKTsKQEAgLTQ3OCw3ICs0NjEsNyBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNl
dFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc3RhcnQsIGNvbnN0IFdlYkNvcgog
ICAgICAgICByZWxhdGl2ZUVuZCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUobV93
ZWJQYWdlLT5tYWluRnJhbWUoKSwgZm9jdXNlZEZyYW1lLCBlbmQpOwogCiAgICAgICAgIC8vIFNl
dCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRhdGlvbi4KLSAgICAgICAgbmV3U2VsZWN0aW9uLnNl
dEV4dGVudCh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRG
cmFtZSwgY2xpcFBvaW50VG9Gb2N1c05vZGUocmVsYXRpdmVFbmQpKSk7CisgICAgICAgIG5ld1Nl
bGVjdGlvbi5zZXRFeHRlbnQodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5n
KCpmb2N1c2VkRnJhbWUsIGNsaXBQb2ludFRvVmlzaWJsZUNvbnRhaW5lcihlbmQpKSk7CiAKICAg
ICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3RpbmcgYmFzZSB3aXRo
b3V0IHZhbGlkYXRpb24uCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlv
bihjb250cm9sbGVyLT5zZWxlY3Rpb24oKS5zdGFydCgpLCBuZXdTZWxlY3Rpb24uZXh0ZW50KCkp
OwpAQCAtNzc2LDYgKzc1OSwyMyBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OmNsaXBSZWdpb25U
b1Zpc2libGVDb250YWluZXIoSW50UmVjdFJlZ2lvbiYgcmVnaW9uKQogICAgIH0KIH0KIAorV2Vi
Q29yZTo6SW50UG9pbnQgU2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9WaXNpYmxlQ29udGFp
bmVyKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkgY29uc3QgeworICAgIEFTU0VSVCht
X3dlYlBhZ2UtPm1fbWFpbkZyYW1lICYmIG1fd2ViUGFnZS0+bV9tYWluRnJhbWUtPnZpZXcoKSk7
CisKKyAgICBGcmFtZSogZnJhbWUgPSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOwor
ICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBwZWRQb2ludCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQ
b2ludFRvRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSwgZnJhbWUsIHBvaW50LCB0cnVlIC8q
Y2xhbXBUb1RhcmdldEZyYW1lKi8pOworCisgICAgaWYgKG1fd2ViUGFnZS0+bV9pbnB1dEhhbmRs
ZXItPmlzSW5wdXRNb2RlKCkKKyAgICAgICAgICAgICYmIGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1
c2VkTm9kZSgpCisgICAgICAgICAgICAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUo
KS0+cmVuZGVyZXIoKSkgeworICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nQm94KGZy
YW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5k
aW5nQm94UmVjdCgpKTsKKyAgICAgICAgYm91bmRpbmdCb3guaW5mbGF0ZSgtMSk7CisgICAgICAg
IGNsaXBwZWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwg
Y2xpcHBlZFBvaW50LngoKSwgYm91bmRpbmdCb3gubWF4WCgpKSwgY2xhbXAoYm91bmRpbmdCb3gu
eSgpLCBjbGlwcGVkUG9pbnQueSgpLCBib3VuZGluZ0JveC5tYXhZKCkpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gY2xpcHBlZFBvaW50OworfQorCiBzdGF0aWMgV2ViQ29yZTo6SW50UG9pbnQgcmVm
ZXJlbmNlUG9pbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZnJhbWVQ
b3NpdGlvbiwgYm9vbCBpc1N0YXJ0Q2FyZXQsIGJvb2wgaXNSVEwpCiB7CiAgICAgLy8gSWYgb25l
IG9mIHRoZSBjYXJldHMgaXMgaW52YWxpZCAodGhpcyBoYXBwZW5zLCBmb3IgaW5zdGFuY2UsIGlm
IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
U2VsZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvU2VsZWN0aW9uSGFuZGxlci5oCmluZGV4IDhjNWZlNzYuLjQxYTY5ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25I
YW5kbGVyLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpOb2RlKiBE
T01Db250YWluZXJOb2RlRm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbiYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkVXBkYXRlU2VsZWN0aW9uT3JDYXJldEZv
clBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGJvb2wgc3RhcnRDYXJldCA9IHRydWUpIGNvbnN0OwogICAgIHVuc2lnbmVkIHNob3J0IGV4dGVu
ZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3RhcnRIYW5kbGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBzZWxlY3Rpb25Qb2ludCwgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uKTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlwUG9pbnRUb0ZvY3VzTm9k
ZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOworICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBQ
b2ludFRvVmlzaWJsZUNvbnRhaW5lcihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0Owog
CiAgICAgV2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsKIAotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128878</attachid>
            <date>2012-02-25 12:01:26 -0800</date>
            <delta_ts>2012-02-27 06:19:23 -0800</delta_ts>
            <desc>Patch to fix out of bounds selection bug</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>14299</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSBhNjc1NDUyNTkzZjUzMWMzODIzOWFlYzU1NjBjNmFjYWY4YjA5MDA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDT01NSVRCT1QgPFRvcmNoQnVpbGRCb3RAcmltLmNvbT4KRGF0
ZTogRnJpLCAyNCBGZWIgMjAxMiAwOTowOTo1MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTIt
MDItMjUgIEVkIEJha2VyICA8ZWRiYWtlckByaW0uY29tPgoKICAgICAgICBFbnN1cmUgdGhhdCB3
aGVuIHNlbGVjdGlvbiBoYW5kbGVzIGxlYXZlIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCB0aGF0
CiAgICAgICAgdGhlIGhhbmRsZSBub3QgYmVpbmcgZHJhZ2dlZCByZW1haW5zIGZpeGVkLiBEbyBu
b3QgYXBwbHkgcGFkZGluZyB0byBhCiAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1c2Ug
dGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQogICAgICAgIGhhbmRs
ZSBkaXJlY3Rpb24gZGV0ZWN0aW9uLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KCiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUpOgogICAgICAg
ICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0Lmg6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlv
bk9mUG9pbnRSZWxhdGl2ZVRvUmVjdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6Y2xh
bXApOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlvbmFsVmlzaWJsZVBvc2l0
aW9uQXRFeHRlbnRPZkJveCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb24pOgogICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmNsaXBQb2ludFRvVmlzaWJsZUNv
bnRhaW5lcik6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaDoKLS0t
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAg
MjMgKysrKysrKwogLi4uL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9y
dC5jcHAgfCAgIDEwICsrLQogLi4uL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5oICAgfCAgICAyICstCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbkhhbmRsZXIuY3BwICB8ICAgNjkgKysrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAgMiArLQogNSBmaWxl
cyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCA1ZjE4NmI3Li5mYWY0YjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0yNSAgRWQgQmFrZXIgIDxl
ZGJha2VyQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIERyYWdnaW5nIGEgc2VsZWN0
aW9uIGhhbmRsZSBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCBkb2VzIG5vdCB1
cGRhdGUgdGhlIHNlbGVjdGlvbiByYW5nZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA4CisKKyAgICAgICAgRW5zdXJlIHRoYXQg
d2hlbiBzZWxlY3Rpb24gaGFuZGxlcyBsZWF2ZSB0aGUgY29udGVudCBib3VuZGluZyBib3ggdGhh
dAorICAgICAgICB0aGUgaGFuZGxlIG5vdCBiZWluZyBkcmFnZ2VkIHJlbWFpbnMgZml4ZWQuIERv
IG5vdCBhcHBseSBwYWRkaW5nIHRvIGEKKyAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1
c2UgdGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQorICAgICAgICBo
YW5kbGUgZGlyZWN0aW9uIGRldGVjdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OmNsYW1wKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6ZGlyZWN0aW9uYWxWaXNp
YmxlUG9zaXRpb25BdEV4dGVudE9mQm94KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
U2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50
VG9WaXNpYmxlQ29udGFpbmVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhh
bmRsZXIuaDoKKwogMjAxMi0wMi0yNCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgog
CiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbGltaW5hdGUgZXhjZXNzaXZlIEJsYWNrQmVycnk6OlBs
YXRmb3JtIHVzZSBpbiBJbnB1dEhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKaW5kZXggOWRkNWQyMS4uNTNmZDg3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
RE9NU3VwcG9ydC5jcHAKQEAgLTMzNiw3ICszMzYsNyBAQCBib29sIGVsZW1lbnRJZE9yTmFtZUlu
ZGljYXRlc05vQXV0b2NvbXBsZXRlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1JbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9p
bnQpCitJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBzb3VyY2VGcmFt
ZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0
IGJvb2wgY2xhbXBUb1RhcmdldEZyYW1lKQogewogICAgIEFTU0VSVChzb3VyY2VGcmFtZSAmJiB0
YXJnZXRGcmFtZSk7CiAgICAgaWYgKHNvdXJjZUZyYW1lID09IHRhcmdldEZyYW1lKQpAQCAtMzQ3
LDYgKzM0Nyw3IEBAIEludFBvaW50IGNvbnZlcnRQb2ludFRvRnJhbWUoY29uc3QgRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUsCiAKICAgICBGcmFtZSogdGFyZ2V0
RnJhbWVQYXJlbnQgPSB0YXJnZXRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAgICBJbnRSZWN0
IHRhcmdldEZyYW1lUmVjdCA9IHRhcmdldEZyYW1lLT52aWV3KCktPmZyYW1lUmVjdCgpOworICAg
IEludFBvaW50IHRhcmdldFBvaW50ID0gcG9pbnQ7CiAKICAgICAvLyBDb252ZXJ0IHRoZSB0YXJn
ZXQgZnJhbWUgcmVjdCB0byBzb3VyY2Ugd2luZG93IGNvbnRlbnQgY29vcmRpbmF0ZXMuIFRoaXMg
aXMgb25seSByZXF1aXJlZAogICAgIC8vIGlmIHRoZSBwYXJlbnQgZnJhbWUgaXMgbm90IHRoZSBz
b3VyY2UuIElmIHRoZSBwYXJlbnQgaXMgdGhlIHNvdXJjZSwgc3ViZnJhbWVSZWN0CkBAIC0zNTUs
MTEgKzM1NiwxNCBAQCBJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLAogICAgICAgICB0YXJnZXRGcmFt
ZVJlY3QgPSBzb3VyY2VGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHRhcmdldEZyYW1l
UGFyZW50LT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3codGFyZ2V0RnJhbWVSZWN0KSk7CiAKICAg
ICAvLyBSZXF1ZXN0ZWQgcG9pbnQgaXMgb3V0c2lkZSBvZiB0YXJnZXQgZnJhbWUsIHJldHVybiBJ
bnZhbGlkUG9pbnQuCi0gICAgaWYgKCF0YXJnZXRGcmFtZVJlY3QuY29udGFpbnMocG9pbnQpKQor
ICAgIGlmIChjbGFtcFRvVGFyZ2V0RnJhbWUgJiYgIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyh0
YXJnZXRQb2ludCkpCisgICAgICAgIHRhcmdldFBvaW50ID0gSW50UG9pbnQodGFyZ2V0UG9pbnQu
eCgpIDwgdGFyZ2V0RnJhbWVSZWN0LngoKSA/IHRhcmdldEZyYW1lUmVjdC54KCkgOiBzdGQ6Om1p
bih0YXJnZXRQb2ludC54KCksIHRhcmdldEZyYW1lUmVjdC5tYXhYKCkpLAorICAgICAgICAgICAg
ICAgIHRhcmdldFBvaW50LnkoKSA8IHRhcmdldEZyYW1lUmVjdC55KCkgPyB0YXJnZXRGcmFtZVJl
Y3QueSgpIDogc3RkOjptaW4odGFyZ2V0UG9pbnQueSgpLCB0YXJnZXRGcmFtZVJlY3QubWF4WSgp
KSk7CisgICAgZWxzZSBpZiAoIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyh0YXJnZXRQb2ludCkp
CiAgICAgICAgIHJldHVybiBJbnZhbGlkUG9pbnQ7CiAKICAgICAvLyBBZGp1c3QgdGhlIHBvaW50
cyB0byBiZSByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0LgotICAgIHJldHVybiB0YXJnZXRGcmFtZS0+
dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHNvdXJjZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9X
aW5kb3cocG9pbnQpKTsKKyAgICByZXR1cm4gdGFyZ2V0RnJhbWUtPnZpZXcoKS0+d2luZG93VG9D
b250ZW50cyhzb3VyY2VGcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHRhcmdldFBvaW50
KSk7CiB9CiAKIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbkZvckNsb3Nlc3RBY3R1
YWxXb3JkU3RhcnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oCmluZGV4
IDFlMDk0NTEuLjFmNTg1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmgKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBpc1Bvc2l0
aW9uSW5Ob2RlKFdlYkNvcmU6Ok5vZGUqLCBjb25zdCBXZWJDb3JlOjpQb3NpdGlvbiYpOwogQXR0
cmlidXRlU3RhdGUgZWxlbWVudFN1cHBvcnRzQXV0b2NvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQqKTsKIGJvb2wgZWxlbWVudElkT3JOYW1lSW5kaWNhdGVzTm9BdXRvY29tcGxldGUoY29u
c3QgV2ViQ29yZTo6RWxlbWVudCopOwogCi1XZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0UG9pbnRU
b0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgV2ViQ29yZTo6
RnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc291cmNlUG9pbnQp
OworV2ViQ29yZTo6SW50UG9pbnQgY29udmVydFBvaW50VG9GcmFtZShjb25zdCBXZWJDb3JlOjpG
cmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZyYW1lKiB0YXJnZXRGcmFtZSwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHNvdXJjZVBvaW50LCBjb25zdCBib29sIGNsYW1wVG9UYXJn
ZXRGcmFtZSA9IGZhbHNlKTsKIAogc3RhdGljIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IEludmFs
aWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KC0xLCAtMSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5j
cHAKaW5kZXggZmRhNzFiNC4uOTMzNmEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTI3
MSw2ICsyNzEsMTEgQEAgc3RhdGljIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9uSW5EaXJlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLAogICAgIHJldHVybiB0ZW1wU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnNlbGVjdGlvblR5cGUoKSA9PSBWaXNpYmxlU2VsZWN0aW9uOjpS
YW5nZVNlbGVjdGlvbjsKIH0KIAorc3RhdGljIGludCBjbGFtcChjb25zdCBpbnQgbWluLCBjb25z
dCBpbnQgdmFsdWUsIGNvbnN0IGludCBtYXgpCit7CisgICAgcmV0dXJuIHZhbHVlIDwgbWluID8g
bWluIDogc3RkOjptaW4odmFsdWUsIG1heCk7Cit9CisKIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24g
ZGlyZWN0aW9uYWxWaXNpYmxlUG9zaXRpb25BdEV4dGVudE9mQm94KEZyYW1lKiBmcmFtZSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRpbmdCb3gsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGJhc2VQb2ludCkKIHsKICAgICBBU1NFUlQoZnJh
bWUpOwpAQCAtMjgwLDE3ICsyODUsMTcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBkaXJlY3Rp
b25hbFZpc2libGVQb3NpdGlvbkF0RXh0ZW50T2ZCb3goRnJhbWUqIGZyYW1lLCBjb24KIAogICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBLRVlDT0RFX0xFRlQ6Ci0gICAgICAgIC8v
IEV4dGVuZCB4IHRvIHN0YXJ0IHdpdGhvdXQgbW9kaWZ5aW5nIHkuCi0gICAgICAgIHJldHVybiBm
cmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdC
b3gueCgpLCBiYXNlUG9pbnQueSgpKSk7CisgICAgICAgIC8vIEV4dGVuZCB4IHRvIHN0YXJ0IGFu
ZCBjbGFtcCB5IHRvIHRoZSBlZGdlIG9mIGJvdW5kaW5nIGJveC4KKyAgICAgICAgcmV0dXJuIGZy
YW1lLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludChib3VuZGluZ0Jv
eC54KCksIGNsYW1wKGJvdW5kaW5nQm94LnkoKSwgYmFzZVBvaW50LnkoKSwgYm91bmRpbmdCb3gu
bWF4WSgpKSkpOwogICAgIGNhc2UgS0VZQ09ERV9SSUdIVDoKLSAgICAgICAgLy8gRXh0ZW5kIHgg
dG8gZW5kIHdpdGhvdXQgbW9kaWZ5aW5nIHkuCi0gICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdCb3gubWF4WCgpLCBi
YXNlUG9pbnQueSgpKSk7CisgICAgICAgIC8vIEV4dGVuZCB4IHRvIGVuZCBhbmQgY2xhbXAgeSB0
byB0aGUgZWRnZSBvZiBib3VuZGluZyBib3guCisgICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdCb3gubWF4WCgpLCBj
bGFtcChib3VuZGluZ0JveC55KCksIGJhc2VQb2ludC55KCksIGJvdW5kaW5nQm94Lm1heFkoKSkp
KTsKICAgICBjYXNlIEtFWUNPREVfVVA6Ci0gICAgICAgIC8vIEV4dGVuZCB5IHRvIHRvcCB3aXRo
b3V0IG1vZGlmeWluZyB4LgotICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZv
clBvaW50KFdlYkNvcmU6OkludFBvaW50KGJhc2VQb2ludC54KCksIGJvdW5kaW5nQm94LnkoKSkp
OworICAgICAgICAvLyBFeHRlbmQgeSB0byB0b3AgYW5kIGNsYW1wIHggdG8gdGhlIGVkZ2Ugb2Yg
Ym91bmRpbmcgYm94LgorICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBv
aW50KFdlYkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgYmFzZVBvaW50Lngo
KSwgYm91bmRpbmdCb3gubWF4WCgpKSwgYm91bmRpbmdCb3gueSgpKSk7CiAgICAgY2FzZSBLRVlD
T0RFX0RPV046Ci0gICAgICAgIC8vIEV4dGVuZCB5IHRvIGJvdHRvbSB3aXRob3V0IG1vZGlmeWlu
ZyB4LgotICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdlYkNv
cmU6OkludFBvaW50KGJhc2VQb2ludC54KCksIGJvdW5kaW5nQm94Lm1heFkoKSkpOworICAgICAg
ICAvLyBFeHRlbmQgeSB0byBib3R0b20gYW5kIGNsYW1wIHggdG8gdGhlIGVkZ2Ugb2YgYm91bmRp
bmcgYm94LgorICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdl
YkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgYmFzZVBvaW50LngoKSwgYm91
bmRpbmdCb3gubWF4WCgpKSwgYm91bmRpbmdCb3gubWF4WSgpKSk7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzE3LDggKzMyMiw4IEBAIHVuc2lnbmVkIHNob3J0IFNl
bGVjdGlvbkhhbmRsZXI6OmV4dGVuZFNlbGVjdGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3Rh
cnRIYW5kCiAKICAgICBGcmFtZVNlbGVjdGlvbiogY29udHJvbGxlciA9IGZvY3VzZWRGcmFtZS0+
c2VsZWN0aW9uKCk7CiAKLSAgICBXZWJDb3JlOjpJbnRSZWN0IGNhcmV0UmVjdCA9IGlzU3RhcnRI
YW5kbGUgPyBjb250cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKS5hYnNvbHV0ZUNh
cmV0Qm91bmRzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250
cm9sbGVyLT5zZWxlY3Rpb24oKS52aXNpYmxlRW5kKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpOwor
ICAgIFdlYkNvcmU6OkludFJlY3QgY2FyZXRSZWN0ID0gaXNTdGFydEhhbmRsZSA/IGNvbnRyb2xs
ZXItPnNlbGVjdGlvbigpLnZpc2libGVCYXNlKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbGxlci0+c2VsZWN0aW9u
KCkudmlzaWJsZUV4dGVudCgpLmFic29sdXRlQ2FyZXRCb3VuZHMoKTsKIAogICAgIFdlYkNvcmU6
OkludFJlY3Qgbm9kZUJvdW5kaW5nQm94ID0gZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1
c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOwogICAgIG5v
ZGVCb3VuZGluZ0JveC5pbmZsYXRlKC0xKTsKQEAgLTQxMiwyOCArNDE3LDYgQEAgYm9vbCBTZWxl
Y3Rpb25IYW5kbGVyOjp1cGRhdGVPckhhbmRsZUlucHV0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViQ29yZTo6SW50UG9pbnQg
U2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9Gb2N1c05vZGUoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvaW50KQotewotICAgIC8vIENsaXBwaW5nIHNob3VsZCBvbmx5IGhhcHBlbiBpZiB3
ZSBhcmUgaW4gYW4gaW5wdXQgZmllbGQuCi0gICAgaWYgKCFtX3dlYlBhZ2UtPm1faW5wdXRIYW5k
bGVyLT5pc0lucHV0TW9kZSgpKQotICAgICAgICByZXR1cm4gcG9pbnQ7Ci0KLSAgICBGcmFtZSog
Zm9jdXNlZEZyYW1lID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBpZiAo
IWZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSB8fCAhZm9jdXNlZEZyYW1l
LT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4g
cG9pbnQ7Ci0KLSAgICBXZWJDb3JlOjpJbnRSZWN0IGZvY3VzZWROb2RlQm91bmRpbmdCb3ggPSBm
b2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCktPmFic29s
dXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0gICAgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC5pbmZsYXRl
KC0xKTsKLQotICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBwZWRQb2ludCA9IHBvaW50OwotICAg
IGlmICghZm9jdXNlZE5vZGVCb3VuZGluZ0JveC5jb250YWlucyhjbGlwcGVkUG9pbnQpKQotICAg
ICAgICBjbGlwcGVkUG9pbnQgPSBXZWJDb3JlOjpJbnRQb2ludCgKLSAgICAgICAgICAgIHBvaW50
LngoKSA8IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueCgpID8gZm9jdXNlZE5vZGVCb3VuZGluZ0Jv
eC54KCkgOiBzdGQ6Om1pbihmb2N1c2VkTm9kZUJvdW5kaW5nQm94Lm1heFgoKSwgcG9pbnQueCgp
KSwKLSAgICAgICAgICAgIHBvaW50LnkoKSA8IGZvY3VzZWROb2RlQm91bmRpbmdCb3gueSgpID8g
Zm9jdXNlZE5vZGVCb3VuZGluZ0JveC55KCkgOiBzdGQ6Om1pbihmb2N1c2VkTm9kZUJvdW5kaW5n
Qm94Lm1heFkoKSwgcG9pbnQueSgpKSk7Ci0KLSAgICByZXR1cm4gY2xpcHBlZFBvaW50OwotfQot
CiB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNldFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc3RhcnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBlbmQpCiB7CiAgICAgbV9zZWxl
Y3Rpb25BY3RpdmUgPSB0cnVlOwpAQCAtNDY4LDcgKzQ1MSw3IEBAIHZvaWQgU2VsZWN0aW9uSGFu
ZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29uc3Qg
V2ViQ29yCiAgICAgICAgIHJlbGF0aXZlU3RhcnQgPSBET01TdXBwb3J0Ojpjb252ZXJ0UG9pbnRU
b0ZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCksIGZvY3VzZWRGcmFtZSwgc3RhcnQpOwogCiAg
ICAgICAgIC8vIFNldCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRhdGlvbi4KLSAgICAgICAgbmV3
U2VsZWN0aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5n
KCpmb2N1c2VkRnJhbWUsIGNsaXBQb2ludFRvRm9jdXNOb2RlKHJlbGF0aXZlU3RhcnQpKSk7Cisg
ICAgICAgIG5ld1NlbGVjdGlvbi5zZXRCYXNlKHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3Jp
bmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCBjbGlwUG9pbnRUb1Zpc2libGVDb250YWluZXIoc3Rh
cnQpKSk7CiAKICAgICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3Rp
bmcgZXh0ZW50IHdpdGhvdXQgdmFsaWRhdGlvbi4KICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdp
dGhvdXRWYWxpZGF0aW9uKG5ld1NlbGVjdGlvbi5iYXNlKCksIGNvbnRyb2xsZXItPnNlbGVjdGlv
bigpLmVuZCgpKTsKQEAgLTQ3OCw3ICs0NjEsNyBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNl
dFNlbGVjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc3RhcnQsIGNvbnN0IFdlYkNvcgog
ICAgICAgICByZWxhdGl2ZUVuZCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUobV93
ZWJQYWdlLT5tYWluRnJhbWUoKSwgZm9jdXNlZEZyYW1lLCBlbmQpOwogCiAgICAgICAgIC8vIFNl
dCB0aGUgc2VsZWN0aW9uIHdpdGggdmFsaWRhdGlvbi4KLSAgICAgICAgbmV3U2VsZWN0aW9uLnNl
dEV4dGVudCh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRG
cmFtZSwgY2xpcFBvaW50VG9Gb2N1c05vZGUocmVsYXRpdmVFbmQpKSk7CisgICAgICAgIG5ld1Nl
bGVjdGlvbi5zZXRFeHRlbnQodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5n
KCpmb2N1c2VkRnJhbWUsIGNsaXBQb2ludFRvVmlzaWJsZUNvbnRhaW5lcihlbmQpKSk7CiAKICAg
ICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUgZXhpc3RpbmcgYmFzZSB3aXRo
b3V0IHZhbGlkYXRpb24uCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlv
bihjb250cm9sbGVyLT5zZWxlY3Rpb24oKS5zdGFydCgpLCBuZXdTZWxlY3Rpb24uZXh0ZW50KCkp
OwpAQCAtNzc2LDYgKzc1OSwyNCBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OmNsaXBSZWdpb25U
b1Zpc2libGVDb250YWluZXIoSW50UmVjdFJlZ2lvbiYgcmVnaW9uKQogICAgIH0KIH0KIAorV2Vi
Q29yZTo6SW50UG9pbnQgU2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50VG9WaXNpYmxlQ29udGFp
bmVyKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
bV93ZWJQYWdlLT5tX21haW5GcmFtZSAmJiBtX3dlYlBhZ2UtPm1fbWFpbkZyYW1lLT52aWV3KCkp
OworCisgICAgRnJhbWUqIGZyYW1lID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsK
KyAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlwcGVkUG9pbnQgPSBET01TdXBwb3J0Ojpjb252ZXJ0
UG9pbnRUb0ZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCksIGZyYW1lLCBwb2ludCwgdHJ1ZSAv
KmNsYW1wVG9UYXJnZXRGcmFtZSovKTsKKworICAgIGlmIChtX3dlYlBhZ2UtPm1faW5wdXRIYW5k
bGVyLT5pc0lucHV0TW9kZSgpCisgICAgICAgICAgICAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9j
dXNlZE5vZGUoKQorICAgICAgICAgICAgJiYgZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2Rl
KCktPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgV2ViQ29yZTo6SW50UmVjdCBib3VuZGluZ0JveChm
cmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3Vu
ZGluZ0JveFJlY3QoKSk7CisgICAgICAgIGJvdW5kaW5nQm94LmluZmxhdGUoLTEpOworICAgICAg
ICBjbGlwcGVkUG9pbnQgPSBXZWJDb3JlOjpJbnRQb2ludChjbGFtcChib3VuZGluZ0JveC54KCks
IGNsaXBwZWRQb2ludC54KCksIGJvdW5kaW5nQm94Lm1heFgoKSksIGNsYW1wKGJvdW5kaW5nQm94
LnkoKSwgY2xpcHBlZFBvaW50LnkoKSwgYm91bmRpbmdCb3gubWF4WSgpKSk7CisgICAgfQorCisg
ICAgcmV0dXJuIGNsaXBwZWRQb2ludDsKK30KKwogc3RhdGljIFdlYkNvcmU6OkludFBvaW50IHJl
ZmVyZW5jZVBvaW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGJvdW5kaW5nUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGZyYW1l
UG9zaXRpb24sIGJvb2wgaXNTdGFydENhcmV0LCBib29sIGlzUlRMKQogewogICAgIC8vIElmIG9u
ZSBvZiB0aGUgY2FyZXRzIGlzIGludmFsaWQgKHRoaXMgaGFwcGVucywgZm9yIGluc3RhbmNlLCBp
ZiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L1NlbGVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuaAppbmRleCA4YzVmZTc2Li40MWE2OWY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9u
SGFuZGxlci5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Tm9kZSog
RE9NQ29udGFpbmVyTm9kZUZvclZpc2libGVQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpWaXNpYmxl
UG9zaXRpb24mKSBjb25zdDsKICAgICBib29sIHNob3VsZFVwZGF0ZVNlbGVjdGlvbk9yQ2FyZXRG
b3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBib29sIHN0YXJ0Q2FyZXQgPSB0cnVlKSBjb25zdDsKICAgICB1bnNpZ25lZCBzaG9ydCBleHRl
bmRTZWxlY3Rpb25Ub0ZpZWxkQm91bmRhcnkoYm9vbCBpc1N0YXJ0SGFuZGxlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgc2VsZWN0aW9uUG9pbnQsIFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbik7Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgY2xpcFBvaW50VG9Gb2N1c05v
ZGUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlw
UG9pbnRUb1Zpc2libGVDb250YWluZXIoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsK
IAogICAgIFdlYlBhZ2VQcml2YXRlKiBtX3dlYlBhZ2U7CiAKLS0gCjEuNy41LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129026</attachid>
            <date>2012-02-27 06:19:23 -0800</date>
            <delta_ts>2012-02-27 09:28:10 -0800</delta_ts>
            <desc>Patch to fix out of bounds selection bug</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>13551</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSA1MThiOGIwNjVkMTRhNzdhZTljOTdkOTgxOTkyNjFkMTAyNjRjZjFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDT01NSVRCT1QgPFRvcmNoQnVpbGRCb3RAcmltLmNvbT4KRGF0
ZTogRnJpLCAyNCBGZWIgMjAxMiAwOTowOTo1MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTIt
MDItMjUgIEVkIEJha2VyICA8ZWRiYWtlckByaW0uY29tPgoKICAgICAgICBFbnN1cmUgdGhhdCB3
aGVuIHNlbGVjdGlvbiBoYW5kbGVzIGxlYXZlIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCB0aGF0
CiAgICAgICAgdGhlIGhhbmRsZSBub3QgYmVpbmcgZHJhZ2dlZCByZW1haW5zIGZpeGVkLiBEbyBu
b3QgYXBwbHkgcGFkZGluZyB0byBhCiAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1c2Ug
dGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQogICAgICAgIGhhbmRs
ZSBkaXJlY3Rpb24gZGV0ZWN0aW9uLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KCiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUpOgogICAgICAg
ICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0Lmg6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlv
bk9mUG9pbnRSZWxhdGl2ZVRvUmVjdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6Y2xh
bXApOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlvbmFsVmlzaWJsZVBvc2l0
aW9uQXRFeHRlbnRPZkJveCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb24pOgogICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmNsaXBQb2ludFRvVmlzaWJsZUNv
bnRhaW5lcik6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaDoKLS0t
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAg
MjMgKysrKysrKwogLi4uL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9y
dC5jcHAgfCAgIDEwICsrLQogLi4uL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5oICAgfCAgICAyICstCiAuLi4vYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVj
dGlvbkhhbmRsZXIuY3BwICB8ICAgNjUgKysrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oICAgIHwgICAgMiArLQogNSBmaWxl
cyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCA1ZjE4NmI3Li5mYWY0YjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMi0yNSAgRWQgQmFrZXIgIDxl
ZGJha2VyQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIERyYWdnaW5nIGEgc2VsZWN0
aW9uIGhhbmRsZSBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCBkb2VzIG5vdCB1
cGRhdGUgdGhlIHNlbGVjdGlvbiByYW5nZSBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NjA4CisKKyAgICAgICAgRW5zdXJlIHRoYXQg
d2hlbiBzZWxlY3Rpb24gaGFuZGxlcyBsZWF2ZSB0aGUgY29udGVudCBib3VuZGluZyBib3ggdGhh
dAorICAgICAgICB0aGUgaGFuZGxlIG5vdCBiZWluZyBkcmFnZ2VkIHJlbWFpbnMgZml4ZWQuIERv
IG5vdCBhcHBseSBwYWRkaW5nIHRvIGEKKyAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1
c2UgdGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQorICAgICAgICBo
YW5kbGUgZGlyZWN0aW9uIGRldGVjdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oOgorICAgICAgICAqIFdlYktp
dFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OmNsYW1wKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6ZGlyZWN0aW9uYWxWaXNp
YmxlUG9zaXRpb25BdEV4dGVudE9mQm94KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
U2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFBvaW50
VG9WaXNpYmxlQ29udGFpbmVyKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhh
bmRsZXIuaDoKKwogMjAxMi0wMi0yNCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0uY29tPgog
CiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbGltaW5hdGUgZXhjZXNzaXZlIEJsYWNrQmVycnk6OlBs
YXRmb3JtIHVzZSBpbiBJbnB1dEhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAKaW5kZXggOWRkNWQyMS4uNTNmZDg3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9N
U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
RE9NU3VwcG9ydC5jcHAKQEAgLTMzNiw3ICszMzYsNyBAQCBib29sIGVsZW1lbnRJZE9yTmFtZUlu
ZGljYXRlc05vQXV0b2NvbXBsZXRlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1JbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9p
bnQpCitJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBzb3VyY2VGcmFt
ZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0
IGJvb2wgY2xhbXBUb1RhcmdldEZyYW1lKQogewogICAgIEFTU0VSVChzb3VyY2VGcmFtZSAmJiB0
YXJnZXRGcmFtZSk7CiAgICAgaWYgKHNvdXJjZUZyYW1lID09IHRhcmdldEZyYW1lKQpAQCAtMzQ3
LDYgKzM0Nyw3IEBAIEludFBvaW50IGNvbnZlcnRQb2ludFRvRnJhbWUoY29uc3QgRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUsCiAKICAgICBGcmFtZSogdGFyZ2V0
RnJhbWVQYXJlbnQgPSB0YXJnZXRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAgICBJbnRSZWN0
IHRhcmdldEZyYW1lUmVjdCA9IHRhcmdldEZyYW1lLT52aWV3KCktPmZyYW1lUmVjdCgpOworICAg
IEludFBvaW50IHRhcmdldFBvaW50ID0gcG9pbnQ7CiAKICAgICAvLyBDb252ZXJ0IHRoZSB0YXJn
ZXQgZnJhbWUgcmVjdCB0byBzb3VyY2Ugd2luZG93IGNvbnRlbnQgY29vcmRpbmF0ZXMuIFRoaXMg
aXMgb25seSByZXF1aXJlZAogICAgIC8vIGlmIHRoZSBwYXJlbnQgZnJhbWUgaXMgbm90IHRoZSBz
b3VyY2UuIElmIHRoZSBwYXJlbnQgaXMgdGhlIHNvdXJjZSwgc3ViZnJhbWVSZWN0CkBAIC0zNTUs
MTEgKzM1NiwxNCBAQCBJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IEZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgRnJhbWUqIHRhcmdldEZyYW1lLAogICAgICAgICB0YXJnZXRGcmFt
ZVJlY3QgPSBzb3VyY2VGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHRhcmdldEZyYW1l
UGFyZW50LT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3codGFyZ2V0RnJhbWVSZWN0KSk7CiAKICAg
ICAvLyBSZXF1ZXN0ZWQgcG9pbnQgaXMgb3V0c2lkZSBvZiB0YXJnZXQgZnJhbWUsIHJldHVybiBJ
bnZhbGlkUG9pbnQuCi0gICAgaWYgKCF0YXJnZXRGcmFtZVJlY3QuY29udGFpbnMocG9pbnQpKQor
ICAgIGlmIChjbGFtcFRvVGFyZ2V0RnJhbWUgJiYgIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyh0
YXJnZXRQb2ludCkpCisgICAgICAgIHRhcmdldFBvaW50ID0gSW50UG9pbnQodGFyZ2V0UG9pbnQu
eCgpIDwgdGFyZ2V0RnJhbWVSZWN0LngoKSA/IHRhcmdldEZyYW1lUmVjdC54KCkgOiBzdGQ6Om1p
bih0YXJnZXRQb2ludC54KCksIHRhcmdldEZyYW1lUmVjdC5tYXhYKCkpLAorICAgICAgICAgICAg
ICAgIHRhcmdldFBvaW50LnkoKSA8IHRhcmdldEZyYW1lUmVjdC55KCkgPyB0YXJnZXRGcmFtZVJl
Y3QueSgpIDogc3RkOjptaW4odGFyZ2V0UG9pbnQueSgpLCB0YXJnZXRGcmFtZVJlY3QubWF4WSgp
KSk7CisgICAgZWxzZSBpZiAoIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyh0YXJnZXRQb2ludCkp
CiAgICAgICAgIHJldHVybiBJbnZhbGlkUG9pbnQ7CiAKICAgICAvLyBBZGp1c3QgdGhlIHBvaW50
cyB0byBiZSByZWxhdGl2ZSB0byB0aGUgdGFyZ2V0LgotICAgIHJldHVybiB0YXJnZXRGcmFtZS0+
dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHNvdXJjZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9X
aW5kb3cocG9pbnQpKTsKKyAgICByZXR1cm4gdGFyZ2V0RnJhbWUtPnZpZXcoKS0+d2luZG93VG9D
b250ZW50cyhzb3VyY2VGcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHRhcmdldFBvaW50
KSk7CiB9CiAKIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbkZvckNsb3Nlc3RBY3R1
YWxXb3JkU3RhcnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oCmluZGV4
IDFlMDk0NTEuLjFmNTg1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmgKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBpc1Bvc2l0
aW9uSW5Ob2RlKFdlYkNvcmU6Ok5vZGUqLCBjb25zdCBXZWJDb3JlOjpQb3NpdGlvbiYpOwogQXR0
cmlidXRlU3RhdGUgZWxlbWVudFN1cHBvcnRzQXV0b2NvbXBsZXRlKGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQqKTsKIGJvb2wgZWxlbWVudElkT3JOYW1lSW5kaWNhdGVzTm9BdXRvY29tcGxldGUoY29u
c3QgV2ViQ29yZTo6RWxlbWVudCopOwogCi1XZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0UG9pbnRU
b0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgV2ViQ29yZTo6
RnJhbWUqIHRhcmdldEZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc291cmNlUG9pbnQp
OworV2ViQ29yZTo6SW50UG9pbnQgY29udmVydFBvaW50VG9GcmFtZShjb25zdCBXZWJDb3JlOjpG
cmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZyYW1lKiB0YXJnZXRGcmFtZSwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHNvdXJjZVBvaW50LCBjb25zdCBib29sIGNsYW1wVG9UYXJn
ZXRGcmFtZSA9IGZhbHNlKTsKIAogc3RhdGljIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IEludmFs
aWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KC0xLCAtMSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5j
cHAKaW5kZXggZmRhNzFiNC4uZmU4MWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTI3
MSw2ICsyNzEsMTEgQEAgc3RhdGljIGJvb2wgc2hvdWxkRXh0ZW5kU2VsZWN0aW9uSW5EaXJlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLAogICAgIHJldHVybiB0ZW1wU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnNlbGVjdGlvblR5cGUoKSA9PSBWaXNpYmxlU2VsZWN0aW9uOjpS
YW5nZVNlbGVjdGlvbjsKIH0KIAorc3RhdGljIGludCBjbGFtcChjb25zdCBpbnQgbWluLCBjb25z
dCBpbnQgdmFsdWUsIGNvbnN0IGludCBtYXgpCit7CisgICAgcmV0dXJuIHZhbHVlIDwgbWluID8g
bWluIDogc3RkOjptaW4odmFsdWUsIG1heCk7Cit9CisKIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24g
ZGlyZWN0aW9uYWxWaXNpYmxlUG9zaXRpb25BdEV4dGVudE9mQm94KEZyYW1lKiBmcmFtZSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgYm91bmRpbmdCb3gsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGJhc2VQb2ludCkKIHsKICAgICBBU1NFUlQoZnJh
bWUpOwpAQCAtMjgwLDE3ICsyODUsMTcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBkaXJlY3Rp
b25hbFZpc2libGVQb3NpdGlvbkF0RXh0ZW50T2ZCb3goRnJhbWUqIGZyYW1lLCBjb24KIAogICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBLRVlDT0RFX0xFRlQ6Ci0gICAgICAgIC8v
IEV4dGVuZCB4IHRvIHN0YXJ0IHdpdGhvdXQgbW9kaWZ5aW5nIHkuCi0gICAgICAgIHJldHVybiBm
cmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdC
b3gueCgpLCBiYXNlUG9pbnQueSgpKSk7CisgICAgICAgIC8vIEV4dGVuZCB4IHRvIHN0YXJ0IGFu
ZCBjbGFtcCB5IHRvIHRoZSBlZGdlIG9mIGJvdW5kaW5nIGJveC4KKyAgICAgICAgcmV0dXJuIGZy
YW1lLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludChib3VuZGluZ0Jv
eC54KCksIGNsYW1wKGJvdW5kaW5nQm94LnkoKSwgYmFzZVBvaW50LnkoKSwgYm91bmRpbmdCb3gu
bWF4WSgpKSkpOwogICAgIGNhc2UgS0VZQ09ERV9SSUdIVDoKLSAgICAgICAgLy8gRXh0ZW5kIHgg
dG8gZW5kIHdpdGhvdXQgbW9kaWZ5aW5nIHkuCi0gICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdCb3gubWF4WCgpLCBi
YXNlUG9pbnQueSgpKSk7CisgICAgICAgIC8vIEV4dGVuZCB4IHRvIGVuZCBhbmQgY2xhbXAgeSB0
byB0aGUgZWRnZSBvZiBib3VuZGluZyBib3guCisgICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYm91bmRpbmdCb3gubWF4WCgpLCBj
bGFtcChib3VuZGluZ0JveC55KCksIGJhc2VQb2ludC55KCksIGJvdW5kaW5nQm94Lm1heFkoKSkp
KTsKICAgICBjYXNlIEtFWUNPREVfVVA6Ci0gICAgICAgIC8vIEV4dGVuZCB5IHRvIHRvcCB3aXRo
b3V0IG1vZGlmeWluZyB4LgotICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZv
clBvaW50KFdlYkNvcmU6OkludFBvaW50KGJhc2VQb2ludC54KCksIGJvdW5kaW5nQm94LnkoKSkp
OworICAgICAgICAvLyBFeHRlbmQgeSB0byB0b3AgYW5kIGNsYW1wIHggdG8gdGhlIGVkZ2Ugb2Yg
Ym91bmRpbmcgYm94LgorICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBv
aW50KFdlYkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgYmFzZVBvaW50Lngo
KSwgYm91bmRpbmdCb3gubWF4WCgpKSwgYm91bmRpbmdCb3gueSgpKSk7CiAgICAgY2FzZSBLRVlD
T0RFX0RPV046Ci0gICAgICAgIC8vIEV4dGVuZCB5IHRvIGJvdHRvbSB3aXRob3V0IG1vZGlmeWlu
ZyB4LgotICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdlYkNv
cmU6OkludFBvaW50KGJhc2VQb2ludC54KCksIGJvdW5kaW5nQm94Lm1heFkoKSkpOworICAgICAg
ICAvLyBFeHRlbmQgeSB0byBib3R0b20gYW5kIGNsYW1wIHggdG8gdGhlIGVkZ2Ugb2YgYm91bmRp
bmcgYm94LgorICAgICAgICByZXR1cm4gZnJhbWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdl
YkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgYmFzZVBvaW50LngoKSwgYm91
bmRpbmdCb3gubWF4WCgpKSwgYm91bmRpbmdCb3gubWF4WSgpKSk7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDEyLDI4ICs0MTcsNiBAQCBib29sIFNlbGVjdGlvbkhh
bmRsZXI6OnVwZGF0ZU9ySGFuZGxlSW5wdXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aQogICAgIHJldHVybiB0cnVlOwogfQogCi1XZWJDb3JlOjpJbnRQb2ludCBTZWxlY3Rp
b25IYW5kbGVyOjpjbGlwUG9pbnRUb0ZvY3VzTm9kZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9pbnQpCi17Ci0gICAgLy8gQ2xpcHBpbmcgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIHdlIGFyZSBp
biBhbiBpbnB1dCBmaWVsZC4KLSAgICBpZiAoIW1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPmlz
SW5wdXRNb2RlKCkpCi0gICAgICAgIHJldHVybiBwb2ludDsKLQotICAgIEZyYW1lKiBmb2N1c2Vk
RnJhbWUgPSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGlmICghZm9jdXNl
ZEZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpIHx8ICFmb2N1c2VkRnJhbWUtPmRvY3Vt
ZW50KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBwb2ludDsK
LQotICAgIFdlYkNvcmU6OkludFJlY3QgZm9jdXNlZE5vZGVCb3VuZGluZ0JveCA9IGZvY3VzZWRG
cmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3Vu
ZGluZ0JveFJlY3QoKTsKLSAgICBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LmluZmxhdGUoLTEpOwot
Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgY2xpcHBlZFBvaW50ID0gcG9pbnQ7Ci0gICAgaWYgKCFm
b2N1c2VkTm9kZUJvdW5kaW5nQm94LmNvbnRhaW5zKGNsaXBwZWRQb2ludCkpCi0gICAgICAgIGNs
aXBwZWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KAotICAgICAgICAgICAgcG9pbnQueCgpIDwg
Zm9jdXNlZE5vZGVCb3VuZGluZ0JveC54KCkgPyBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LngoKSA6
IHN0ZDo6bWluKGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4WCgpLCBwb2ludC54KCkpLAotICAg
ICAgICAgICAgcG9pbnQueSgpIDwgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC55KCkgPyBmb2N1c2Vk
Tm9kZUJvdW5kaW5nQm94LnkoKSA6IHN0ZDo6bWluKGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4
WSgpLCBwb2ludC55KCkpKTsKLQotICAgIHJldHVybiBjbGlwcGVkUG9pbnQ7Ci19Ci0KIHZvaWQg
U2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBz
dGFydCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGVuZCkKIHsKICAgICBtX3NlbGVjdGlvbkFj
dGl2ZSA9IHRydWU7CkBAIC00NjgsNyArNDUxLDcgQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpz
ZXRTZWxlY3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJDb3IK
ICAgICAgICAgcmVsYXRpdmVTdGFydCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUo
bV93ZWJQYWdlLT5tYWluRnJhbWUoKSwgZm9jdXNlZEZyYW1lLCBzdGFydCk7CiAKICAgICAgICAg
Ly8gU2V0IHRoZSBzZWxlY3Rpb24gd2l0aCB2YWxpZGF0aW9uLgotICAgICAgICBuZXdTZWxlY3Rp
b24uc2V0QmFzZSh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3Vz
ZWRGcmFtZSwgY2xpcFBvaW50VG9Gb2N1c05vZGUocmVsYXRpdmVTdGFydCkpKTsKKyAgICAgICAg
bmV3U2VsZWN0aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBw
aW5nKCpmb2N1c2VkRnJhbWUsIGNsaXBQb2ludFRvVmlzaWJsZUNvbnRhaW5lcihzdGFydCkpKTsK
IAogICAgICAgICAvLyBSZXNldCB0aGUgc2VsZWN0aW9uIHVzaW5nIHRoZSBleGlzdGluZyBleHRl
bnQgd2l0aG91dCB2YWxpZGF0aW9uLgogICAgICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZh
bGlkYXRpb24obmV3U2VsZWN0aW9uLmJhc2UoKSwgY29udHJvbGxlci0+c2VsZWN0aW9uKCkuZW5k
KCkpOwpAQCAtNDc4LDcgKzQ2MSw3IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0
aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29uc3QgV2ViQ29yCiAgICAgICAg
IHJlbGF0aXZlRW5kID0gRE9NU3VwcG9ydDo6Y29udmVydFBvaW50VG9GcmFtZShtX3dlYlBhZ2Ut
Pm1haW5GcmFtZSgpLCBmb2N1c2VkRnJhbWUsIGVuZCk7CiAKICAgICAgICAgLy8gU2V0IHRoZSBz
ZWxlY3Rpb24gd2l0aCB2YWxpZGF0aW9uLgotICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50
KHZpc2libGVQb3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCBj
bGlwUG9pbnRUb0ZvY3VzTm9kZShyZWxhdGl2ZUVuZCkpKTsKKyAgICAgICAgbmV3U2VsZWN0aW9u
LnNldEV4dGVudCh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3Vz
ZWRGcmFtZSwgY2xpcFBvaW50VG9WaXNpYmxlQ29udGFpbmVyKGVuZCkpKTsKIAogICAgICAgICAv
LyBSZXNldCB0aGUgc2VsZWN0aW9uIHVzaW5nIHRoZSBleGlzdGluZyBiYXNlIHdpdGhvdXQgdmFs
aWRhdGlvbi4KICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGNvbnRy
b2xsZXItPnNlbGVjdGlvbigpLnN0YXJ0KCksIG5ld1NlbGVjdGlvbi5leHRlbnQoKSk7CkBAIC03
NzYsNiArNzU5LDI0IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFJlZ2lvblRvVmlzaWJs
ZUNvbnRhaW5lcihJbnRSZWN0UmVnaW9uJiByZWdpb24pCiAgICAgfQogfQogCitXZWJDb3JlOjpJ
bnRQb2ludCBTZWxlY3Rpb25IYW5kbGVyOjpjbGlwUG9pbnRUb1Zpc2libGVDb250YWluZXIoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIEFTU0VSVChtX3dlYlBh
Z2UtPm1fbWFpbkZyYW1lICYmIG1fd2ViUGFnZS0+bV9tYWluRnJhbWUtPnZpZXcoKSk7CisKKyAg
ICBGcmFtZSogZnJhbWUgPSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIFdl
YkNvcmU6OkludFBvaW50IGNsaXBwZWRQb2ludCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRv
RnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSwgZnJhbWUsIHBvaW50LCB0cnVlIC8qY2xhbXBU
b1RhcmdldEZyYW1lKi8pOworCisgICAgaWYgKG1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPmlz
SW5wdXRNb2RlKCkKKyAgICAgICAgICAgICYmIGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9k
ZSgpCisgICAgICAgICAgICAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVu
ZGVyZXIoKSkgeworICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nQm94KGZyYW1lLT5k
b2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94
UmVjdCgpKTsKKyAgICAgICAgYm91bmRpbmdCb3guaW5mbGF0ZSgtMSk7CisgICAgICAgIGNsaXBw
ZWRQb2ludCA9IFdlYkNvcmU6OkludFBvaW50KGNsYW1wKGJvdW5kaW5nQm94LngoKSwgY2xpcHBl
ZFBvaW50LngoKSwgYm91bmRpbmdCb3gubWF4WCgpKSwgY2xhbXAoYm91bmRpbmdCb3gueSgpLCBj
bGlwcGVkUG9pbnQueSgpLCBib3VuZGluZ0JveC5tYXhZKCkpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gY2xpcHBlZFBvaW50OworfQorCiBzdGF0aWMgV2ViQ29yZTo6SW50UG9pbnQgcmVmZXJlbmNl
UG9pbnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgYm91bmRpbmdSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZnJhbWVQb3NpdGlv
biwgYm9vbCBpc1N0YXJ0Q2FyZXQsIGJvb2wgaXNSVEwpCiB7CiAgICAgLy8gSWYgb25lIG9mIHRo
ZSBjYXJldHMgaXMgaW52YWxpZCAodGhpcyBoYXBwZW5zLCBmb3IgaW5zdGFuY2UsIGlmIHRoZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0
aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2Vs
ZWN0aW9uSGFuZGxlci5oCmluZGV4IDhjNWZlNzYuLjQxYTY5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVy
LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpOb2RlKiBET01Db250
YWluZXJOb2RlRm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlv
biYpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkVXBkYXRlU2VsZWN0aW9uT3JDYXJldEZvclBvaW50
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wg
c3RhcnRDYXJldCA9IHRydWUpIGNvbnN0OwogICAgIHVuc2lnbmVkIHNob3J0IGV4dGVuZFNlbGVj
dGlvblRvRmllbGRCb3VuZGFyeShib29sIGlzU3RhcnRIYW5kbGUsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzZWxlY3Rpb25Qb2ludCwgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2Vs
ZWN0aW9uKTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGlwUG9pbnRUb0ZvY3VzTm9kZShjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOworICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBQb2ludFRv
VmlzaWJsZUNvbnRhaW5lcihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogCiAgICAg
V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsKIAotLSAKMS43LjUuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129053</attachid>
            <date>2012-02-27 09:28:10 -0800</date>
            <delta_ts>2012-02-27 12:03:25 -0800</delta_ts>
            <desc>Patch to fix out of bounds selection bug</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>15083</size>
            <attacher>edbaker</attacher>
            
              <data encoding="base64">RnJvbSBkNmMzYWZiNTgzZTVkMTU4N2UyZjZmZWMwNTU4NWYxNWVhY2ZiNTkyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDT01NSVRCT1QgPFRvcmNoQnVpbGRCb3RAcmltLmNvbT4KRGF0
ZTogRnJpLCAyNCBGZWIgMjAxMiAwOTowOTo1MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTIt
MDItMjUgIEVkIEJha2VyICA8ZWRiYWtlckByaW0uY29tPgoKICAgICAgICBFbnN1cmUgdGhhdCB3
aGVuIHNlbGVjdGlvbiBoYW5kbGVzIGxlYXZlIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCB0aGF0
CiAgICAgICAgdGhlIGhhbmRsZSBub3QgYmVpbmcgZHJhZ2dlZCByZW1haW5zIGZpeGVkLiBEbyBu
b3QgYXBwbHkgcGFkZGluZyB0byBhCiAgICAgICAgZGlyZWN0aW9uIHRoYXQgd291bGQgY2F1c2Ug
dGhlIHNlbGVjdGlvbiB0byBzaHJpbmsgd2hlbiBwZXJmb3JtaW5nIHRoZQogICAgICAgIGhhbmRs
ZSBkaXJlY3Rpb24gZGV0ZWN0aW9uLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KCiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuY3BwOgogICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkRPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUpOgogICAgICAg
ICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0Lmg6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1Nl
bGVjdGlvbkhhbmRsZXIuY3BwOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlv
bk9mUG9pbnRSZWxhdGl2ZVRvUmVjdCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6Y2xh
bXApOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmRpcmVjdGlvbmFsVmlzaWJsZVBvc2l0
aW9uQXRFeHRlbnRPZkJveCk6CiAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
SGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KToKICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb24pOgogICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbkhhbmRsZXI6OmNsaXBQb2ludFRvVmlzaWJsZUNv
bnRhaW5lcik6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaDoKLS0t
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAg
MjMgKysrKysrCiAuLi4vV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0
LmNwcCB8ICAgMTAgKystCiAuLi4vV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01T
dXBwb3J0LmggICB8ICAgIDIgKy0KIC4uLi9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0
aW9uSGFuZGxlci5jcHAgIHwgICA3MSArKysrKysrKysrLS0tLS0tLS0tLQogLi4uL2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmggICAgfCAgICAyICstCiA1IGZpbGVz
IGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IDVmMTg2YjcuLmZhZjRiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTI1ICBFZCBCYWtlciAgPGVk
YmFrZXJAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gRHJhZ2dpbmcgYSBzZWxlY3Rp
b24gaGFuZGxlIG91dHNpZGUgb2YgdGhlIGNvbnRlbnQgYm91bmRpbmcgYm94IGRvZXMgbm90IHVw
ZGF0ZSB0aGUgc2VsZWN0aW9uIHJhbmdlIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg2MDgKKworICAgICAgICBFbnN1cmUgdGhhdCB3
aGVuIHNlbGVjdGlvbiBoYW5kbGVzIGxlYXZlIHRoZSBjb250ZW50IGJvdW5kaW5nIGJveCB0aGF0
CisgICAgICAgIHRoZSBoYW5kbGUgbm90IGJlaW5nIGRyYWdnZWQgcmVtYWlucyBmaXhlZC4gRG8g
bm90IGFwcGx5IHBhZGRpbmcgdG8gYQorICAgICAgICBkaXJlY3Rpb24gdGhhdCB3b3VsZCBjYXVz
ZSB0aGUgc2VsZWN0aW9uIHRvIHNocmluayB3aGVuIHBlcmZvcm1pbmcgdGhlCisgICAgICAgIGhh
bmRsZSBkaXJlY3Rpb24gZGV0ZWN0aW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcDoKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6RE9NU3VwcG9ydDo6Y29udmVydFBvaW50VG9GcmFtZSk6
CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0Lmg6CisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6Y2xhbXApOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpkaXJlY3Rpb25hbFZpc2li
bGVQb3NpdGlvbkF0RXh0ZW50T2ZCb3gpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpT
ZWxlY3Rpb25IYW5kbGVyOjpleHRlbmRTZWxlY3Rpb25Ub0ZpZWxkQm91bmRhcnkpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rpb24pOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25IYW5kbGVyOjpjbGlwUG9pbnRU
b1Zpc2libGVDb250YWluZXIpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFu
ZGxlci5oOgorCiAyMDEyLTAyLTI0ICBNaWtlIEZlbnRvbiAgPG1pZmVudG9uQHJpbS5jb20+CiAK
ICAgICAgICAgW0JsYWNrQmVycnldIEVsaW1pbmF0ZSBleGNlc3NpdmUgQmxhY2tCZXJyeTo6UGxh
dGZvcm0gdXNlIGluIElucHV0SGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvRE9NU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmNwcAppbmRleCA5ZGQ1ZDIxLi41M2ZkODc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01T
dXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
T01TdXBwb3J0LmNwcApAQCAtMzM2LDcgKzMzNiw3IEBAIGJvb2wgZWxlbWVudElkT3JOYW1lSW5k
aWNhdGVzTm9BdXRvY29tcGxldGUoY29uc3QgRWxlbWVudCogZWxlbWVudCkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLUludFBvaW50IGNvbnZlcnRQb2ludFRvRnJhbWUoY29uc3QgRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IEludFBvaW50JiBwb2lu
dCkKK0ludFBvaW50IGNvbnZlcnRQb2ludFRvRnJhbWUoY29uc3QgRnJhbWUqIHNvdXJjZUZyYW1l
LCBjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3Qg
Ym9vbCBjbGFtcFRvVGFyZ2V0RnJhbWUpCiB7CiAgICAgQVNTRVJUKHNvdXJjZUZyYW1lICYmIHRh
cmdldEZyYW1lKTsKICAgICBpZiAoc291cmNlRnJhbWUgPT0gdGFyZ2V0RnJhbWUpCkBAIC0zNDcs
NiArMzQ3LDcgQEAgSW50UG9pbnQgY29udmVydFBvaW50VG9GcmFtZShjb25zdCBGcmFtZSogc291
cmNlRnJhbWUsIGNvbnN0IEZyYW1lKiB0YXJnZXRGcmFtZSwKIAogICAgIEZyYW1lKiB0YXJnZXRG
cmFtZVBhcmVudCA9IHRhcmdldEZyYW1lLT50cmVlKCktPnBhcmVudCgpOwogICAgIEludFJlY3Qg
dGFyZ2V0RnJhbWVSZWN0ID0gdGFyZ2V0RnJhbWUtPnZpZXcoKS0+ZnJhbWVSZWN0KCk7CisgICAg
SW50UG9pbnQgdGFyZ2V0UG9pbnQgPSBwb2ludDsKIAogICAgIC8vIENvbnZlcnQgdGhlIHRhcmdl
dCBmcmFtZSByZWN0IHRvIHNvdXJjZSB3aW5kb3cgY29udGVudCBjb29yZGluYXRlcy4gVGhpcyBp
cyBvbmx5IHJlcXVpcmVkCiAgICAgLy8gaWYgdGhlIHBhcmVudCBmcmFtZSBpcyBub3QgdGhlIHNv
dXJjZS4gSWYgdGhlIHBhcmVudCBpcyB0aGUgc291cmNlLCBzdWJmcmFtZVJlY3QKQEAgLTM1NSwx
MSArMzU2LDE0IEBAIEludFBvaW50IGNvbnZlcnRQb2ludFRvRnJhbWUoY29uc3QgRnJhbWUqIHNv
dXJjZUZyYW1lLCBjb25zdCBGcmFtZSogdGFyZ2V0RnJhbWUsCiAgICAgICAgIHRhcmdldEZyYW1l
UmVjdCA9IHNvdXJjZUZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHModGFyZ2V0RnJhbWVQ
YXJlbnQtPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyh0YXJnZXRGcmFtZVJlY3QpKTsKIAogICAg
IC8vIFJlcXVlc3RlZCBwb2ludCBpcyBvdXRzaWRlIG9mIHRhcmdldCBmcmFtZSwgcmV0dXJuIElu
dmFsaWRQb2ludC4KLSAgICBpZiAoIXRhcmdldEZyYW1lUmVjdC5jb250YWlucyhwb2ludCkpCisg
ICAgaWYgKGNsYW1wVG9UYXJnZXRGcmFtZSAmJiAhdGFyZ2V0RnJhbWVSZWN0LmNvbnRhaW5zKHRh
cmdldFBvaW50KSkKKyAgICAgICAgdGFyZ2V0UG9pbnQgPSBJbnRQb2ludCh0YXJnZXRQb2ludC54
KCkgPCB0YXJnZXRGcmFtZVJlY3QueCgpID8gdGFyZ2V0RnJhbWVSZWN0LngoKSA6IHN0ZDo6bWlu
KHRhcmdldFBvaW50LngoKSwgdGFyZ2V0RnJhbWVSZWN0Lm1heFgoKSksCisgICAgICAgICAgICAg
ICAgdGFyZ2V0UG9pbnQueSgpIDwgdGFyZ2V0RnJhbWVSZWN0LnkoKSA/IHRhcmdldEZyYW1lUmVj
dC55KCkgOiBzdGQ6Om1pbih0YXJnZXRQb2ludC55KCksIHRhcmdldEZyYW1lUmVjdC5tYXhZKCkp
KTsKKyAgICBlbHNlIGlmICghdGFyZ2V0RnJhbWVSZWN0LmNvbnRhaW5zKHRhcmdldFBvaW50KSkK
ICAgICAgICAgcmV0dXJuIEludmFsaWRQb2ludDsKIAogICAgIC8vIEFkanVzdCB0aGUgcG9pbnRz
IHRvIGJlIHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQuCi0gICAgcmV0dXJuIHRhcmdldEZyYW1lLT52
aWV3KCktPndpbmRvd1RvQ29udGVudHMoc291cmNlRnJhbWUtPnZpZXcoKS0+Y29udGVudHNUb1dp
bmRvdyhwb2ludCkpOworICAgIHJldHVybiB0YXJnZXRGcmFtZS0+dmlldygpLT53aW5kb3dUb0Nv
bnRlbnRzKHNvdXJjZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3codGFyZ2V0UG9pbnQp
KTsKIH0KIAogVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uRm9yQ2xvc2VzdEFjdHVh
bFdvcmRTdGFydChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmggYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9ET01TdXBwb3J0LmgKaW5kZXgg
MWUwOTQ1MS4uMWY1ODU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvRE9NU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RPTVN1cHBvcnQuaApAQCAtNzIsNyArNzIsNyBAQCBib29sIGlzUG9zaXRp
b25Jbk5vZGUoV2ViQ29yZTo6Tm9kZSosIGNvbnN0IFdlYkNvcmU6OlBvc2l0aW9uJik7CiBBdHRy
aWJ1dGVTdGF0ZSBlbGVtZW50U3VwcG9ydHNBdXRvY29tcGxldGUoY29uc3QgV2ViQ29yZTo6RWxl
bWVudCopOwogYm9vbCBlbGVtZW50SWRPck5hbWVJbmRpY2F0ZXNOb0F1dG9jb21wbGV0ZShjb25z
dCBXZWJDb3JlOjpFbGVtZW50Kik7CiAKLVdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRQb2ludFRv
RnJhbWUoY29uc3QgV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBXZWJDb3JlOjpG
cmFtZSogdGFyZ2V0RnJhbWUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzb3VyY2VQb2ludCk7
CitXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0UG9pbnRUb0ZyYW1lKGNvbnN0IFdlYkNvcmU6OkZy
YW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgV2ViQ29yZTo6RnJhbWUqIHRhcmdldEZyYW1lLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgc291cmNlUG9pbnQsIGNvbnN0IGJvb2wgY2xhbXBUb1Rhcmdl
dEZyYW1lID0gZmFsc2UpOwogCiBzdGF0aWMgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgSW52YWxp
ZFBvaW50ID0gV2ViQ29yZTo6SW50UG9pbnQoLTEsIC0xKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNw
cAppbmRleCBmZGE3MWI0Li44NWFiNmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcApAQCAtMjcx
LDYgKzI3MSwxMSBAQCBzdGF0aWMgYm9vbCBzaG91bGRFeHRlbmRTZWxlY3Rpb25JbkRpcmVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sCiAgICAgcmV0dXJuIHRlbXBTZWxl
Y3Rpb24uc2VsZWN0aW9uKCkuc2VsZWN0aW9uVHlwZSgpID09IFZpc2libGVTZWxlY3Rpb246OlJh
bmdlU2VsZWN0aW9uOwogfQogCitzdGF0aWMgaW50IGNsYW1wKGNvbnN0IGludCBtaW4sIGNvbnN0
IGludCB2YWx1ZSwgY29uc3QgaW50IG1heCkKK3sKKyAgICByZXR1cm4gdmFsdWUgPCBtaW4gPyBt
aW4gOiBzdGQ6Om1pbih2YWx1ZSwgbWF4KTsKK30KKwogc3RhdGljIFZpc2libGVQb3NpdGlvbiBk
aXJlY3Rpb25hbFZpc2libGVQb3NpdGlvbkF0RXh0ZW50T2ZCb3goRnJhbWUqIGZyYW1lLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBib3VuZGluZ0JveCwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgYmFzZVBvaW50KQogewogICAgIEFTU0VSVChmcmFt
ZSk7CkBAIC0yODAsMTcgKzI4NSwxNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGRpcmVjdGlv
bmFsVmlzaWJsZVBvc2l0aW9uQXRFeHRlbnRPZkJveChGcmFtZSogZnJhbWUsIGNvbgogCiAgICAg
c3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEtFWUNPREVfTEVGVDoKLSAgICAgICAgLy8g
RXh0ZW5kIHggdG8gc3RhcnQgd2l0aG91dCBtb2RpZnlpbmcgeS4KLSAgICAgICAgcmV0dXJuIGZy
YW1lLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludChib3VuZGluZ0Jv
eC54KCksIGJhc2VQb2ludC55KCkpKTsKKyAgICAgICAgLy8gRXh0ZW5kIHggdG8gc3RhcnQgYW5k
IGNsYW1wIHkgdG8gdGhlIGVkZ2Ugb2YgYm91bmRpbmcgYm94LgorICAgICAgICByZXR1cm4gZnJh
bWUtPnZpc2libGVQb3NpdGlvbkZvclBvaW50KFdlYkNvcmU6OkludFBvaW50KGJvdW5kaW5nQm94
LngoKSwgY2xhbXAoYm91bmRpbmdCb3gueSgpLCBiYXNlUG9pbnQueSgpLCBib3VuZGluZ0JveC5t
YXhZKCkpKSk7CiAgICAgY2FzZSBLRVlDT0RFX1JJR0hUOgotICAgICAgICAvLyBFeHRlbmQgeCB0
byBlbmQgd2l0aG91dCBtb2RpZnlpbmcgeS4KLSAgICAgICAgcmV0dXJuIGZyYW1lLT52aXNpYmxl
UG9zaXRpb25Gb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludChib3VuZGluZ0JveC5tYXhYKCksIGJh
c2VQb2ludC55KCkpKTsKKyAgICAgICAgLy8gRXh0ZW5kIHggdG8gZW5kIGFuZCBjbGFtcCB5IHRv
IHRoZSBlZGdlIG9mIGJvdW5kaW5nIGJveC4KKyAgICAgICAgcmV0dXJuIGZyYW1lLT52aXNpYmxl
UG9zaXRpb25Gb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludChib3VuZGluZ0JveC5tYXhYKCksIGNs
YW1wKGJvdW5kaW5nQm94LnkoKSwgYmFzZVBvaW50LnkoKSwgYm91bmRpbmdCb3gubWF4WSgpKSkp
OwogICAgIGNhc2UgS0VZQ09ERV9VUDoKLSAgICAgICAgLy8gRXh0ZW5kIHkgdG8gdG9wIHdpdGhv
dXQgbW9kaWZ5aW5nIHguCi0gICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9y
UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQoYmFzZVBvaW50LngoKSwgYm91bmRpbmdCb3gueSgpKSk7
CisgICAgICAgIC8vIEV4dGVuZCB5IHRvIHRvcCBhbmQgY2xhbXAgeCB0byB0aGUgZWRnZSBvZiBi
b3VuZGluZyBib3guCisgICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9p
bnQoV2ViQ29yZTo6SW50UG9pbnQoY2xhbXAoYm91bmRpbmdCb3gueCgpLCBiYXNlUG9pbnQueCgp
LCBib3VuZGluZ0JveC5tYXhYKCkpLCBib3VuZGluZ0JveC55KCkpKTsKICAgICBjYXNlIEtFWUNP
REVfRE9XTjoKLSAgICAgICAgLy8gRXh0ZW5kIHkgdG8gYm90dG9tIHdpdGhvdXQgbW9kaWZ5aW5n
IHguCi0gICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoV2ViQ29y
ZTo6SW50UG9pbnQoYmFzZVBvaW50LngoKSwgYm91bmRpbmdCb3gubWF4WSgpKSk7CisgICAgICAg
IC8vIEV4dGVuZCB5IHRvIGJvdHRvbSBhbmQgY2xhbXAgeCB0byB0aGUgZWRnZSBvZiBib3VuZGlu
ZyBib3guCisgICAgICAgIHJldHVybiBmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoV2Vi
Q29yZTo6SW50UG9pbnQoY2xhbXAoYm91bmRpbmdCb3gueCgpLCBiYXNlUG9pbnQueCgpLCBib3Vu
ZGluZ0JveC5tYXhYKCkpLCBib3VuZGluZ0JveC5tYXhZKCkpKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBicmVhazsKICAgICB9CkBAIC0zMjUsNyArMzMwLDcgQEAgdW5zaWduZWQgc2hvcnQgU2Vs
ZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KGJvb2wgaXNTdGFy
dEhhbmQKIAogICAgIC8vIFN0YXJ0IGhhbmRsZSBpcyBvdXRzaWRlIG9mIHRoZSBmaWVsZC4gVHJl
YXQgaXQgYXMgdGhlIGNoYW5nZWQgaGFuZGxlIGFuZCBtb3ZlCiAgICAgLy8gcmVsYXRpdmUgdG8g
dGhlIHN0YXJ0IGNhcmV0IHJlY3QuCi0gICAgdW5zaWduZWQgc2hvcnQgY2hhcmFjdGVyID0gZGly
ZWN0aW9uT2ZQb2ludFJlbGF0aXZlVG9SZWN0KHNlbGVjdGlvblBvaW50LCBjYXJldFJlY3QsIGlz
U3RhcnRIYW5kbGUgLyp1c2VUb3BQYWRkaW5nKi8sICFpc1N0YXJ0SGFuZGxlIC8qdXNlQm90dG9t
UGFkZGluZyovKTsKKyAgICB1bnNpZ25lZCBzaG9ydCBjaGFyYWN0ZXIgPSBkaXJlY3Rpb25PZlBv
aW50UmVsYXRpdmVUb1JlY3Qoc2VsZWN0aW9uUG9pbnQsIGNhcmV0UmVjdCwgaXNTdGFydEhhbmRs
ZSAvKiB1c2VUb3BQYWRkaW5nICovLCAhaXNTdGFydEhhbmRsZSAvKiB1c2VCb3R0b21QYWRkaW5n
ICovKTsKIAogICAgIC8vIFByZXZlbnQgaW5jb3JyZWN0IG1vdmVtZW50LCBoYW5kbGVzIGNhbiBv
bmx5IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRoaXMgd2F5CiAgICAgLy8gdG8gcHJldmVudCBpbnZl
cnNpb24gb2YgdGhlIGhhbmRsZXMuCkBAIC0zNDAsOSArMzQ1LDkgQEAgdW5zaWduZWQgc2hvcnQg
U2VsZWN0aW9uSGFuZGxlcjo6ZXh0ZW5kU2VsZWN0aW9uVG9GaWVsZEJvdW5kYXJ5KGJvb2wgaXNT
dGFydEhhbmQKICAgICAgICAgbmV3VmlzaWJsZVBvc2l0aW9uID0gZGlyZWN0aW9uYWxWaXNpYmxl
UG9zaXRpb25BdEV4dGVudE9mQm94KGZvY3VzZWRGcmFtZSwgbm9kZUJvdW5kaW5nQm94LCBjaGFy
YWN0ZXIsIHNlbGVjdGlvblBvaW50KTsKIAogICAgIGlmIChpc1N0YXJ0SGFuZGxlKQotICAgICAg
ICBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKG5ld1Zpc2libGVQb3NpdGlvbiwgbmV3
U2VsZWN0aW9uLmV4dGVudCgpLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKKyAgICAgICAgbmV3
U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihuZXdWaXNpYmxlUG9zaXRpb24sIG5ld1NlbGVj
dGlvbi5leHRlbnQoKSwgdHJ1ZSAvKiBpc0RpcmVjdGlvbmFsICovKTsKICAgICBlbHNlCi0gICAg
ICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24obmV3U2VsZWN0aW9uLmJhc2UoKSwg
bmV3VmlzaWJsZVBvc2l0aW9uLCB0cnVlIC8qaXNEaXJlY3Rpb25hbCovKTsKKyAgICAgICAgbmV3
U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24uYmFzZSgpLCBuZXdWaXNp
YmxlUG9zaXRpb24sIHRydWUgLyogaXNEaXJlY3Rpb25hbCAqLyk7CiAKICAgICAvLyBJZiBubyBz
ZWxlY3Rpb24gd2lsbCBiZSBjaGFuZ2VkLCByZXR1cm4gdGhlIGNoYXJhY3RlciB0byBleHRlbmQg
dXNpbmcgbmF2aWdhdGlvbi4KICAgICBpZiAoY29udHJvbGxlci0+c2VsZWN0aW9uKCkgPT0gbmV3
U2VsZWN0aW9uKQpAQCAtNDEyLDI4ICs0MTcsNiBAQCBib29sIFNlbGVjdGlvbkhhbmRsZXI6OnVw
ZGF0ZU9ySGFuZGxlSW5wdXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1XZWJDb3JlOjpJbnRQb2ludCBTZWxlY3Rpb25IYW5kbGVy
OjpjbGlwUG9pbnRUb0ZvY3VzTm9kZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpCi17
Ci0gICAgLy8gQ2xpcHBpbmcgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIHdlIGFyZSBpbiBhbiBpbnB1
dCBmaWVsZC4KLSAgICBpZiAoIW1fd2ViUGFnZS0+bV9pbnB1dEhhbmRsZXItPmlzSW5wdXRNb2Rl
KCkpCi0gICAgICAgIHJldHVybiBwb2ludDsKLQotICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUgPSBt
X3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGlmICghZm9jdXNlZEZyYW1lLT5k
b2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpIHx8ICFmb2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZv
Y3VzZWROb2RlKCktPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBwb2ludDsKLQotICAgIFdl
YkNvcmU6OkludFJlY3QgZm9jdXNlZE5vZGVCb3VuZGluZ0JveCA9IGZvY3VzZWRGcmFtZS0+ZG9j
dW1lbnQoKS0+Zm9jdXNlZE5vZGUoKS0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QoKTsKLSAgICBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LmluZmxhdGUoLTEpOwotCi0gICAgV2Vi
Q29yZTo6SW50UG9pbnQgY2xpcHBlZFBvaW50ID0gcG9pbnQ7Ci0gICAgaWYgKCFmb2N1c2VkTm9k
ZUJvdW5kaW5nQm94LmNvbnRhaW5zKGNsaXBwZWRQb2ludCkpCi0gICAgICAgIGNsaXBwZWRQb2lu
dCA9IFdlYkNvcmU6OkludFBvaW50KAotICAgICAgICAgICAgcG9pbnQueCgpIDwgZm9jdXNlZE5v
ZGVCb3VuZGluZ0JveC54KCkgPyBmb2N1c2VkTm9kZUJvdW5kaW5nQm94LngoKSA6IHN0ZDo6bWlu
KGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4WCgpLCBwb2ludC54KCkpLAotICAgICAgICAgICAg
cG9pbnQueSgpIDwgZm9jdXNlZE5vZGVCb3VuZGluZ0JveC55KCkgPyBmb2N1c2VkTm9kZUJvdW5k
aW5nQm94LnkoKSA6IHN0ZDo6bWluKGZvY3VzZWROb2RlQm91bmRpbmdCb3gubWF4WSgpLCBwb2lu
dC55KCkpKTsKLQotICAgIHJldHVybiBjbGlwcGVkUG9pbnQ7Ci19Ci0KIHZvaWQgU2VsZWN0aW9u
SGFuZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGVuZCkKIHsKICAgICBtX3NlbGVjdGlvbkFjdGl2ZSA9IHRy
dWU7CkBAIC00NjgsNyArNDUxLDcgQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpzZXRTZWxlY3Rp
b24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJDb3IKICAgICAgICAg
cmVsYXRpdmVTdGFydCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUobV93ZWJQYWdl
LT5tYWluRnJhbWUoKSwgZm9jdXNlZEZyYW1lLCBzdGFydCk7CiAKICAgICAgICAgLy8gU2V0IHRo
ZSBzZWxlY3Rpb24gd2l0aCB2YWxpZGF0aW9uLgotICAgICAgICBuZXdTZWxlY3Rpb24uc2V0QmFz
ZSh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRGcmFtZSwg
Y2xpcFBvaW50VG9Gb2N1c05vZGUocmVsYXRpdmVTdGFydCkpKTsKKyAgICAgICAgbmV3U2VsZWN0
aW9uLnNldEJhc2UodmlzaWJsZVBvc2l0aW9uRm9yUG9pbnRJZ25vcmluZ0NsaXBwaW5nKCpmb2N1
c2VkRnJhbWUsIGNsaXBQb2ludFRvVmlzaWJsZUNvbnRhaW5lcihzdGFydCkpKTsKIAogICAgICAg
ICAvLyBSZXNldCB0aGUgc2VsZWN0aW9uIHVzaW5nIHRoZSBleGlzdGluZyBleHRlbnQgd2l0aG91
dCB2YWxpZGF0aW9uLgogICAgICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlkYXRpb24o
bmV3U2VsZWN0aW9uLmJhc2UoKSwgY29udHJvbGxlci0+c2VsZWN0aW9uKCkuZW5kKCkpOwpAQCAt
NDc4LDcgKzQ2MSw3IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6c2V0U2VsZWN0aW9uKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzdGFydCwgY29uc3QgV2ViQ29yCiAgICAgICAgIHJlbGF0aXZl
RW5kID0gRE9NU3VwcG9ydDo6Y29udmVydFBvaW50VG9GcmFtZShtX3dlYlBhZ2UtPm1haW5GcmFt
ZSgpLCBmb2N1c2VkRnJhbWUsIGVuZCk7CiAKICAgICAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24g
d2l0aCB2YWxpZGF0aW9uLgotICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHZpc2libGVQ
b3NpdGlvbkZvclBvaW50SWdub3JpbmdDbGlwcGluZygqZm9jdXNlZEZyYW1lLCBjbGlwUG9pbnRU
b0ZvY3VzTm9kZShyZWxhdGl2ZUVuZCkpKTsKKyAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVu
dCh2aXNpYmxlUG9zaXRpb25Gb3JQb2ludElnbm9yaW5nQ2xpcHBpbmcoKmZvY3VzZWRGcmFtZSwg
Y2xpcFBvaW50VG9WaXNpYmxlQ29udGFpbmVyKGVuZCkpKTsKIAogICAgICAgICAvLyBSZXNldCB0
aGUgc2VsZWN0aW9uIHVzaW5nIHRoZSBleGlzdGluZyBiYXNlIHdpdGhvdXQgdmFsaWRhdGlvbi4K
ICAgICAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGNvbnRyb2xsZXItPnNl
bGVjdGlvbigpLnN0YXJ0KCksIG5ld1NlbGVjdGlvbi5leHRlbnQoKSk7CkBAIC03NzYsNiArNzU5
LDI0IEBAIHZvaWQgU2VsZWN0aW9uSGFuZGxlcjo6Y2xpcFJlZ2lvblRvVmlzaWJsZUNvbnRhaW5l
cihJbnRSZWN0UmVnaW9uJiByZWdpb24pCiAgICAgfQogfQogCitXZWJDb3JlOjpJbnRQb2ludCBT
ZWxlY3Rpb25IYW5kbGVyOjpjbGlwUG9pbnRUb1Zpc2libGVDb250YWluZXIoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIEFTU0VSVChtX3dlYlBhZ2UtPm1fbWFp
bkZyYW1lICYmIG1fd2ViUGFnZS0+bV9tYWluRnJhbWUtPnZpZXcoKSk7CisKKyAgICBGcmFtZSog
ZnJhbWUgPSBtX3dlYlBhZ2UtPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIFdlYkNvcmU6Oklu
dFBvaW50IGNsaXBwZWRQb2ludCA9IERPTVN1cHBvcnQ6OmNvbnZlcnRQb2ludFRvRnJhbWUobV93
ZWJQYWdlLT5tYWluRnJhbWUoKSwgZnJhbWUsIHBvaW50LCB0cnVlIC8qIGNsYW1wVG9UYXJnZXRG
cmFtZSAqLyk7CisKKyAgICBpZiAobV93ZWJQYWdlLT5tX2lucHV0SGFuZGxlci0+aXNJbnB1dE1v
ZGUoKQorICAgICAgICAgICAgJiYgZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkKKyAg
ICAgICAgICAgICYmIGZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpLT5yZW5kZXJlcigp
KSB7CisgICAgICAgIFdlYkNvcmU6OkludFJlY3QgYm91bmRpbmdCb3goZnJhbWUtPmRvY3VtZW50
KCktPmZvY3VzZWROb2RlKCktPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCkp
OworICAgICAgICBib3VuZGluZ0JveC5pbmZsYXRlKC0xKTsKKyAgICAgICAgY2xpcHBlZFBvaW50
ID0gV2ViQ29yZTo6SW50UG9pbnQoY2xhbXAoYm91bmRpbmdCb3gueCgpLCBjbGlwcGVkUG9pbnQu
eCgpLCBib3VuZGluZ0JveC5tYXhYKCkpLCBjbGFtcChib3VuZGluZ0JveC55KCksIGNsaXBwZWRQ
b2ludC55KCksIGJvdW5kaW5nQm94Lm1heFkoKSkpOworICAgIH0KKworICAgIHJldHVybiBjbGlw
cGVkUG9pbnQ7Cit9CisKIHN0YXRpYyBXZWJDb3JlOjpJbnRQb2ludCByZWZlcmVuY2VQb2ludChj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBi
b3VuZGluZ1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBmcmFtZVBvc2l0aW9uLCBib29s
IGlzU3RhcnRDYXJldCwgYm9vbCBpc1JUTCkKIHsKICAgICAvLyBJZiBvbmUgb2YgdGhlIGNhcmV0
cyBpcyBpbnZhbGlkICh0aGlzIGhhcHBlbnMsIGZvciBpbnN0YW5jZSwgaWYgdGhlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5k
bGVyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25I
YW5kbGVyLmgKaW5kZXggOGM1ZmU3Ni4uNDFhNjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuaApAQCAt
NzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6Ok5vZGUqIERPTUNvbnRhaW5lck5v
ZGVGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJikgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRVcGRhdGVTZWxlY3Rpb25PckNhcmV0Rm9yUG9pbnQoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBzdGFydENh
cmV0ID0gdHJ1ZSkgY29uc3Q7CiAgICAgdW5zaWduZWQgc2hvcnQgZXh0ZW5kU2VsZWN0aW9uVG9G
aWVsZEJvdW5kYXJ5KGJvb2wgaXNTdGFydEhhbmRsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHNlbGVjdGlvblBvaW50LCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24p
OwotICAgIFdlYkNvcmU6OkludFBvaW50IGNsaXBQb2ludFRvRm9jdXNOb2RlKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50Jik7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgY2xpcFBvaW50VG9WaXNpYmxl
Q29udGFpbmVyKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAKICAgICBXZWJQYWdl
UHJpdmF0ZSogbV93ZWJQYWdlOwogCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>