<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>202</bug_id>
          
          <creation_ts>2006-02-07 12:07:21 +0100</creation_ts>
          <short_desc>Render to texture no longer working correctly</short_desc>
          <delta_ts>2010-11-19 12:31:29 +0100</delta_ts>
          <reporter_accessible>0</reporter_accessible>
          <cclist_accessible>0</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>core</component>
          <version>1</version>
          <rep_platform>All</rep_platform>
          <op_sys>windows</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc>http://www.cs.rutgers.edu/~tedmunds/share/jogl/RenderToTextureBasic.java</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>218</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2010-03-24 07:48:27 +0100</bug_when>
    <thetext>


---- Reported by tedmunds 2006-02-07 12:07:21 ----

The (relatively) recent changes to how Pbuffer contexts are managed has resulted
in undesirable behaviour on a simple render-to-texture test case.  In the test
case, the Pbuffer is bound to a texture, a scene is rendered to the Pbuffer, the
Pbuffer is unbound, and then the texture is used in rendering to the main frame
buffer.  Before the implementation changes for JSR-231, this test application
functioned correctly (i.e. when the texture was mapped onto a rectangle, the
image was as expected); now, the rendering to texture does not seem to have been
completed before the texture is accessed for rendering in the frame buffer.  By
alternating the colour of the scene each time when rendering to the Pbuffer, it
becomes clear that the texture access is getting a mix of the old contents and
the new contents of the Pbuffer.

This behaviour is present in both the latest release and the latest nightly build.

The associated URL points to the code for the example application.



---- Additional Comments From tedmunds 2006-02-07 12:08:27 ----

Created an attachment
Example application (in demos.renderToTexture package).




---- Additional Comments From tedmunds 2006-02-07 14:25:34 ----

I have downgraded the priority of this defect after discovering that the
framebuffer object extension is now sufficiently accessible to provide the
desired functionality.  An example implementation using framebuffer objects that
corresponds to the submitted defect example is available at
http://www.cs.rutgers.edu/~tedmunds/share/jogl/RenderToTextureFBO.java (and will
be attached to this issue).



---- Additional Comments From tedmunds 2006-02-07 14:28:43 ----

Created an attachment
Framebuffer object implementation of the desired functionality




---- Additional Comments From kbr 2006-02-15 19:44:09 ----

The basic problem doesn&apos;t seem to be reproducible, at least not on all hardware.
The RenderToTextureBasic test case seems to render properly, with four orange
teapots showing up on the square background behind the gray teapot. It&apos;s
possible that an appropriately-placed glFinish() call in the application will
cause it to behave better.

In general the render-to-texture support in the GLCapabilities is non-portable
and not to be relied on. The submitter is correct that FBOs are the best way to
do render-to-texture portably.

This bug will probably be closed as &quot;works for me&quot;, but would like to
incorporate these test cases, slightly modified, into the jogl-demos package.
Will contact the submitter for permission.




--- Bug imported by sgothel@jausoft.com 2010-03-24 07:48 EDT  ---

This bug was previously known as _bug_ 202 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=202
Imported an attachment (id=72)
Imported an attachment (id=73)

The original submitter of attachment 72 is unknown.
   Reassigning to the person who moved it here: sgothel@jausoft.com.
The original submitter of attachment 73 is unknown.
   Reassigning to the person who moved it here: sgothel@jausoft.com.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2010-11-19 12:31:29 +0100</bug_when>
    <thetext>not reproducable</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>72</attachid>
            <date>2006-02-07 12:08:00 +0100</date>
            <delta_ts>2006-02-07 12:08:00 +0100</delta_ts>
            <desc>Example application (in demos.renderToTexture package).</desc>
            <filename>RenderToTextureBasic.java</filename>
            <type>text/plain</type>
            <size>11187</size>
            <attacher name="Sven Gothel">sgothel</attacher>
            
              <data encoding="base64">cGFja2FnZSBkZW1vcy5yZW5kZXJUb1RleHR1cmU7DQoNCmltcG9ydCBqYXZhLmF3dC5ldmVudC5X
