<?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>88412</bug_id>
          
          <creation_ts>2012-06-06 06:56:00 -0700</creation_ts>
          <short_desc>StorageAreaProxy::canAccessStorage should cache the permissions.</short_desc>
          <delta_ts>2013-04-08 10:55:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marja Hölttä">marja</reporter>
          <assigned_to name="Michael Nordman">michaeln</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>leviw</cc>
    
    <cc>michaeln</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>642427</commentid>
    <comment_count>0</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-06-06 06:56:00 -0700</bug_when>
    <thetext>StorageAreaProxy::canAccessStorage should cache the permissions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642431</commentid>
    <comment_count>1</comment_count>
      <attachid>146015</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-06-06 07:00:08 -0700</bug_when>
    <thetext>Created attachment 146015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642440</commentid>
    <comment_count>2</comment_count>
      <attachid>146015</attachid>
    <who name="">jochen</who>
    <bug_when>2012-06-06 07:14:39 -0700</bug_when>
    <thetext>Comment on attachment 146015
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:3
&gt; +        StorageAreaProxy::canAccessStorage should cache the permissions.

prefix with [chromium] please

&gt; Source/WebKit/chromium/src/StorageAreaProxy.h:31
&gt; +#include &lt;map&gt;

don&apos;t use stl map but &lt;wtf/HashMap.h&gt;

&gt; Source/WebKit/chromium/src/StorageAreaProxy.h:78
&gt; +    mutable std::map&lt;Frame*, bool&gt; m_canAccessStorageCache;

I wonder whether we should instead add a boolean to WebFrameImpl canAccessStorage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642469</commentid>
    <comment_count>3</comment_count>
      <attachid>146032</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-06-06 07:54:22 -0700</bug_when>
    <thetext>Created attachment 146032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642471</commentid>
    <comment_count>4</comment_count>
      <attachid>146015</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-06-06 07:55:35 -0700</bug_when>
    <thetext>Comment on attachment 146015
Patch

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

&gt;&gt; Source/WebKit/chromium/ChangeLog:3
&gt;&gt; +        StorageAreaProxy::canAccessStorage should cache the permissions.
&gt; 
&gt; prefix with [chromium] please

Done

&gt;&gt; Source/WebKit/chromium/src/StorageAreaProxy.h:31
&gt;&gt; +#include &lt;map&gt;
&gt; 
&gt; don&apos;t use stl map but &lt;wtf/HashMap.h&gt;

Removed this

&gt;&gt; Source/WebKit/chromium/src/StorageAreaProxy.h:78
&gt;&gt; +    mutable std::map&lt;Frame*, bool&gt; m_canAccessStorageCache;
&gt; 
&gt; I wonder whether we should instead add a boolean to WebFrameImpl canAccessStorage

Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642480</commentid>
    <comment_count>5</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-06 08:06:52 -0700</bug_when>
    <thetext>this patch looks good to me, thx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642609</commentid>
    <comment_count>6</comment_count>
      <attachid>146032</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-06 10:57:23 -0700</bug_when>
    <thetext>Comment on attachment 146032
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1408
&gt; +        m_canAccessStorage = !permissionClient || permissionClient-&gt;allowStorage(this, localStorage);

is the answer ever different for local vs session storage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642614</commentid>
    <comment_count>7</comment_count>
      <attachid>146032</attachid>
    <who name="">jochen</who>
    <bug_when>2012-06-06 11:01:51 -0700</bug_when>
    <thetext>Comment on attachment 146032
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1408
&gt;&gt; +        m_canAccessStorage = !permissionClient || permissionClient-&gt;allowStorage(this, localStorage);
&gt; 
&gt; is the answer ever different for local vs session storage?

hum, no, but we show different notifications. Also, it&apos;s an implementation detail outside of webkit, so we should probably cache both results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642615</commentid>
    <comment_count>8</comment_count>
      <attachid>146032</attachid>
    <who name="">jochen</who>
    <bug_when>2012-06-06 11:01:54 -0700</bug_when>
    <thetext>Comment on attachment 146032
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1408
&gt;&gt; +        m_canAccessStorage = !permissionClient || permissionClient-&gt;allowStorage(this, localStorage);
&gt; 
&gt; is the answer ever different for local vs session storage?

hum, no, but we show different notifications. Also, it&apos;s an implementation detail outside of webkit, so we should probably cache both results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642741</commentid>
    <comment_count>9</comment_count>
      <attachid>146032</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-06-06 13:22:25 -0700</bug_when>
    <thetext>Comment on attachment 146032
Patch

Ahh, this was wrong, I&apos;ll fix the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643655</commentid>
    <comment_count>10</comment_count>
      <attachid>146032</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-07 10:16:27 -0700</bug_when>
    <thetext>Comment on attachment 146032
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1408
&gt;&gt;&gt;&gt; +        m_canAccessStorage = !permissionClient || permissionClient-&gt;allowStorage(this, localStorage);
&gt;&gt;&gt; 
&gt;&gt;&gt; is the answer ever different for local vs session storage?
&gt;&gt; 
&gt;&gt; hum, no, but we show different notifications. Also, it&apos;s an implementation detail outside of webkit, so we should probably cache both results
&gt; 
&gt; hum, no, but we show different notifications. Also, it&apos;s an implementation detail outside of webkit, so we should probably cache both results

hold on, if this setting can be different per-origin, webframeimpl is probably not a good place to cache this value since the frame can navigate from document to document in different origins. the storageareaproxy class is probably the best place for this cached value. instances of that class are per-document. while the methods of that class take a Frame* as input, in practice, the Frame* param value presented to a StorageAreaProxy instance will be the same value on each call. maybe something like this...

class StorageAreaProxy {

  bool canAccess(frame) {
    if (frame != m_cachedCanAccessSettingForFrame) {
      m_cachedCanAccessSetting = get value out of frame and such;
      m_cachedCanAccessSettingForFrame = frame;
    }
    return m_cachedCanAccessSetting;
  }

  void* m_cachedCanAccessSettingForFrame;  // the frame ptr for which we&apos;ve cached the value (null if not cached)
  bool m_cachedCanAccessSetting;
};

Also, if there&apos;s no use case for having the setting be different for local vs session, maybe we should alter the webkit api to remove that param from the permissionClient-&gt;allowStorage() method (eventually), and in this patch just pass a hard coded value of &apos;true&apos; and take it as a TODO or FIXME to clean up that api.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643710</commentid>
    <comment_count>11</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-07 11:15:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 146032 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146032&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1408
&gt; &gt;&gt;&gt;&gt; +        m_canAccessStorage = !permissionClient || permissionClient-&gt;allowStorage(this, localStorage);
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; is the answer ever different for local vs session storage?
&gt; &gt;&gt; 
&gt; &gt;&gt; hum, no, but we show different notifications. Also, it&apos;s an implementation detail outside of webkit, so we should probably cache both results
&gt; &gt; 
&gt; &gt; hum, no, but we show different notifications. Also, it&apos;s an implementation detail outside of webkit, so we should probably cache both results
&gt; 
&gt; hold on, if this setting can be different per-origin, webframeimpl is probably not a good place to cache this value since the frame can navigate from document to document in different origins. the storageareaproxy class is probably the best place for this cached value. instances of that class are per-document. while the methods of that class take a Frame* as input, in practice, the Frame* param value presented to a StorageAreaProxy instance will be the same value on each call. maybe something like this...

What if a page has multiple frames from the same origin, all using local storage?

&gt; 
&gt; class StorageAreaProxy {
&gt; 
&gt;   bool canAccess(frame) {
&gt;     if (frame != m_cachedCanAccessSettingForFrame) {
&gt;       m_cachedCanAccessSetting = get value out of frame and such;
&gt;       m_cachedCanAccessSettingForFrame = frame;
&gt;     }
&gt;     return m_cachedCanAccessSetting;
&gt;   }
&gt; 
&gt;   void* m_cachedCanAccessSettingForFrame;  // the frame ptr for which we&apos;ve cached the value (null if not cached)
&gt;   bool m_cachedCanAccessSetting;
&gt; };
&gt; 
&gt; Also, if there&apos;s no use case for having the setting be different for local vs session, maybe we should alter the webkit api to remove that param from the permissionClient-&gt;allowStorage() method (eventually), and in this patch just pass a hard coded value of &apos;true&apos; and take it as a TODO or FIXME to clean up that api.

The use case is displaying different UI based on whether it&apos;s sessionStorage or localStorage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643757</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-07 11:51:09 -0700</bug_when>
    <thetext>&gt; &gt; hold on, if this setting can be different per-origin, webframeimpl is probably not a good place to cache this value since the frame can navigate from document to document in different origins. the storageareaproxy class is probably the best place for this cached value. instances of that class are per-document. while the methods of that class take a Frame* as input, in practice, the Frame* param value presented to a StorageAreaProxy instance will be the same value on each call. maybe something like this...
&gt; 
&gt; What if a page has multiple frames from the same origin, all using local storage?

Each document has a distinct StorageAreaProxy, actually potentially two of them, one for session storage and another for local storage.

