<?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>78481</bug_id>
          
          <creation_ts>2012-02-13 03:06:46 -0800</creation_ts>
          <short_desc>[GTK] DRT doesn&apos;t support scheduleAsynchronousKeyDown.</short_desc>
          <delta_ts>2012-02-23 07:57:46 -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>WebKitGTK</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 name="ChangSeok Oh">kevin.cs.oh</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555148</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">kevin.cs.oh</who>
    <bug_when>2012-02-13 03:06:46 -0800</bug_when>
    <thetext>It looks GTK port DRT doesn&apos;t support scheduleAsynchronousKeyDown yet, so it causes some layout test failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560906</commentid>
    <comment_count>1</comment_count>
      <attachid>127978</attachid>
    <who name="ChangSeok Oh">kevin.cs.oh</who>
    <bug_when>2012-02-21 08:37:11 -0800</bug_when>
    <thetext>Created attachment 127978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560975</commentid>
    <comment_count>2</comment_count>
      <attachid>127978</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-21 09:57:52 -0800</bug_when>
    <thetext>Comment on attachment 127978
Patch

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

r-, although it&apos;s just for a few nitpicks and a possible useless include, I think you&apos;ll prefer to upload a new patch anyway? =)

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:53
&gt; +#include &quot;PlatformKeyboardEvent.h&quot;

Why do we need this extra include?

&gt; Tools/DumpRenderTree/gtk/EventSender.cpp:761
&gt; +        sendKeyDown(static_cast&lt;gpointer&gt;(pressEvent));

I think I would prefer to have a proper function with the appropriate type for the argument that is called from here and from the idle callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560996</commentid>
    <comment_count>3</comment_count>
      <attachid>127978</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-21 10:23:39 -0800</bug_when>
    <thetext>Comment on attachment 127978
Patch

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

&gt; Tools/DumpRenderTree/gtk/EventSender.cpp:834
&gt; +        g_idle_add(sendKeyDown, static_cast&lt;gpointer&gt;(pressEvent));

Perhaps g_timeout_add after a 0 delay would be better here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561013</commentid>
    <comment_count>4</comment_count>
      <attachid>127978</attachid>
    <who name="ChangSeok Oh">kevin.cs.oh</who>
    <bug_when>2012-02-21 10:41:36 -0800</bug_when>
    <thetext>Comment on attachment 127978
Patch

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

Thanks for the review :)

&gt;&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:53
&gt;&gt; +#include &quot;PlatformKeyboardEvent.h&quot;
&gt; 
&gt; Why do we need this extra include?

Oops. Sorry :p

&gt;&gt; Tools/DumpRenderTree/gtk/EventSender.cpp:761
&gt;&gt; +        sendKeyDown(static_cast&lt;gpointer&gt;(pressEvent));
&gt; 
&gt; I think I would prefer to have a proper function with the appropriate type for the argument that is called from here and from the idle callback.