aW5kb3dBZGFwdGVyOw0KaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50Ow0KDQppbXBv
cnQgamF2YXgubWVkaWEub3BlbmdsLkRlYnVnR0w7DQppbXBvcnQgamF2YXgubWVkaWEub3Blbmds
LkdMOw0KaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTEF1dG9EcmF3YWJsZTsNCmltcG9ydCBq
YXZheC5tZWRpYS5vcGVuZ2wuR0xDYW52YXM7DQppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdM
Q2FwYWJpbGl0aWVzOw0KaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTERyYXdhYmxlRmFjdG9y
eTsNCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xFdmVudExpc3RlbmVyOw0KaW1wb3J0IGph
dmF4Lm1lZGlhLm9wZW5nbC5HTEV4Y2VwdGlvbjsNCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wu
R0xQYnVmZmVyOw0KaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsNCg0KaW1wb3J0IGNvbS5zdW4u
b3BlbmdsLnV0aWxzLkdMVVQ7DQoNCnB1YmxpYyBjbGFzcyBSZW5kZXJUb1RleHR1cmVCYXNpYyBp
bXBsZW1lbnRzIEdMRXZlbnRMaXN0ZW5lcg0Kew0KICAgIHByaXZhdGUgc3RhdGljIEdMVVQgZ2x1
dCA9IG5ldyBHTFVUKCk7DQoNCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBh
cmdzKQ0KICAgIHsNCiAgICAgICAgUmVuZGVyVG9UZXh0dXJlQmFzaWMgcmVuZGVyZXIgPSBuZXcg
UmVuZGVyVG9UZXh0dXJlQmFzaWMoKTsNCg0KICAgICAgICBHTENhbnZhcyBjYW52YXMgPSBuZXcg
R0xDYW52YXMoKTsNCg0KICAgICAgICBjYW52YXMuYWRkR0xFdmVudExpc3RlbmVyKHJlbmRlcmVy
KTsNCg0KICAgICAgICBKRnJhbWUgZnJhbWUgPSBuZXcgSkZyYW1lKCJSZW5kZXIgVG8gVGV4dHVy
ZSBEZW1vIik7DQoNCiAgICAgICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0Fk
YXB0ZXIoKQ0KICAgICAgICB7DQogICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5n
KFdpbmRvd0V2ZW50IGV2dCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBTeXN0ZW0u
ZXhpdCgwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQoNCiAgICAgICAgZnJhbWUuZ2V0
Q29udGVudFBhbmUoKS5hZGQoY2FudmFzKTsNCiAgICAgICAgY2FudmFzLnNldFNpemUoMzAwLCAz
MDApOw0KDQogICAgICAgIGZyYW1lLnBhY2soKTsNCiAgICAgICAgZnJhbWUuc2V0VmlzaWJsZSh0
cnVlKTsNCiAgICB9DQoNCiAgICBwcml2YXRlIHN0YXRpYyBmbG9hdFtdIGxpZ2h0UG9zaXRpb24g
PSBuZXcgZmxvYXRbXQ0KICAgIHsNCiAgICAgICAgMSwgMCwgMTAsIDENCiAgICB9Ow0KDQogICAg
cHJpdmF0ZSBPZmZzY3JlZW5SZW5kZXJlciBvZmZzY3JlZW5SZW5kZXJlcjsNCg0KICAgIHByaXZh
dGUgYm9vbGVhbiBpc09mZnNjcmVlblJlbmRlcmVyQ3JlYXRlZCA9IGZhbHNlOw0KDQogICAgcHVi
bGljIHZvaWQgaW5pdChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkNCiAgICB7DQogICAgICAgIGRy
YXdhYmxlLnNldEdMKG5ldyBEZWJ1Z0dMKGRyYXdhYmxlLmdldEdMKCkpKTsNCg0KICAgICAgICBH
TCBnbCA9IGRyYXdhYmxlLmdldEdMKCk7DQoNCiAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xfREVQ
VEhfVEVTVCk7DQogICAgICAgIGdsLmdsRW5hYmxlKEdMLkdMX05PUk1BTElaRSk7DQogICAgICAg
IGdsLmdsRW5hYmxlKEdMLkdMX0xJR0hUSU5HKTsNCg0KICAgICAgICBnbC5nbENsZWFyQ29sb3Io
MC41ZiwgMC41ZiwgMC41ZiwgMCk7DQoNCiAgICAgICAgLy8gUGxhY2UgdGhlIGNhbWVyYQ0KICAg
ICAgICBnbC5nbFB1c2hBdHRyaWIoR0wuR0xfVFJBTlNGT1JNX0JJVCk7DQogICAgICAgIHsNCiAg
ICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShHTC5HTF9QUk9KRUNUSU9OKTsNCiAgICAgICAgICAg
IGdsLmdsUHVzaE1hdHJpeCgpOw0KICAgICAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHkoKTsNCiAg
ICAgICAgICAgIGdsLmdsRnJ1c3R1bSgtMi4wIC8gMTAsIDIuMCAvIDEwLCAtMi4wIC8gMTAsIDIu
MCAvIDEwLCAxLCAxMSk7DQoNCiAgICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShHTC5HTF9NT0RF
TFZJRVcpOw0KICAgICAgICAgICAgZ2wuZ2xQdXNoTWF0cml4KCk7DQogICAgICAgICAgICBnbC5n
bExvYWRJZGVudGl0eSgpOw0KICAgICAgICAgICAgZ2wuZ2xUcmFuc2xhdGVkKDAsIDAsIC0xMCk7
DQogICAgICAgIH0NCg0KICAgICAgICAvLyBDb25maWd1cmUgdGhlIGxpZ2h0DQogICAgICAgIGds
LmdsRW5hYmxlKEdMLkdMX0xJR0hUMCk7DQogICAgICAgIGdsLmdsTGlnaHRmdihHTC5HTF9MSUdI
VDAsIEdMLkdMX1BPU0lUSU9OLCBsaWdodFBvc2l0aW9uLCAwKTsNCg0KICAgICAgICBpZiAoIWlz
T2Zmc2NyZWVuUmVuZGVyZXJDcmVhdGVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBvZmZzY3Jl
ZW5SZW5kZXJlciA9IG5ldyBPZmZzY3JlZW5SZW5kZXJlcigyNTYpOw0KICAgICAgICAgICAgb2Zm
c2NyZWVuUmVuZGVyZXIuaW5pdEZyb21QYXJlbnQoZHJhd2FibGUpOw0KICAgICAgICAgICAgaXNP
ZmZzY3JlZW5SZW5kZXJlckNyZWF0ZWQgPSB0cnVlOw0KICAgICAgICB9DQogICAgfQ0KDQogICAg
cHVibGljIHZvaWQgZGlzcGxheShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkNCiAgICB7DQogICAg
ICAgIEdMIGdsID0gZHJhd2FibGUuZ2V0R0woKTsNCg0KICAgICAgICBnbC5nbENsZWFyKEdMLkdM
X0NPTE9SX0JVRkZFUl9CSVQgfCBHTC5HTF9ERVBUSF9CVUZGRVJfQklUKTsNCg0KICAgICAgICBv
ZmZzY3JlZW5SZW5kZXJlci5yZW5kZXJPZmZzY3JlZW4oKTsNCiAgICAgICAgDQogICAgICAgIC8v
IERyYXcgdGhlIHRlYXBvdCBhbmQgYSByZXBlYXRlZCBwaWN0dXJlIG9mIHRoZSBvZmZzY3JlZW4g
Y29sb3VyDQogICAgICAgIC8vIGJ1ZmZlci4NCiAgICAgICAgLy8gV2UnbGwgdXNlIG11bHRpLXRl
eHR1cmUgdW5pdCAwIGZvciB0aGUgcGljdHVyZQ0KICAgICAgICBvZmZzY3JlZW5SZW5kZXJlci5w
cmVwYXJlRm9yQ29sb3VyZWRSZW5kZXJpbmcoZHJhd2FibGUsIEdMLkdMX1RFWFRVUkUwKTsNCiAg
ICAgICAgZHJhd1NxdWFyZShkcmF3YWJsZSk7DQogICAgICAgIG9mZnNjcmVlblJlbmRlcmVyLnN0
b3BDb2xvdXJlZFJlbmRlcmluZyhkcmF3YWJsZSk7DQogICAgICAgIGRyYXdGbG9hdGluZ1RlYXBv
dChkcmF3YWJsZSk7DQoNCiAgICB9DQoNCiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRyYXdGbG9h
dGluZ1RlYXBvdChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkNCiAgICB7DQogICAgICAgIEdMIGds
ID0gZHJhd2FibGUuZ2V0R0woKTsNCiAgICAgICAgDQogICAgICAgIGdsLmdsUHVzaEF0dHJpYihH
TC5HTF9UUkFOU0ZPUk1fQklUKTsNCiAgICAgICAgew0KICAgICAgICAgICAgZ2wuZ2xNYXRyaXhN
b2RlKEdMLkdMX01PREVMVklFVyk7DQogICAgICAgICAgICBnbC5nbFB1c2hNYXRyaXgoKTsNCiAg
ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBnbC5nbFRyYW5zbGF0ZWQoMC41LCAwLCAzKTsN
CiAgICAgICAgICAgICAgICBnbHV0LmdsdXRTb2xpZFRlYXBvdCgwLjI1LCB0cnVlKTsNCiAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgIGdsLmdsUG9wTWF0cml4KCk7DQogICAgICAgIH0NCiAgICAg
ICAgZ2wuZ2xQb3BBdHRyaWIoKTsNCiAgICB9DQoNCiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRy
YXdTcXVhcmUoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUpDQogICAgew0KICAgICAgICBHTCBnbCA9
IGRyYXdhYmxlLmdldEdMKCk7DQoNCiAgICAgICAgZ2wuZ2xCZWdpbihHTC5HTF9RVUFEUyk7DQog
ICAgICAgIHsNCiAgICAgICAgICAgIGdsLmdsTm9ybWFsM2QoMCwgMCwgMSk7DQogICAgICAgICAg
ICBnbC5nbE11bHRpVGV4Q29vcmQyZChHTC5HTF9URVhUVVJFMCwgMCwgMCk7DQogICAgICAgICAg
ICBnbC5nbFZlcnRleDNkKC0xLCAtMSwgMCk7DQogICAgICAgICAgICBnbC5nbE11bHRpVGV4Q29v
cmQyZChHTC5HTF9URVhUVVJFMCwgMiwgMCk7DQogICAgICAgICAgICBnbC5nbFZlcnRleDNkKDEs
IC0xLCAwKTsNCiAgICAgICAgICAgIGdsLmdsTXVsdGlUZXhDb29yZDJkKEdMLkdMX1RFWFRVUkUw
LCAyLCAyKTsNCiAgICAgICAgICAgIGdsLmdsVmVydGV4M2QoMSwgMSwgMCk7DQogICAgICAgICAg
ICBnbC5nbE11bHRpVGV4Q29vcmQyZChHTC5HTF9URVhUVVJFMCwgMCwgMik7DQogICAgICAgICAg
ICBnbC5nbFZlcnRleDNkKC0xLCAxLCAwKTsNCiAgICAgICAgfQ0KICAgICAgICBnbC5nbEVuZCgp
Ow0KICAgIH0NCg0KICAgIHB1YmxpYyB2b2lkIGRpc3BsYXlDaGFuZ2VkKEdMQXV0b0RyYXdhYmxl
IGRyYXdhYmxlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbW9kZUNo
YW5nZWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkZXZpY2VDaGFu
Z2VkKQ0KICAgIHsNCiAgICAgICAgLy8gTm90aGluZyB0byBkbw0KICAgIH0NCg0KICAgIHB1Ymxp
YyB2b2lkIHJlc2hhcGUoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUsDQogICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgeCwNCiAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LA0KICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IHdpZHRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhl
aWdodCkNCiAgICB7DQogICAgICAgIC8vIE5vdGhpbmcgdG8gZG8NCiAgICB9DQoNCiAgICBwcml2
YXRlIHN0YXRpYyBjbGFzcyBPZmZzY3JlZW5SZW5kZXJlciBpbXBsZW1lbnRzIEdMRXZlbnRMaXN0
ZW5lcg0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBHTFBidWZmZXIgb2Zmc2NyZWVuVGFyZ2V0Ow0K
DQogICAgICAgIHByaXZhdGUgaW50IHRleHR1cmVEaW1lbnNpb247DQoNCiAgICAgICAgcHVibGlj
IE9mZnNjcmVlblJlbmRlcmVyKGludCB0ZXh0dXJlRGltZW5zaW9uKQ0KICAgICAgICB7DQogICAg
ICAgICAgICBzdXBlcigpOw0KDQogICAgICAgICAgICB0aGlzLnRleHR1cmVEaW1lbnNpb24gPSB0
ZXh0dXJlRGltZW5zaW9uOw0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSBib29sZWFuIGlz
RGVidWcgPSBmYWxzZTsNCg0KICAgICAgICBwdWJsaWMgdm9pZCBpbml0RnJvbVBhcmVudChHTEF1
dG9EcmF3YWJsZSBwYXJlbnQpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlzRGVidWcgPSBwYXJl
bnQuZ2V0R0woKSBpbnN0YW5jZW9mIERlYnVnR0w7DQogICAgICAgICAgICBpZiAoIUdMRHJhd2Fi
bGVGYWN0b3J5LmdldEZhY3RvcnkoKS5jYW5DcmVhdGVHTFBidWZmZXIoKSkNCiAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR0xFeGNlcHRpb24oIkNhbiBub3QgY3JlYXRl
IHBidWZmZXIiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChvZmZzY3JlZW5UYXJn
ZXQgIT0gbnVsbCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBvZmZzY3JlZW5UYXJn
ZXQuZGVzdHJveSgpOw0KICAgICAgICAgICAgICAgIG9mZnNjcmVlblRhcmdldCA9IG51bGw7DQog
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgIEdMQ2Fw
YWJpbGl0aWVzIGNhcHMgPSBuZXcgR0xDYXBhYmlsaXRpZXMoKTsNCiAgICAgICAgICAgIGNhcHMu
c2V0RG91YmxlQnVmZmVyZWQoZmFsc2UpOw0KICAgICAgICAgICAgY2Fwcy5zZXREZXB0aEJpdHMo
MjQpOw0KICAgICAgICAgICAgY2Fwcy5zZXRSZWRCaXRzKDgpOw0KICAgICAgICAgICAgY2Fwcy5z
ZXRHcmVlbkJpdHMoOCk7DQogICAgICAgICAgICBjYXBzLnNldEJsdWVCaXRzKDgpOw0KICAgICAg
ICAgICAgY2Fwcy5zZXRBbHBoYUJpdHMoOCk7DQogICAgICAgICAgICAvLyBXZSB3YW50IHRvIGJp
bmQgYm90aCB0aGUgY29sb3VyIGJ1ZmZlciBhbmQgdGhlIGRlcHRoIGJ1ZmZlciB0bw0KICAgICAg
ICAgICAgLy8gdGV4dHVyZXMNCiAgICAgICAgICAgIGNhcHMuc2V0T2Zmc2NyZWVuUmVuZGVyVG9U
ZXh0dXJlKHRydWUpOw0KICAgICAgICAgICAgY2Fwcy5zZXRPZmZzY3JlZW5SZW5kZXJUb1RleHR1
cmVSZWN0YW5nbGUoZmFsc2UpOw0KICAgICAgICAgICAgb2Zmc2NyZWVuVGFyZ2V0ID0gR0xEcmF3
YWJsZUZhY3RvcnkuZ2V0RmFjdG9yeSgpDQogICAgICAgICAgICAgICAgLmNyZWF0ZUdMUGJ1ZmZl
cihjYXBzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVEaW1lbnNpb24sDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlRGltZW5zaW9uLA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyZW50LmdldENvbnRleHQoKSk7DQogICAgICAgICAgICBvZmZzY3Jl
ZW5UYXJnZXQuYWRkR0xFdmVudExpc3RlbmVyKHRoaXMpOw0KICAgICAgICB9DQoNCiAgICAgICAg
cHVibGljIHZvaWQgaW5pdChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkNCiAgICAgICAgew0KICAg
ICAgICAgICAgaWYgKGlzRGVidWcgJiYgIShkcmF3YWJsZS5nZXRHTCgpIGluc3RhbmNlb2YgRGVi
dWdHTCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZHJhd2FibGUuc2V0R0wobmV3
IERlYnVnR0woZHJhd2FibGUuZ2V0R0woKSkpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg
ICBHTCBnbCA9IGRyYXdhYmxlLmdldEdMKCk7DQoNCiAgICAgICAgICAgIGdsLmdsRW5hYmxlKEdM
LkdMX0RFUFRIX1RFU1QpOw0KICAgICAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xfTk9STUFMSVpF
KTsNCiAgICAgICAgICAgIGdsLmdsRGlzYWJsZShHTC5HTF9MSUdIVElORyk7DQoNCiAgICAgICAg
ICAgIGdsLmdsQ2xlYXJDb2xvcigwLCAwLCAxLCAwKTsNCg0KICAgICAgICAgICAgLy8gUGxhY2Ug
dGhlIG9mZnNjcmVlbiBjYW1lcmEgYXQgdGhlIGxpZ2h0IHBvc2l0aW9uDQogICAgICAgICAgICBn
bC5nbFB1c2hBdHRyaWIoR0wuR0xfVFJBTlNGT1JNX0JJVCk7DQogICAgICAgICAgICB7DQogICAg
ICAgICAgICAgICAgZ2wuZ2xNYXRyaXhNb2RlKEdMLkdMX1BST0pFQ1RJT04pOw0KICAgICAgICAg
ICAgICAgIGdsLmdsUHVzaE1hdHJpeCgpOw0KICAgICAgICAgICAgICAgIGdsLmdsTG9hZElkZW50
aXR5KCk7DQogICAgICAgICAgICAgICAgYXBwbHlMaWdodEZydXN0dW0oZ2wpOw0KDQogICAgICAg
ICAgICAgICAgZ2wuZ2xNYXRyaXhNb2RlKEdMLkdMX01PREVMVklFVyk7DQogICAgICAgICAgICAg
ICAgZ2wuZ2xQdXNoTWF0cml4KCk7DQogICAgICAgICAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHko
KTsNCiAgICAgICAgICAgICAgICBhcHBseUxpZ2h0VHJhbnNmb3JtYXRpb24oZ2wpOw0KICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgZ2wuZ2xQb3BBdHRyaWIoKTsNCiAgICAgICAgfQ0KDQogICAg
ICAgIHByaXZhdGUgdm9pZCBhcHBseUxpZ2h0RnJ1c3R1bShHTCBnbCkNCiAgICAgICAgew0KICAg
ICAgICAgICAgLy8gU2V0IHVwIHRoZSB2aWV3aW5nIGZydXN0dW0gc28gdGhhdCB0aGUgbGlnaHQg
b25seSBzZWVzIHRoZQ0KICAgICAgICAgICAgLy8gdm9sdW1lIGJldHdlZW4gaXRzZWxmIGFuZCB0
aGUgdW5pdCBYLVkgc3F1YXJlIGF0IHRoZSBvcmlnaW4NCiAgICAgICAgICAgIC8vIChiZWNhdXNl
IHRoYXQgaXMgdGhlIG9ubHkgdm9sdW1lIGluIHdoaWNoIHdlIHdpbGwgYmUgY2FzdGluZw0KICAg
ICAgICAgICAgLy8gc2hhZG93cykuDQogICAgICAgICAgICBnbC5nbEZydXN0dW0oLTIuMCAvIDEw
LCAwLCAtMS4wIC8gMTAsIDEuMCAvIDEwLCAxLCAxMCk7DQogICAgICAgIH0NCg0KICAgICAgICBw
cml2YXRlIHZvaWQgYXBwbHlMaWdodFRyYW5zZm9ybWF0aW9uKEdMIGdsKQ0KICAgICAgICB7DQog
ICAgICAgICAgICBnbC5nbFRyYW5zbGF0ZWQoLWxpZ2h0UG9zaXRpb25bMF0sDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLWxpZ2h0UG9zaXRpb25bMV0sDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLWxpZ2h0UG9zaXRpb25bMl0pOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGlj
IHZvaWQgcmVuZGVyT2Zmc2NyZWVuKCkNCiAgICAgICAgew0KICAgICAgICAgICAgb2Zmc2NyZWVu
VGFyZ2V0LmRpc3BsYXkoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHByaXZhdGUgaW50IGNvdW50
ZXIgPSAwOw0KICAgICAgICBwdWJsaWMgdm9pZCBkaXNwbGF5KEdMQXV0b0RyYXdhYmxlIGRyYXdh
YmxlKQ0KICAgICAgICB7DQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBidWZmZXIg
cmVuZGVyaW5nIik7DQogICAgICAgICAgICBHTCBnbCA9IGRyYXdhYmxlLmdldEdMKCk7DQoNCiAg
ICAgICAgICAgIGdsLmdsQ2xlYXIoR0wuR0xfQ09MT1JfQlVGRkVSX0JJVCB8IEdMLkdMX0RFUFRI
X0JVRkZFUl9CSVQpOw0KDQogICAgICAgICAgICBpZiAoY291bnRlcisrICUgMiA9PSAwKQ0KICAg
ICAgICAgICAgew0KICAgICAgICAgICAgICAgIC8vIERyYXcgdGhlIHRlYXBvdCBhcyBhIHJlZCBz
aWxob3VldHRlDQogICAgICAgICAgICAgIGdsLmdsQ29sb3IzZCgxLCAwLCAwKTsNCiAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAv
LyBEcmF3IHRoZSB0ZWFwb3QgYXMgYSBncmVlbiBzaWxob3VldHRlDQogICAgICAgICAgICAgICAg
Z2wuZ2xDb2xvcjNkKDAsIDEsIDApOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZHJhd0Zs
b2F0aW5nVGVhcG90KGRyYXdhYmxlKTsNCiAgICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lk
IHByZXBhcmVGb3JDb2xvdXJlZFJlbmRlcmluZyhHTEF1dG9EcmF3YWJsZSB0YXJnZXREcmF3YWJs
ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0
ZXh0dXJlVW5pdElEKQ0KICAgICAgICB7DQogICAgICAgICAgICBHTCBnbCA9IHRhcmdldERyYXdh
YmxlLmdldEdMKCk7DQoNCiAgICAgICAgICAgIC8vIFRoZSBzdGF0ZSBtb2RpZmllZCBieSB0aGlz
IHByZXBhcmF0aW9uIHdpbGwgYmUgcmVzdG9yZWQgYnkgYSBjYWxsDQogICAgICAgICAgICAvLyB0
byBmaW5pc2hTaGFkb3dlZFJlbmRlcmluZygpDQogICAgICAgICAgICBnbC5nbFB1c2hBdHRyaWIo
R0wuR0xfVEVYVFVSRV9CSVQpOw0KDQogICAgICAgICAgICBnbC5nbEFjdGl2ZVRleHR1cmUodGV4
dHVyZVVuaXRJRCk7DQogICAgICAgICAgICAvLyBVc2UgdGhlIHBidWZmZXIgYXMgYSBjb2xvdXIg
dGV4dHVyZQ0KICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQYnVmZmVyIGJvdW5kIik7
DQogICAgICAgICAgICBvZmZzY3JlZW5UYXJnZXQuYmluZFRleHR1cmUoKTsNCg0KICAgICAgICAg
ICAgLy8gU2V0IHRoZSB0ZXh0dXJlIHVwIHRvIGJlIHVzZWQgZm9yIHBhaW50aW5nIGEgc3VyZmFj
ZQ0KICAgICAgICAgICAgaW50IHRleHR1cmVUYXJnZXQgPSBHTC5HTF9URVhUVVJFXzJEOw0KICAg
ICAgICAgICAgZ2wuZ2xFbmFibGUodGV4dHVyZVRhcmdldCk7DQogICAgICAgICAgICBnbC5nbFRl
eEVudmkoR0wuR0xfVEVYVFVSRV9FTlYsDQogICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xf
VEVYVFVSRV9FTlZfTU9ERSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9NT0RVTEFU
RSk7DQogICAgICAgICAgICBnbC5nbFRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9URVhUVVJFX01JTl9GSUxURVIsDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xfTElORUFSKTsNCiAgICAgICAgICAgIGds
LmdsVGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMLkdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTC5HTF9MSU5FQVIpOw0KICAgICAgICAgICAgZ2wuZ2xUZXhQYXJhbWV0ZXJpKHRl
eHR1cmVUYXJnZXQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xfVEVYVFVS
RV9XUkFQX1MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xfUkVQRUFUKTsN
CiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfV1JBUF9ULA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMLkdMX1JFUEVBVCk7DQogICAgICAgIH0NCg0KICAgICAgICBw
dWJsaWMgdm9pZCBzdG9wQ29sb3VyZWRSZW5kZXJpbmcoR0xBdXRvRHJhd2FibGUgdGFyZ2V0RHJh
d2FibGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIEdMIGdsID0gdGFyZ2V0RHJhd2FibGUuZ2V0
R0woKTsNCg0KICAgICAgICAgICAgLy8gVGhlIHBidWZmZXIgTVVTVCBiZSByZWxlYXNlZCBmcm9t
IHRoZSB0ZXh0dXJlIGJlZm9yZSBpdCBjYW4gYmUNCiAgICAgICAgICAgIC8vIGRyYXduIHRvIGFn
YWluLg0KICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQYnVmZmVyIHJlbGVhc2VkIik7
DQogICAgICAgICAgICBvZmZzY3JlZW5UYXJnZXQucmVsZWFzZVRleHR1cmUoKTsNCg0KICAgICAg
ICAgICAgLy8gUmVzdG9yZSB0aGUgYWN0aXZlIHRleHR1cmUNCiAgICAgICAgICAgIGdsLmdsUG9w
QXR0cmliKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCBkaXNwbGF5Q2hhbmdl
ZChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbGVhbiBtb2RlQ2hhbmdlZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbGVhbiBkZXZpY2VDaGFuZ2VkKQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyBO
b3RoaW5nIHRvIGRvDQogICAgICAgIH0NCg0KICAgICAgICBwdWJsaWMgdm9pZCByZXNoYXBlKEdM
QXV0b0RyYXdhYmxlIGRyYXdhYmxlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4
LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCB3aWR0aCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGVp
Z2h0KQ0KICAgICAgICB7DQogICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvDQogICAgICAgIH0N
Cg0KICAgIH0NCg0KfQ0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>73</attachid>
            <date>2006-02-07 14:28:00 +0100</date>
            <delta_ts>2006-02-07 14:28:00 +0100</delta_ts>
            <desc>Framebuffer object implementation of the desired functionality</desc>
            <filename>RenderToTextureFBO.java</filename>
            <type>text/plain</type>
            <size>18693</size>
            <attacher name="Sven Gothel">sgothel</attacher>
            
              <data encoding="base64">cGFja2FnZSBkZW1vcy5yZW5kZXJUb1RleHR1cmU7DQoNCmltcG9ydCBqYXZhLmF3dC5ldmVudC5X