&gt; &gt; 
&gt; &gt; class StorageAreaProxy {
&gt; &gt; 
&gt; &gt;   bool canAccess(frame) {
&gt; &gt;     if (frame != m_cachedCanAccessSettingForFrame) {
&gt; &gt;       m_cachedCanAccessSetting = get value out of frame and such;
&gt; &gt;       m_cachedCanAccessSettingForFrame = frame;
&gt; &gt;     }
&gt; &gt;     return m_cachedCanAccessSetting;
&gt; &gt;   }
&gt; &gt; 
&gt; &gt;   void* m_cachedCanAccessSettingForFrame;  // the frame ptr for which we&apos;ve cached the value (null if not cached)
&gt; &gt;   bool m_cachedCanAccessSetting;
&gt; &gt; };
&gt; &gt; 
&gt; &gt; Also, if there&apos;s no use case for having the setting be different for local vs session, maybe we should alter the webkit api to remove that param from the permissionClient-&gt;allowStorage() method (eventually), and in this patch just pass a hard coded value of &apos;true&apos; and take it as a TODO or FIXME to clean up that api.
&gt; 
&gt; The use case is displaying different UI based on whether it&apos;s sessionStorage or localStorage

Ok, so we keep the param then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646482</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-11 17:45:55 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; &gt; class StorageAreaProxy {
&gt; &gt; &gt; 
&gt; &gt; &gt;   bool canAccess(frame) {
&gt; &gt; &gt;     if (frame != m_cachedCanAccessSettingForFrame) {
&gt; &gt; &gt;       m_cachedCanAccessSetting = get value out of frame and such;
&gt; &gt; &gt;       m_cachedCanAccessSettingForFrame = frame;
&gt; &gt; &gt;     }
&gt; &gt; &gt;     return m_cachedCanAccessSetting;
&gt; &gt; &gt;   }
&gt; &gt; &gt; 
&gt; &gt; &gt;   void* m_cachedCanAccessSettingForFrame;  // the frame ptr for which we&apos;ve cached the value (null if not cached)
&gt; &gt; &gt;   bool m_cachedCanAccessSetting;
&gt; &gt; &gt; };

If you like, I can work this into another small performance related change to this class thats in the works... https://chromiumcodereview.appspot.com/10539097/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649717</commentid>
    <comment_count>14</comment_count>
      <attachid>147699</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-14 18:37:17 -0700</bug_when>
    <thetext>Created attachment 147699
tlc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649722</commentid>
    <comment_count>15</comment_count>
      <attachid>147701</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-14 18:40:47 -0700</bug_when>
    <thetext>Created attachment 147701
tlc

added missing platform/ChangeLog diffs to the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650512</commentid>
    <comment_count>16</comment_count>
      <attachid>147899</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-15 14:32:12 -0700</bug_when>
    <thetext>Created attachment 147899
tlc

not sure why the patch didn&apos;t apply, reupping to run it by the ews bots again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650638</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-15 17:21:24 -0700</bug_when>
    <thetext>&gt; not sure why the patch didn&apos;t apply, reupping to run it by the ews bots again

i think that may have to do with line endings

fyi, the chrome-side can be seen here, https://chromiumcodereview.appspot.com/10533093/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655166</commentid>
    <comment_count>18</comment_count>
      <attachid>148945</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-21 19:39:27 -0700</bug_when>
    <thetext>Created attachment 148945
tlc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655169</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 19:41:19 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655575</commentid>
    <comment_count>20</comment_count>
      <attachid>148945</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-22 10:42:25 -0700</bug_when>
    <thetext>Comment on attachment 148945
tlc

API change LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655669</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-22 11:55:00 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 148945 [details])
&gt; API change LGTM

jochen, can you take a look at the .cpp parts of this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656584</commentid>
    <comment_count>22</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-25 08:31:13 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (From update of attachment 148945 [details] [details])
&gt; &gt; API change LGTM
&gt; 
&gt; jochen, can you take a look at the .cpp parts of this?

I&apos;m surprised this doesn&apos;t break LayoutTests/platform/chromium/permissionclient/storage-permission.html ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656662</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-25 10:04:59 -0700</bug_when>
    <thetext>&gt; I&apos;m surprised this doesn&apos;t break LayoutTests/platform/chromium/permissionclient/storage-permission.html ?

It sure should break that test! Probably &apos;passing&apos; because of this test expectation...

BUGCR85292 : platform/chromium/permissionclient/storage-permission.html = PASS TEXT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656718</commentid>
    <comment_count>24</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-25 11:02:13 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; &gt; I&apos;m surprised this doesn&apos;t break LayoutTests/platform/chromium/permissionclient/storage-permission.html ?
&gt; 
&gt; It sure should break that test! Probably &apos;passing&apos; because of this test expectation...
&gt; 
&gt; BUGCR85292 : platform/chromium/permissionclient/storage-permission.html = PASS TEXT

ouch

Anyway, the question is, should the cache be invalidated by the embedder? Alternatively, we could update the test to always block storage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656798</commentid>
    <comment_count>25</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2012-06-25 12:55:29 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; &gt; I&apos;m surprised this doesn&apos;t break LayoutTests/platform/chromium/permissionclient/storage-permission.html ?
&gt; &gt; 
&gt; &gt; It sure should break that test! Probably &apos;passing&apos; because of this test expectation...
&gt; &gt; 
&gt; &gt; BUGCR85292 : platform/chromium/permissionclient/storage-permission.html = PASS TEXT
&gt; 
&gt; ouch
&gt; 
&gt; Anyway, the question is, should the cache be invalidated by the embedder? Alternatively, we could update the test to always block storage.

I&apos;ll poke at the test to setup to block access prior to checking and have that test just check the blocked condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670011</commentid>
    <comment_count>26</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-15 12:27:29 -0700</bug_when>
    <thetext>I&apos;ve unskipped the test meanwhile. Can you update the test so it still works with this patch in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870883</commentid>
    <comment_count>27</comment_count>
      <attachid>148945</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-04-08 10:55:01 -0700</bug_when>
    <thetext>Comment on attachment 148945
tlc

Clearing flags.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146015</attachid>
            <date>2012-06-06 07:00:08 -0700</date>
            <delta_ts>2012-06-06 07:55:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88412-20120606160007.patch</filename>
            <type>text/plain</type>
            <size>2743</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGJiZjI3NTYyYWE2NGU2ZDlkY2U2ZTlhYmU2OWY3YjAzYTQ1MjRjMjYuLmRkMmRjYzMzNWE4NjVk
NGJmY2JiNjA0MTllYTg2MWNmODc2NmVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMDYgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBTdG9yYWdlQXJlYVByb3h5OjpjYW5BY2Nlc3NTdG9yYWdlIHNob3Vs
ZCBjYWNoZSB0aGUgcGVybWlzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04ODQxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNjZXNzU3RvcmFnZSk6IEFkZCBjYWNoZS4KKyAg
ICAgICAgKiBzcmMvU3RvcmFnZUFyZWFQcm94eS5oOgorICAgICAgICAoU3RvcmFnZUFyZWFQcm94
eSk6IEFkZCBjYWNoZSBmb3IgY2FuQWNjZXNzU3RvcmFnZS4KKwogMjAxMi0wNi0wNSAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEV2ZW50SGFuZGxlciBzaG91bGRu
J3QgZGlzcGF0Y2ggZmFrZSBtb3VzZW1vdmUgZXZlbnRzIHdoZW4gc2Nyb2xsaW5nIG9uIGRldmlj
ZXMgdGhhdCBkb24ndCBoYXZlIGEgbW91c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvU3RvcmFnZUFyZWFQcm94eS5jcHAKaW5kZXggNTc2MTA1YzRkNTMyMmY5OGRhM2I5NzYzZjU2
YWUyZTQ5NjhlYjA4Yy4uMjc4OWU4MDI4M2ViMGE3NzE2OTE3ZTc5MzkzNWRjY2FjNDhhMTZlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAK
QEAgLTExNSw5ICsxMTUsMTQgQEAgYm9vbCBTdG9yYWdlQXJlYVByb3h5OjpjYW5BY2Nlc3NTdG9y
YWdlKEZyYW1lKiBmcmFtZSkgY29uc3QKIHsKICAgICBpZiAoIWZyYW1lLT5wYWdlKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBzdGQ6Om1hcDxGcmFtZSosIGJvb2w+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IG1fY2FuQWNjZXNzU3RvcmFnZUNhY2hlLmZpbmQoZnJhbWUpOworICAgIGlmIChp
dCAhPSBtX2NhbkFjY2Vzc1N0b3JhZ2VDYWNoZS5lbmQoKSkKKyAgICAgIHJldHVybiBpdC0+c2Vj
b25kOwogICAgIFdlYktpdDo6V2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYktpdDo6V2ViRnJh
bWVJbXBsOjpmcm9tRnJhbWUoZnJhbWUpOwogICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIHdlYlZp
ZXcgPSB3ZWJGcmFtZS0+dmlld0ltcGwoKTsKLSAgICByZXR1cm4gIXdlYlZpZXctPnBlcm1pc3Np
b25DbGllbnQoKSB8fCB3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93U3RvcmFnZSh3
ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOworICAgIGJvb2wgcmVzdWx0
ID0gIXdlYlZpZXctPnBlcm1pc3Npb25DbGllbnQoKSB8fCB3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xp
ZW50KCktPmFsbG93U3RvcmFnZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3Jh
Z2UpOworICAgIG1fY2FuQWNjZXNzU3RvcmFnZUNhY2hlW2ZyYW1lXSA9IHJlc3VsdDsKKyAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhUHJveHk6OmRpc3BhdGNoTG9jYWxT
dG9yYWdlRXZlbnQoUGFnZUdyb3VwKiBwYWdlR3JvdXAsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5oCmluZGV4IDgzZjJlYWUxNzNkMjc5
YWY3ZTc0MzQ3ZjhjYjNmNmY4YTBlMWM0MmIuLmQyNWVhNDI5ZTVjYmIxNjZhMDViZTdmNjYxMDE3
ZWJiMmMwYzM5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3Jh
Z2VBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJl
YVByb3h5LmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAK
KyNpbmNsdWRlIDxtYXA+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViU3RvcmFnZUFy
ZWE7CiBjbGFzcyBXZWJTdG9yYWdlTmFtZXNwYWNlOwpAQCAtNzMsNiArNzUsNyBAQCBwcml2YXRl
OgogCiAgICAgT3duUHRyPFdlYktpdDo6V2ViU3RvcmFnZUFyZWE+IG1fc3RvcmFnZUFyZWE7CiAg
ICAgU3RvcmFnZVR5cGUgbV9zdG9yYWdlVHlwZTsKKyAgICBtdXRhYmxlIHN0ZDo6bWFwPEZyYW1l
KiwgYm9vbD4gbV9jYW5BY2Nlc3NTdG9yYWdlQ2FjaGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146032</attachid>
            <date>2012-06-06 07:54:22 -0700</date>
            <delta_ts>2012-06-14 18:37:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88412-20120606165421.patch</filename>
            <type>text/plain</type>
            <size>4477</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGJiZjI3NTYyYWE2NGU2ZDlkY2U2ZTlhYmU2OWY3YjAzYTQ1MjRjMjYuLjgxY2NiNGM1ODFhNWQ1