Do you mean it looks better to wrap sendKeyDown and g_idle_add(sendKeyDown... in a function with arguments?
For example, bool sendKeyDown(bool asynchronous)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561018</commentid>
    <comment_count>5</comment_count>
      <attachid>127978</attachid>
    <who name="ChangSeok Oh">kevin.cs.oh</who>
    <bug_when>2012-02-21 10:47:06 -0800</bug_when>
    <thetext>Comment on attachment 127978
Patch

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

&gt;&gt; Tools/DumpRenderTree/gtk/EventSender.cpp:834
&gt;&gt; +        g_idle_add(sendKeyDown, static_cast&lt;gpointer&gt;(pressEvent));
&gt; 
&gt; Perhaps g_timeout_add after a 0 delay would be better here?

I followed the way of scheduleAsynchronousClickCallback. It has used g_idle_add. Do we need to modify this, too? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561624</commentid>
    <comment_count>6</comment_count>
      <attachid>128132</attachid>
    <who name="ChangSeok Oh">kevin.cs.oh</who>
    <bug_when>2012-02-21 22:31:35 -0800</bug_when>
    <thetext>Created attachment 128132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562000</commentid>
    <comment_count>7</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-22 08:30:18 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt;&gt; Tools/DumpRenderTree/gtk/EventSender.cpp:761
&gt; &gt;&gt; +        sendKeyDown(static_cast&lt;gpointer&gt;(pressEvent));
&gt; &gt; 
&gt; &gt; I think I would prefer to have a proper function with the appropriate type for the argument that is called from here and from the idle callback.
&gt; 
&gt; Do you mean it looks better to wrap sendKeyDown and g_idle_add(sendKeyDown... in a function with arguments?
&gt; For example, bool sendKeyDown(bool asynchronous)?

No, I mean sendKeyDown should take GdkEvent* pressEvent as the only argument. You would call it directly here, and you would have a handler for the idle that would also call it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562047</commentid>
    <comment_count>8</comment_count>
      <attachid>128229</attachid>
    <who name="ChangSeok Oh">kevin.cs.oh</who>
    <bug_when>2012-02-22 09:33:23 -0800</bug_when>
    <thetext>Created attachment 128229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563055</commentid>
    <comment_count>9</comment_count>
      <attachid>128229</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-23 05:53:49 -0800</bug_when>
    <thetext>Comment on attachment 128229
Patch

Yep! Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563117</commentid>
    <comment_count>10</comment_count>
      <attachid>128229</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 07:57:35 -0800</bug_when>
    <thetext>Comment on attachment 128229
Patch

Clearing flags on attachment: 128229

Committed r108628: &lt;http://trac.webkit.org/changeset/108628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563118</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 07:57:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127978</attachid>
            <date>2012-02-21 08:37:11 -0800</date>
            <delta_ts>2012-02-21 22:31:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78481-20120222013708.patch</filename>
            <type>text/plain</type>
            <size>10979</size>
            <attacher name="ChangSeok Oh">kevin.cs.oh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNDhkN2E3MjAz
NzY5ODcyNzRhNDc5NjdjMmMwZDhlMGZjNGZkYzdkMC4uMjM2OGJiM2U0YWM5MmU2NWM3M2Y5NDcz
ZjEzZjlhZTMxMTMyNzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEy
LTAyLTIxICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KKworICAgICAgICBb
R1RLXSBEUlQgZG9lc24ndCBzdXBwb3J0IHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcg
QVBJIHRvIGRlbGl2ZXIgYWxsIG11dGF0aW9ucyBleHBsaWNpdGx5LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDItMjEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBvbmUgbW9yZSBHVEsr
IHVuaXQgdGVzdCBhZnRlciByMTA4Mjc4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXgg
OWJiNWM5ZDc0YjRmMDQ3ZDUwMTViNzI5MjYwMjFjODBjNDNiNjczOC4uZTBjZjhlYjQ5ZDg3YTNk
YzAyM2UwNzBhZGIxMjYzZTFlMzFlNWZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBA
IC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJQcmludENvbnRl
eHQuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgpAQCAtNjEsNiArNjIsNyBAQAogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdEFjY2Vzc2libGVXcmFwcGVy
QXRrLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NUmFuZ2VQcml2YXRlLmgiCisjaW5jbHVkZSAiV2Vi
S2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1
ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIK
QEAgLTkxNSwzICs5MTcsMTAgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmVsZW1l
bnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChXZWJLaXRXZWIKIAogICAgIHJldHVy
biBpbnB1dEVsZW1lbnQtPmlzVGV4dEZpZWxkKCkgJiYgIWlucHV0RWxlbWVudC0+aXNQYXNzd29y
ZEZpZWxkKCkgJiYgaW5wdXRFbGVtZW50LT5zaG91bGRBdXRvY29tcGxldGUoKTsKIH0KKwordm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2Fy
eSgpCit7CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAgICBXZWJLaXRNdXRhdGlv
bk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKaW5kZXggNDVkMjgzOTc2M2MyZDU2ZDU2M2JlMDY1N2JlMTM0ZTY4YTc0OTYxMS4u
MDJiODBjNDc2MGFhMWMyNzg1MzdkMjVjYTg2NDg2NjE1ZDJiY2ZjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKQEAgLTEyOSw2ICsxMjksOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBz
ZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sIGVu
YWJsZWQpOwogCisgICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5
KCk7CisKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc19kcnRSdW47CiAgICAgc3RhdGljIGJv
b2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMTQ4YzIzNGFkYmRjOTFiMGQ4MjgyMjQ4MDljNTRm
ZjIzZTM5NDIzLi5mYTRlYzgwNWFmMmZmNzBiMWM0MDBlNWM3ZDUyZWQ5OGVlMmI1ZDJiIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMTItMDItMjEgIENoYW5nU2VvayBPaCAgPHNoaXZhbWlkb3dAZ21haWwuY29tPgor
CisgICAgICAgIFtHVEtdIERSVCBkb2Vzbid0IHN1cHBvcnQgc2NoZWR1bGVBc3luY2hyb25vdXNL
ZXlEb3duLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzg0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eHRyYWN0ZWQgc2hhcmVhYmxlIGNvZGUgZnJvbSBrZXlEb3duQ2FsbGJhY2sgYW5kIHRoZW4gYWRk
ZWQgY3JlYXRlS2V5UHJlc3NFdmVudAorICAgICAgICB0byBjcmVhdGUgZ2RrIHByZXNzIGtleSBl
dmVudC4KKyAgICAgICAgQWRkZWQgc2VuZEtleURvd24gdG8gZXZhbHVhdGUga2V5RG93biBldmVu
dC4KKyAgICAgICAgVGhlc2UgdHdvIGZ1bmN0aW9uIGFyZSBzaGFyZWFibGUgYmV0d2VlbiBrZXlE
b3duQ2FsbGJhY2sgYW5kIHNjaGVkdWxlQXN5bmNjaHJvbm91c0tleURvd25DYWxsYmFjay4KKyAg
ICAgICAgVGhlIG9ubHkgZGlmZmVyZW50IHRoaW5nIGlzIHRoYXQgc2NoZWR1bGVBc3luY2hyb25v
dXNLZXlEb3duQ2FsbGJhY2sgY2FsbHMgc2VuZEtleURvd24KKyAgICAgICAgYXN5bmNocm9ub3Vz
bHkgYnkgdXNpbmcgZ19pZGxlX2FkZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9F
dmVudFNlbmRlci5jcHA6CisgICAgICAgIChjcmVhdGVLZXlQcmVzc0V2ZW50KToKKyAgICAgICAg
KHNlbmRLZXlEb3duKToKKyAgICAgICAgKGtleURvd25DYWxsYmFjayk6CisgICAgICAgIChzY2hl
ZHVsZUFzeW5jaHJvbm91c0tleURvd25DYWxsYmFjayk6CisKIDIwMTItMDItMjEgIEFuZHJhcyBC
ZWNzaSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEdldCBy
aWQgb2YgdGhlIGRlcGVuZGVuY3kgdG8gUXRXaWRnZXRzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0V2ZW50U2VuZGVyLmNwcAppbmRleCAyNTAxODkwOTA5N2I2ZjRiY2NhZTkzYWU4NDEyNWQ3NWZl
YTIxZGVjLi43ZjY3ZWM3ODE0NDE2ODk0YjI0MzBiNDMxZDliNmY3NmVhZWMwZmVmIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKQEAgLTMsNiArMyw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgWmFuIERvYmVyc2VrIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHly
aWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEyIENoYW5nU2Vv
ayBPaCA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM0LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgiCisjaW5jbHVk
ZSAiV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPEdPd25QdHJHdGsuaD4KICNp
bmNsdWRlIDxHUmVmUHRyR3RrLmg+CiAjaW5jbHVkZSA8R3RrVmVyc2lvbmluZy5oPgpAQCAtNjEx
LDEwICs2MTMsOSBAQCB2b2lkIHJlcGxheVNhdmVkRXZlbnRzKCkKICAgICBlbmRPZlF1ZXVlID0g
MDsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBHZGtFdmVudCogY3JlYXRlS2V5UHJlc3NFdmVudChKU0Nv
bnRleHRSZWYgY29udGV4dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRD
b3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChhcmd1bWVudENvdW50ID49IDEsIDApOwogICAgIGd1
aW50IG1vZGlmaWVycyA9IGFyZ3VtZW50Q291bnQgPj0gMiA/IGdka01vZGlmZXJzRnJvbUpTVmFs
dWUoY29udGV4dCwgYXJndW1lbnRzWzFdKSA6IDA7CiAKICAgICAvLyBoYW5kbGUgbG9jYXRpb24g
YXJndW1lbnQuCkBAIC02MjMsNyArNjI0LDggQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAg
ICAgICAgbG9jYXRpb24gPSAoaW50KUpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNb
Ml0sIGV4Y2VwdGlvbik7CiAKICAgICBKU1N0cmluZ1JlZiBjaGFyYWN0ZXIgPSBKU1ZhbHVlVG9T
dHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCgoIWV4Y2VwdGlvbiB8fCAhKmV4Y2VwdGlvbiksIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCgoIWV4Y2VwdGlvbiB8
fCAhKmV4Y2VwdGlvbiksIDApOworCiAgICAgaW50IGdka0tleVN5bSA9IEdES19Wb2lkU3ltYm9s
OwogICAgIGlmIChsb2NhdGlvbiA9PSBET01fS0VZX0xPQ0FUSU9OX05VTVBBRCkgewogICAgICAg
ICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0QXJyb3ci
KSkKQEAgLTcxNywxMCArNzE5LDggQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICBKU1N0
cmluZ1JlbGVhc2UoY2hhcmFjdGVyKTsKIAogICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwotICAgIGlmICghdmlldykKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKHZpZXcsIDApOwogCi0gICAgLy8gY3JlYXRlIGFuZCBzZW5kIHRoZSBldmVu
dAogICAgIEdka0V2ZW50KiBwcmVzc0V2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfS0VZX1BSRVNT
KTsKICAgICBwcmVzc0V2ZW50LT5rZXkua2V5dmFsID0gZ2RrS2V5U3ltOwogICAgIHByZXNzRXZl
bnQtPmtleS5zdGF0ZSA9IG1vZGlmaWVyczsKQEAgLTczMiwxOCArNzMyLDM0IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIGtleURvd25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTCiAKICAgICAvLyBXaGVuIHN5bnRoZXNpemluZyBhbiBldmVudCwgYW4g
aW52YWxpZCBoYXJkd2FyZV9rZXljb2RlIHZhbHVlCiAgICAgLy8gY2FuIGNhdXNlIGl0IHRvIGJl
IGJhZGx5IHByb2Nlc3NlZCBieSBHdGsrLgotICAgIEdka0tleW1hcEtleSoga2V5czsKLSAgICBn
aW50IG5fa2V5czsKLSAgICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19mb3Jfa2V5dmFsKGdk
a19rZXltYXBfZ2V0X2RlZmF1bHQoKSwgZ2RrS2V5U3ltLCAma2V5cywgJm5fa2V5cykpIHsKLSAg
ICAgICAgcHJlc3NFdmVudC0+a2V5LmhhcmR3YXJlX2tleWNvZGUgPSBrZXlzWzBdLmtleWNvZGU7
Ci0gICAgICAgIGdfZnJlZShrZXlzKTsKLSAgICB9CisgICAgR093blB0cjxHZGtLZXltYXBLZXk+
IGtleXM7CisgICAgZ2ludCBuS2V5czsKKyAgICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19m
b3Jfa2V5dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwgZ2RrS2V5U3ltLCAma2V5cy5vdXRQ
dHIoKSwgJm5LZXlzKSkKKyAgICAgICAgcHJlc3NFdmVudC0+a2V5LmhhcmR3YXJlX2tleWNvZGUg
PSBrZXlzLmdldCgpWzBdLmtleWNvZGU7CisKKyAgICByZXR1cm4gcHJlc3NFdmVudDsKK30KIAor
c3RhdGljIGdib29sZWFuIHNlbmRLZXlEb3duKGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIEdk
a0V2ZW50KiBwcmVzc0V2ZW50ID0gc3RhdGljX2Nhc3Q8R2RrRXZlbnQqPih1c2VyRGF0YSk7CiAg
ICAgR2RrRXZlbnQqIHJlbGVhc2VFdmVudCA9IGdka19ldmVudF9jb3B5KHByZXNzRXZlbnQpOwor
ICAgIHJlbGVhc2VFdmVudC0+dHlwZSA9IEdES19LRVlfUkVMRUFTRTsKKwogICAgIGRpc3BhdGNo
RXZlbnQocHJlc3NFdmVudCk7Ci0gICAgcmVsZWFzZUV2ZW50LT5rZXkudHlwZSA9IEdES19LRVlf
UkVMRUFTRTsKICAgICBkaXNwYXRjaEV2ZW50KHJlbGVhc2VFdmVudCk7CiAKKyAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSgpOworCisg
ICAgcmV0dXJuIEZBTFNFOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEdka0V2ZW50KiBwcmVzc0V2ZW50
ID0gY3JlYXRlS2V5UHJlc3NFdmVudChjb250ZXh0LCBhcmd1bWVudENvdW50LCBhcmd1bWVudHMs
IGV4Y2VwdGlvbik7CisgICAgaWYgKHByZXNzRXZlbnQpCisgICAgICAgIHNlbmRLZXlEb3duKHN0
YXRpY19jYXN0PGdwb2ludGVyPihwcmVzc0V2ZW50KSk7CisKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTgxMSw2ICs4MjcsMTUgQEAgc3RhdGljIEpT
VmFsdWVSZWYgc2NhbGVQYWdlQnlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bkNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBHZGtFdmVudCogcHJlc3NF
dmVudCA9IGNyZWF0ZUtleVByZXNzRXZlbnQoY29udGV4dCwgYXJndW1lbnRDb3VudCwgYXJndW1l
bnRzLCBleGNlcHRpb24pOworICAgIGlmIChwcmVzc0V2ZW50KQorICAgICAgICBnX2lkbGVfYWRk
KHNlbmRLZXlEb3duLCBzdGF0aWNfY2FzdDxncG9pbnRlcj4ocHJlc3NFdmVudCkpOworCisgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNTdGF0
aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNbXSA9IHsKICAgICB7ICJtb3VzZVNjcm9sbEJ5Iiwg
bW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAiY29udGludW91c01vdXNlU2Ny
b2xsQnkiLCBjb250aW51b3VzTW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkBAIC04Mjcs
NiArODUyLDcgQEAgc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljRnVuY3Rpb25zW10gPSB7
CiAgICAgeyAiem9vbVBhZ2VPdXQiLCB6b29tUGFnZU91dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
eyAic2NoZWR1bGVBc3luY2hyb25vdXNDbGljayIsIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2tD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgIHsgInNjYWxlUGFnZUJ5Iiwgc2NhbGVQYWdlQnlDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgIHsgInNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93biIsIHNjaGVkdWxl
QXN5bmNocm9ub3VzS2V5RG93bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAKICAgICB7IDAsIDAsIDAgfQog
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiNGQzMmI5OTAwZTc2YjIxZjIwNmMwMDdhYmNkYzYxNTE1ZjJjZDEyLi5lNDll
YzBiZGNhM2U3NDc4NDIwNWI5NGVjNjJkNDg0ZDNjMDY3NTI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTItMDItMjEgIENoYW5nU2VvayBPaCAgPHNoaXZhbWlkb3dAZ21haWwuY29tPgorCisg
ICAgICAgIFtHVEtdIERSVCBkb2Vzbid0IHN1cHBvcnQgc2NoZWR1bGVBc3luY2hyb25vdXNLZXlE
b3duLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0
ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmVkIGZvbGxvd2luZyBza2lwcGVkIHRlc3RzLgorICAgICAgICBmYXN0L211dGF0aW9uL2VuZC1v
Zi10YXNrLWRlbGl2ZXJ5Lmh0bWwKKyAgICAgICAgZmFzdC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQt
bGlzdGVuZXIuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisKIDIwMTIt
MDItMjEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBza2lwIG5ldyBmYWlsaW5nIGFuZCBjcmFzaGluZyB0
ZXN0IHRvIHBhaW50IHRoZSBib3QgZ3JlZW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4
IGYwZjc0N2VlMzI5YmU1MjIwZWFiYjI5ZmMzMjhjYjZiMjljZGZlMmEuLmYzNDA2MWNhZmIwM2M2
YWIwMDZiOGEyYzY0MWRmZWJkMDA5NzI3OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBA
IC0xNTUwLDExICsxNTUwLDYgQEAgc2VjdXJpdHkvYmxvY2stdGVzdC5odG1sCiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LWN1c3RvbS1wcm90b3R5cGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3Mtb2JqZWN0LWdldFByb3RvdHlwZU9mLmh0bWwKIAotIyBHVEsgcG9y
dCBEUlQgZG9lc24ndCBzdXBwb3J0IHNvbWUgQVBJIGxpa2Ugc2NoZWR1bGVBc3luY2hyb25vdXNL
ZXlEb3duLgotIyBodHRwOi8vd2Via2l0Lm9yZy9iLzc4NDgxLCBodHRwOi8vd2Via2l0Lm9yZy9i
Lzc4MjkwCi1mYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKLWZhc3QvbXV0
YXRpb24vaW5saW5lLWV2ZW50LWxpc3RlbmVyLmh0bWwKLQogIyBMZXQgTWVtb3J5Q2FjaGUgcmV1
c2UgY2FjaGVkIFhIUnMgKFJFR1JFU1NJT04gY2F1c2VkIGJ5IHIxMDc2NzIpCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU2NAogZmFzdC93b3JrZXJzL3dvcmtl
ci1jcmFzaC13aXRoLWludmFsaWQtbG9jYXRpb24uaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128132</attachid>
            <date>2012-02-21 22:31:35 -0800</date>
            <delta_ts>2012-02-22 09:33:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78481-20120222153134.patch</filename>
            <type>text/plain</type>
            <size>11259</size>
            <attacher name="ChangSeok Oh">kevin.cs.oh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNDhkN2E3MjAz
NzY5ODcyNzRhNDc5NjdjMmMwZDhlMGZjNGZkYzdkMC4uMjM2OGJiM2U0YWM5MmU2NWM3M2Y5NDcz
ZjEzZjlhZTMxMTMyNzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEy
LTAyLTIxICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KKworICAgICAgICBb
R1RLXSBEUlQgZG9lc24ndCBzdXBwb3J0IHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcg
QVBJIHRvIGRlbGl2ZXIgYWxsIG11dGF0aW9ucyBleHBsaWNpdGx5LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDItMjEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBvbmUgbW9yZSBHVEsr
IHVuaXQgdGVzdCBhZnRlciByMTA4Mjc4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXgg
OWJiNWM5ZDc0YjRmMDQ3ZDUwMTViNzI5MjYwMjFjODBjNDNiNjczOC4uOGU2ZTI2YjE0ODc2MDI2
YzExODU5MTU4OWIxY2Q4MTgxY2UzZTRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBA
IC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuaCIKICNpbmNsdWRlICJXZWJLaXRET01SYW5nZVByaXZh
dGUuaCIKKyNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV29y
a2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNsdWRl
ICJ3ZWJraXR3ZWJmcmFtZS5oIgpAQCAtOTE1LDMgKzkxNiwxMCBAQCBib29sIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6ZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkKFdl
YktpdFdlYgogCiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNUZXh0RmllbGQoKSAmJiAhaW5w
dXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiBpbnB1dEVsZW1lbnQtPnNob3VsZEF1dG9j
b21wbGV0ZSgpOwogfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFs
bE11dGF0aW9uc0lmTmVjZXNzYXJ5KCkKK3sKKyNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KQorICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKKyNl
bmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCA0NWQyODM5NzYzYzJkNTZkNTYzYmUw
NjU3YmUxMzRlNjhhNzQ5NjExLi4wMmI4MGM0NzYwYWExYzI3ODUzN2QyNWNhODY0ODY2MTVkMmJj
ZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtMTI5LDYgKzEyOSw4IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyB2b2lkIHNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQoV2Vi
S2l0V2ViVmlldyosIGJvb2wgZW5hYmxlZCk7CiAKKyAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxs
TXV0YXRpb25zSWZOZWNlc3NhcnkoKTsKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2Ry
dFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk3ODdhYzZiNmRj
NDgzMGNlN2ExN2I5ZDVhODIzOWI3MjQzNWM0ZmMuLjUxMmI4MmU3ZTI3MWM2MmQ0OTkzZmRkYzY3
NWRiNjU2ZmMyZmZjNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wMi0yMSAgQ2hhbmdTZW9rIE9oICA8c2hp
dmFtaWRvd0BnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS10gRFJUIGRvZXNuJ3Qgc3VwcG9ydCBz
Y2hlZHVsZUFzeW5jaHJvbm91c0tleURvd24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4dHJhY3RlZCBzaGFyZWFibGUgY29kZSBmcm9tIGtleURvd25D
YWxsYmFjayBhbmQgdGhlbiBhZGRlZCBjcmVhdGVLZXlQcmVzc0V2ZW50CisgICAgICAgIHRvIGNy
ZWF0ZSBnZGsgcHJlc3Mga2V5IGV2ZW50LgorICAgICAgICBBZGRlZCBoYW5kbGVLZXlEb3duICYg
c2VuZEtleURvd24gdG8gZXZhbHVhdGUga2V5RG93biBldmVudC4KKyAgICAgICAgVGhlc2UgdGhy
ZWUgZnVuY3Rpb25zIGFyZSBzaGFyZWFibGUgYmV0d2VlbiBrZXlEb3duQ2FsbGJhY2sgYW5kIHNj
aGVkdWxlQXN5bmNjaHJvbm91c0tleURvd25DYWxsYmFjay4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChzY2hlZHVsZUFzeW5jaHJvbm91
c0NsaWNrQ2FsbGJhY2spOgorICAgICAgICAoY3JlYXRlS2V5UHJlc3NFdmVudCk6CisgICAgICAg
IChzZW5kS2V5RG93bik6CisgICAgICAgIChoYW5kbGVLZXlEb3duKToKKyAgICAgICAgKGtleURv
d25DYWxsYmFjayk6CisgICAgICAgIChzY2hlZHVsZUFzeW5jaHJvbm91c0tleURvd25DYWxsYmFj
ayk6CisKIDIwMTItMDItMjEgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBGaXggaW1hZ2UgZHJhZyBvdXQgb24gQ2hyb21pdW0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5kZXIuY3BwCmluZGV4IDI1MDE4OTA5MDk3YjZmNGJj
Y2FlOTNhZTg0MTI1ZDc1ZmVhMjFkZWMuLjUyMWMyMDY5OGIxNWZmYWMxNTU1MjNlMGEwYzgxMmRj
YTFmMmQ3NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRl
ci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcApAQCAt
Myw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBaYW4gRG9iZXJzZWsgPHphbmRvYmVy
c2VrQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQ2hhbmdTZW9rIE9oIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzUsNyBAQAogCiAjaW5jbHVkZSAiRHVtcFJl
bmRlclRyZWUuaCIKICNpbmNsdWRlICJXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuaCIKKyNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8
R093blB0ckd0ay5oPgogI2luY2x1ZGUgPEdSZWZQdHJHdGsuaD4KICNpbmNsdWRlIDxHdGtWZXJz
aW9uaW5nLmg+CkBAIC0yNDgsNyArMjUwLDcgQEAgc3RhdGljIGdib29sZWFuIHNlbmRDbGljayhn
cG9pbnRlcikKIAogc3RhdGljIEpTVmFsdWVSZWYgc2NoZWR1bGVBc3luY2hyb25vdXNDbGlja0Nh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBnX2lkbGVfYWRkKHNl
bmRDbGljaywgMCk7CisgICAgZ190aW1lb3V0X2FkZCgwLCBzZW5kQ2xpY2ssIDApOwogICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApAQCAtNjExLDEwICs2MTMs
OSBAQCB2b2lkIHJlcGxheVNhdmVkRXZlbnRzKCkKICAgICBlbmRPZlF1ZXVlID0gMDsKIH0KIAot
c3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3N0YXRpYyBHZGtFdmVudCogY3JlYXRlS2V5UHJlc3NFdmVudChKU0NvbnRleHRSZWYg
Y29udGV4dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEp
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChhcmd1bWVudENvdW50ID49IDEsIDApOwogICAgIGd1aW50IG1vZGlm
aWVycyA9IGFyZ3VtZW50Q291bnQgPj0gMiA/IGdka01vZGlmZXJzRnJvbUpTVmFsdWUoY29udGV4
dCwgYXJndW1lbnRzWzFdKSA6IDA7CiAKICAgICAvLyBoYW5kbGUgbG9jYXRpb24gYXJndW1lbnQu
CkBAIC02MjMsNyArNjI0LDggQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICAgICAgbG9j
YXRpb24gPSAoaW50KUpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2Vw
dGlvbik7CiAKICAgICBKU1N0cmluZ1JlZiBjaGFyYWN0ZXIgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5
KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCgoIWV4Y2VwdGlvbiB8fCAhKmV4Y2VwdGlvbiksIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCgoIWV4Y2VwdGlvbiB8fCAhKmV4Y2Vw
dGlvbiksIDApOworCiAgICAgaW50IGdka0tleVN5bSA9IEdES19Wb2lkU3ltYm9sOwogICAgIGlm
IChsb2NhdGlvbiA9PSBET01fS0VZX0xPQ0FUSU9OX05VTVBBRCkgewogICAgICAgICBpZiAoSlNT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0QXJyb3ciKSkKQEAgLTcx
NywxMCArNzE5LDggQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICBKU1N0cmluZ1JlbGVh
c2UoY2hhcmFjdGVyKTsKIAogICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2ViX2Zy
YW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwotICAgIGlmICghdmlldykKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKHZpZXcsIDApOwogCi0gICAgLy8gY3JlYXRlIGFuZCBzZW5kIHRoZSBldmVudAogICAgIEdk
a0V2ZW50KiBwcmVzc0V2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfS0VZX1BSRVNTKTsKICAgICBw
cmVzc0V2ZW50LT5rZXkua2V5dmFsID0gZ2RrS2V5U3ltOwogICAgIHByZXNzRXZlbnQtPmtleS5z
dGF0ZSA9IG1vZGlmaWVyczsKQEAgLTczMiwxOCArNzMyLDQyIEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IGtleURvd25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTCiAKICAgICAvLyBXaGVuIHN5bnRoZXNpemluZyBhbiBldmVudCwgYW4gaW52YWxpZCBo
YXJkd2FyZV9rZXljb2RlIHZhbHVlCiAgICAgLy8gY2FuIGNhdXNlIGl0IHRvIGJlIGJhZGx5IHBy
b2Nlc3NlZCBieSBHdGsrLgotICAgIEdka0tleW1hcEtleSoga2V5czsKLSAgICBnaW50IG5fa2V5
czsKLSAgICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19mb3Jfa2V5dmFsKGdka19rZXltYXBf
Z2V0X2RlZmF1bHQoKSwgZ2RrS2V5U3ltLCAma2V5cywgJm5fa2V5cykpIHsKLSAgICAgICAgcHJl
c3NFdmVudC0+a2V5LmhhcmR3YXJlX2tleWNvZGUgPSBrZXlzWzBdLmtleWNvZGU7Ci0gICAgICAg
IGdfZnJlZShrZXlzKTsKLSAgICB9CisgICAgR093blB0cjxHZGtLZXltYXBLZXk+IGtleXM7Cisg
ICAgZ2ludCBuS2V5czsKKyAgICBpZiAoZ2RrX2tleW1hcF9nZXRfZW50cmllc19mb3Jfa2V5dmFs
KGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwgZ2RrS2V5U3ltLCAma2V5cy5vdXRQdHIoKSwgJm5L
ZXlzKSkKKyAgICAgICAgcHJlc3NFdmVudC0+a2V5LmhhcmR3YXJlX2tleWNvZGUgPSBrZXlzLmdl
dCgpWzBdLmtleWNvZGU7CisKKyAgICByZXR1cm4gcHJlc3NFdmVudDsKK30KIAorc3RhdGljIGdi
b29sZWFuIHNlbmRLZXlEb3duKGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIEdka0V2ZW50KiBw
cmVzc0V2ZW50ID0gc3RhdGljX2Nhc3Q8R2RrRXZlbnQqPih1c2VyRGF0YSk7CiAgICAgR2RrRXZl
bnQqIHJlbGVhc2VFdmVudCA9IGdka19ldmVudF9jb3B5KHByZXNzRXZlbnQpOworICAgIHJlbGVh
c2VFdmVudC0+dHlwZSA9IEdES19LRVlfUkVMRUFTRTsKKwogICAgIGRpc3BhdGNoRXZlbnQocHJl
c3NFdmVudCk7Ci0gICAgcmVsZWFzZUV2ZW50LT5rZXkudHlwZSA9IEdES19LRVlfUkVMRUFTRTsK
ICAgICBkaXNwYXRjaEV2ZW50KHJlbGVhc2VFdmVudCk7CiAKKyAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSgpOworCisgICAgcmV0dXJu
IEZBTFNFOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEdka0V2ZW50KiBwcmVzc0V2
ZW50LCBib29sIGFzeW5jaHJvbm91cykKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKHByZXNzRXZl
bnQpOworICAgIGlmIChhc3luY2hyb25vdXMpCisgICAgICAgIGdfdGltZW91dF9hZGQoMCwgc2Vu
ZEtleURvd24sIHN0YXRpY19jYXN0PGdwb2ludGVyPihwcmVzc0V2ZW50KSk7CisgICAgZWxzZQor
ICAgICAgICBzZW5kS2V5RG93bihzdGF0aWNfY2FzdDxncG9pbnRlcj4ocHJlc3NFdmVudCkpOwor
fQorCitzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQoreworICAgIEdka0V2ZW50KiBwcmVzc0V2ZW50ID0gY3JlYXRlS2V5UHJlc3NF
dmVudChjb250ZXh0LCBhcmd1bWVudENvdW50LCBhcmd1bWVudHMsIGV4Y2VwdGlvbik7CisgICAg
aGFuZGxlS2V5RG93bihwcmVzc0V2ZW50LCBmYWxzZSk7CisKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTgxMSw2ICs4MzUsMTQgQEAgc3RhdGljIEpT
VmFsdWVSZWYgc2NhbGVQYWdlQnlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bkNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBHZGtFdmVudCogcHJlc3NF
dmVudCA9IGNyZWF0ZUtleVByZXNzRXZlbnQoY29udGV4dCwgYXJndW1lbnRDb3VudCwgYXJndW1l
bnRzLCBleGNlcHRpb24pOworICAgIGhhbmRsZUtleURvd24ocHJlc3NFdmVudCwgdHJ1ZSk7CisK
KyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBK
U1N0YXRpY0Z1bmN0aW9uIHN0YXRpY0Z1bmN0aW9uc1tdID0gewogICAgIHsgIm1vdXNlU2Nyb2xs
QnkiLCBtb3VzZVNjcm9sbEJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICB7ICJjb250aW51b3VzTW91
c2VTY3JvbGxCeSIsIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAg
LTgyNyw2ICs4NTksNyBAQCBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNb
XSA9IHsKICAgICB7ICJ6b29tUGFnZU91dCIsIHpvb21QYWdlT3V0Q2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICB7ICJzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrIiwgc2NoZWR1bGVBc3luY2hyb25vdXND
bGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAic2NhbGVQYWdlQnkiLCBzY2FsZVBhZ2VCeUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgeyAic2NoZWR1bGVBc3luY2hyb25vdXNLZXlEb3duIiwgc2No
ZWR1bGVBc3luY2hyb25vdXNLZXlEb3duQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKIAogICAgIHsgMCwgMCwg
MCB9CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGY2NTFiNTM5MDhiMjA0ODk2MDk4MjA4MzJkMmI5OTYxNzIwYTg4MDgu
LjgxN2Q4ZjhlYjBiZWM4YWQwOGMxMDAwYTg5ZjBjOTNhMjZjZTM0YWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0wMi0yMSAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+
CisKKyAgICAgICAgW0dUS10gRFJUIGRvZXNuJ3Qgc3VwcG9ydCBzY2hlZHVsZUFzeW5jaHJvbm91
c0tleURvd24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZWQgZm9sbG93aW5nIHNraXBwZWQgdGVzdHMuCisgICAgICAgIGZhc3QvbXV0YXRpb24v
ZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAorICAgICAgICBmYXN0L211dGF0aW9uL2lubGluZS1l
dmVudC1saXN0ZW5lci5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwog
MjAxMi0wMi0yMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2hvdWxkIGJlIGFibGUgdG8gcmVjb25maWd1cmUgYSBub24tY29uZmlndXJhYmxl
IHByb3BlcnR5IGFzIHJlYWQtb25seQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBmMTI5
ZjRlOGYzYmQ2ZmU3NWE2OWI4YjkwYzQ0MjIwYTY0NDYwNGI5Li4xM2FlMDJlYTJhOTJiOTcyZGU2
Y2QzMDkyYTYzMDQ1YTk5ZjdhN2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTU1
MSwxMSArMTU1MSw2IEBAIHNlY3VyaXR5L2Jsb2NrLXRlc3QuaHRtbAogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1jdXN0b20tcHJvdG90eXBlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLW9iamVjdC1nZXRQcm90b3R5cGVPZi5odG1sCiAKLSMgR1RLIHBvcnQgRFJU
IGRvZXNuJ3Qgc3VwcG9ydCBzb21lIEFQSSBsaWtlIHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93
bi4KLSMgaHR0cDovL3dlYmtpdC5vcmcvYi83ODQ4MSwgaHR0cDovL3dlYmtpdC5vcmcvYi83ODI5
MAotZmFzdC9tdXRhdGlvbi9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sCi1mYXN0L211dGF0aW9u
L2lubGluZS1ldmVudC1saXN0ZW5lci5odG1sCi0KICMgTGV0IE1lbW9yeUNhY2hlIHJldXNlIGNh
Y2hlZCBYSFJzIChSRUdSRVNTSU9OIGNhdXNlZCBieSByMTA3NjcyKQogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NjQKIGZhc3Qvd29ya2Vycy93b3JrZXItY3Jh
c2gtd2l0aC1pbnZhbGlkLWxvY2F0aW9uLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128229</attachid>
            <date>2012-02-22 09:33:23 -0800</date>
            <delta_ts>2012-02-23 07:57:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78481-20120223023321.patch</filename>
            <type>text/plain</type>
            <size>11146</size>
            <attacher name="ChangSeok Oh">kevin.cs.oh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNmFlOThlNjJm
MmIwMmRlMzQ5NzEwNWEwNGFmMDBkOTdkODIwMDZiNi4uMWY1YTZlMGE0NzhlMWQ3OWNiZGE3NTkw
Mjg3NDMzZjdjM2NlYzY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEy
LTAyLTIyICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KKworICAgICAgICBb
R1RLXSBEUlQgZG9lc24ndCBzdXBwb3J0IHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NDgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcg
QVBJIHRvIGRlbGl2ZXIgYWxsIG11dGF0aW9ucyBleHBsaWNpdGx5LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDItMjIgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNl
cyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHAKaW5kZXggOWJiNWM5ZDc0YjRmMDQ3ZDUwMTViNzI5MjYwMjFjODBjNDNiNjczOC4uOGU2ZTI2
YjE0ODc2MDI2YzExODU5MTU4OWIxY2Q4MTgxY2UzZTRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuaCIKICNpbmNsdWRlICJXZWJLaXRET01S
YW5nZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgpAQCAtOTE1LDMgKzkxNiwxMCBAQCBib29sIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50
V2l0aElkKFdlYktpdFdlYgogCiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNUZXh0RmllbGQo
KSAmJiAhaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiBpbnB1dEVsZW1lbnQtPnNo
b3VsZEF1dG9jb21wbGV0ZSgpOwogfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KCkKK3sKKyNpZiBFTkFCTEUoTVVUQVRJT05f
T0JTRVJWRVJTKQorICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlv
bnMoKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCA0NWQyODM5NzYzYzJk
NTZkNTYzYmUwNjU3YmUxMzRlNjhhNzQ5NjExLi4wMmI4MGM0NzYwYWExYzI3ODUzN2QyNWNhODY0
ODY2MTVkMmJjZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtMTI5LDYgKzEyOSw4IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVu
YWJsZWQoV2ViS2l0V2ViVmlldyosIGJvb2wgZW5hYmxlZCk7CiAKKyAgICBzdGF0aWMgdm9pZCBk
ZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkoKTsKKwogcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWlu
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA1
YWZhZjUzOGU5OTdhYWQxZjZlZjNiOGZkYzk3YmEzYWZjYjg3ODguLjU5YWY4OTMzZGVlM2Q4ZjAw
ZmQ1YTI3MGNkZWQ2OTUxMWJjODNiNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wMi0yMiAgQ2hhbmdTZW9r
IE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS10gRFJUIGRvZXNuJ3Qg
c3VwcG9ydCBzY2hlZHVsZUFzeW5jaHJvbm91c0tleURvd24uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dHJhY3RlZCBzaGFyZWFibGUgY29kZSBmcm9t
IGtleURvd25DYWxsYmFjayBhbmQgdGhlbiBhZGRlZCBjcmVhdGVLZXlQcmVzc0V2ZW50CisgICAg
ICAgIHRvIGNyZWF0ZSBnZGsgcHJlc3Mga2V5IGV2ZW50LgorICAgICAgICBBZGRlZCBzZW5kS2V5
RG93biBhbmQgc2VuZEFzeW5jaHJvbm91c0tleURvd24gdG8gZXZhbHVhdGUga2V5RG93biBldmVu
dCBkaXJlY3RseQorICAgICAgICBhbmQgYXN5bmNocm9ub3VzbHkuIEV2ZW50dWFsbHksIHNlbmRB
c3luY2hyb25vdXNLZXlEb3duIGNhbGxzIHNlbmRLZXlEb3duLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKHNjaGVkdWxlQXN5bmNocm9u
b3VzQ2xpY2tDYWxsYmFjayk6CisgICAgICAgIChjcmVhdGVLZXlQcmVzc0V2ZW50KToKKyAgICAg
ICAgKHNlbmRLZXlEb3duKToKKyAgICAgICAgKGtleURvd25DYWxsYmFjayk6CisgICAgICAgIChz
ZW5kQXN5bmNocm9ub3VzS2V5RG93bik6CisgICAgICAgIChzY2hlZHVsZUFzeW5jaHJvbm91c0tl
eURvd25DYWxsYmFjayk6CisKIDIwMTItMDItMjIgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBh
ZG9iZS5jb20+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMDgxMDgpOiBJdCBtYWRlIDMg
ZmFzdC9yZXBhaW50IHRlc3RzIGZhaWwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRXZlbnRTZW5k
ZXIuY3BwCmluZGV4IDI1MDE4OTA5MDk3YjZmNGJjY2FlOTNhZTg0MTI1ZDc1ZmVhMjFkZWMuLjM5
N2I2YzZkYzY2Mzg5ZTFhNjNjM2YzNzAxYzNkZTYwZWMwZjJiNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0V2ZW50U2VuZGVyLmNwcApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwOSBaYW4gRG9iZXJzZWsgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KICAqIENvcHlyaWdo
dCAoQykgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAy
MDEwIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ2hhbmdTZW9rIE9oIDxzaGl2
YW1pZG93QGdtYWlsLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
NiArMzUsNyBAQAogCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIKICNpbmNsdWRlICJXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKKyNpbmNsdWRlICJXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8R093blB0ckd0ay5oPgogI2luY2x1ZGUgPEdS
ZWZQdHJHdGsuaD4KICNpbmNsdWRlIDxHdGtWZXJzaW9uaW5nLmg+CkBAIC0yNDgsNyArMjUwLDcg
QEAgc3RhdGljIGdib29sZWFuIHNlbmRDbGljayhncG9pbnRlcikKIAogc3RhdGljIEpTVmFsdWVS
ZWYgc2NoZWR1bGVBc3luY2hyb25vdXNDbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKLSAgICBnX2lkbGVfYWRkKHNlbmRDbGljaywgMCk7CisgICAgZ190aW1lb3V0
X2FkZCgwLCBzZW5kQ2xpY2ssIDApOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKIH0KIApAQCAtNjExLDEwICs2MTMsOSBAQCB2b2lkIHJlcGxheVNhdmVkRXZlbnRz
KCkKICAgICBlbmRPZlF1ZXVlID0gMDsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBHZGtFdmVudCogY3Jl
YXRlS2V5UHJlc3NFdmVudChKU0NvbnRleHRSZWYgY29udGV4dCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChhcmd1bWVudENv
dW50ID49IDEsIDApOwogICAgIGd1aW50IG1vZGlmaWVycyA9IGFyZ3VtZW50Q291bnQgPj0gMiA/
IGdka01vZGlmZXJzRnJvbUpTVmFsdWUoY29udGV4dCwgYXJndW1lbnRzWzFdKSA6IDA7CiAKICAg
ICAvLyBoYW5kbGUgbG9jYXRpb24gYXJndW1lbnQuCkBAIC02MjMsNyArNjI0LDggQEAgc3RhdGlj
IEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlMKICAgICAgICAgbG9jYXRpb24gPSAoaW50KUpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbik7CiAKICAgICBKU1N0cmluZ1JlZiBj
aGFyYWN0ZXIgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhj
ZXB0aW9uKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCgoIWV4Y2VwdGlvbiB8fCAhKmV4Y2Vw
dGlvbiksIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbCgoIWV4Y2VwdGlvbiB8fCAhKmV4Y2VwdGlvbiksIDApOworCiAgICAgaW50IGdka0tl
eVN5bSA9IEdES19Wb2lkU3ltYm9sOwogICAgIGlmIChsb2NhdGlvbiA9PSBET01fS0VZX0xPQ0FU
SU9OX05VTVBBRCkgewogICAgICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhj
aGFyYWN0ZXIsICJsZWZ0QXJyb3ciKSkKQEAgLTcxNywxMCArNzE5LDggQEAgc3RhdGljIEpTVmFs
dWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlMKICAgICBKU1N0cmluZ1JlbGVhc2UoY2hhcmFjdGVyKTsKIAogICAgIFdlYktp
dFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUp
OwotICAgIGlmICghdmlldykKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHZpZXcsIDApOwogCi0gICAgLy8gY3Jl
YXRlIGFuZCBzZW5kIHRoZSBldmVudAogICAgIEdka0V2ZW50KiBwcmVzc0V2ZW50ID0gZ2RrX2V2
ZW50X25ldyhHREtfS0VZX1BSRVNTKTsKICAgICBwcmVzc0V2ZW50LT5rZXkua2V5dmFsID0gZ2Rr
S2V5U3ltOwogICAgIHByZXNzRXZlbnQtPmtleS5zdGF0ZSA9IG1vZGlmaWVyczsKQEAgLTczMiwx
OCArNzMyLDMxIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25DYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTCiAKICAgICAvLyBXaGVuIHN5bnRo
ZXNpemluZyBhbiBldmVudCwgYW4gaW52YWxpZCBoYXJkd2FyZV9rZXljb2RlIHZhbHVlCiAgICAg
Ly8gY2FuIGNhdXNlIGl0IHRvIGJlIGJhZGx5IHByb2Nlc3NlZCBieSBHdGsrLgotICAgIEdka0tl
eW1hcEtleSoga2V5czsKLSAgICBnaW50IG5fa2V5czsKLSAgICBpZiAoZ2RrX2tleW1hcF9nZXRf
ZW50cmllc19mb3Jfa2V5dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwgZ2RrS2V5U3ltLCAm
a2V5cywgJm5fa2V5cykpIHsKLSAgICAgICAgcHJlc3NFdmVudC0+a2V5LmhhcmR3YXJlX2tleWNv
ZGUgPSBrZXlzWzBdLmtleWNvZGU7Ci0gICAgICAgIGdfZnJlZShrZXlzKTsKLSAgICB9CisgICAg
R093blB0cjxHZGtLZXltYXBLZXk+IGtleXM7CisgICAgZ2ludCBuS2V5czsKKyAgICBpZiAoZ2Rr
X2tleW1hcF9nZXRfZW50cmllc19mb3Jfa2V5dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwg
Z2RrS2V5U3ltLCAma2V5cy5vdXRQdHIoKSwgJm5LZXlzKSkKKyAgICAgICAgcHJlc3NFdmVudC0+
a2V5LmhhcmR3YXJlX2tleWNvZGUgPSBrZXlzLmdldCgpWzBdLmtleWNvZGU7CisKKyAgICByZXR1
cm4gcHJlc3NFdmVudDsKK30KIAorc3RhdGljIHZvaWQgc2VuZEtleURvd24oR2RrRXZlbnQqIHBy
ZXNzRXZlbnQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChwcmVzc0V2ZW50KTsKICAgICBHZGtF
dmVudCogcmVsZWFzZUV2ZW50ID0gZ2RrX2V2ZW50X2NvcHkocHJlc3NFdmVudCk7CisgICAgcmVs
ZWFzZUV2ZW50LT50eXBlID0gR0RLX0tFWV9SRUxFQVNFOworCiAgICAgZGlzcGF0Y2hFdmVudChw
cmVzc0V2ZW50KTsKLSAgICByZWxlYXNlRXZlbnQtPmtleS50eXBlID0gR0RLX0tFWV9SRUxFQVNF
OwogICAgIGRpc3BhdGNoRXZlbnQocmVsZWFzZUV2ZW50KTsKIAorICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KCk7Cit9CisKK3N0YXRp
YyBKU1ZhbHVlUmVmIGtleURvd25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgR2RrRXZlbnQqIHByZXNzRXZlbnQgPSBjcmVhdGVLZXlQcmVzc0V2ZW50KGNvbnRl
eHQsIGFyZ3VtZW50Q291bnQsIGFyZ3VtZW50cywgZXhjZXB0aW9uKTsKKyAgICBzZW5kS2V5RG93
bihwcmVzc0V2ZW50KTsKKwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIApAQCAtODExLDYgKzgyNCwyMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzY2FsZVBhZ2VC
eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbgogICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIGdib29s
ZWFuIHNlbmRBc3luY2hyb25vdXNLZXlEb3duKGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIHNl
bmRLZXlEb3duKHN0YXRpY19jYXN0PEdka0V2ZW50Kj4odXNlckRhdGEpKTsKKyAgICByZXR1cm4g
RkFMU0U7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93
bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBHZGtFdmVudCog
cHJlc3NFdmVudCA9IGNyZWF0ZUtleVByZXNzRXZlbnQoY29udGV4dCwgYXJndW1lbnRDb3VudCwg
YXJndW1lbnRzLCBleGNlcHRpb24pOworICAgIGlmIChwcmVzc0V2ZW50KQorICAgICAgICBnX3Rp
bWVvdXRfYWRkKDAsIHNlbmRBc3luY2hyb25vdXNLZXlEb3duLCBzdGF0aWNfY2FzdDxncG9pbnRl
cj4ocHJlc3NFdmVudCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOworfQorCiBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNbXSA9IHsK
ICAgICB7ICJtb3VzZVNjcm9sbEJ5IiwgbW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgeyAiY29udGludW91c01vdXNlU2Nyb2xsQnkiLCBjb250aW51b3VzTW91c2VTY3JvbGxCeUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCkBAIC04MjcsNiArODU1LDcgQEAgc3RhdGljIEpTU3RhdGljRnVuY3Rp
b24gc3RhdGljRnVuY3Rpb25zW10gPSB7CiAgICAgeyAiem9vbVBhZ2VPdXQiLCB6b29tUGFnZU91
dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAic2NoZWR1bGVBc3luY2hyb25vdXNDbGljayIsIHNj
aGVkdWxlQXN5bmNocm9ub3VzQ2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgIHsgInNjYWxlUGFn
ZUJ5Iiwgc2NhbGVQYWdlQnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgIHsgInNjaGVkdWxlQXN5bmNo
cm9ub3VzS2V5RG93biIsIHNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bkNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAKICAgICB7IDAsIDAsIDAgfQogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwODVhZjBkMjJkMDI4YmU1MDFjZDY3
Y2RmMDE5MTNkMjIxNDRkOGVjLi42ZDc1NjFhY2Q0ZmFkMGNiMDI1NDk1ODk2YmRhMGM2MzFjYzU3
NjdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDItMjIgIENoYW5nU2VvayBPaCAgPHNo
aXZhbWlkb3dAZ21haWwuY29tPgorCisgICAgICAgIFtHVEtdIERSVCBkb2Vzbid0IHN1cHBvcnQg
c2NoZWR1bGVBc3luY2hyb25vdXNLZXlEb3duLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGZvbGxvd2luZyBza2lwcGVkIHRlc3RzLgorICAg
ICAgICBmYXN0L211dGF0aW9uL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwKKyAgICAgICAgZmFz
dC9tdXRhdGlvbi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisKIDIwMTItMDItMjIgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBh
ZG9iZS5jb20+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMDgxMDgpOiBJdCBtYWRlIDMg
ZmFzdC9yZXBhaW50IHRlc3RzIGZhaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZWMx
MmQ2ZWFjMGY5MTMxNjQ4NjdjYTI2MGNmYmQ1ZjJhMDY2YjA0ZS4uNDFhODUzNWE0MzYzZTQ0NGY5
N2Q0MWFjNGNmMzUyODA4YzA5NTlkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTE1
NzgsMTEgKzE1NzgsNiBAQCBzZWN1cml0eS9ibG9jay10ZXN0Lmh0bWwKIGZhc3QvZG9tL1dpbmRv
dy93aW5kb3ctY3VzdG9tLXByb3RvdHlwZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1vYmplY3QtZ2V0UHJvdG90eXBlT2YuaHRtbAogCi0jIEdUSyBwb3J0IERS
VCBkb2Vzbid0IHN1cHBvcnQgc29tZSBBUEkgbGlrZSBzY2hlZHVsZUFzeW5jaHJvbm91c0tleURv
d24uCi0jIGh0dHA6Ly93ZWJraXQub3JnL2IvNzg0ODEsIGh0dHA6Ly93ZWJraXQub3JnL2IvNzgy
OTAKLWZhc3QvbXV0YXRpb24vZW5kLW9mLXRhc2stZGVsaXZlcnkuaHRtbAotZmFzdC9tdXRhdGlv
bi9pbmxpbmUtZXZlbnQtbGlzdGVuZXIuaHRtbAotCiAjIExldCBNZW1vcnlDYWNoZSByZXVzZSBj
YWNoZWQgWEhScyAoUkVHUkVTU0lPTiBjYXVzZWQgYnkgcjEwNzY3MikKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTY0CiBmYXN0L3dvcmtlcnMvd29ya2VyLWNy
YXNoLXdpdGgtaW52YWxpZC1sb2NhdGlvbi5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>