aW5kb3dBZGFwdGVyOw0KaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50Ow0KDQppbXBv
cnQgamF2YXgubWVkaWEub3BlbmdsLkRlYnVnR0w7DQppbXBvcnQgamF2YXgubWVkaWEub3Blbmds
LkdMOw0KaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTEF1dG9EcmF3YWJsZTsNCmltcG9ydCBq
YXZheC5tZWRpYS5vcGVuZ2wuR0xDYW52YXM7DQppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdM
RXZlbnRMaXN0ZW5lcjsNCmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xFeGNlcHRpb247DQpp
bXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOw0KDQppbXBvcnQgY29tLnN1bi5vcGVuZ2wudXRpbHMu
R0xVVDsNCg0KcHVibGljIGNsYXNzIFJlbmRlclRvVGV4dHVyZUZCTyBpbXBsZW1lbnRzIEdMRXZl
bnRMaXN0ZW5lcg0Kew0KICAgIHByaXZhdGUgc3RhdGljIEdMVVQgZ2x1dCA9IG5ldyBHTFVUKCk7
DQoNCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQ0KICAgIHsNCiAg
ICAgICAgUmVuZGVyVG9UZXh0dXJlRkJPIHJlbmRlcmVyID0gbmV3IFJlbmRlclRvVGV4dHVyZUZC
TygpOw0KDQogICAgICAgIEdMQ2FudmFzIGNhbnZhcyA9IG5ldyBHTENhbnZhcygpOw0KDQogICAg
ICAgIGNhbnZhcy5hZGRHTEV2ZW50TGlzdGVuZXIocmVuZGVyZXIpOw0KDQogICAgICAgIEpGcmFt
ZSBmcmFtZSA9IG5ldyBKRnJhbWUoIlJlbmRlciBUbyBUZXh0dXJlIERlbW8iKTsNCg0KICAgICAg
ICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpDQogICAgICAgIHsN
CiAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZXZ0KQ0K
ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOw0KICAgICAgICAg
ICAgfQ0KICAgICAgICB9KTsNCg0KICAgICAgICBmcmFtZS5nZXRDb250ZW50UGFuZSgpLmFkZChj
YW52YXMpOw0KICAgICAgICBjYW52YXMuc2V0U2l6ZSgzMDAsIDMwMCk7DQoNCiAgICAgICAgZnJh
bWUucGFjaygpOw0KICAgICAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOw0KICAgIH0NCg0KICAg
IHByaXZhdGUgc3RhdGljIGZsb2F0W10gbGlnaHRQb3NpdGlvbiA9IG5ldyBmbG9hdFtdDQogICAg
ew0KICAgICAgICAxLCAwLCAxMCwgMQ0KICAgIH07DQoNCiAgICBwcml2YXRlIEZyYW1lYnVmZmVy
T2JqZWN0UmVuZGVyZXIgZnJhbWVidWZmZXJSZW5kZXJlcjsNCg0KICAgIHByaXZhdGUgYm9vbGVh
biBpc0ZyYW1lYnVmZmVyUmVuZGVyZXJDcmVhdGVkID0gZmFsc2U7DQoNCiAgICBwdWJsaWMgdm9p
ZCBpbml0KEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKQ0KICAgIHsNCiAgICAgICAgZHJhd2FibGUu
c2V0R0wobmV3IERlYnVnR0woZHJhd2FibGUuZ2V0R0woKSkpOw0KDQogICAgICAgIEdMIGdsID0g
ZHJhd2FibGUuZ2V0R0woKTsNCg0KICAgICAgICBnbC5nbEVuYWJsZShHTC5HTF9ERVBUSF9URVNU
KTsNCiAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xfTk9STUFMSVpFKTsNCiAgICAgICAgZ2wuZ2xF
bmFibGUoR0wuR0xfTElHSFRJTkcpOw0KDQogICAgICAgIGdsLmdsQ2xlYXJDb2xvcigwLjVmLCAw
LjVmLCAwLjVmLCAwKTsNCg0KICAgICAgICAvLyBQbGFjZSB0aGUgY2FtZXJhDQogICAgICAgIGds
LmdsTWF0cml4TW9kZShHTC5HTF9QUk9KRUNUSU9OKTsNCiAgICAgICAgZ2wuZ2xMb2FkSWRlbnRp
dHkoKTsNCiAgICAgICAgZ2wuZ2xGcnVzdHVtKC0yLjAgLyAxMCwgMi4wIC8gMTAsIC0yLjAgLyAx
MCwgMi4wIC8gMTAsIDEsIDExKTsNCg0KICAgICAgICBnbC5nbE1hdHJpeE1vZGUoR0wuR0xfTU9E
RUxWSUVXKTsNCiAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHkoKTsNCiAgICAgICAgZ2wuZ2xUcmFu
c2xhdGVkKDAsIDAsIC0xMCk7DQoNCiAgICAgICAgLy8gQ29uZmlndXJlIHRoZSBsaWdodA0KICAg
ICAgICBnbC5nbEVuYWJsZShHTC5HTF9MSUdIVDApOw0KICAgICAgICBnbC5nbExpZ2h0ZnYoR0wu
R0xfTElHSFQwLCBHTC5HTF9QT1NJVElPTiwgbGlnaHRQb3NpdGlvbiwgMCk7DQoNCiAgICAgICAg
aWYgKCFpc0ZyYW1lYnVmZmVyUmVuZGVyZXJDcmVhdGVkKQ0KICAgICAgICB7DQogICAgICAgICAg
ICBmcmFtZWJ1ZmZlclJlbmRlcmVyID0gbmV3IEZyYW1lYnVmZmVyT2JqZWN0UmVuZGVyZXIoMjU2
KTsNCiAgICAgICAgICAgIGZyYW1lYnVmZmVyUmVuZGVyZXIuaW5pdChkcmF3YWJsZSk7DQogICAg
ICAgICAgICBpc0ZyYW1lYnVmZmVyUmVuZGVyZXJDcmVhdGVkID0gdHJ1ZTsNCiAgICAgICAgfQ0K
ICAgIH0NCg0KICAgIHB1YmxpYyB2b2lkIGRpc3BsYXkoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUp
DQogICAgew0KICAgICAgICBHTCBnbCA9IGRyYXdhYmxlLmdldEdMKCk7DQoNCiAgICAgICAgZ2wu
Z2xDbGVhcihHTC5HTF9DT0xPUl9CVUZGRVJfQklUIHwgR0wuR0xfREVQVEhfQlVGRkVSX0JJVCk7
DQoNCiAgICAgICAgZnJhbWVidWZmZXJSZW5kZXJlci5yZW5kZXJUb0ZyYW1lQnVmZmVyKGRyYXdh
YmxlKTsNCg0KICAgICAgICAvLyBEcmF3IHRoZSB0ZWFwb3QgY2FzdGluZyBhIHNoYWRvdyBvbiBh
IHJlcGVhdGVkIHBpY3R1cmUgb2YgdGhlDQogICAgICAgIC8vIG9mZnNjcmVlbiBjb2xvdXIgYnVm
ZmVyLg0KICAgICAgICAvLyBXZSdsbCB1c2UgbXVsdGktdGV4dHVyZSB1bml0IDEgZm9yIHRoZSBz
aGFkb3dpbmcuLi4NCiAgICAgICAgZnJhbWVidWZmZXJSZW5kZXJlci5wcmVwYXJlRm9yU2hhZG93
ZWRSZW5kZXJpbmcoZHJhd2FibGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkUxKTsNCiAgICAgICAgLy8gLi4uIGFu
ZCBtdWx0aS10ZXh0dXJlIHVuaXQgMCBmb3IgdGhlIHBpY3R1cmUNCiAgICAgICAgZnJhbWVidWZm
ZXJSZW5kZXJlci5wcmVwYXJlRm9yQ29sb3VyZWRSZW5kZXJpbmcoZHJhd2FibGUsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RF
WFRVUkUwKTsNCiAgICAgICAgZHJhd1NxdWFyZShkcmF3YWJsZSk7DQogICAgICAgIGZyYW1lYnVm
ZmVyUmVuZGVyZXIuc3RvcENvbG91cmVkUmVuZGVyaW5nKGRyYXdhYmxlKTsNCiAgICAgICAgZHJh
d0Zsb2F0aW5nVGVhcG90KGRyYXdhYmxlKTsNCiAgICAgICAgZnJhbWVidWZmZXJSZW5kZXJlci5z
dG9wU2hhZG93ZWRSZW5kZXJpbmcoZHJhd2FibGUsIEdMLkdMX1RFWFRVUkUxKTsNCiAgICB9DQoN
CiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRyYXdGbG9hdGluZ1RlYXBvdChHTEF1dG9EcmF3YWJs
ZSBkcmF3YWJsZSkNCiAgICB7DQogICAgICAgIEdMIGdsID0gZHJhd2FibGUuZ2V0R0woKTsNCg0K
ICAgICAgICBnbC5nbFB1c2hBdHRyaWIoR0wuR0xfVFJBTlNGT1JNX0JJVCk7DQogICAgICAgIHsN
CiAgICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShHTC5HTF9NT0RFTFZJRVcpOw0KICAgICAgICAg
ICAgZ2wuZ2xQdXNoTWF0cml4KCk7DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZ2wu
Z2xUcmFuc2xhdGVkKDAuNSwgMCwgMyk7DQogICAgICAgICAgICAgICAgZ2x1dC5nbHV0U29saWRU
ZWFwb3QoMC4yNSwgdHJ1ZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnbC5nbFBvcE1h
dHJpeCgpOw0KICAgICAgICB9DQogICAgICAgIGdsLmdsUG9wQXR0cmliKCk7DQogICAgfQ0KDQog
ICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBkcmF3U3F1YXJlKEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxl
KQ0KICAgIHsNCiAgICAgICAgR0wgZ2wgPSBkcmF3YWJsZS5nZXRHTCgpOw0KDQogICAgICAgIGds
LmdsQmVnaW4oR0wuR0xfUVVBRFMpOw0KICAgICAgICB7DQogICAgICAgICAgICBnbC5nbE5vcm1h
bDNkKDAsIDAsIDEpOw0KICAgICAgICAgICAgZ2wuZ2xNdWx0aVRleENvb3JkMmQoR0wuR0xfVEVY
VFVSRTAsIDAsIDApOw0KICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZCgtMSwgLTEsIDApOw0KICAg
ICAgICAgICAgZ2wuZ2xNdWx0aVRleENvb3JkMmQoR0wuR0xfVEVYVFVSRTAsIDIsIDApOw0KICAg
ICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZCgxLCAtMSwgMCk7DQogICAgICAgICAgICBnbC5nbE11bHRp
VGV4Q29vcmQyZChHTC5HTF9URVhUVVJFMCwgMiwgMik7DQogICAgICAgICAgICBnbC5nbFZlcnRl
eDNkKDEsIDEsIDApOw0KICAgICAgICAgICAgZ2wuZ2xNdWx0aVRleENvb3JkMmQoR0wuR0xfVEVY
VFVSRTAsIDAsIDIpOw0KICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZCgtMSwgMSwgMCk7DQogICAg
ICAgIH0NCiAgICAgICAgZ2wuZ2xFbmQoKTsNCiAgICB9DQoNCiAgICBwdWJsaWMgdm9pZCBkaXNw
bGF5Q2hhbmdlZChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBib29sZWFuIG1vZGVDaGFuZ2VkLA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2xlYW4gZGV2aWNlQ2hhbmdlZCkNCiAgICB7DQogICAgICAgIC8vIE5vdGhpbmcg
dG8gZG8NCiAgICB9DQoNCiAgICBwdWJsaWMgdm9pZCByZXNoYXBlKEdMQXV0b0RyYXdhYmxlIGRy
YXdhYmxlLA0KICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsDQogICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgeSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwNCiAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQpDQogICAgew0KICAgICAgICAvLyBOb3RoaW5n
IHRvIGRvDQogICAgfQ0KDQogICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgRnJhbWVidWZmZXJPYmpl
Y3RSZW5kZXJlcg0KICAgIHsNCiAgICAgICAgcHJpdmF0ZSBpbnQgdGV4dHVyZURpbWVuc2lvbjsN
Cg0KICAgICAgICBwcml2YXRlIGludCBmcmFtZUJ1ZmZlcklEOw0KICAgICAgICBwcml2YXRlIGlu
dCBjb2xvdXJUZXh0dXJlSUQ7DQogICAgICAgIHByaXZhdGUgaW50IGRlcHRoVGV4dHVyZUlEOw0K
DQogICAgICAgIHB1YmxpYyBGcmFtZWJ1ZmZlck9iamVjdFJlbmRlcmVyKGludCB0ZXh0dXJlRGlt
ZW5zaW9uKQ0KICAgICAgICB7DQogICAgICAgICAgICBzdXBlcigpOw0KDQogICAgICAgICAgICB0
aGlzLnRleHR1cmVEaW1lbnNpb24gPSB0ZXh0dXJlRGltZW5zaW9uOw0KICAgICAgICB9DQoNCiAg
ICAgICAgcHVibGljIHZvaWQgaW5pdChHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkNCiAgICAgICAg
ew0KICAgICAgICAgICAgR0wgZ2wgPSBkcmF3YWJsZS5nZXRHTCgpOw0KDQogICAgICAgICAgICAv
LyBBbGxvY2F0ZSB0aGUgZnJhbWVidWZmZXIgb2JqZWN0DQogICAgICAgICAgICBpbnRbXSByZXN1
bHQgPSBuZXcgaW50WzFdOw0KICAgICAgICAgICAgZ2wuZ2xHZW5GcmFtZWJ1ZmZlcnNFWFQoMSwg
cmVzdWx0LCAwKTsNCiAgICAgICAgICAgIGZyYW1lQnVmZmVySUQgPSByZXN1bHRbMF07DQogICAg
ICAgICAgICBnbC5nbEJpbmRGcmFtZWJ1ZmZlckVYVChHTC5HTF9GUkFNRUJVRkZFUl9FWFQsIGZy
YW1lQnVmZmVySUQpOw0KDQogICAgICAgICAgICAvLyBBbGxvY2F0ZSB0aGUgY29sb3VyIHRleHR1
cmUNCiAgICAgICAgICAgIGdsLmdsR2VuVGV4dHVyZXMoMSwgcmVzdWx0LCAwKTsNCiAgICAgICAg
ICAgIGNvbG91clRleHR1cmVJRCA9IHJlc3VsdFswXTsNCiAgICAgICAgICAgIGdsLmdsQmluZFRl
eHR1cmUoR0wuR0xfVEVYVFVSRV8yRCwgY29sb3VyVGV4dHVyZUlEKTsNCiAgICAgICAgICAgIGds
LmdsVGV4UGFyYW1ldGVyaShHTC5HTF9URVhUVVJFXzJELA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMLkdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTC5HTF9ORUFSRVNUKTsNCiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVy
aShHTC5HTF9URVhUVVJFXzJELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdM
X1RFWFRVUkVfTUFHX0ZJTFRFUiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5H
TF9ORUFSRVNUKTsNCiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaShHTC5HTF9URVhUVVJF
XzJELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfV1JBUF9T
LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX0NMQU1QX1RPX0VER0UpOw0K
ICAgICAgICAgICAgZ2wuZ2xUZXhQYXJhbWV0ZXJpKEdMLkdMX1RFWFRVUkVfMkQsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xfVEVYVFVSRV9XUkFQX1QsDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0wuR0xfQ0xBTVBfVE9fRURHRSk7DQogICAgICAgICAgICBn
bC5nbFRleEltYWdlMkQoR0wuR0xfVEVYVFVSRV8yRCwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1JHQkE4LA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmVEaW1lbnNpb24sDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dHVyZURpbWVuc2lvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1JHQkEsDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0wuR0xfVU5TSUdORURfQllURSwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBudWxsKTsNCg0KICAgICAgICAgICAgLy8gQWxsb2NhdGUgdGhlIGRlcHRoIHRl
eHR1cmUNCiAgICAgICAgICAgIGdsLmdsR2VuVGV4dHVyZXMoMSwgcmVzdWx0LCAwKTsNCiAgICAg
ICAgICAgIGRlcHRoVGV4dHVyZUlEID0gcmVzdWx0WzBdOw0KICAgICAgICAgICAgZ2wuZ2xCaW5k
VGV4dHVyZShHTC5HTF9URVhUVVJFXzJELCBkZXB0aFRleHR1cmVJRCk7DQogICAgICAgICAgICBn
bC5nbFRleFBhcmFtZXRlcmkoR0wuR0xfVEVYVFVSRV8yRCwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTC5HTF9URVhUVVJFX01JTl9GSUxURVIsDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0wuR0xfTkVBUkVTVCk7DQogICAgICAgICAgICBnbC5nbFRleFBhcmFtZXRl
cmkoR0wuR0xfVEVYVFVSRV8yRCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5H
TF9URVhUVVJFX01BR19GSUxURVIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wu
R0xfTkVBUkVTVCk7DQogICAgICAgICAgICBnbC5nbFRleFBhcmFtZXRlcmkoR0wuR0xfVEVYVFVS
RV8yRCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9URVhUVVJFX1dSQVBf
UywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9DTEFNUF9UT19FREdFKTsN
CiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaShHTC5HTF9URVhUVVJFXzJELA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfV1JBUF9ULA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX0NMQU1QX1RPX0VER0UpOw0KICAgICAgICAgICAg
Z2wuZ2xHZXRJbnRlZ2VydihHTC5HTF9ERVBUSF9CSVRTLCByZXN1bHQsIDApOw0KICAgICAgICAg
ICAgaW50IGRlcHRoRm9ybWF0Ow0KICAgICAgICAgICAgc3dpdGNoIChyZXN1bHRbMF0pDQogICAg
ICAgICAgICB7DQogICAgICAgICAgICAgICAgY2FzZSAxNjoNCiAgICAgICAgICAgICAgICAgICAg
ZGVwdGhGb3JtYXQgPSBHTC5HTF9ERVBUSF9DT01QT05FTlQxNjsNCiAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAyNDoNCiAgICAgICAgICAgICAgICAgICAg
ZGVwdGhGb3JtYXQgPSBHTC5HTF9ERVBUSF9DT01QT05FTlQyNDsNCiAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAzMjoNCiAgICAgICAgICAgICAgICAgICAg
ZGVwdGhGb3JtYXQgPSBHTC5HTF9ERVBUSF9DT01QT05FTlQzMjsNCiAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEdMRXhjZXB0aW9uKCJVbmV4cGVjdGVkIG51bWJlciBvZiBkZXB0aCBiaXRzOiAi
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJlc3VsdFswXSk7
DQogICAgICAgICAgICB9DQogICAgICAgICAgICBnbC5nbFRleEltYWdlMkQoR0wuR0xfVEVYVFVS
RV8yRCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlcHRoRm9ybWF0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1
cmVEaW1lbnNpb24sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZURpbWVuc2lv
biwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMLkdMX0RFUFRIX0NPTVBPTkVOVCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHTC5HTF9VTlNJR05FRF9JTlQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCk7
DQoNCiAgICAgICAgICAgIC8vIEF0dGFjaCB0aGUgdGV4dHVyZXMgdG8gdGhlIGZyYW1lYnVmZmVy
DQogICAgICAgICAgICBnbC5nbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhUKEdMLkdMX0ZSQU1FQlVG
RkVSX0VYVCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xf
Q09MT1JfQVRUQUNITUVOVDBfRVhULA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTC5HTF9URVhUVVJFXzJELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2xvdXJUZXh0dXJlSUQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDApOw0KICAgICAgICAgICAgZ2wuZ2xGcmFtZWJ1ZmZlclRleHR1cmUyREVY
VChHTC5HTF9GUkFNRUJVRkZFUl9FWFQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMLkdMX0RFUFRIX0FUVEFDSE1FTlRfRVhULA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9URVhUVVJFXzJELA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aFRleHR1cmVJRCwNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7DQogICAgICAgICAgICANCiAgICAgICAgICAg
IGdsLmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMLkdMX0ZSQU1FQlVGRkVSX0VYVCwgMCk7DQogICAg
ICAgIH0NCg0KICAgICAgICBwcml2YXRlIGludCBjb3VudGVyID0gMDsNCg0KICAgICAgICBwdWJs
aWMgdm9pZCByZW5kZXJUb0ZyYW1lQnVmZmVyKEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKQ0KICAg
ICAgICB7DQogICAgICAgICAgICBHTCBnbCA9IGRyYXdhYmxlLmdldEdMKCk7DQoNCiAgICAgICAg
ICAgIGdsLmdsUHVzaEF0dHJpYihHTC5HTF9UUkFOU0ZPUk1fQklUIHwgR0wuR0xfRU5BQkxFX0JJ
VA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR0wuR0xfQ09MT1JfQlVGRkVSX0JJVCk7
DQoNCiAgICAgICAgICAgIGdsLmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMLkdMX0ZSQU1FQlVGRkVS
X0VYVCwgZnJhbWVCdWZmZXJJRCk7DQoNCiAgICAgICAgICAgIGdsLmdsRW5hYmxlKEdMLkdMX0RF
UFRIX1RFU1QpOw0KICAgICAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xfTk9STUFMSVpFKTsNCiAg
ICAgICAgICAgIGdsLmdsRGlzYWJsZShHTC5HTF9MSUdIVElORyk7DQoNCiAgICAgICAgICAgIGds
LmdsQ2xlYXJDb2xvcigwLCAwLCAxLCAwKTsNCg0KICAgICAgICAgICAgLy8gUGxhY2UgdGhlIG9m
ZnNjcmVlbiBjYW1lcmEgYXQgdGhlIGxpZ2h0IHBvc2l0aW9uDQogICAgICAgICAgICBnbC5nbE1h
dHJpeE1vZGUoR0wuR0xfUFJPSkVDVElPTik7DQogICAgICAgICAgICBnbC5nbFB1c2hNYXRyaXgo
KTsNCiAgICAgICAgICAgIGdsLmdsTG9hZElkZW50aXR5KCk7DQogICAgICAgICAgICBhcHBseUxp
Z2h0RnJ1c3R1bShnbCk7DQoNCiAgICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShHTC5HTF9NT0RF
TFZJRVcpOw0KICAgICAgICAgICAgZ2wuZ2xQdXNoTWF0cml4KCk7DQogICAgICAgICAgICBnbC5n
bExvYWRJZGVudGl0eSgpOw0KICAgICAgICAgICAgYXBwbHlMaWdodFRyYW5zZm9ybWF0aW9uKGds
KTsNCg0KICAgICAgICAgICAgZ2wuZ2xDbGVhcihHTC5HTF9DT0xPUl9CVUZGRVJfQklUIHwgR0wu
R0xfREVQVEhfQlVGRkVSX0JJVCk7DQoNCiAgICAgICAgICAgIC8vIERyYXcgdGhlIHRlYXBvdCBh
cyBhIHJlZCBzaWxob3VldHRlDQogICAgICAgICAgICBpZiAoY291bnRlcisrICUgMiA9PSAwKQ0K
ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGdsLmdsQ29sb3IzZCgxLCAwLCAwKTsNCiAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg
ICAgICBnbC5nbENvbG9yM2QoMCwgMSwgMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBk
cmF3RmxvYXRpbmdUZWFwb3QoZHJhd2FibGUpOw0KICAgICAgICAgICAgLy8gRG9uJ3QgZHJhdyB0
aGUgc3F1YXJlIChiZWNhdXNlIHdlIGRvbid0IHdhbnQgaXQgdG8gY2FzdCBhIHNoYWRvdykNCg0K
ICAgICAgICAgICAgLy8gVW5iaW5kIHRoZSBmcmFtZWJ1ZmZlcg0KICAgICAgICAgICAgZ2wuZ2xC
aW5kRnJhbWVidWZmZXJFWFQoR0wuR0xfRlJBTUVCVUZGRVJfRVhULCAwKTsNCg0KICAgICAgICAg
ICAgZ2wuZ2xNYXRyaXhNb2RlKEdMLkdMX1BST0pFQ1RJT04pOw0KICAgICAgICAgICAgZ2wuZ2xQ
b3BNYXRyaXgoKTsNCiAgICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShHTC5HTF9NT0RFTFZJRVcp
Ow0KICAgICAgICAgICAgZ2wuZ2xQb3BNYXRyaXgoKTsNCiAgICAgICAgICAgIGdsLmdsUG9wQXR0
cmliKCk7DQogICAgICAgIH0NCg0KICAgICAgICBwcml2YXRlIHZvaWQgYXBwbHlMaWdodEZydXN0
dW0oR0wgZ2wpDQogICAgICAgIHsNCiAgICAgICAgICAgIC8vIFNldCB1cCB0aGUgdmlld2luZyBm
cnVzdHVtIHNvIHRoYXQgdGhlIGxpZ2h0IG9ubHkgc2VlcyB0aGUNCiAgICAgICAgICAgIC8vIHZv
bHVtZSBiZXR3ZWVuIGl0c2VsZiBhbmQgdGhlIHVuaXQgWC1ZIHNxdWFyZSBhdCB0aGUgb3JpZ2lu
DQogICAgICAgICAgICAvLyAoYmVjYXVzZSB0aGF0IGlzIHRoZSBvbmx5IHZvbHVtZSBpbiB3aGlj
aCB3ZSB3aWxsIGJlIGNhc3RpbmcNCiAgICAgICAgICAgIC8vIHNoYWRvd3MpLg0KICAgICAgICAg
ICAgZ2wuZ2xGcnVzdHVtKC0yLjAgLyAxMCwgMCwgLTEuMCAvIDEwLCAxLjAgLyAxMCwgMSwgMTAp
Ow0KICAgICAgICB9DQoNCiAgICAgICAgcHJpdmF0ZSB2b2lkIGFwcGx5TGlnaHRUcmFuc2Zvcm1h
dGlvbihHTCBnbCkNCiAgICAgICAgew0KICAgICAgICAgICAgZ2wuZ2xUcmFuc2xhdGVkKC1saWdo
dFBvc2l0aW9uWzBdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1saWdodFBvc2l0aW9u
WzFdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1saWdodFBvc2l0aW9uWzJdKTsNCiAg
ICAgICAgfQ0KDQogICAgICAgIHB1YmxpYyB2b2lkIHByZXBhcmVGb3JTaGFkb3dlZFJlbmRlcmlu
ZyhHTEF1dG9EcmF3YWJsZSB0YXJnZXREcmF3YWJsZSwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZXh0dXJlVW5pdElEKQ0KICAgICAgICB7DQog
ICAgICAgICAgICBHTCBnbCA9IHRhcmdldERyYXdhYmxlLmdldEdMKCk7DQoNCiAgICAgICAgICAg
IC8vIFRoZSBzdGF0ZSBtb2RpZmllZCBieSB0aGlzIHByZXBhcmF0aW9uIHdpbGwgYmUgcmVzdG9y
ZWQgYnkgYSBjYWxsDQogICAgICAgICAgICAvLyB0byBmaW5pc2hTaGFkb3dlZFJlbmRlcmluZygp
DQogICAgICAgICAgICBnbC5nbFB1c2hBdHRyaWIoR0wuR0xfVEVYVFVSRV9CSVQpOw0KDQogICAg
ICAgICAgICBnbC5nbEFjdGl2ZVRleHR1cmUodGV4dHVyZVVuaXRJRCk7DQogICAgICAgICAgICBn
bC5nbEJpbmRUZXh0dXJlKEdMLkdMX1RFWFRVUkVfMkQsIGRlcHRoVGV4dHVyZUlEKTsNCiAgICAg
ICAgICAgIGdsLmdsUHVzaEF0dHJpYihHTC5HTF9URVhUVVJFX0JJVCk7DQogICAgICAgICAgICAv
LyBHZW5lcmF0ZSB0ZXh0dXJlIGNvb3JkaW5hdGVzIC0gYW4gb2JqZWN0LWxpbmVhciB0ZXh0dXJl
DQogICAgICAgICAgICAvLyBnZW5lcmF0aW9uIHRoYXQgc2V0cyB0aGUgdGV4dHVyZSBjb29yZGlu
YXRlcyB0byBiZSB0aGUNCiAgICAgICAgICAgIC8vIG9iamVjdC1zcGFjZSB2ZXJ0ZXggY29vcmRp
bmF0ZXMgKHdlIHdpbGwgdXNlIHRoZSB0ZXh0dXJlIG1hdHJpeA0KICAgICAgICAgICAgLy8gdG8g
dHJhbnNmb3JtIGZyb20gb2JqZWN0LXNwYWNlIHRvIGxpZ2h0LXNwYWNlKQ0KICAgICAgICAgICAg
Z2wuZ2xFbmFibGUoR0wuR0xfVEVYVFVSRV9HRU5fUyk7DQogICAgICAgICAgICBnbC5nbEVuYWJs
ZShHTC5HTF9URVhUVVJFX0dFTl9UKTsNCiAgICAgICAgICAgIGdsLmdsRW5hYmxlKEdMLkdMX1RF
WFRVUkVfR0VOX1IpOw0KICAgICAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xfVEVYVFVSRV9HRU5f
USk7DQogICAgICAgICAgICBnbC5nbFRleEdlbmkoR0wuR0xfUywgR0wuR0xfVEVYVFVSRV9HRU5f
TU9ERSwgR0wuR0xfT0JKRUNUX0xJTkVBUik7DQogICAgICAgICAgICBnbC5nbFRleEdlbmkoR0wu
R0xfVCwgR0wuR0xfVEVYVFVSRV9HRU5fTU9ERSwgR0wuR0xfT0JKRUNUX0xJTkVBUik7DQogICAg
ICAgICAgICBnbC5nbFRleEdlbmkoR0wuR0xfUiwgR0wuR0xfVEVYVFVSRV9HRU5fTU9ERSwgR0wu
R0xfT0JKRUNUX0xJTkVBUik7DQogICAgICAgICAgICBnbC5nbFRleEdlbmkoR0wuR0xfUSwgR0wu
R0xfVEVYVFVSRV9HRU5fTU9ERSwgR0wuR0xfT0JKRUNUX0xJTkVBUik7DQogICAgICAgICAgICBn
bC5nbFB1c2hBdHRyaWIoR0wuR0xfVFJBTlNGT1JNX0JJVCk7DQogICAgICAgICAgICB7DQogICAg
ICAgICAgICAgICAgZ2wuZ2xNYXRyaXhNb2RlKEdMLkdMX01PREVMVklFVyk7DQogICAgICAgICAg
ICAgICAgZ2wuZ2xQdXNoTWF0cml4KCk7DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgICAgICBnbC5nbExvYWRJZGVudGl0eSgpOw0KICAgICAgICAgICAgICAgICAgICBmbG9hdFtd
IG9iamVjdFBsYW5lID0gbmV3IGZsb2F0W10NCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMA0KICAgICAgICAgICAgICAgICAgICB9Ow0KICAg
ICAgICAgICAgICAgICAgICBnbC5nbFRleEdlbmZ2KEdMLkdMX1MsIEdMLkdMX09CSkVDVF9QTEFO
RSwgb2JqZWN0UGxhbmUsIDApOw0KICAgICAgICAgICAgICAgICAgICBvYmplY3RQbGFuZVswXSA9
IDA7DQogICAgICAgICAgICAgICAgICAgIG9iamVjdFBsYW5lWzFdID0gMTsNCiAgICAgICAgICAg
ICAgICAgICAgZ2wuZ2xUZXhHZW5mdihHTC5HTF9ULCBHTC5HTF9PQkpFQ1RfUExBTkUsIG9iamVj
dFBsYW5lLCAwKTsNCiAgICAgICAgICAgICAgICAgICAgb2JqZWN0UGxhbmVbMV0gPSAwOw0KICAg
ICAgICAgICAgICAgICAgICBvYmplY3RQbGFuZVsyXSA9IDE7DQogICAgICAgICAgICAgICAgICAg
IGdsLmdsVGV4R2VuZnYoR0wuR0xfUiwgR0wuR0xfT0JKRUNUX1BMQU5FLCBvYmplY3RQbGFuZSwg
MCk7DQogICAgICAgICAgICAgICAgICAgIG9iamVjdFBsYW5lWzJdID0gMDsNCiAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0UGxhbmVbM10gPSAxOw0KICAgICAgICAgICAgICAgICAgICBnbC5nbFRl
eEdlbmZ2KEdMLkdMX1EsIEdMLkdMX09CSkVDVF9QTEFORSwgb2JqZWN0UGxhbmUsIDApOw0KICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBnbC5nbFBvcE1hdHJpeCgpOw0KDQogICAg
ICAgICAgICAgICAgLy8gTW9kaWZ5IHRleHR1cmUgbWF0cml4IC0gdGhlIHRleHR1cmUgbWF0cml4
IHdpbGwgdHJhbnNmb3JtDQogICAgICAgICAgICAgICAgLy8gZnJvbSBvYmplY3Qtc3BhY2UgY29v
cmRpbmF0ZXMgdG8gbGlnaHQtc3BhY2UgKGkuZS4gdGhlIHNhbWUNCiAgICAgICAgICAgICAgICAv
LyB0cmFuc2Zvcm1hdGlvbiB0aGF0IHdhcyBhcHBsaWVkIHdoZW4gcmVuZGVyaW5nIHRoZSBzaGFk
b3cNCiAgICAgICAgICAgICAgICAvLyB0ZXh0dXJlKQ0KICAgICAgICAgICAgICAgIGdsLmdsTWF0
cml4TW9kZShHTC5HTF9URVhUVVJFKTsNCiAgICAgICAgICAgICAgICAvLyBUaGUgdGV4dHVyZSBt
YXRyaXggd2lsbCBiZSByZXN0b3JlZCBieQ0KICAgICAgICAgICAgICAgIC8vIHN0b3BTaGFkb3dl
ZFJlbmRlcmluZygpDQogICAgICAgICAgICAgICAgZ2wuZ2xQdXNoTWF0cml4KCk7DQogICAgICAg
ICAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHkoKTsNCiAgICAgICAgICAgICAgICAvLyBHbyBmcm9t
IHRoZSB1bml0IHNxdWFyZSB0byB0aGUgdXBwZXIgcXVhZHJhbnQgKGJlY2F1c2UNCiAgICAgICAg
ICAgICAgICAvLyB0ZXh0dXJlIGNvb3JkcyBydW4gZnJvbSAwIHRvIDEpDQogICAgICAgICAgICAg
ICAgZ2wuZ2xTY2FsZWYoMC41ZiwgMC41ZiwgMC41Zik7DQogICAgICAgICAgICAgICAgZ2wuZ2xU
cmFuc2xhdGVmKDEsIDEsIDEpOw0KICAgICAgICAgICAgICAgIC8vIEFwcGx5IHRoZSB0cmFuc2Zv
cm1hdGlvbiB0byBsaWdodC1zcGFjZQ0KICAgICAgICAgICAgICAgIGFwcGx5TGlnaHRGcnVzdHVt
KGdsKTsNCiAgICAgICAgICAgICAgICBhcHBseUxpZ2h0VHJhbnNmb3JtYXRpb24oZ2wpOw0KICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgZ2wuZ2xQb3BBdHRyaWIoKTsNCg0KICAgICAgICAgICAg
Ly8gU2V0IHRoZSB0ZXh0dXJlIHVwIHRvIGJlIHVzZWQgYXMgYSBkZXB0aCBjb21wYXJpc29uDQog
ICAgICAgICAgICBpbnQgdGV4dHVyZVRhcmdldCA9IEdMLkdMX1RFWFRVUkVfMkQ7DQogICAgICAg
ICAgICBnbC5nbEVuYWJsZSh0ZXh0dXJlVGFyZ2V0KTsNCiAgICAgICAgICAgIGdsLmdsVGV4RW52
aShHTC5HTF9URVhUVVJFX0VOViwNCiAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9URVhU
VVJFX0VOVl9NT0RFLA0KICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX01PRFVMQVRFKTsN
CiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9MSU5FQVIpOw0KICAgICAgICAgICAgZ2wuZ2xU
ZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0wuR0xfVEVYVFVSRV9NQUdfRklMVEVSLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdMLkdMX0xJTkVBUik7DQogICAgICAgICAgICBnbC5nbFRleFBhcmFtZXRlcmkodGV4dHVy
ZVRhcmdldCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9URVhUVVJFX1dS
QVBfUywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9DTEFNUF9UT19FREdF
KTsNCiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfV1JBUF9ULA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX0NMQU1QX1RPX0VER0UpOw0KICAgICAgICAgICAg
Z2wuZ2xUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0wuR0xfVEVYVFVSRV9DT01QQVJFX01PREUsDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0wuR0xfQ09NUEFSRV9SX1RPX1RFWFRVUkUpOw0KICAgICAgICAgICAgZ2wu
Z2xUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0wuR0xfVEVYVFVSRV9DT01QQVJFX0ZVTkMsDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0wuR0xfTEVRVUFMKTsNCiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaSh0
ZXh0dXJlVGFyZ2V0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX0RFUFRI
X1RFWFRVUkVfTU9ERSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9MVU1J
TkFOQ0UpOw0KICAgICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgc3RvcFNoYWRvd2VkUmVu
ZGVyaW5nKEdMQXV0b0RyYXdhYmxlIHRhcmdldERyYXdhYmxlLA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHR1cmVVbml0SUQpDQogICAgICAgIHsNCiAg
ICAgICAgICAgIEdMIGdsID0gdGFyZ2V0RHJhd2FibGUuZ2V0R0woKTsNCiAgICAgICAgICAgIGds
LmdsQWN0aXZlVGV4dHVyZSh0ZXh0dXJlVW5pdElEKTsNCiAgICAgICAgICAgIGdsLmdsUHVzaEF0
dHJpYihHTC5HTF9UUkFOU0ZPUk1fQklUKTsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg
ICBnbC5nbE1hdHJpeE1vZGUoR0wuR0xfVEVYVFVSRSk7DQogICAgICAgICAgICAgICAgZ2wuZ2xQ
b3BNYXRyaXgoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGdsLmdsUG9wQXR0cmliKCk7
DQoNCiAgICAgICAgICAgIC8vIFJlc3RvcmUgdGhlIHRleHR1cmUgYXR0cmlidXRlcyBmb3IgdGhl
IHRleHR1cmVVbml0aCB0ZXh0dXJlDQogICAgICAgICAgICBnbC5nbFBvcEF0dHJpYigpOw0KDQog
ICAgICAgICAgICAvLyBVbmJpbmQgdGhlIGRlcHRoIHRleHR1cmUNCiAgICAgICAgICAgIGdsLmds
QmluZFRleHR1cmUoR0wuR0xfVEVYVFVSRV8yRCwgMCk7DQoNCiAgICAgICAgICAgIC8vIFJlc3Rv
cmUgdGhlIGFjdGl2ZSB0ZXh0dXJlDQogICAgICAgICAgICBnbC5nbFBvcEF0dHJpYigpOw0KICAg
ICAgICB9DQoNCiAgICAgICAgcHVibGljIHZvaWQgcHJlcGFyZUZvckNvbG91cmVkUmVuZGVyaW5n
KEdMQXV0b0RyYXdhYmxlIHRhcmdldERyYXdhYmxlLA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHR1cmVVbml0SUQpDQogICAgICAgIHsNCiAg
ICAgICAgICAgIEdMIGdsID0gdGFyZ2V0RHJhd2FibGUuZ2V0R0woKTsNCg0KICAgICAgICAgICAg
Ly8gVGhlIHN0YXRlIG1vZGlmaWVkIGJ5IHRoaXMgcHJlcGFyYXRpb24gd2lsbCBiZSByZXN0b3Jl
ZCBieSBhIGNhbGwNCiAgICAgICAgICAgIC8vIHRvIGZpbmlzaFNoYWRvd2VkUmVuZGVyaW5nKCkN
CiAgICAgICAgICAgIGdsLmdsUHVzaEF0dHJpYihHTC5HTF9URVhUVVJFX0JJVCk7DQoNCiAgICAg
ICAgICAgIGdsLmdsQWN0aXZlVGV4dHVyZSh0ZXh0dXJlVW5pdElEKTsNCiAgICAgICAgICAgIGds
LmdsQmluZFRleHR1cmUoR0wuR0xfVEVYVFVSRV8yRCwgY29sb3VyVGV4dHVyZUlEKTsNCg0KICAg
ICAgICAgICAgLy8gU2V0IHRoZSB0ZXh0dXJlIHVwIHRvIGJlIHVzZWQgZm9yIHBhaW50aW5nIGEg
c3VyZmFjZQ0KICAgICAgICAgICAgaW50IHRleHR1cmVUYXJnZXQgPSBHTC5HTF9URVhUVVJFXzJE
Ow0KICAgICAgICAgICAgZ2wuZ2xFbmFibGUodGV4dHVyZVRhcmdldCk7DQogICAgICAgICAgICBn
bC5nbFRleEVudmkoR0wuR0xfVEVYVFVSRV9FTlYsDQogICAgICAgICAgICAgICAgICAgICAgICAg
R0wuR0xfVEVYVFVSRV9FTlZfTU9ERSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9N
T0RVTEFURSk7DQogICAgICAgICAgICBnbC5nbFRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTC5HTF9URVhUVVJFX01JTl9GSUxURVIs
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xfTElORUFSKTsNCiAgICAgICAg
ICAgIGdsLmdsVGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTC5HTF9MSU5FQVIpOw0KICAgICAgICAgICAgZ2wuZ2xUZXhQYXJhbWV0
ZXJpKHRleHR1cmVUYXJnZXQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xf
VEVYVFVSRV9XUkFQX1MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0wuR0xfUkVQ
RUFUKTsNCiAgICAgICAgICAgIGdsLmdsVGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1RFWFRVUkVfV1JBUF9ULA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdMLkdMX1JFUEVBVCk7DQogICAgICAgIH0NCg0KICAg
ICAgICBwdWJsaWMgdm9pZCBzdG9wQ29sb3VyZWRSZW5kZXJpbmcoR0xBdXRvRHJhd2FibGUgdGFy
Z2V0RHJhd2FibGUpDQogICAgICAgIHsNCiAgICAgICAgICAgIEdMIGdsID0gdGFyZ2V0RHJhd2Fi
bGUuZ2V0R0woKTsNCg0KICAgICAgICAgICAgZ2wuZ2xCaW5kVGV4dHVyZShHTC5HTF9URVhUVVJF
XzJELCAwKTsNCg0KICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgYWN0aXZlIHRleHR1cmUNCiAg
ICAgICAgICAgIGdsLmdsUG9wQXR0cmliKCk7DQogICAgICAgIH0NCg0KICAgIH0NCg0KfQ0K
</data>

          </attachment>
      

    </bug>

</bugzilla>