MjgwYTI2NmRkMGQ5MzRjMGMyMDg4ODc2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTItMDYtMDYgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFN0b3JhZ2VBcmVhUHJveHkgLyBXZWJGcmFtZUlt
cGw6IGNhY2hlIHN0b3JhZ2UgcGVybWlzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODQxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6
Y2FuQWNjZXNzU3RvcmFnZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVJbXBsOjpXZWJGcmFtZUltcGwpOiBBZGRlZCBjYW5BY2Nlc3NTdG9yYWdl
LgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKyAgICAgICAgKFdlYkZyYW1lSW1wbCk6
CisKIDIwMTItMDYtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBFdmVudEhhbmRsZXIgc2hvdWxkbid0IGRpc3BhdGNoIGZha2UgbW91c2Vtb3ZlIGV2ZW50cyB3
aGVuIHNjcm9sbGluZyBvbiBkZXZpY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIG1vdXNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCmluZGV4IDU3NjEw
NWM0ZDUzMjJmOThkYTNiOTc2M2Y1NmFlMmU0OTY4ZWIwOGMuLjk2NDk4M2E2M2E3Nzk2MGE1Njg3
MjVmMjBjOTZhMjU1Y2NhYmYyMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1N0b3JhZ2VBcmVhUHJveHkuY3BwCkBAIC00MSw3ICs0MSw2IEBACiAjaW5jbHVkZSAiU3RvcmFn
ZU5hbWVzcGFjZVByb3h5LmgiCiAKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKLSNpbmNsdWRl
ICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZUFyZWEuaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwu
aCIKQEAgLTExNiw4ICsxMTUsNyBAQCBib29sIFN0b3JhZ2VBcmVhUHJveHk6OmNhbkFjY2Vzc1N0
b3JhZ2UoRnJhbWUqIGZyYW1lKSBjb25zdAogICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIFdlYktpdDo6V2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdl
YktpdDo6V2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZnJhbWUpOwotICAgIFdlYktpdDo6V2ViVmll
d0ltcGwqIHdlYlZpZXcgPSB3ZWJGcmFtZS0+dmlld0ltcGwoKTsKLSAgICByZXR1cm4gIXdlYlZp
ZXctPnBlcm1pc3Npb25DbGllbnQoKSB8fCB3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFs
bG93U3RvcmFnZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOworICAg
IHJldHVybiB3ZWJGcmFtZS0+Y2FuQWNjZXNzU3RvcmFnZShtX3N0b3JhZ2VUeXBlID09IExvY2Fs
U3RvcmFnZSk7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFQcm94eTo6ZGlzcGF0Y2hMb2NhbFN0b3Jh
Z2VFdmVudChQYWdlR3JvdXAqIHBhZ2VHcm91cCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCA3M2JmM2ZhYTVjODcxM2I4NTIxMGEw
NDQ2MzgwMzJmMTRjMTE1YTI2Li41OGI1NjUwM2IxNWVkMzYxNDVmYjcwNTE2OTAzZjU5MTRlNWUz
ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAg
LTE1Nyw2ICsxNTcsNyBAQAogI2luY2x1ZGUgIldlYkludGVudC5oIgogI2luY2x1ZGUgIldlYk5v
ZGUuaCIKICNpbmNsdWRlICJXZWJQZXJmb3JtYW5jZS5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Np
b25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJQbHVnaW4uaCIKICNpbmNsdWRlICJXZWJQbHVnaW5D
b250YWluZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViUHJpbnRQYXJhbXMuaCIKQEAgLTE0MDAsNiAr
MTQwMSwxNiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6c2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKEZy
YW1lKiBmcmFtZSwgVmlzaWJsZVBvc2l0aW9uIHBvcykKICAgICB9CiB9CiAKK2Jvb2wgV2ViRnJh
bWVJbXBsOjpjYW5BY2Nlc3NTdG9yYWdlKGJvb2wgbG9jYWxTdG9yYWdlKQoreworICAgIGlmICgh
bV9zdG9yYWdlQWNjZXNzQ2hlY2tlZCkgeworICAgICAgICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBw
ZXJtaXNzaW9uQ2xpZW50ID0gdmlld0ltcGwoKS0+cGVybWlzc2lvbkNsaWVudCgpOworICAgICAg
ICBtX2NhbkFjY2Vzc1N0b3JhZ2UgPSAhcGVybWlzc2lvbkNsaWVudCB8fCBwZXJtaXNzaW9uQ2xp
ZW50LT5hbGxvd1N0b3JhZ2UodGhpcywgbG9jYWxTdG9yYWdlKTsKKyAgICAgICAgbV9zdG9yYWdl
QWNjZXNzQ2hlY2tlZCA9IHRydWU7CisgICAgfQorICAgIHJldHVybiBtX2NhbkFjY2Vzc1N0b3Jh
Z2U7Cit9CisKIGJvb2wgV2ViRnJhbWVJbXBsOjpzZWxlY3RXb3JkQXJvdW5kQ2FyZXQoKQogewog
ICAgIEZyYW1lU2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBmcmFtZSgpLT5zZWxlY3Rpb24oKTsKQEAg
LTIwMzYsNiArMjA0Nyw4IEBAIFdlYkZyYW1lSW1wbDo6V2ViRnJhbWVJbXBsKFdlYkZyYW1lQ2xp
ZW50KiBjbGllbnQpCiAgICAgLCBtX2FuaW1hdGlvbkNvbnRyb2xsZXIodGhpcykKICAgICAsIG1f
aWRlbnRpZmllcihnZW5lcmF0ZUZyYW1lSWRlbnRpZmllcigpKQogICAgICwgbV9pblNhbWVEb2N1
bWVudEhpc3RvcnlMb2FkKGZhbHNlKQorICAgICwgbV9jYW5BY2Nlc3NTdG9yYWdlKGZhbHNlKQor
ICAgICwgbV9zdG9yYWdlQWNjZXNzQ2hlY2tlZChmYWxzZSkKIHsKICAgICBXZWJLaXQ6OlBsYXRm
b3JtOjpjdXJyZW50KCktPmluY3JlbWVudFN0YXRzQ291bnRlcih3ZWJGcmFtZUFjdGl2ZUNvdW50
KTsKICAgICBmcmFtZUNvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5oCmluZGV4IDAxNDZiZDViZDdlOTBlYmE2OTFhZWMwMzc0NWRhMWIyZjM4YjZjYjIuLmFj
MjI4MjdiZGFmYzMwZGRkZGNjMDE4MGI3YTI3ZTg0ZDFmNTIzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC0yODUsNiArMjg1LDggQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgc2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKFdlYkNvcmU6OkZyYW1l
KiwgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKTsKIAorICAgIGJvb2wgY2FuQWNjZXNzU3RvcmFn
ZShib29sKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBEZWZlcnJlZFNjb3BlU3RyaW5nTWF0Y2hl
czsKICAgICBmcmllbmQgY2xhc3MgRGVmZXJyZWRTY29wZVN0cmluZ01hdGNoZXM7CkBAIC00MjAs
NiArNDIyLDEwIEBAIHByaXZhdGU6CiAgICAgLy8gRW5zdXJlIHdlIGRvbid0IG92ZXJ3cml0ZSB2
YWxpZCBoaXN0b3J5IGRhdGEgZHVyaW5nIHNhbWUgZG9jdW1lbnQgbG9hZHMKICAgICAvLyBmcm9t
IEhpc3RvcnlJdGVtcwogICAgIGJvb2wgbV9pblNhbWVEb2N1bWVudEhpc3RvcnlMb2FkOworCisg
ICAgLy8gRm9yIGNhY2hpbmcgdGhlIHJlc3VsdCBvZiBjYW5BY2Nlc3NTdG9yYWdlKCkuCisgICAg
Ym9vbCBtX2NhbkFjY2Vzc1N0b3JhZ2U7CisgICAgYm9vbCBtX3N0b3JhZ2VBY2Nlc3NDaGVja2Vk
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147699</attachid>
            <date>2012-06-14 18:37:17 -0700</date>
            <delta_ts>2012-06-14 18:40:47 -0700</delta_ts>
            <desc>tlc</desc>
            <filename>tlc.txt</filename>
            <type>text/plain</type>
            <size>5602</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFyZWEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VB
cmVhLmgJKHJldmlzaW9uIDEyMDM3MSkKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViU3RvcmFnZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMzUgKzU5LDIwIEBAIHB1
YmxpYzoKICAgICAvLyBubyBlbnRyeSBmb3IgdGhhdCBrZXkuCiAgICAgdmlydHVhbCBXZWJTdHJp
bmcgZ2V0SXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSkgPSAwOwogCisgICAgLy8gUmV0dXJucyB8
dHJ1ZXwgaWYgdGhlIHRoZSBhcmVhIGNvbnRhaW5zIGEgdmFsdWUgdGhhdCBjb3JyZXNwb25kcyB0
byB8a2V5fC4KKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJdGVtKGNvbnN0IFdlYlN0cmluZyYg
a2V5KSB7IHJldHVybiAhZ2V0SXRlbShrZXkpLmlzTnVsbCgpOyB9CisKICAgICAvLyBTZXQgdGhl
IHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBzcGVjaWZpYyBrZXkuIFJlc3VsdCB3aWxsIGVp
dGhlciBiZSBSZXN1bHRPSwogICAgIC8vIG9yIHNvbWUgcGFydGljdWxhciBlcnJvci4gVGhlIHZh
bHVlIGlzIE5PVCBzZXQgd2hlbiB0aGVyZSdzIGFuIGVycm9yLiB8cGFnZVVybHwgaXMgdGhlCiAg
ICAgLy8gdXJsIHRoYXQgc2hvdWxkIGJlIHVzZWQgaWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVzLgot
ICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5LCBjb25zdCBXZWJT
dHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBXZWJVUkwmIHBhZ2VVcmwsIFJlc3VsdCYgcmVzdWx0KQot
ICAgIHsKLSAgICAgICAgV2ViU3RyaW5nIHVudXNlZDsKLSAgICAgICAgc2V0SXRlbShrZXksIG5l
d1ZhbHVlLCBwYWdlVXJsLCByZXN1bHQsIHVudXNlZCk7Ci0gICAgfQotCisgICAgdmlydHVhbCB2
b2lkIHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0cmluZyYgbmV3VmFs
dWUsIGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgUmVzdWx0JiByZXN1bHQpIHsgfQogCiAgICAgLy8g
UmVtb3ZlIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIGtleS4gfHBhZ2VV
cmx8IGlzIHRoZSB1cmwgdGhhdCBzaG91bGQgYmUgdXNlZAogICAgIC8vIGlmIGEgc3RvcmFnZSBl
dmVudCBmaXJlcy4KLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSXRlbShjb25zdCBXZWJTdHJpbmcm
IGtleSwgY29uc3QgV2ViVVJMJiBwYWdlVXJsKQotICAgIHsKLSAgICAgICAgV2ViU3RyaW5nIHVu
dXNlZDsKLSAgICAgICAgcmVtb3ZlSXRlbShrZXksIHBhZ2VVcmwsIHVudXNlZCk7Ci0gICAgfQor
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5LCBjb25zdCBX
ZWJVUkwmIHBhZ2VVcmwpIHsgfQogCiAgICAgLy8gQ2xlYXIgYWxsIGtleS92YWx1ZSBwYWlycy4g
fHBhZ2VVcmx8IGlzIHRoZSB1cmwgdGhhdCBzaG91bGQgYmUgdXNlZCBpZiBhIHN0b3JhZ2UgZXZl
bnQgZmlyZXMuCi0gICAgdmlydHVhbCB2b2lkIGNsZWFyKGNvbnN0IFdlYlVSTCYgcGFnZVVybCkK
LSAgICB7Ci0gICAgICAgIGJvb2wgdW51c2VkOwotICAgICAgICBjbGVhcihwYWdlVXJsLCB1bnVz
ZWQpOwotICAgIH0KLQotICAgIC8vIERFUFJFQ0FURUQgLSBiZWluZyByZXBsYWNlZCBieSB0aGUg
YXN5bmMgdmFyaWFudHMgYWJvdmUgd2hpY2ggZG8gbm90IHJldHVybiBvbGRWYWx1ZXMgb3IgYmxv
Y2sgdW50aWwgY29tcGxldGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShjb25zdCBXZWJT
dHJpbmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgV2ViVVJMJiwgUmVz
dWx0JiwgV2ViU3RyaW5nJiBvbGRWYWx1ZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUl0
ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgV2ViU3RyaW5n
JiBvbGRWYWx1ZSkgIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjbGVhcihjb25zdCBXZWJVUkwmIHBh
Z2VVcmwsIGJvb2wmIHNvbWV0aGluZ0NsZWFyZWQpICB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2xl
YXIoY29uc3QgV2ViVVJMJiBwYWdlVXJsKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYmtpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYmtpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMDM4NCkKKysrIFNv
dXJjZS9XZWJraXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTItMDYtMTQgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+
CisKKyAgICAgICAgW0Nocm9taXVtXSBNb3JlIERPTVN0b3JhZ2UgVExDLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg0MTIKKworICAgICAgICAxKSBT
dG9yYWdlQXJlYVByb3h5OjpjYW5BY2Nlc3NTdG9yYWdlIHNob3VsZCBjYWNoZSB0aGUgcGVybWlz
c2lvbnMuCisgICAgICAgIDIpIEFkZCBXZWJTdG9yYWdlQXJlYTo6Y29udGFpbnNJdGVtKCkgdG8g
dGhlIHdlYmtpdCBBUEkgdG8gbW9yZSBlZmZpY2llbnRseSB0ZXN0IGZvciB0aGF0IGZyb20gdGhl
IFY4IGJpbmRpbmdzIGxheWVyLgorICAgICAgICAzKSBDbGVhbnVwIG9sZCBERVBSRUNBVEVEIG1l
dGhvZHMgZnJvbSB0aGUgV2ViU3RvcmFnZUFyZWEgaW50ZXJmYWNlLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFQcm94eTo6U3RvcmFnZUFyZWFQcm94
eSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVByb3h5Ojpjb250YWlucyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVByb3h5OjpjYW5BY2Nlc3NTdG9yYWdlKToKKyAgICAg
ICAgKiBzcmMvU3RvcmFnZUFyZWFQcm94eS5oOgorICAgICAgICAoU3RvcmFnZUFyZWFQcm94eSk6
CisKIDIwMTItMDYtMTQgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIFN1Yi1waXhlbCB0ZXh0IHJlbmRlcmluZyBpcyBpbmNvcnJlY3Rs
eSB1c2VkIGZvciBXZWJWaWV3IHdpdGggdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4KSW5kZXg6IFNv
dXJjZS9XZWJraXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJraXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCShyZXZp
c2lvbiAxMjAzNzEpCisrKyBTb3VyY2UvV2Via2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBTdG9yYWdlQXJlYVByb3h5OjpTdG9yYWdlQXJlYVByb3h5KFdlYktpdDo6V2ViU3RvcmFn
ZUFyZWEqIHN0b3JhZ2VBcmVhLCBTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKICAgICA6IG1fc3Rv
cmFnZUFyZWEoYWRvcHRQdHIoc3RvcmFnZUFyZWEpKQogICAgICwgbV9zdG9yYWdlVHlwZShzdG9y
YWdlVHlwZSkKKyAgICAsIG1fY2FjaGVkQ2FuQWNjZXNzU2V0dGluZyhmYWxzZSkKKyAgICAsIG1f
Y2FjaGVkQ2FuQWNjZXNzU2V0dGluZ0ZvckZyYW1lKDApCiB7CiB9CiAKQEAgLTEwOCwxNiArMTEw
LDIzIEBAIHZvaWQgU3RvcmFnZUFyZWFQcm94eTo6Y2xlYXIoRnJhbWUqIGZyYW0KIAogYm9vbCBT
dG9yYWdlQXJlYVByb3h5Ojpjb250YWlucyhjb25zdCBTdHJpbmcmIGtleSwgRnJhbWUqIGZyYW1l
KSBjb25zdAogewotICAgIHJldHVybiAhZ2V0SXRlbShrZXksIGZyYW1lKS5pc051bGwoKTsKKyAg
ICBpZiAoIWNhbkFjY2Vzc1N0b3JhZ2UoZnJhbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIG1fc3RvcmFnZUFyZWEtPmNvbnRhaW5zSXRlbShrZXkpOwogfQogCiBib29sIFN0
b3JhZ2VBcmVhUHJveHk6OmNhbkFjY2Vzc1N0b3JhZ2UoRnJhbWUqIGZyYW1lKSBjb25zdAogewog
ICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICht
X2NhY2hlZENhbkFjY2Vzc1NldHRpbmdGb3JGcmFtZSA9PSByZWludGVycHJldF9jYXN0PHZvaWQq
PihmcmFtZSkpCisgICAgICAgIHJldHVybiBtX2NhY2hlZENhbkFjY2Vzc1NldHRpbmc7CisKICAg
ICBXZWJLaXQ6OldlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJLaXQ6OldlYkZyYW1lSW1wbDo6
ZnJvbUZyYW1lKGZyYW1lKTsKICAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiB3ZWJWaWV3ID0gd2Vi
RnJhbWUtPnZpZXdJbXBsKCk7Ci0gICAgcmV0dXJuICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50
KCkgfHwgd2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1N0b3JhZ2Uod2ViRnJhbWUs
IG1fc3RvcmFnZVR5cGUgPT0gTG9jYWxTdG9yYWdlKTsKKyAgICBtX2NhY2hlZENhbkFjY2Vzc1Nl
dHRpbmcgPSAhd2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpIHx8IHdlYlZpZXctPnBlcm1pc3Np
b25DbGllbnQoKS0+YWxsb3dTdG9yYWdlKHdlYkZyYW1lLCBtX3N0b3JhZ2VUeXBlID09IExvY2Fs
U3RvcmFnZSk7CisgICAgbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nRm9yRnJhbWUgPSByZWludGVy
cHJldF9jYXN0PHZvaWQqPihmcmFtZSk7CisgICAgcmV0dXJuIG1fY2FjaGVkQ2FuQWNjZXNzU2V0
dGluZzsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYVByb3h5OjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2
ZW50KFBhZ2VHcm91cCogcGFnZUdyb3VwLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwKSW5kZXg6IFNvdXJjZS9XZWJraXQv
Y2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
a2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmgJKHJldmlzaW9uIDEyMDM3MSkKKysr
IFNvdXJjZS9XZWJraXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuaAkod29ya2luZyBj
b3B5KQpAQCAtNzMsNiArNzMsOCBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPFdlYktpdDo6V2Vi
U3RvcmFnZUFyZWE+IG1fc3RvcmFnZUFyZWE7CiAgICAgU3RvcmFnZVR5cGUgbV9zdG9yYWdlVHlw
ZTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nOworICAgIG11dGFi
bGUgdm9pZCogbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nRm9yRnJhbWU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147701</attachid>
            <date>2012-06-14 18:40:47 -0700</date>
            <delta_ts>2012-06-15 14:32:12 -0700</delta_ts>
            <desc>tlc</desc>
            <filename>tlc.txt</filename>
            <type>text/plain</type>
            <size>6662</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIwMzg0KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTE0ICBNaWNo
YWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0g
TW9yZSBET01TdG9yYWdlIFRMQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4NDEyCisKKyAgICAgICAgMSkgU3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNj
ZXNzU3RvcmFnZSBzaG91bGQgY2FjaGUgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAyKSBBZGQg
V2ViU3RvcmFnZUFyZWE6OmNvbnRhaW5zSXRlbSgpIHRvIHRoZSB3ZWJraXQgQVBJIHRvIG1vcmUg
ZWZmaWNpZW50bHkgdGVzdCBmb3IgdGhhdCBmcm9tIHRoZSBWOCBiaW5kaW5ncyBsYXllci4KKyAg
ICAgICAgMykgQ2xlYW51cCBvbGQgREVQUkVDQVRFRCBtZXRob2RzIGZyb20gdGhlIFdlYlN0b3Jh
Z2VBcmVhIGludGVyZmFjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6Y29udGFpbnNJdGVtKToKKyAgICAgICAgKFdlYlN0b3Jh
Z2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OnNldEl0ZW0pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlN0b3JhZ2VBcmVhOjpjbGVhcik6CisKIDIwMTItMDYtMTQgIElhbiBWb2xsaWNrICA8
dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDZXJ0YWluIHNldHRp
bmdzIGluIENDU2V0dGluZ3MgY291bGQgYmUgZ2xvYmFsCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCShyZXZpc2lvbiAxMjAzNzEp
CisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDM1ICs1OSwyMCBAQCBwdWJsaWM6CiAgICAgLy8gbm8gZW50cnkg
Zm9yIHRoYXQga2V5LgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldEl0ZW0oY29uc3QgV2ViU3Ry
aW5nJiBrZXkpID0gMDsKIAorICAgIC8vIFJldHVybnMgfHRydWV8IGlmIHRoZSB0aGUgYXJlYSBj
b250YWlucyBhIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gfGtleXwuCisgICAgdmlydHVhbCBi
b29sIGNvbnRhaW5zSXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSkgeyByZXR1cm4gIWdldEl0ZW0o
a2V5KS5pc051bGwoKTsgfQorCiAgICAgLy8gU2V0IHRoZSB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRz
IHRvIGEgc3BlY2lmaWMga2V5LiBSZXN1bHQgd2lsbCBlaXRoZXIgYmUgUmVzdWx0T0sKICAgICAv
LyBvciBzb21lIHBhcnRpY3VsYXIgZXJyb3IuIFRoZSB2YWx1ZSBpcyBOT1Qgc2V0IHdoZW4gdGhl
cmUncyBhbiBlcnJvci4gfHBhZ2VVcmx8IGlzIHRoZQogICAgIC8vIHVybCB0aGF0IHNob3VsZCBi
ZSB1c2VkIGlmIGEgc3RvcmFnZSBldmVudCBmaXJlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SXRl
bShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3Qg
V2ViVVJMJiBwYWdlVXJsLCBSZXN1bHQmIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIFdlYlN0cmlu
ZyB1bnVzZWQ7Ci0gICAgICAgIHNldEl0ZW0oa2V5LCBuZXdWYWx1ZSwgcGFnZVVybCwgcmVzdWx0
LCB1bnVzZWQpOwotICAgIH0KLQorICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFdlYlN0
cmluZyYga2V5LCBjb25zdCBXZWJTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBXZWJVUkwmIHBhZ2VV
cmwsIFJlc3VsdCYgcmVzdWx0KSB7IH0KIAogICAgIC8vIFJlbW92ZSB0aGUgdmFsdWUgYXNzb2Np
YXRlZCB3aXRoIGEgcGFydGljdWxhciBrZXkuIHxwYWdlVXJsfCBpcyB0aGUgdXJsIHRoYXQgc2hv
dWxkIGJlIHVzZWQKICAgICAvLyBpZiBhIHN0b3JhZ2UgZXZlbnQgZmlyZXMuCi0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlVSTCYgcGFn
ZVVybCkKLSAgICB7Ci0gICAgICAgIFdlYlN0cmluZyB1bnVzZWQ7Ci0gICAgICAgIHJlbW92ZUl0
ZW0oa2V5LCBwYWdlVXJsLCB1bnVzZWQpOwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
SXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViVVJMJiBwYWdlVXJsKSB7IH0KIAog
ICAgIC8vIENsZWFyIGFsbCBrZXkvdmFsdWUgcGFpcnMuIHxwYWdlVXJsfCBpcyB0aGUgdXJsIHRo
YXQgc2hvdWxkIGJlIHVzZWQgaWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVzLgotICAgIHZpcnR1YWwg
dm9pZCBjbGVhcihjb25zdCBXZWJVUkwmIHBhZ2VVcmwpCi0gICAgewotICAgICAgICBib29sIHVu
dXNlZDsKLSAgICAgICAgY2xlYXIocGFnZVVybCwgdW51c2VkKTsKLSAgICB9Ci0KLSAgICAvLyBE
RVBSRUNBVEVEIC0gYmVpbmcgcmVwbGFjZWQgYnkgdGhlIGFzeW5jIHZhcmlhbnRzIGFib3ZlIHdo
aWNoIGRvIG5vdCByZXR1cm4gb2xkVmFsdWVzIG9yIGJsb2NrIHVudGlsIGNvbXBsZXRpb24uCi0g
ICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0
cmluZyYgbmV3VmFsdWUsIGNvbnN0IFdlYlVSTCYsIFJlc3VsdCYsIFdlYlN0cmluZyYgb2xkVmFs
dWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5
LCBjb25zdCBXZWJVUkwmIHBhZ2VVcmwsIFdlYlN0cmluZyYgb2xkVmFsdWUpICB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgY2xlYXIoY29uc3QgV2ViVVJMJiBwYWdlVXJsLCBib29sJiBzb21ldGhpbmdD
bGVhcmVkKSAgeyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKGNvbnN0IFdlYlVSTCYgcGFnZVVy
bCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJraXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJraXQvY2hyb21pdW0v
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMjAzODQpCisrKyBTb3VyY2UvV2Via2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTE0ICBNaWNo
YWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0g
TW9yZSBET01TdG9yYWdlIFRMQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4NDEyCisKKyAgICAgICAgMSkgU3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNj
ZXNzU3RvcmFnZSBzaG91bGQgY2FjaGUgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAyKSBBZGQg
V2ViU3RvcmFnZUFyZWE6OmNvbnRhaW5zSXRlbSgpIHRvIHRoZSB3ZWJraXQgQVBJIHRvIG1vcmUg
ZWZmaWNpZW50bHkgdGVzdCBmb3IgdGhhdCBmcm9tIHRoZSBWOCBiaW5kaW5ncyBsYXllci4KKyAg
ICAgICAgMykgQ2xlYW51cCBvbGQgREVQUkVDQVRFRCBtZXRob2RzIGZyb20gdGhlIFdlYlN0b3Jh
Z2VBcmVhIGludGVyZmFjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9TdG9yYWdlQXJlYVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VBcmVhUHJveHk6OlN0b3JhZ2VBcmVhUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWFQcm94eTo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFy
ZWFQcm94eTo6Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJv
eHkuaDoKKyAgICAgICAgKFN0b3JhZ2VBcmVhUHJveHkpOgorCiAyMDEyLTA2LTE0ICBEYXZpZCBS
ZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBTdWIt
cGl4ZWwgdGV4dCByZW5kZXJpbmcgaXMgaW5jb3JyZWN0bHkgdXNlZCBmb3IgV2ViVmlldyB3aXRo
IHRyYW5zcGFyZW50IGJhY2tncm91bmQuCkluZGV4OiBTb3VyY2UvV2Via2l0L2Nocm9taXVtL3Ny
Yy9TdG9yYWdlQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Via2l0L2Nocm9t
aXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAkocmV2aXNpb24gMTIwMzcxKQorKysgU291cmNl
L1dlYmtpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDYgKzUzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU3RvcmFnZUFyZWFQcm94eTo6
U3RvcmFnZUFyZWFQcm94eShXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgU3Rv
cmFnZVR5cGUgc3RvcmFnZVR5cGUpCiAgICAgOiBtX3N0b3JhZ2VBcmVhKGFkb3B0UHRyKHN0b3Jh
Z2VBcmVhKSkKICAgICAsIG1fc3RvcmFnZVR5cGUoc3RvcmFnZVR5cGUpCisgICAgLCBtX2NhY2hl
ZENhbkFjY2Vzc1NldHRpbmcoZmFsc2UpCisgICAgLCBtX2NhY2hlZENhbkFjY2Vzc1NldHRpbmdG
b3JGcmFtZSgwKQogewogfQogCkBAIC0xMDgsMTYgKzExMCwyMyBAQCB2b2lkIFN0b3JhZ2VBcmVh
UHJveHk6OmNsZWFyKEZyYW1lKiBmcmFtCiAKIGJvb2wgU3RvcmFnZUFyZWFQcm94eTo6Y29udGFp
bnMoY29uc3QgU3RyaW5nJiBrZXksIEZyYW1lKiBmcmFtZSkgY29uc3QKIHsKLSAgICByZXR1cm4g
IWdldEl0ZW0oa2V5LCBmcmFtZSkuaXNOdWxsKCk7CisgICAgaWYgKCFjYW5BY2Nlc3NTdG9yYWdl
KGZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVh
LT5jb250YWluc0l0ZW0oa2V5KTsKIH0KIAogYm9vbCBTdG9yYWdlQXJlYVByb3h5OjpjYW5BY2Nl
c3NTdG9yYWdlKEZyYW1lKiBmcmFtZSkgY29uc3QKIHsKICAgICBpZiAoIWZyYW1lLT5wYWdlKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5n
Rm9yRnJhbWUgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZnJhbWUpKQorICAgICAgICByZXR1
cm4gbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nOworCiAgICAgV2ViS2l0OjpXZWJGcmFtZUltcGwq
IHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSk7CiAgICAg
V2ViS2l0OjpXZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOwotICAg
IHJldHVybiAhd2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpIHx8IHdlYlZpZXctPnBlcm1pc3Np
b25DbGllbnQoKS0+YWxsb3dTdG9yYWdlKHdlYkZyYW1lLCBtX3N0b3JhZ2VUeXBlID09IExvY2Fs
U3RvcmFnZSk7CisgICAgbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nID0gIXdlYlZpZXctPnBlcm1p
c3Npb25DbGllbnQoKSB8fCB3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93U3RvcmFn
ZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOworICAgIG1fY2FjaGVk
Q2FuQWNjZXNzU2V0dGluZ0ZvckZyYW1lID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZnJhbWUp
OworICAgIHJldHVybiBtX2NhY2hlZENhbkFjY2Vzc1NldHRpbmc7CiB9CiAKIHZvaWQgU3RvcmFn
ZUFyZWFQcm94eTo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudChQYWdlR3JvdXAqIHBhZ2VHcm91
cCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmlu
ZyYgbmV3VmFsdWUsCkluZGV4OiBTb3VyY2UvV2Via2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJl
YVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYmtpdC9jaHJvbWl1bS9zcmMvU3RvcmFn
ZUFyZWFQcm94eS5oCShyZXZpc2lvbiAxMjAzNzEpCisrKyBTb3VyY2UvV2Via2l0L2Nocm9taXVt
L3NyYy9TdG9yYWdlQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDggQEAg
cHJpdmF0ZToKIAogICAgIE93blB0cjxXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhPiBtX3N0b3JhZ2VB
cmVhOwogICAgIFN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CisgICAgbXV0YWJsZSBib29sIG1f
Y2FjaGVkQ2FuQWNjZXNzU2V0dGluZzsKKyAgICBtdXRhYmxlIHZvaWQqIG1fY2FjaGVkQ2FuQWNj
ZXNzU2V0dGluZ0ZvckZyYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147899</attachid>
            <date>2012-06-15 14:32:12 -0700</date>
            <delta_ts>2012-06-21 19:39:27 -0700</delta_ts>
            <desc>tlc</desc>
            <filename>tlc.txt</filename>
            <type>text/plain</type>
            <size>6662</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIwMzg0KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTE0ICBNaWNo
YWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0g
TW9yZSBET01TdG9yYWdlIFRMQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4NDEyCisKKyAgICAgICAgMSkgU3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNj
ZXNzU3RvcmFnZSBzaG91bGQgY2FjaGUgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAyKSBBZGQg
V2ViU3RvcmFnZUFyZWE6OmNvbnRhaW5zSXRlbSgpIHRvIHRoZSB3ZWJraXQgQVBJIHRvIG1vcmUg
ZWZmaWNpZW50bHkgdGVzdCBmb3IgdGhhdCBmcm9tIHRoZSBWOCBiaW5kaW5ncyBsYXllci4KKyAg
ICAgICAgMykgQ2xlYW51cCBvbGQgREVQUkVDQVRFRCBtZXRob2RzIGZyb20gdGhlIFdlYlN0b3Jh
Z2VBcmVhIGludGVyZmFjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6Y29udGFpbnNJdGVtKToKKyAgICAgICAgKFdlYlN0b3Jh
Z2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OnNldEl0ZW0pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlN0b3JhZ2VBcmVhOjpjbGVhcik6CisKIDIwMTItMDYtMTQgIElhbiBWb2xsaWNrICA8
dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDZXJ0YWluIHNldHRp
bmdzIGluIENDU2V0dGluZ3MgY291bGQgYmUgZ2xvYmFsCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCShyZXZpc2lvbiAxMjAzNzEp
CisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0b3JhZ2VBcmVhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDM1ICs1OSwyMCBAQCBwdWJsaWM6CiAgICAgLy8gbm8gZW50cnkg
Zm9yIHRoYXQga2V5LgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldEl0ZW0oY29uc3QgV2ViU3Ry
aW5nJiBrZXkpID0gMDsKIAorICAgIC8vIFJldHVybnMgfHRydWV8IGlmIHRoZSB0aGUgYXJlYSBj
b250YWlucyBhIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gfGtleXwuCisgICAgdmlydHVhbCBi
b29sIGNvbnRhaW5zSXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSkgeyByZXR1cm4gIWdldEl0ZW0o
a2V5KS5pc051bGwoKTsgfQorCiAgICAgLy8gU2V0IHRoZSB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRz
IHRvIGEgc3BlY2lmaWMga2V5LiBSZXN1bHQgd2lsbCBlaXRoZXIgYmUgUmVzdWx0T0sKICAgICAv
LyBvciBzb21lIHBhcnRpY3VsYXIgZXJyb3IuIFRoZSB2YWx1ZSBpcyBOT1Qgc2V0IHdoZW4gdGhl
cmUncyBhbiBlcnJvci4gfHBhZ2VVcmx8IGlzIHRoZQogICAgIC8vIHVybCB0aGF0IHNob3VsZCBi
ZSB1c2VkIGlmIGEgc3RvcmFnZSBldmVudCBmaXJlcy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SXRl
bShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3Qg
V2ViVVJMJiBwYWdlVXJsLCBSZXN1bHQmIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIFdlYlN0cmlu
ZyB1bnVzZWQ7Ci0gICAgICAgIHNldEl0ZW0oa2V5LCBuZXdWYWx1ZSwgcGFnZVVybCwgcmVzdWx0
LCB1bnVzZWQpOwotICAgIH0KLQorICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFdlYlN0
cmluZyYga2V5LCBjb25zdCBXZWJTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBXZWJVUkwmIHBhZ2VV
cmwsIFJlc3VsdCYgcmVzdWx0KSB7IH0KIAogICAgIC8vIFJlbW92ZSB0aGUgdmFsdWUgYXNzb2Np
YXRlZCB3aXRoIGEgcGFydGljdWxhciBrZXkuIHxwYWdlVXJsfCBpcyB0aGUgdXJsIHRoYXQgc2hv
dWxkIGJlIHVzZWQKICAgICAvLyBpZiBhIHN0b3JhZ2UgZXZlbnQgZmlyZXMuCi0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlVSTCYgcGFn
ZVVybCkKLSAgICB7Ci0gICAgICAgIFdlYlN0cmluZyB1bnVzZWQ7Ci0gICAgICAgIHJlbW92ZUl0
ZW0oa2V5LCBwYWdlVXJsLCB1bnVzZWQpOwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
SXRlbShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViVVJMJiBwYWdlVXJsKSB7IH0KIAog
ICAgIC8vIENsZWFyIGFsbCBrZXkvdmFsdWUgcGFpcnMuIHxwYWdlVXJsfCBpcyB0aGUgdXJsIHRo
YXQgc2hvdWxkIGJlIHVzZWQgaWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVzLgotICAgIHZpcnR1YWwg
dm9pZCBjbGVhcihjb25zdCBXZWJVUkwmIHBhZ2VVcmwpCi0gICAgewotICAgICAgICBib29sIHVu
dXNlZDsKLSAgICAgICAgY2xlYXIocGFnZVVybCwgdW51c2VkKTsKLSAgICB9Ci0KLSAgICAvLyBE
RVBSRUNBVEVEIC0gYmVpbmcgcmVwbGFjZWQgYnkgdGhlIGFzeW5jIHZhcmlhbnRzIGFib3ZlIHdo
aWNoIGRvIG5vdCByZXR1cm4gb2xkVmFsdWVzIG9yIGJsb2NrIHVudGlsIGNvbXBsZXRpb24uCi0g
ICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0
cmluZyYgbmV3VmFsdWUsIGNvbnN0IFdlYlVSTCYsIFJlc3VsdCYsIFdlYlN0cmluZyYgb2xkVmFs
dWUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5
LCBjb25zdCBXZWJVUkwmIHBhZ2VVcmwsIFdlYlN0cmluZyYgb2xkVmFsdWUpICB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgY2xlYXIoY29uc3QgV2ViVVJMJiBwYWdlVXJsLCBib29sJiBzb21ldGhpbmdD
bGVhcmVkKSAgeyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKGNvbnN0IFdlYlVSTCYgcGFnZVVy
bCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJraXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJraXQvY2hyb21pdW0v
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMjAzODQpCisrKyBTb3VyY2UvV2Via2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTE0ICBNaWNo
YWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0g
TW9yZSBET01TdG9yYWdlIFRMQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4NDEyCisKKyAgICAgICAgMSkgU3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNj
ZXNzU3RvcmFnZSBzaG91bGQgY2FjaGUgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAyKSBBZGQg
V2ViU3RvcmFnZUFyZWE6OmNvbnRhaW5zSXRlbSgpIHRvIHRoZSB3ZWJraXQgQVBJIHRvIG1vcmUg
ZWZmaWNpZW50bHkgdGVzdCBmb3IgdGhhdCBmcm9tIHRoZSBWOCBiaW5kaW5ncyBsYXllci4KKyAg
ICAgICAgMykgQ2xlYW51cCBvbGQgREVQUkVDQVRFRCBtZXRob2RzIGZyb20gdGhlIFdlYlN0b3Jh
Z2VBcmVhIGludGVyZmFjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9TdG9yYWdlQXJlYVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VBcmVhUHJveHk6OlN0b3JhZ2VBcmVhUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZUFyZWFQcm94eTo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFy
ZWFQcm94eTo6Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJv
eHkuaDoKKyAgICAgICAgKFN0b3JhZ2VBcmVhUHJveHkpOgorCiAyMDEyLTA2LTE0ICBEYXZpZCBS
ZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBTdWIt
cGl4ZWwgdGV4dCByZW5kZXJpbmcgaXMgaW5jb3JyZWN0bHkgdXNlZCBmb3IgV2ViVmlldyB3aXRo
IHRyYW5zcGFyZW50IGJhY2tncm91bmQuCkluZGV4OiBTb3VyY2UvV2Via2l0L2Nocm9taXVtL3Ny
Yy9TdG9yYWdlQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Via2l0L2Nocm9t
aXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAkocmV2aXNpb24gMTIwMzcxKQorKysgU291cmNl
L1dlYmtpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDYgKzUzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU3RvcmFnZUFyZWFQcm94eTo6
U3RvcmFnZUFyZWFQcm94eShXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgU3Rv
cmFnZVR5cGUgc3RvcmFnZVR5cGUpCiAgICAgOiBtX3N0b3JhZ2VBcmVhKGFkb3B0UHRyKHN0b3Jh
Z2VBcmVhKSkKICAgICAsIG1fc3RvcmFnZVR5cGUoc3RvcmFnZVR5cGUpCisgICAgLCBtX2NhY2hl
ZENhbkFjY2Vzc1NldHRpbmcoZmFsc2UpCisgICAgLCBtX2NhY2hlZENhbkFjY2Vzc1NldHRpbmdG
b3JGcmFtZSgwKQogewogfQogCkBAIC0xMDgsMTYgKzExMCwyMyBAQCB2b2lkIFN0b3JhZ2VBcmVh
UHJveHk6OmNsZWFyKEZyYW1lKiBmcmFtCiAKIGJvb2wgU3RvcmFnZUFyZWFQcm94eTo6Y29udGFp
bnMoY29uc3QgU3RyaW5nJiBrZXksIEZyYW1lKiBmcmFtZSkgY29uc3QKIHsKLSAgICByZXR1cm4g
IWdldEl0ZW0oa2V5LCBmcmFtZSkuaXNOdWxsKCk7CisgICAgaWYgKCFjYW5BY2Nlc3NTdG9yYWdl
KGZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3N0b3JhZ2VBcmVh
LT5jb250YWluc0l0ZW0oa2V5KTsKIH0KIAogYm9vbCBTdG9yYWdlQXJlYVByb3h5OjpjYW5BY2Nl
c3NTdG9yYWdlKEZyYW1lKiBmcmFtZSkgY29uc3QKIHsKICAgICBpZiAoIWZyYW1lLT5wYWdlKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5n
Rm9yRnJhbWUgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZnJhbWUpKQorICAgICAgICByZXR1
cm4gbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nOworCiAgICAgV2ViS2l0OjpXZWJGcmFtZUltcGwq
IHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSk7CiAgICAg
V2ViS2l0OjpXZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOwotICAg
IHJldHVybiAhd2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpIHx8IHdlYlZpZXctPnBlcm1pc3Np
b25DbGllbnQoKS0+YWxsb3dTdG9yYWdlKHdlYkZyYW1lLCBtX3N0b3JhZ2VUeXBlID09IExvY2Fs
U3RvcmFnZSk7CisgICAgbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nID0gIXdlYlZpZXctPnBlcm1p
c3Npb25DbGllbnQoKSB8fCB3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93U3RvcmFn
ZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOworICAgIG1fY2FjaGVk
Q2FuQWNjZXNzU2V0dGluZ0ZvckZyYW1lID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZnJhbWUp
OworICAgIHJldHVybiBtX2NhY2hlZENhbkFjY2Vzc1NldHRpbmc7CiB9CiAKIHZvaWQgU3RvcmFn
ZUFyZWFQcm94eTo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudChQYWdlR3JvdXAqIHBhZ2VHcm91
cCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmlu
ZyYgbmV3VmFsdWUsCkluZGV4OiBTb3VyY2UvV2Via2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJl
YVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYmtpdC9jaHJvbWl1bS9zcmMvU3RvcmFn
ZUFyZWFQcm94eS5oCShyZXZpc2lvbiAxMjAzNzEpCisrKyBTb3VyY2UvV2Via2l0L2Nocm9taXVt
L3NyYy9TdG9yYWdlQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDggQEAg
cHJpdmF0ZToKIAogICAgIE93blB0cjxXZWJLaXQ6OldlYlN0b3JhZ2VBcmVhPiBtX3N0b3JhZ2VB
cmVhOwogICAgIFN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CisgICAgbXV0YWJsZSBib29sIG1f
Y2FjaGVkQ2FuQWNjZXNzU2V0dGluZzsKKyAgICBtdXRhYmxlIHZvaWQqIG1fY2FjaGVkQ2FuQWNj
ZXNzU2V0dGluZ0ZvckZyYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148945</attachid>
            <date>2012-06-21 19:39:27 -0700</date>
            <delta_ts>2013-04-08 10:55:01 -0700</delta_ts>
            <desc>tlc</desc>
            <filename>tlc2.txt</filename>
            <type>text/plain</type>
            <size>6683</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIwOTg0KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA2LTE0ICBNaWNo
YWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0g
TW9yZSBET01TdG9yYWdlIFRMQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4NDEyCisKKyAgICAgICAgMSkgU3RvcmFnZUFyZWFQcm94eTo6Y2FuQWNj
ZXNzU3RvcmFnZSBzaG91bGQgY2FjaGUgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAyKSBBZGQg
V2ViU3RvcmFnZUFyZWE6OmNvbnRhaW5zSXRlbSgpIHRvIHRoZSB3ZWJraXQgQVBJIHRvIG1vcmUg
ZWZmaWNpZW50bHkgdGVzdCBmb3IgdGhhdCBmcm9tIHRoZSBWOCBiaW5kaW5ncyBsYXllci4KKyAg
ICAgICAgMykgQ2xlYW51cCBvbGQgREVQUkVDQVRFRCBtZXRob2RzIGZyb20gdGhlIFdlYlN0b3Jh
Z2VBcmVhIGludGVyZmFjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6Y29udGFpbnNJdGVtKToKKyAgICAgICAgKFdlYlN0b3Jh
Z2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUFyZWE6OnNldEl0ZW0pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlN0b3JhZ2VBcmVhOjpjbGVhcik6CisKIDIwMTItMDYtMjAgIENocmlzdG9waGVyIENh
bWVyb24gIDxjY2FtZXJvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSB3ZWJr
aXQtYmFja2ZhY2UtdmlzaWJpbGl0eSBkb2Vzbid0IHdvcmsgd2l0aCB2aWRlbwpJbmRleDogU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9yYWdlQXJlYS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RvcmFnZUFyZWEuaAkocmV2
aXNpb24gMTIwOTg0KQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdG9y
YWdlQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSwzNSArNTksMjAgQEAgcHVibGljOgogICAg
IC8vIG5vIGVudHJ5IGZvciB0aGF0IGtleS4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRJdGVt
KGNvbnN0IFdlYlN0cmluZyYga2V5KSA9IDA7CiAKKyAgICAvLyBSZXR1cm5zIHx0cnVlfCBpZiB0
aGUgdGhlIGFyZWEgY29udGFpbnMgYSB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHxrZXl8Lgor
ICAgIHZpcnR1YWwgYm9vbCBjb250YWluc0l0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXkpIHsgcmV0
dXJuICFnZXRJdGVtKGtleSkuaXNOdWxsKCk7IH0KKwogICAgIC8vIFNldCB0aGUgdmFsdWUgdGhh
dCBjb3JyZXNwb25kcyB0byBhIHNwZWNpZmljIGtleS4gUmVzdWx0IHdpbGwgZWl0aGVyIGJlIFJl
c3VsdE9LCiAgICAgLy8gb3Igc29tZSBwYXJ0aWN1bGFyIGVycm9yLiBUaGUgdmFsdWUgaXMgTk9U
IHNldCB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IuIHxwYWdlVXJsfCBpcyB0aGUKICAgICAvLyB1cmwg
dGhhdCBzaG91bGQgYmUgdXNlZCBpZiBhIHN0b3JhZ2UgZXZlbnQgZmlyZXMuCi0gICAgdmlydHVh
bCB2b2lkIHNldEl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0cmluZyYgbmV3
VmFsdWUsIGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgUmVzdWx0JiByZXN1bHQpCi0gICAgewotICAg
ICAgICBXZWJTdHJpbmcgdW51c2VkOwotICAgICAgICBzZXRJdGVtKGtleSwgbmV3VmFsdWUsIHBh
Z2VVcmwsIHJlc3VsdCwgdW51c2VkKTsKLSAgICB9Ci0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRl
bShjb25zdCBXZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3Qg
V2ViVVJMJiBwYWdlVXJsLCBSZXN1bHQmIHJlc3VsdCkgeyB9CiAKICAgICAvLyBSZW1vdmUgdGhl
IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIga2V5LiB8cGFnZVVybHwgaXMgdGhl
IHVybCB0aGF0IHNob3VsZCBiZSB1c2VkCiAgICAgLy8gaWYgYSBzdG9yYWdlIGV2ZW50IGZpcmVz
LgotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5LCBjb25z
dCBXZWJVUkwmIHBhZ2VVcmwpCi0gICAgewotICAgICAgICBXZWJTdHJpbmcgdW51c2VkOwotICAg
ICAgICByZW1vdmVJdGVtKGtleSwgcGFnZVVybCwgdW51c2VkKTsKLSAgICB9CisgICAgdmlydHVh
bCB2b2lkIHJlbW92ZUl0ZW0oY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlVSTCYgcGFn
ZVVybCkgeyB9CiAKICAgICAvLyBDbGVhciBhbGwga2V5L3ZhbHVlIHBhaXJzLiB8cGFnZVVybHwg
aXMgdGhlIHVybCB0aGF0IHNob3VsZCBiZSB1c2VkIGlmIGEgc3RvcmFnZSBldmVudCBmaXJlcy4K
LSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoY29uc3QgV2ViVVJMJiBwYWdlVXJsKQotICAgIHsKLSAg
ICAgICAgYm9vbCB1bnVzZWQ7Ci0gICAgICAgIGNsZWFyKHBhZ2VVcmwsIHVudXNlZCk7Ci0gICAg
fQotCi0gICAgLy8gREVQUkVDQVRFRCAtIGJlaW5nIHJlcGxhY2VkIGJ5IHRoZSBhc3luYyB2YXJp
YW50cyBhYm92ZSB3aGljaCBkbyBub3QgcmV0dXJuIG9sZFZhbHVlcyBvciBibG9jayB1bnRpbCBj
b21wbGV0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFdlYlN0cmluZyYga2V5
LCBjb25zdCBXZWJTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBXZWJVUkwmLCBSZXN1bHQmLCBXZWJT
dHJpbmcmIG9sZFZhbHVlKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSXRlbShjb25zdCBX
ZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViVVJMJiBwYWdlVXJsLCBXZWJTdHJpbmcmIG9sZFZhbHVl
KSAgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKGNvbnN0IFdlYlVSTCYgcGFnZVVybCwgYm9v
bCYgc29tZXRoaW5nQ2xlYXJlZCkgIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhcihjb25zdCBX
ZWJVUkwmIHBhZ2VVcmwpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIwOTg0KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAx
Mi0wNi0xNCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KKworICAgICAg
ICBbQ2hyb21pdW1dIE1vcmUgRE9NU3RvcmFnZSBUTEMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODQxMgorCisgICAgICAgIDEpIFN0b3JhZ2VBcmVh
UHJveHk6OmNhbkFjY2Vzc1N0b3JhZ2Ugc2hvdWxkIGNhY2hlIHRoZSBwZXJtaXNzaW9ucy4KKyAg
ICAgICAgMikgQWRkIFdlYlN0b3JhZ2VBcmVhOjpjb250YWluc0l0ZW0oKSB0byB0aGUgd2Via2l0
IEFQSSB0byBtb3JlIGVmZmljaWVudGx5IHRlc3QgZm9yIHRoYXQgZnJvbSB0aGUgVjggYmluZGlu
Z3MgbGF5ZXIuCisgICAgICAgIDMpIENsZWFudXAgb2xkIERFUFJFQ0FURUQgbWV0aG9kcyBmcm9t
IHRoZSBXZWJTdG9yYWdlQXJlYSBpbnRlcmZhY2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvU3RvcmFnZUFyZWFQcm94eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVByb3h5OjpTdG9yYWdlQXJlYVByb3h5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhUHJveHk6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0b3JhZ2VBcmVhUHJveHk6OmNhbkFjY2Vzc1N0b3JhZ2UpOgorICAgICAgICAqIHNyYy9T
dG9yYWdlQXJlYVByb3h5Lmg6CisgICAgICAgIChTdG9yYWdlQXJlYVByb3h5KToKKwogMjAxMi0w
Ni0xOSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gTGF5ZXJSZW5kZXJlckNocm9taXVtIGlzIG5vdCBnZXR0aW5nIHZpc2liaWxpdHkg
bWVzc2FnZXMgaW4gc2luZ2xlIHRocmVhZGVkIGNvbXBvc2l0aW5nIG1vZGUuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAkocmV2aXNp
b24gMTIwOTg0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogU3RvcmFnZUFyZWFQcm94eTo6U3RvcmFnZUFyZWFQcm94eShXZWJLaXQ6OldlYlN0b3JhZ2VB
cmVhKiBzdG9yYWdlQXJlYSwgU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUpCiAgICAgOiBtX3N0b3Jh
Z2VBcmVhKGFkb3B0UHRyKHN0b3JhZ2VBcmVhKSkKICAgICAsIG1fc3RvcmFnZVR5cGUoc3RvcmFn
ZVR5cGUpCisgICAgLCBtX2NhY2hlZENhbkFjY2Vzc1NldHRpbmcoZmFsc2UpCisgICAgLCBtX2Nh
Y2hlZENhbkFjY2Vzc1NldHRpbmdGb3JGcmFtZSgwKQogewogfQogCkBAIC0xMDgsMTYgKzExMCwy
MyBAQCB2b2lkIFN0b3JhZ2VBcmVhUHJveHk6OmNsZWFyKEZyYW1lKiBmcmFtCiAKIGJvb2wgU3Rv
cmFnZUFyZWFQcm94eTo6Y29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXksIEZyYW1lKiBmcmFtZSkg
Y29uc3QKIHsKLSAgICByZXR1cm4gIWdldEl0ZW0oa2V5LCBmcmFtZSkuaXNOdWxsKCk7CisgICAg
aWYgKCFjYW5BY2Nlc3NTdG9yYWdlKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBtX3N0b3JhZ2VBcmVhLT5jb250YWluc0l0ZW0oa2V5KTsKIH0KIAogYm9vbCBTdG9y
YWdlQXJlYVByb3h5OjpjYW5BY2Nlc3NTdG9yYWdlKEZyYW1lKiBmcmFtZSkgY29uc3QKIHsKICAg
ICBpZiAoIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9j
YWNoZWRDYW5BY2Nlc3NTZXR0aW5nRm9yRnJhbWUgPT0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
ZnJhbWUpKQorICAgICAgICByZXR1cm4gbV9jYWNoZWRDYW5BY2Nlc3NTZXR0aW5nOworCiAgICAg
V2ViS2l0OjpXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViS2l0OjpXZWJGcmFtZUltcGw6OmZy
b21GcmFtZShmcmFtZSk7CiAgICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZy
YW1lLT52aWV3SW1wbCgpOwotICAgIHJldHVybiAhd2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgp
IHx8IHdlYlZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dTdG9yYWdlKHdlYkZyYW1lLCBt
X3N0b3JhZ2VUeXBlID09IExvY2FsU3RvcmFnZSk7CisgICAgbV9jYWNoZWRDYW5BY2Nlc3NTZXR0
aW5nID0gIXdlYlZpZXctPnBlcm1pc3Npb25DbGllbnQoKSB8fCB3ZWJWaWV3LT5wZXJtaXNzaW9u
Q2xpZW50KCktPmFsbG93U3RvcmFnZSh3ZWJGcmFtZSwgbV9zdG9yYWdlVHlwZSA9PSBMb2NhbFN0
b3JhZ2UpOworICAgIG1fY2FjaGVkQ2FuQWNjZXNzU2V0dGluZ0ZvckZyYW1lID0gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oZnJhbWUpOworICAgIHJldHVybiBtX2NhY2hlZENhbkFjY2Vzc1NldHRp
bmc7CiB9CiAKIHZvaWQgU3RvcmFnZUFyZWFQcm94eTo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVu
dChQYWdlR3JvdXAqIHBhZ2VHcm91cCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5oCShyZXZpc2lvbiAxMjA5ODQpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTczLDYgKzczLDggQEAgcHJpdmF0ZToKIAogICAgIE93blB0cjxXZWJLaXQ6OldlYlN0
b3JhZ2VBcmVhPiBtX3N0b3JhZ2VBcmVhOwogICAgIFN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7
CisgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkQ2FuQWNjZXNzU2V0dGluZzsKKyAgICBtdXRhYmxl
IHZvaWQqIG1fY2FjaGVkQ2FuQWNjZXNzU2V0dGluZ0ZvckZyYW1lOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>