<?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>743</bug_id>
          
          <creation_ts>2013-06-01 22:20:41 +0200</creation_ts>
          <short_desc>Quaternion patch</short_desc>
          <delta_ts>2013-06-12 12:49:54 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>opengl</component>
          <version>2</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Petr Skramovsky">petr.skramovsky</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>harvey.harrison</cc>
    
    <cc>xerxes</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs>jogl f5fe8439f52acaf4bc2afe04531f1aa8ca30390b
jogl eaf15f8020bdd97f7d919721c9cc74eb72e6c493
jogl 0a4defdfe478c3e231f3b1255cba6989aa2c489e
jogl 08bfa5797069cb5757620e74b8befaa079d04ddb
jogl a368548b20321ea5cdace6cc495e632ca9d5c99c
jogl 85b96a891bb81776faf0a6dd1783443a045f74fb</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2617</commentid>
    <comment_count>0</comment_count>
      <attachid>469</attachid>
    <who name="Petr Skramovsky">petr.skramovsky</who>
    <bug_when>2013-06-01 22:20:41 +0200</bug_when>
    <thetext>Created attachment 469
patch

i would like to submit this patch, because i have tried to use quaternion class for my camera but i wasn&apos;t able to do it.
so sum of changes:
- reformatted
- method for init from axis vector and angle
- method for transform vector
- few minor things
what i&apos;m not sure of:
- naming
- maybe more/better comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2618</commentid>
    <comment_count>1</comment_count>
      <attachid>470</attachid>
    <who name="Petr Skramovsky">petr.skramovsky</who>
    <bug_when>2013-06-01 22:23:17 +0200</bug_when>
    <thetext>Created attachment 470
demo

.zip containing a very simple quaternion camera class + demo program</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2619</commentid>
    <comment_count>2</comment_count>
    <who name="Xerxes Rånby">xerxes</who>
    <bug_when>2013-06-02 22:55:10 +0200</bug_when>
    <thetext>Thank you Peter for pushing this Quaternion enhancement patch as 4 individual commits to github:
https://github.com/petr-s/jogl/commit/ba8f322de06204afe4c7cb81e51a1d46477bb586 - new method for vector multiplication, new copy constructor 

https://github.com/petr-s/jogl/commit/1fe8fa0765f13980cd4498cb65ab2e36908e75b1 - ixed isIdentity method, deprecated isEmpty method (quaternion doesn&apos;t have such a property + method do same thing as isIdentity), new setIdentity method, default constructor sets this quaternion to identity, new fromAxis method/costructor

https://github.com/petr-s/jogl/commit/0f9e158d89d2971d505373409e4ab56699e66eea -  removed unnecessary castings, removed unnecessary methods for vector operations changed to VectorUtil instead

https://github.com/petr-s/jogl/commit/81c911541690f573b631974212f0e49d4d83daba - reformatted to same style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2629</commentid>
    <comment_count>3</comment_count>
    <who name="Harvey Harrison">harvey.harrison</who>
    <bug_when>2013-06-04 20:49:40 +0200</bug_when>
    <thetext>Petr,

Your patches look fine, I had some trivial comments that I made in your github repo, reproduced below.

+    public void fromAxis(float[] vector, float angle) {
+        float sin = FloatUtil.sin(angle *= 0.5f); 



Please don&apos;t hide the assignment in the argument here, would appreciate a temp
var.

Maybe:
double halfangle = angle * 0.5f;

And then use it below as well.

Also, I&apos;d prefer (but not require) a real name in the committer/author field &apos;petrs&apos; is not so helpful.

In any event, looks pretty good, will recommend pulling with the above fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2630</commentid>
    <comment_count>4</comment_count>
    <who name="Petr Skramovsky">petr.skramovsky</who>
    <bug_when>2013-06-04 22:28:42 +0200</bug_when>
    <thetext>Harvey thank you for your review and suggestions, the latest revision fixes the issue and i set my user.name for jogl repo as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2631</commentid>
    <comment_count>5</comment_count>
    <who name="Harvey Harrison">harvey.harrison</who>
    <bug_when>2013-06-04 22:39:38 +0200</bug_when>
    <thetext>Thanks, looks good to me, I wouldn&apos;t mind seeing the fixup folded back into
the other commit, but it&apos;s not a huge deal.

Would you mind terribly fixing up your commit name in the other commits?

I&apos;m not sure how Sven feels about it, so don&apos;t feel it is a must-do.  From a code standpoint, I feel this is pullable.

Harvey</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2655</commentid>
    <comment_count>6</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2013-06-12 12:49:54 +0200</bug_when>
    <thetext>Thank you - merged.

I also took the liberty to add qualifier &apos;final&apos; to Quaternion and VectorUtil.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>469</attachid>
            <date>2013-06-01 22:20:41 +0200</date>
            <delta_ts>2013-06-01 22:20:41 +0200</delta_ts>
            <desc>patch</desc>
            <filename>quat.patch</filename>
            <type>application/octet-stream</type>
            <size>19096</size>
            <attacher name="Petr Skramovsky">petr.skramovsky</attacher>
            
              <data encoding="base64">LS0tIFF1YXRlcm5pb24uamF2YQlXZWQgTWF5IDE1IDE3OjI4OjM4IDIwMTMKKysrIFF1YXRlcm5p
b24uamF2YQlTYXQgSnVuICAxIDIwOjUyOjAxIDIwMTMKQEAgLTMwLDI0OCArMzAsMjk3IEBACiAN
CiANCiBwdWJsaWMgY2xhc3MgUXVhdGVybmlvbiB7DQotICAgIHByb3RlY3RlZCBmbG9hdCB4LHks
eix3Ow0KLQ0KLSAgICBwdWJsaWMgUXVhdGVybmlvbigpew0KKyAgICBwcm90ZWN0ZWQgZmxvYXQg
eCwgeSwgeiwgdzsNCiANCisgICAgLyoqKg0KKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBp
bml0aWFsaXplIHZhbHVlcyBhcyBpZGVudGl0eQ0KKyAgICAgKiANCisgICAgICogQHNlZSAjc2V0
SWRlbnRpdHkoKQ0KKyAgICAgKi8NCisgICAgcHVibGljIFF1YXRlcm5pb24oKSB7DQorICAgICAg
ICBzZXRJZGVudGl0eSgpOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyBRdWF0ZXJuaW9uKFF1YXRl
cm5pb24gcSkgew0KKyAgICAgICAgdGhpcy54ID0gcS54Ow0KKyAgICAgICAgdGhpcy55ID0gcS55
Ow0KKyAgICAgICAgdGhpcy56ID0gcS56Ow0KKyAgICAgICAgdGhpcy53ID0gcS53Ow0KICAgICB9
DQotICAgIA0KKw0KICAgICBwdWJsaWMgUXVhdGVybmlvbihmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCB6LCBmbG9hdCB3KSB7DQogICAgICAgICB0aGlzLnggPSB4Ow0KICAgICAgICAgdGhpcy55ID0g
eTsNCiAgICAgICAgIHRoaXMueiA9IHo7DQogICAgICAgICB0aGlzLncgPSB3Ow0KICAgICB9DQot
ICAgIA0KLSAgICAvKiogQ29uc3RydWN0b3IgdG8gY3JlYXRlIGEgcm90YXRpb24gYmFzZWQgcXVh
dGVybmlvbiBmcm9tIHR3byB2ZWN0b3JzDQotICAgICAqIEBwYXJhbSB2ZWN0b3IxDQotICAgICAq
IEBwYXJhbSB2ZWN0b3IyDQotICAgICAqLw0KLSAgICBwdWJsaWMgUXVhdGVybmlvbihmbG9hdFtd
IHZlY3RvcjEsIGZsb2F0W10gdmVjdG9yMikgDQotICAgIHsNCi0gICAgICAgIGZsb2F0IHRoZXRh
ID0gKGZsb2F0KUZsb2F0VXRpbC5hY29zKGRvdCh2ZWN0b3IxLCB2ZWN0b3IyKSk7DQotICAgICAg
ICBmbG9hdFtdIGNyb3NzID0gY3Jvc3ModmVjdG9yMSx2ZWN0b3IyKTsNCi0gICAgICAgIGNyb3Nz
ID0gbm9ybWFsaXplVmVjKGNyb3NzKTsNCi0NCi0gICAgICAgIHRoaXMueCA9IChmbG9hdClGbG9h
dFV0aWwuc2luKHRoZXRhLzIpKmNyb3NzWzBdOw0KLSAgICAgICAgdGhpcy55ID0gKGZsb2F0KUZs
b2F0VXRpbC5zaW4odGhldGEvMikqY3Jvc3NbMV07DQotICAgICAgICB0aGlzLnogPSAoZmxvYXQp
RmxvYXRVdGlsLnNpbih0aGV0YS8yKSpjcm9zc1syXTsNCi0gICAgICAgIHRoaXMudyA9IChmbG9h
dClGbG9hdFV0aWwuY29zKHRoZXRhLzIpOw0KLSAgICAgICAgdGhpcy5ub3JtYWxpemUoKTsNCisN
CisgICAgLyoqKg0KKyAgICAgKiANCisgICAgICogQHBhcmFtIHZlY3Rvcg0KKyAgICAgKiBAcGFy
YW0gYW5nbGUNCisgICAgICogQHNlZSAjZnJvbUF4aXMoZmxvYXRbXSwgZmxvYXQpDQorICAgICAq
Lw0KKyAgICBwdWJsaWMgUXVhdGVybmlvbihmbG9hdFtdIHZlY3RvciwgZmxvYXQgYW5nbGUpIHsN
CisgICAgICAgIGZyb21BeGlzKHZlY3RvciwgYW5nbGUpOw0KKyAgICB9DQorDQorICAgIC8qKioN
CisgICAgICogU2V0IHRoaXMgcXVhdGVybmlvbiB0byBpZGVudGl0eSAoeD0wLHk9MCx6PTAsdz0x
KQ0KKyAgICAgKi8NCisgICAgcHVibGljIHZvaWQgc2V0SWRlbnRpdHkoKSB7DQorICAgICAgICB4
ID0geSA9IHogPSAwOw0KKyAgICAgICAgdyA9IDE7DQorICAgIH0NCisNCisgICAgLyoqDQorICAg
ICAqIENoZWNrIGlmIHRoaXMgcXVhdGVybmlvbiByZXByZXNlbnRzIGFuIGlkZW50aXR5IG1hdHJp
eCwgZm9yIHJvdGF0aW9uLg0KKyAgICAgKiANCisgICAgICogQHJldHVybiB0cnVlIGlmIGl0IGlz
IGFuIGlkZW50aXR5IHJlcC4sIGZhbHNlIG90aGVyd2lzZQ0KKyAgICAgKi8NCisgICAgcHVibGlj
IGJvb2xlYW4gaXNJZGVudGl0eSgpIHsNCisgICAgICAgIHJldHVybiB4ID09IDAgJiYgeSA9PSAw
ICYmIHogPT0gMCAmJiB3ID09IDE7DQogICAgIH0NCi0gICAgDQotICAgIC8qKiBUcmFuc2Zvcm0g
dGhlIHJvdGF0aW9uYWwgcXVhdGVybmlvbiB0byBheGlzIGJhc2VkIHJvdGF0aW9uIGFuZ2xlcw0K
Kw0KKyAgICAvKioqDQorICAgICAqIEluaXRpYWxpemUgdGhpcyBxdWF0ZXJuaW9uIHdpdGggZ2l2
ZW4gYXhpcyB2ZWN0b3IgYW5kIHJvdGF0aW9uIGFuZ2xlDQorICAgICAqIA0KKyAgICAgKiBAcGFy
YW0gdmVjdG9yIGF4aXMgdmVjdG9yDQorICAgICAqIEBwYXJhbSBhbmdsZSByb3RhdGlvbiBhbmds
ZSAocmFkcykNCisgICAgICovDQorICAgIHB1YmxpYyB2b2lkIGZyb21BeGlzKGZsb2F0W10gdmVj
dG9yLCBmbG9hdCBhbmdsZSkgew0KKyAgICAgICAgZmxvYXQgc2luID0gRmxvYXRVdGlsLnNpbihh
bmdsZSAqPSAwLjVmKTsNCisgICAgICAgIGZsb2F0W10gbnYgPSBWZWN0b3JVdGlsLm5vcm1hbGl6
ZSh2ZWN0b3IpOw0KKyAgICAgICAgeCA9IChudlswXSAqIHNpbik7DQorICAgICAgICB5ID0gKG52
WzFdICogc2luKTsNCisgICAgICAgIHogPSAobnZbMl0gKiBzaW4pOw0KKyAgICAgICAgdyA9IEZs
b2F0VXRpbC5jb3MoYW5nbGUpOw0KKyAgICB9DQorDQorICAgIC8qKg0KKyAgICAgKiBUcmFuc2Zv
cm0gdGhlIHJvdGF0aW9uYWwgcXVhdGVybmlvbiB0byBheGlzIGJhc2VkIHJvdGF0aW9uIGFuZ2xl
cw0KKyAgICAgKiANCiAgICAgICogQHJldHVybiBuZXcgZmxvYXRbNF0gd2l0aCAsdGhldGEsUngs
UnksUnoNCiAgICAgICovDQotICAgIHB1YmxpYyBmbG9hdFtdIHRvQXhpcygpDQotICAgIHsNCisg
ICAgcHVibGljIGZsb2F0W10gdG9BeGlzKCkgew0KICAgICAgICAgZmxvYXRbXSB2ZWMgPSBuZXcg
ZmxvYXRbNF07DQotICAgICAgICBmbG9hdCBzY2FsZSA9IChmbG9hdClGbG9hdFV0aWwuc3FydCh4
ICogeCArIHkgKiB5ICsgeiAqIHopOw0KLSAgICAgICAgdmVjWzBdID0oZmxvYXQpIEZsb2F0VXRp
bC5hY29zKHcpICogMi4wZjsNCisgICAgICAgIGZsb2F0IHNjYWxlID0gRmxvYXRVdGlsLnNxcnQo
eCAqIHggKyB5ICogeSArIHogKiB6KTsNCisgICAgICAgIHZlY1swXSA9IEZsb2F0VXRpbC5hY29z
KHcpICogMi4wZjsNCiAgICAgICAgIHZlY1sxXSA9IHggLyBzY2FsZTsNCiAgICAgICAgIHZlY1sy
XSA9IHkgLyBzY2FsZTsNCiAgICAgICAgIHZlY1szXSA9IHogLyBzY2FsZTsNCiAgICAgICAgIHJl
dHVybiB2ZWM7DQogICAgIH0NCi0gICAgDQotICAgIC8qKiBOb3JtYWxpemUgYSB2ZWN0b3INCi0g
ICAgICogQHBhcmFtIHZlY3RvciBpbnB1dCB2ZWN0b3INCi0gICAgICogQHJldHVybiBub3JtYWxp
emVkIHZlY3Rvcg0KLSAgICAgKi8NCi0gICAgcHJpdmF0ZSBmbG9hdFtdIG5vcm1hbGl6ZVZlYyhm
bG9hdFtdIHZlY3RvcikNCi0gICAgew0KLSAgICAgICAgZmxvYXRbXSBuZXdWZWN0b3IgPSBuZXcg
ZmxvYXRbM107DQotDQotICAgICAgICBmbG9hdCBkID0gRmxvYXRVdGlsLnNxcnQodmVjdG9yWzBd
KnZlY3RvclswXSArIHZlY3RvclsxXSp2ZWN0b3JbMV0gKyB2ZWN0b3JbMl0qdmVjdG9yWzJdKTsN
Ci0gICAgICAgIGlmKGQ+IDAuMGYpDQotICAgICAgICB7DQotICAgICAgICAgICAgbmV3VmVjdG9y
WzBdID0gdmVjdG9yWzBdL2Q7DQotICAgICAgICAgICAgbmV3VmVjdG9yWzFdID0gdmVjdG9yWzFd
L2Q7DQotICAgICAgICAgICAgbmV3VmVjdG9yWzJdID0gdmVjdG9yWzJdL2Q7DQotICAgICAgICB9
DQotICAgICAgICByZXR1cm4gbmV3VmVjdG9yOw0KLSAgICB9DQotICAgIC8qKiBjb21wdXRlIHRo
ZSBkb3QgcHJvZHVjdCBvZiB0d28gcG9pbnRzDQotICAgICAqIEBwYXJhbSB2ZWMxIHZlY3RvciAx
DQotICAgICAqIEBwYXJhbSB2ZWMyIHZlY3RvciAyDQotICAgICAqIEByZXR1cm4gdGhlIGRvdCBw
cm9kdWN0IGFzIGZsb2F0DQotICAgICAqLw0KLSAgICBwcml2YXRlIGZsb2F0IGRvdChmbG9hdFtd
IHZlYzEsIGZsb2F0W10gdmVjMikNCi0gICAgew0KLSAgICAgICAgcmV0dXJuICh2ZWMxWzBdKnZl
YzJbMF0gKyB2ZWMxWzFdKnZlYzJbMV0gKyB2ZWMxWzJdKnZlYzJbMl0pOw0KLSAgICB9DQotICAg
IC8qKiBjcm9zcyBwcm9kdWN0IHZlYzEgeCB2ZWMyDQotICAgICAqIEBwYXJhbSB2ZWMxIHZlY3Rv
ciAxDQotICAgICAqIEBwYXJhbSB2ZWMyIHZlY3R0b3IgMg0KLSAgICAgKiBAcmV0dXJuIHRoZSBy
ZXN1bHRpbmcgdmVjdG9yDQotICAgICAqLw0KLSAgICBwcml2YXRlIGZsb2F0W10gY3Jvc3MoZmxv
YXRbXSB2ZWMxLCBmbG9hdFtdIHZlYzIpDQotICAgIHsNCi0gICAgICAgIGZsb2F0W10gb3V0ID0g
bmV3IGZsb2F0WzNdOw0KLQ0KLSAgICAgICAgb3V0WzBdID0gdmVjMlsyXSp2ZWMxWzFdIC0gdmVj
MlsxXSp2ZWMxWzJdOw0KLSAgICAgICAgb3V0WzFdID0gdmVjMlswXSp2ZWMxWzJdIC0gdmVjMlsy
XSp2ZWMxWzBdOw0KLSAgICAgICAgb3V0WzJdID0gdmVjMlsxXSp2ZWMxWzBdIC0gdmVjMlswXSp2
ZWMxWzFdOw0KIA0KLSAgICAgICAgcmV0dXJuIG91dDsNCi0gICAgfQ0KICAgICBwdWJsaWMgZmxv
YXQgZ2V0VygpIHsNCiAgICAgICAgIHJldHVybiB3Ow0KICAgICB9DQorDQogICAgIHB1YmxpYyB2
b2lkIHNldFcoZmxvYXQgdykgew0KICAgICAgICAgdGhpcy53ID0gdzsNCiAgICAgfQ0KKw0KICAg
ICBwdWJsaWMgZmxvYXQgZ2V0WCgpIHsNCiAgICAgICAgIHJldHVybiB4Ow0KICAgICB9DQorDQog
ICAgIHB1YmxpYyB2b2lkIHNldFgoZmxvYXQgeCkgew0KICAgICAgICAgdGhpcy54ID0geDsNCiAg
ICAgfQ0KKw0KICAgICBwdWJsaWMgZmxvYXQgZ2V0WSgpIHsNCiAgICAgICAgIHJldHVybiB5Ow0K
ICAgICB9DQorDQogICAgIHB1YmxpYyB2b2lkIHNldFkoZmxvYXQgeSkgew0KICAgICAgICAgdGhp
cy55ID0geTsNCiAgICAgfQ0KKw0KICAgICBwdWJsaWMgZmxvYXQgZ2V0WigpIHsNCiAgICAgICAg
IHJldHVybiB6Ow0KICAgICB9DQorDQogICAgIHB1YmxpYyB2b2lkIHNldFooZmxvYXQgeikgew0K
ICAgICAgICAgdGhpcy56ID0gejsNCiAgICAgfQ0KIA0KLSAgICAvKiogQWRkIGEgcXVhdGVybmlv
bg0KKyAgICAvKioNCisgICAgICogQWRkIGEgcXVhdGVybmlvbg0KKyAgICAgKiANCiAgICAgICog
QHBhcmFtIHEgcXVhdGVybmlvbg0KICAgICAgKi8NCi0gICAgcHVibGljIHZvaWQgYWRkKFF1YXRl
cm5pb24gcSkNCi0gICAgew0KLSAgICAgICAgeCs9cS54Ow0KLSAgICAgICAgeSs9cS55Ow0KLSAg
ICAgICAgeis9cS56Ow0KKyAgICBwdWJsaWMgdm9pZCBhZGQoUXVhdGVybmlvbiBxKSB7DQorICAg
ICAgICB4ICs9IHEueDsNCisgICAgICAgIHkgKz0gcS55Ow0KKyAgICAgICAgeiArPSBxLno7DQog
ICAgIH0NCi0gICAgDQotICAgIC8qKiBTdWJ0cmFjdCBhIHF1YXRlcm5pb24NCisNCisgICAgLyoq
DQorICAgICAqIFN1YnRyYWN0IGEgcXVhdGVybmlvbg0KKyAgICAgKiANCiAgICAgICogQHBhcmFt
IHEgcXVhdGVybmlvbg0KICAgICAgKi8NCi0gICAgcHVibGljIHZvaWQgc3VidHJhY3QoUXVhdGVy
bmlvbiBxKQ0KLSAgICB7DQotICAgICAgICB4LT1xLng7DQotICAgICAgICB5LT1xLnk7DQotICAg
ICAgICB6LT1xLno7DQorICAgIHB1YmxpYyB2b2lkIHN1YnRyYWN0KFF1YXRlcm5pb24gcSkgew0K
KyAgICAgICAgeCAtPSBxLng7DQorICAgICAgICB5IC09IHEueTsNCisgICAgICAgIHogLT0gcS56
Ow0KICAgICB9DQotICAgIA0KLSAgICAvKiogRGl2aWRlIGEgcXVhdGVybmlvbiBieSBhIGNvbnN0
YW50DQorDQorICAgIC8qKg0KKyAgICAgKiBEaXZpZGUgYSBxdWF0ZXJuaW9uIGJ5IGEgY29uc3Rh
bnQNCisgICAgICogDQogICAgICAqIEBwYXJhbSBuIGEgZmxvYXQgdG8gZGl2aWRlIGJ5DQogICAg
ICAqLw0KLSAgICBwdWJsaWMgdm9pZCBkaXZpZGUoZmxvYXQgbikNCi0gICAgew0KLSAgICAgICAg
eC89bjsNCi0gICAgICAgIHkvPW47DQotICAgICAgICB6Lz1uOw0KLSAgICB9DQotICAgIA0KLSAg
ICAvKiogTXVsdGlwbHkgdGhpcyBxdWF0ZXJuaW9uIGJ5IA0KLSAgICAgKiB0aGUgcGFyYW0gcXVh
dGVybmlvbg0KKyAgICBwdWJsaWMgdm9pZCBkaXZpZGUoZmxvYXQgbikgew0KKyAgICAgICAgeCAv
PSBuOw0KKyAgICAgICAgeSAvPSBuOw0KKyAgICAgICAgeiAvPSBuOw0KKyAgICB9DQorDQorICAg
IC8qKg0KKyAgICAgKiBNdWx0aXBseSB0aGlzIHF1YXRlcm5pb24gYnkgdGhlIHBhcmFtIHF1YXRl
cm5pb24NCisgICAgICogDQogICAgICAqIEBwYXJhbSBxIGEgcXVhdGVybmlvbiB0byBtdWx0aXBs
eSB3aXRoDQogICAgICAqLw0KLSAgICBwdWJsaWMgdm9pZCBtdWx0KFF1YXRlcm5pb24gcSkNCi0g
ICAgew0KLSAgICAgICAgZmxvYXQgdzEgPSB3KnEudyAtIHgqcS54IC0geSpxLnkgLSB6KnEuejsN
Ci0NCi0gICAgICAgIGZsb2F0IHgxID0gdypxLnggKyB4KnEudyArIHkqcS56IC0geipxLnk7DQot
ICAgICAgICBmbG9hdCB5MSA9IHcqcS55IC0geCpxLnogKyB5KnEudyArIHoqcS54Ow0KLSAgICAg
ICAgZmxvYXQgejEgPSB3KnEueiArIHgqcS55IC0geSpxLnggKyB6KnEudzsNCi0NCisgICAgcHVi
bGljIHZvaWQgbXVsdChRdWF0ZXJuaW9uIHEpIHsNCisgICAgICAgIGZsb2F0IHcxID0gdyAqIHEu
dyAtIHggKiBxLnggLSB5ICogcS55IC0geiAqIHEuejsNCisgICAgICAgIGZsb2F0IHgxID0gdyAq
IHEueCArIHggKiBxLncgKyB5ICogcS56IC0geiAqIHEueTsNCisgICAgICAgIGZsb2F0IHkxID0g
dyAqIHEueSAtIHggKiBxLnogKyB5ICogcS53ICsgeiAqIHEueDsNCisgICAgICAgIGZsb2F0IHox
ID0gdyAqIHEueiArIHggKiBxLnkgLSB5ICogcS54ICsgeiAqIHEudzsNCiAgICAgICAgIHcgPSB3
MTsNCiAgICAgICAgIHggPSB4MTsNCiAgICAgICAgIHkgPSB5MTsNCi0gICAgICAgIHogPSB6MTsg
DQorICAgICAgICB6ID0gejE7DQogICAgIH0NCi0gICAgDQotICAgIC8qKiBNdWx0aXBseSBhIHF1
YXRlcm5pb24gYnkgYSBjb25zdGFudA0KKw0KKyAgICAvKioNCisgICAgICogTXVsdGlwbHkgYSBx
dWF0ZXJuaW9uIGJ5IGEgY29uc3RhbnQNCisgICAgICogDQogICAgICAqIEBwYXJhbSBuIGEgZmxv
YXQgY29uc3RhbnQNCiAgICAgICovDQotICAgIHB1YmxpYyB2b2lkIG11bHQoZmxvYXQgbikNCi0g
ICAgew0KLSAgICAgICAgeCo9bjsNCi0gICAgICAgIHkqPW47DQotICAgICAgICB6Kj1uOw0KLSAg
ICB9DQotICAgIA0KLSAgICAvKiogTm9ybWFsaXplIGEgcXVhdGVybmlvbiByZXF1aXJlZCBpZiAg
DQotICAgICAqICB0byBiZSB1c2VkIGFzIGEgcm90YXRpb25hbCBxdWF0ZXJuaW9uDQotICAgICAq
Lw0KLSAgICBwdWJsaWMgdm9pZCBub3JtYWxpemUoKQ0KLSAgICB7DQotICAgICAgICBmbG9hdCBu
b3JtZSA9IChmbG9hdClGbG9hdFV0aWwuc3FydCh3KncgKyB4KnggKyB5KnkgKyB6KnopOw0KLSAg
ICAgICAgaWYgKG5vcm1lID09IDAuMGYpDQotICAgICAgICB7DQotICAgICAgICAgICAgdyA9IDEu
MGY7IA0KLSAgICAgICAgICAgIHggPSB5ID0geiA9IDAuMGY7DQorICAgIHB1YmxpYyB2b2lkIG11
bHQoZmxvYXQgbikgew0KKyAgICAgICAgeCAqPSBuOw0KKyAgICAgICAgeSAqPSBuOw0KKyAgICAg
ICAgeiAqPSBuOw0KKyAgICB9DQorDQorICAgIC8qKioNCisgICAgICogUm90YXRlIGdpdmVuIHZl
Y3RvciBieSB0aGlzIHF1YXRlcm5pb24NCisgICAgICogDQorICAgICAqIEBwYXJhbSB2ZWN0b3Ig
aW5wdXQgdmVjdG9yDQorICAgICAqIEByZXR1cm4gcm90YXRlZCB2ZWN0b3INCisgICAgICovDQor
ICAgIHB1YmxpYyBmbG9hdFtdIG11bHQoZmxvYXRbXSB2ZWN0b3IpIHsNCisgICAgICAgIC8vIFRP
RE8gOiBvcHRpbWFsaXplDQorICAgICAgICBmbG9hdFtdIHJlcyA9IG5ldyBmbG9hdFszXTsNCisg
ICAgICAgIFF1YXRlcm5pb24gYSA9IG5ldyBRdWF0ZXJuaW9uKHZlY3RvclswXSwgdmVjdG9yWzFd
LCB2ZWN0b3JbMl0sIDAuMGYpOw0KKyAgICAgICAgUXVhdGVybmlvbiBiID0gbmV3IFF1YXRlcm5p
b24odGhpcyk7DQorICAgICAgICBRdWF0ZXJuaW9uIGMgPSBuZXcgUXVhdGVybmlvbih0aGlzKTsN
CisgICAgICAgIGIuaW52ZXJzZSgpOw0KKyAgICAgICAgYS5tdWx0KGIpOw0KKyAgICAgICAgYy5t
dWx0KGEpOw0KKyAgICAgICAgcmVzWzBdID0gYy54Ow0KKyAgICAgICAgcmVzWzFdID0gYy55Ow0K
KyAgICAgICAgcmVzWzJdID0gYy56Ow0KKyAgICAgICAgcmV0dXJuIHJlczsNCisgICAgfQ0KKw0K
KyAgICAvKioqDQorICAgICAqIEludmVyc2UgdGhpcyBxdWF0ZXJuaW9uIHRvIG9wcG9zaXRlIGRp
cmVjdGlvbg0KKyAgICAgKi8NCisgICAgcHVibGljIHZvaWQgaW52ZXJzZSgpIHsNCisgICAgICAg
IGZsb2F0IG4gPSBub3JtKCk7DQorICAgICAgICBpZiAobiA+IDAuMGYpIHsNCisgICAgICAgICAg
ICBuID0gMS4wZiAvIG47DQorICAgICAgICAgICAgeCAqPSAtbjsNCisgICAgICAgICAgICB5ICo9
IC1uOw0KKyAgICAgICAgICAgIHogKj0gLW47DQorICAgICAgICAgICAgdyAqPSBuOw0KICAgICAg
ICAgfQ0KLSAgICAgICAgZWxzZQ0KLSAgICAgICAgew0KLSAgICAgICAgICAgIGZsb2F0IHJlY2lw
ID0gMS4wZi9ub3JtZTsNCi0NCi0gICAgICAgICAgICB3ICo9IHJlY2lwOw0KLSAgICAgICAgICAg
IHggKj0gcmVjaXA7DQotICAgICAgICAgICAgeSAqPSByZWNpcDsNCi0gICAgICAgICAgICB6ICo9
IHJlY2lwOw0KKyAgICB9DQorDQorICAgIC8qKioNCisgICAgICogTm9ybWFsaXplIHRoaXMgcXVh
dGVybmlvbiAoc2ltaWxhciB0byB2ZWN0b3Igbm9ybWFsaXphdGlvbikNCisgICAgICovDQorICAg
IHB1YmxpYyB2b2lkIG5vcm1hbGl6ZSgpIHsNCisgICAgICAgIC8vIFRPRE8gOiB1c2UgaW52ZXJz
ZSBzcXVhcmUgcm9vdCBpbnN0ZWFkPw0KKyAgICAgICAgZmxvYXQgbWFnID0gRmxvYXRVdGlsLnNx
cnQobm9ybSgpKTsNCisgICAgICAgIGlmIChtYWcgPiAwLjBmKSB7DQorICAgICAgICAgICAgeCAv
PSBtYWc7DQorICAgICAgICAgICAgeSAvPSBtYWc7DQorICAgICAgICAgICAgeiAvPSBtYWc7DQor
ICAgICAgICAgICAgdyAvPSBtYWc7DQogICAgICAgICB9DQogICAgIH0NCi0gICAgDQotICAgIC8q
KiBJbnZlcnQgdGhlIHF1YXRlcm5pb24gSWYgcm90YXRpb25hbCwgDQotICAgICAqIHdpbGwgcHJv
ZHVjZSBhIHRoZSBpbnZlcnNlIHJvdGF0aW9uDQotICAgICAqLw0KLSAgICBwdWJsaWMgdm9pZCBp
bnZlcnNlKCkNCi0gICAgew0KLSAgICAgICAgZmxvYXQgbm9ybSA9IHcqdyArIHgqeCArIHkqeSAr
IHoqejsNCi0NCi0gICAgICAgIGZsb2F0IHJlY2lwID0gMS4wZi9ub3JtOw0KLQ0KLSAgICAgICAg
dyAqPSByZWNpcDsNCi0gICAgICAgIHggPSAtMSp4KnJlY2lwOw0KLSAgICAgICAgeSA9IC0xKnkq
cmVjaXA7DQotICAgICAgICB6ID0gLTEqeipyZWNpcDsNCi0gICAgfQ0KLSAgICANCi0gICAgLyoq
IFRyYW5zZm9ybSB0aGlzIHF1YXRlcm5pb24gdG8gYQ0KLSAgICAgKiA0eDQgY29sdW1uIG1hdHJp
eCByZXByZXNlbnRpbmcgdGhlIHJvdGF0aW9uDQotICAgICAqIEByZXR1cm4gbmV3IGZsb2F0WzE2
XSBjb2x1bW4gbWF0cml4IDR4NCANCi0gICAgICovDQotICAgIHB1YmxpYyBmbG9hdFtdIHRvTWF0
cml4KCkNCi0gICAgew0KLSAgICAgICAgZmxvYXRbXSBtYXRyaXggPSBuZXcgZmxvYXRbMTZdOw0K
LSAgICAgICAgbWF0cml4WzBdID0gMS4wZiAtIDIqeSp5IC0gMip6Kno7DQotICAgICAgICBtYXRy
aXhbMV0gPSAyKngqeSArIDIqdyp6Ow0KLSAgICAgICAgbWF0cml4WzJdID0gMip4KnogLSAyKncq
eTsNCi0gICAgICAgIG1hdHJpeFszXSA9IDA7DQotDQotICAgICAgICBtYXRyaXhbNF0gPSAyKngq
eSAtIDIqdyp6Ow0KLSAgICAgICAgbWF0cml4WzVdID0gMS4wZiAtIDIqeCp4IC0gMip6Kno7DQot
ICAgICAgICBtYXRyaXhbNl0gPSAyKnkqeiArIDIqdyp4Ow0KLSAgICAgICAgbWF0cml4WzddID0g
MDsNCi0NCi0gICAgICAgIG1hdHJpeFs4XSAgPSAyKngqeiArIDIqdyp5Ow0KLSAgICAgICAgbWF0
cml4WzldICA9IDIqeSp6IC0gMip3Kng7DQotICAgICAgICBtYXRyaXhbMTBdID0gMS4wZiAtIDIq
eCp4IC0gMip5Knk7DQotICAgICAgICBtYXRyaXhbMTFdID0gMDsNCi0NCi0gICAgICAgIG1hdHJp
eFsxMl0gPSAwOw0KLSAgICAgICAgbWF0cml4WzEzXSA9IDA7DQotICAgICAgICBtYXRyaXhbMTRd
ID0gMDsNCi0gICAgICAgIG1hdHJpeFsxNV0gPSAxOw0KKw0KKyAgICBwdWJsaWMgZmxvYXQgbm9y
bSgpIHsNCisgICAgICAgIHJldHVybiB3ICogdyArIHggKiB4ICsgeSAqIHkgKyB6ICogejsNCisg
ICAgfQ0KKw0KKyAgICAvKioqDQorICAgICAqIENvbnZlcnRzIHRoaXMgcXVhdGVybmlvbiB0byBh
IDR4NCBjb2x1bW4tbWFqb3IgbWF0cml4DQorICAgICAqIA0KKyAgICAgKiBAcmV0dXJuIG5ldyBm
bG9hdCBhcnJheSBbMTZdIHJlcHJlc2VudGluZyBtYXRyaXgNCisgICAgICogQHNlZSAjdG9NYXRy
aXgoZmxvYXRbXSkNCisgICAgICovDQorICAgIHB1YmxpYyBmbG9hdFtdIHRvTWF0cml4KCkgew0K
KyAgICAgICAgcmV0dXJuIHRvTWF0cml4KG51bGwpOw0KKyAgICB9DQorDQorICAgIC8qKioNCisg
ICAgICogQ29udmVydHMgdGhpcyBxdWF0ZXJuaW9uIHRvIGEgNHg0IGNvbHVtbi1tYWpvciBtYXRy
aXgNCisgICAgICogDQorICAgICAqIEBwYXJhbSBtYXRyaXggb3B0aW9uYWwgcHJlYWxsb2NhdGVk
IGZsb2F0IGFycmF5IFsxNl0gb3IgbnVsbA0KKyAgICAgKiBAcmV0dXJuIG5ldyBmbG9hdCBhcnJh
eSBbMTZdIHJlcHJlc2VudGluZyBtYXRyaXggb3IgZmlsbGVkIHByZWFsbG9jYXRlZA0KKyAgICAg
KiAgICAgICAgIGFycmF5DQorICAgICAqLw0KKyAgICBwdWJsaWMgZmxvYXRbXSB0b01hdHJpeChm
bG9hdFtdIG1hdHJpeCkgew0KKyAgICAgICAgaWYgKG1hdHJpeCA9PSBudWxsKQ0KKyAgICAgICAg
ICAgIG1hdHJpeCA9IG5ldyBmbG9hdFsxNl07DQorDQorICAgICAgICBmbG9hdCB4MiA9IHggKiB4
Ow0KKyAgICAgICAgZmxvYXQgeTIgPSB5ICogeTsNCisgICAgICAgIGZsb2F0IHoyID0geiAqIHo7
DQorICAgICAgICBmbG9hdCB4eSA9IHggKiB5Ow0KKyAgICAgICAgZmxvYXQgeHogPSB4ICogejsN
CisgICAgICAgIGZsb2F0IHl6ID0geSAqIHo7DQorICAgICAgICBmbG9hdCB3eCA9IHcgKiB4Ow0K
KyAgICAgICAgZmxvYXQgd3kgPSB3ICogeTsNCisgICAgICAgIGZsb2F0IHd6ID0gdyAqIHo7DQor
DQorICAgICAgICBtYXRyaXhbMF0gPSAxLjBmIC0gMi4wZiAqICh5MiArIHoyKTsNCisgICAgICAg
IG1hdHJpeFsxXSA9IDIuMGYgKiAoeHkgLSB3eik7DQorICAgICAgICBtYXRyaXhbMl0gPSAyLjBm
ICogKHh6ICsgd3kpOw0KKyAgICAgICAgbWF0cml4WzNdID0gMC4wZjsNCisNCisgICAgICAgIG1h
dHJpeFs0XSA9IDIuMGYgKiAoeHkgKyB3eik7DQorICAgICAgICBtYXRyaXhbNV0gPSAxLjBmIC0g
Mi4wZiAqICh4MiArIHoyKTsNCisgICAgICAgIG1hdHJpeFs2XSA9IDIuMGYgKiAoeXogLSB3eCk7
DQorICAgICAgICBtYXRyaXhbN10gPSAwLjBmOw0KKw0KKyAgICAgICAgbWF0cml4WzhdID0gMi4w
ZiAqICh4eiAtIHd5KTsNCisgICAgICAgIG1hdHJpeFs5XSA9IDIuMGYgKiAoeXogKyB3eCk7DQor
ICAgICAgICBtYXRyaXhbMTBdID0gMS4wZiAtIDIuMGYgKiAoeDIgKyB5Mik7DQorICAgICAgICBt
YXRyaXhbMTFdID0gMC4wZjsNCisNCisgICAgICAgIG1hdHJpeFsxMl0gPSAwLjBmOw0KKyAgICAg
ICAgbWF0cml4WzEzXSA9IDAuMGY7DQorICAgICAgICBtYXRyaXhbMTRdID0gMC4wZjsNCisgICAg
ICAgIG1hdHJpeFsxNV0gPSAxLjBmOw0KICAgICAgICAgcmV0dXJuIG1hdHJpeDsNCiAgICAgfQ0K
LSAgICANCi0gICAgLyoqIFNldCB0aGlzIHF1YXRlcm5pb24gZnJvbSBhIFNwaGVyZWljYWwgaW50
ZXJwb2xhdGlvbg0KLSAgICAgKiAgb2YgdHdvIHBhcmFtIHF1YXRlcm5pb24sIHVzZWQgbW9zdGx5
IGZvciByb3RhdGlvbmFsIGFuaW1hdGlvbi4NCi0gICAgICogIDxwPg0KLSAgICAgKiAgTm90ZTog
TWV0aG9kIGRvZXMgbm90IG5vcm1hbGl6ZSB0aGlzIHF1YXRlcm5pb24hDQotICAgICAqICA8L3A+
DQotICAgICAqICA8cD4NCi0gICAgICogIFNlZSBodHRwOi8vd3d3LmV1Y2xpZGVhbnNwYWNlLmNv
bS9tYXRocy9hbGdlYnJhL3JlYWxOb3JtZWRBbGdlYnJhL3F1YXRlcm5pb25zL3NsZXJwLw0KLSAg
ICAgKiAgPC9wPg0KKw0KKyAgICAvKioNCisgICAgICogU2V0IHRoaXMgcXVhdGVybmlvbiBmcm9t
IGEgU3BoZXJlaWNhbCBpbnRlcnBvbGF0aW9uIG9mIHR3byBwYXJhbQ0KKyAgICAgKiBxdWF0ZXJu
aW9uLCB1c2VkIG1vc3RseSBmb3Igcm90YXRpb25hbCBhbmltYXRpb24uDQorICAgICAqIDxwPg0K
KyAgICAgKiBOb3RlOiBNZXRob2QgZG9lcyBub3Qgbm9ybWFsaXplIHRoaXMgcXVhdGVybmlvbiEN
CisgICAgICogPC9wPg0KKyAgICAgKiA8cD4NCisgICAgICogU2VlIGh0dHA6Ly93d3cuZXVjbGlk
ZWFuc3BhY2UuY29tL21hdGhzL2FsZ2VicmEvcmVhbE5vcm1lZEFsZ2VicmEvDQorICAgICAqIHF1
YXRlcm5pb25zL3NsZXJwLw0KKyAgICAgKiA8L3A+DQorICAgICAqIA0KICAgICAgKiBAcGFyYW0g
YSBpbml0aWFsIHF1YXRlcm5pb24NCiAgICAgICogQHBhcmFtIGIgdGFyZ2V0IHF1YXRlcm5pb24N
CiAgICAgICogQHBhcmFtIHQgZmxvYXQgYmV0d2VlbiAwIGFuZCAxIHJlcHJlc2VudGluZyBpbnRl
cnAuDQpAQCAtMjc5LDcgKzMyOCw3IEBACiAgICAgcHVibGljIHZvaWQgc2xlcnAoUXVhdGVybmlv
biBhLCBRdWF0ZXJuaW9uIGIsIGZsb2F0IHQpIHsNCiAgICAgICAgIGZpbmFsIGZsb2F0IGNvc29t
ID0gYS54ICogYi54ICsgYS55ICogYi55ICsgYS56ICogYi56ICsgYS53ICogYi53Ow0KICAgICAg
ICAgZmluYWwgZmxvYXQgdDEgPSAxLjBmIC0gdDsNCi0gICAgDQorDQogICAgICAgICAvLyBpZiB0
aGUgdHdvIHF1YXRlcm5pb25zIGFyZSBjbG9zZSwganVzdCB1c2UgbGluZWFyIGludGVycG9sYXRp
b24NCiAgICAgICAgIGlmIChjb3NvbSA+PSAwLjk1Zikgew0KICAgICAgICAgICAgIHggPSBhLngg
KiB0MSArIGIueCAqIHQ7DQpAQCAtMjg4LDggKzMzNyw5IEBACiAgICAgICAgICAgICB3ID0gYS53
ICogdDEgKyBiLncgKiB0Ow0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgIH0NCi0gICAg
DQotICAgICAgICAvLyB0aGUgcXVhdGVybmlvbnMgYXJlIG5lYXJseSBvcHBvc2l0ZSwgd2UgY2Fu
IHBpY2sgYW55IGF4aXMgbm9ybWFsIHRvIGEsYg0KKw0KKyAgICAgICAgLy8gdGhlIHF1YXRlcm5p
b25zIGFyZSBuZWFybHkgb3Bwb3NpdGUsIHdlIGNhbiBwaWNrIGFueSBheGlzIG5vcm1hbCB0bw0K
KyAgICAgICAgLy8gYSxiDQogICAgICAgICAvLyB0byBkbyB0aGUgcm90YXRpb24NCiAgICAgICAg
IGlmIChjb3NvbSA8PSAtMC45OWYpIHsNCiAgICAgICAgICAgICB4ID0gMC41ZiAqIChhLnggKyBi
LngpOw0KQEAgLTI5OCw5NCArMzQ4LDgyIEBACiAgICAgICAgICAgICB3ID0gMC41ZiAqIChhLncg
KyBiLncpOw0KICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgIH0NCi0gICAgDQorDQogICAg
ICAgICAvLyBjb3NvbSBpcyBub3cgd2l0aGlvbiByYW5nZSBvZiBhY29zLCBkbyBhIFNMRVJQDQog
ICAgICAgICBmaW5hbCBmbG9hdCBzaW5vbSA9IEZsb2F0VXRpbC5zcXJ0KDEuMGYgLSBjb3NvbSAq
IGNvc29tKTsNCiAgICAgICAgIGZpbmFsIGZsb2F0IG9tZWdhID0gRmxvYXRVdGlsLmFjb3MoY29z
b20pOw0KLSAgICANCisNCiAgICAgICAgIGZpbmFsIGZsb2F0IHNjbGEgPSBGbG9hdFV0aWwuc2lu
KHQxICogb21lZ2EpIC8gc2lub207DQotICAgICAgICBmaW5hbCBmbG9hdCBzY2xiID0gRmxvYXRV
dGlsLnNpbiggdCAqIG9tZWdhKSAvIHNpbm9tOw0KLSAgICANCisgICAgICAgIGZpbmFsIGZsb2F0
IHNjbGIgPSBGbG9hdFV0aWwuc2luKHQgKiBvbWVnYSkgLyBzaW5vbTsNCisNCiAgICAgICAgIHgg
PSBhLnggKiBzY2xhICsgYi54ICogc2NsYjsNCiAgICAgICAgIHkgPSBhLnkgKiBzY2xhICsgYi55
ICogc2NsYjsNCiAgICAgICAgIHogPSBhLnogKiBzY2xhICsgYi56ICogc2NsYjsNCiAgICAgICAg
IHcgPSBhLncgKiBzY2xhICsgYi53ICogc2NsYjsNCiAgICAgfQ0KLSAgICANCi0gICAgLyoqIENo
ZWNrIGlmIHRoaXMgcXVhdGVybmlvbiBpcyBlbXB0eSwgaWUgKDAsMCwwLDEpDQotICAgICAqIEBy
ZXR1cm4gdHJ1ZSBpZiBlbXB0eSwgZmFsc2Ugb3RoZXJ3aXNlDQotICAgICAqLw0KLSAgICBwdWJs
aWMgYm9vbGVhbiBpc0VtcHR5KCkNCi0gICAgew0KLSAgICAgICAgaWYgKHc9PTEgJiYgeD09MCAm
JiB5PT0wICYmIHo9PTApDQotICAgICAgICAgICAgcmV0dXJuIHRydWU7DQotICAgICAgICByZXR1
cm4gZmFsc2U7DQotICAgIH0NCi0gICAgDQotICAgIC8qKiBDaGVjayBpZiB0aGlzIHF1YXRlcm5p
b24gcmVwcmVzZW50cyBhbiBpZGVudGl0eQ0KLSAgICAgKiBtYXRyaXgsIGZvciByb3RhdGlvbi4N
Ci0gICAgICogQHJldHVybiB0cnVlIGlmIGl0IGlzIGFuIGlkZW50aXR5IHJlcC4sIGZhbHNlIG90
aGVyd2lzZQ0KLSAgICAgKi8NCi0gICAgcHVibGljIGJvb2xlYW4gaXNJZGVudGl0eSgpDQotICAg
IHsNCi0gICAgICAgIGlmICh3PT0wICYmIHg9PTAgJiYgeT09MCAmJiB6PT0wKQ0KLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOw0KLSAgICAgICAgcmV0dXJuIGZhbHNlOw0KLSAgICB9DQotICAgIA0K
LSAgICAvKiogY29tcHV0ZSB0aGUgcXVhdGVybmlvbiBmcm9tIGEgM3gzIGNvbHVtbiBtYXRyaXgN
Ci0gICAgICogQHBhcmFtIG0gM3gzIGNvbHVtbiBtYXRyaXggDQorDQorICAgIC8qKg0KKyAgICAg
KiBjb21wdXRlIHRoZSBxdWF0ZXJuaW9uIGZyb20gYSAzeDMgY29sdW1uIG1hdHJpeA0KKyAgICAg
KiANCisgICAgICogQHBhcmFtIG0gM3gzIGNvbHVtbiBtYXRyaXgNCiAgICAgICovDQogICAgIHB1
YmxpYyB2b2lkIHNldEZyb21NYXRyaXgoZmxvYXRbXSBtKSB7DQotICAgICAgICBmbG9hdCBUPSBt
WzBdICsgbVs0XSArIG1bOF0gKyAxOw0KLSAgICAgICAgaWYgKFQ+MCl7DQotICAgICAgICAgICAg
ZmxvYXQgUyA9IDAuNWYgLyAoZmxvYXQpRmxvYXRVdGlsLnNxcnQoVCk7DQorICAgICAgICBmbG9h
dCBUID0gbVswXSArIG1bNF0gKyBtWzhdICsgMTsNCisgICAgICAgIGlmIChUID4gMCkgew0KKyAg
ICAgICAgICAgIGZsb2F0IFMgPSAwLjVmIC8gKGZsb2F0KSBGbG9hdFV0aWwuc3FydChUKTsNCiAg
ICAgICAgICAgICB3ID0gMC4yNWYgLyBTOw0KLSAgICAgICAgICAgIHggPSAoIG1bNV0gLSBtWzdd
KSAqIFM7DQotICAgICAgICAgICAgeSA9ICggbVs2XSAtIG1bMl0pICogUzsNCi0gICAgICAgICAg
ICB6ID0gKCBtWzFdIC0gbVszXSApICogUzsNCi0gICAgICAgIH0NCi0gICAgICAgIGVsc2V7DQot
ICAgICAgICAgICAgaWYgKChtWzBdID4gbVs0XSkmKG1bMF0gPiBtWzhdKSkgeyANCi0gICAgICAg
ICAgICAgICAgZmxvYXQgUyA9IEZsb2F0VXRpbC5zcXJ0KCAxLjBmICsgbVswXSAtIG1bNF0gLSBt
WzhdICkgKiAyZjsgLy8gUz00KnF4IA0KKyAgICAgICAgICAgIHggPSAobVs1XSAtIG1bN10pICog
UzsNCisgICAgICAgICAgICB5ID0gKG1bNl0gLSBtWzJdKSAqIFM7DQorICAgICAgICAgICAgeiA9
IChtWzFdIC0gbVszXSkgKiBTOw0KKyAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICBpZiAo
KG1bMF0gPiBtWzRdKSAmIChtWzBdID4gbVs4XSkpIHsNCisgICAgICAgICAgICAgICAgZmxvYXQg
UyA9IEZsb2F0VXRpbC5zcXJ0KDEuMGYgKyBtWzBdIC0gbVs0XSAtIG1bOF0pICogMmY7IC8vIFM9
NCpxeA0KICAgICAgICAgICAgICAgICB3ID0gKG1bN10gLSBtWzVdKSAvIFM7DQogICAgICAgICAg
ICAgICAgIHggPSAwLjI1ZiAqIFM7DQotICAgICAgICAgICAgICAgIHkgPSAobVszXSArIG1bMV0p
IC8gUzsgDQotICAgICAgICAgICAgICAgIHogPSAobVs2XSArIG1bMl0pIC8gUzsgDQotICAgICAg
ICAgICAgfSANCi0gICAgICAgICAgICBlbHNlIGlmIChtWzRdID4gbVs4XSkgeyANCi0gICAgICAg
ICAgICAgICAgZmxvYXQgUyA9IEZsb2F0VXRpbC5zcXJ0KCAxLjBmICsgbVs0XSAtIG1bMF0gLSBt
WzhdICkgKiAyZjsgLy8gUz00KnF5DQorICAgICAgICAgICAgICAgIHkgPSAobVszXSArIG1bMV0p
IC8gUzsNCisgICAgICAgICAgICAgICAgeiA9IChtWzZdICsgbVsyXSkgLyBTOw0KKyAgICAgICAg
ICAgIH0gZWxzZSBpZiAobVs0XSA+IG1bOF0pIHsNCisgICAgICAgICAgICAgICAgZmxvYXQgUyA9
IEZsb2F0VXRpbC5zcXJ0KDEuMGYgKyBtWzRdIC0gbVswXSAtIG1bOF0pICogMmY7IC8vIFM9NCpx
eQ0KICAgICAgICAgICAgICAgICB3ID0gKG1bNl0gLSBtWzJdKSAvIFM7DQotICAgICAgICAgICAg
ICAgIHggPSAobVszXSArIG1bMV0pIC8gUzsgDQorICAgICAgICAgICAgICAgIHggPSAobVszXSAr
IG1bMV0pIC8gUzsNCiAgICAgICAgICAgICAgICAgeSA9IDAuMjVmICogUzsNCi0gICAgICAgICAg
ICAgICAgeiA9IChtWzddICsgbVs1XSkgLyBTOyANCi0gICAgICAgICAgICB9IA0KLSAgICAgICAg
ICAgIGVsc2UgeyANCi0gICAgICAgICAgICAgICAgZmxvYXQgUyA9IEZsb2F0VXRpbC5zcXJ0KCAx
LjBmICsgbVs4XSAtIG1bMF0gLSBtWzRdICkgKiAyZjsgLy8gUz00KnF6DQorICAgICAgICAgICAg
ICAgIHogPSAobVs3XSArIG1bNV0pIC8gUzsNCisgICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAg
ICAgICAgICAgICBmbG9hdCBTID0gRmxvYXRVdGlsLnNxcnQoMS4wZiArIG1bOF0gLSBtWzBdIC0g
bVs0XSkgKiAyZjsgLy8gUz00KnF6DQogICAgICAgICAgICAgICAgIHcgPSAobVszXSAtIG1bMV0p
IC8gUzsNCi0gICAgICAgICAgICAgICAgeCA9IChtWzZdICsgbVsyXSkgLyBTOyANCi0gICAgICAg
ICAgICAgICAgeSA9IChtWzddICsgbVs1XSkgLyBTOyANCisgICAgICAgICAgICAgICAgeCA9ICht
WzZdICsgbVsyXSkgLyBTOw0KKyAgICAgICAgICAgICAgICB5ID0gKG1bN10gKyBtWzVdKSAvIFM7
DQogICAgICAgICAgICAgICAgIHogPSAwLjI1ZiAqIFM7DQotICAgICAgICAgICAgfSANCisgICAg
ICAgICAgICB9DQogICAgICAgICB9DQogICAgIH0NCi0gICAgDQotICAgIC8qKiBDaGVjayBpZiB0
aGUgdGhlIDN4MyBtYXRyaXggKHBhcmFtKSBpcyBpbiBmYWN0IA0KLSAgICAgKiBhbiBhZmZpbmUg
cm90YXRpb25hbCBtYXRyaXgNCisNCisgICAgLyoqDQorICAgICAqIENoZWNrIGlmIHRoZSB0aGUg
M3gzIG1hdHJpeCAocGFyYW0pIGlzIGluIGZhY3QgYW4gYWZmaW5lIHJvdGF0aW9uYWwNCisgICAg
ICogbWF0cml4DQorICAgICAqIA0KICAgICAgKiBAcGFyYW0gbSAzeDMgY29sdW1uIG1hdHJpeA0K
ICAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmVwcmVzZW50aW5nIGEgcm90YXRpb25hbCBtYXRyaXgs
IGZhbHNlIG90aGVyd2lzZQ0KICAgICAgKi8NCiAgICAgcHVibGljIGJvb2xlYW4gaXNSb3RhdGlv
bk1hdHJpeChmbG9hdFtdIG0pIHsNCiAgICAgICAgIGRvdWJsZSBlcHNpbG9uID0gMC4wMTsgLy8g
bWFyZ2luIHRvIGFsbG93IGZvciByb3VuZGluZyBlcnJvcnMNCi0gICAgICAgIGlmIChGbG9hdFV0
aWwuYWJzKG1bMF0qbVszXSArIG1bM10qbVs0XSArIG1bNl0qbVs3XSkgPiBlcHNpbG9uKSByZXR1
cm4gZmFsc2U7DQotICAgICAgICBpZiAoRmxvYXRVdGlsLmFicyhtWzBdKm1bMl0gKyBtWzNdKm1b
NV0gKyBtWzZdKm1bOF0pID4gZXBzaWxvbikgcmV0dXJuIGZhbHNlOw0KLSAgICAgICAgaWYgKEZs
b2F0VXRpbC5hYnMobVsxXSptWzJdICsgbVs0XSptWzVdICsgbVs3XSptWzhdKSA+IGVwc2lsb24p
IHJldHVybiBmYWxzZTsNCi0gICAgICAgIGlmIChGbG9hdFV0aWwuYWJzKG1bMF0qbVswXSArIG1b
M10qbVszXSArIG1bNl0qbVs2XSAtIDEpID4gZXBzaWxvbikgcmV0dXJuIGZhbHNlOw0KLSAgICAg
ICAgaWYgKEZsb2F0VXRpbC5hYnMobVsxXSptWzFdICsgbVs0XSptWzRdICsgbVs3XSptWzddIC0g
MSkgPiBlcHNpbG9uKSByZXR1cm4gZmFsc2U7DQotICAgICAgICBpZiAoRmxvYXRVdGlsLmFicyht
WzJdKm1bMl0gKyBtWzVdKm1bNV0gKyBtWzhdKm1bOF0gLSAxKSA+IGVwc2lsb24pIHJldHVybiBm
YWxzZTsNCi0gICAgICAgIHJldHVybiAoRmxvYXRVdGlsLmFicyhkZXRlcm1pbmFudChtKS0xKSA8
IGVwc2lsb24pOw0KKyAgICAgICAgaWYgKEZsb2F0VXRpbC5hYnMobVswXSAqIG1bM10gKyBtWzNd
ICogbVs0XSArIG1bNl0gKiBtWzddKSA+IGVwc2lsb24pDQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOw0KKyAgICAgICAgaWYgKEZsb2F0VXRpbC5hYnMobVswXSAqIG1bMl0gKyBtWzNdICogbVs1
XSArIG1bNl0gKiBtWzhdKSA+IGVwc2lsb24pDQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
KyAgICAgICAgaWYgKEZsb2F0VXRpbC5hYnMobVsxXSAqIG1bMl0gKyBtWzRdICogbVs1XSArIG1b
N10gKiBtWzhdKSA+IGVwc2lsb24pDQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAg
ICAgaWYgKEZsb2F0VXRpbC5hYnMobVswXSAqIG1bMF0gKyBtWzNdICogbVszXSArIG1bNl0gKiBt
WzZdIC0gMSkgPiBlcHNpbG9uKQ0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAg
IGlmIChGbG9hdFV0aWwuYWJzKG1bMV0gKiBtWzFdICsgbVs0XSAqIG1bNF0gKyBtWzddICogbVs3
XSAtIDEpID4gZXBzaWxvbikNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICBp
ZiAoRmxvYXRVdGlsLmFicyhtWzJdICogbVsyXSArIG1bNV0gKiBtWzVdICsgbVs4XSAqIG1bOF0g
LSAxKSA+IGVwc2lsb24pDQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgcmV0
dXJuIChGbG9hdFV0aWwuYWJzKGRldGVybWluYW50KG0pIC0gMSkgPCBlcHNpbG9uKTsNCiAgICAg
fQ0KKw0KICAgICBwcml2YXRlIGZsb2F0IGRldGVybWluYW50KGZsb2F0W10gbSkgew0KLSAgICAg
ICAgICByZXR1cm4gbVswXSptWzRdKm1bOF0gKyBtWzNdKm1bN10qbVsyXSArIG1bNl0qbVsxXSpt
WzVdIC0gbVswXSptWzddKm1bNV0gLSBtWzNdKm1bMV0qbVs4XSAtIG1bNl0qbVs0XSptWzJdOw0K
KyAgICAgICAgcmV0dXJuIG1bMF0gKiBtWzRdICogbVs4XSArIG1bM10gKiBtWzddICogbVsyXSAr
IG1bNl0gKiBtWzFdICogbVs1XQ0KKyAgICAgICAgICAgICAgICAtIG1bMF0gKiBtWzddICogbVs1
XSAtIG1bM10gKiBtWzFdICogbVs4XSAtIG1bNl0gKiBtWzRdICogbVsyXTsNCiAgICAgfQ0KIH0N
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>470</attachid>
            <date>2013-06-01 22:23:17 +0200</date>
            <delta_ts>2013-06-01 22:23:17 +0200</delta_ts>
            <desc>demo</desc>
            <filename>demo.zip</filename>
            <type>application/zip</type>
            <size>5044</size>
            <attacher name="Petr Skramovsky">petr.skramovsky</attacher>
            
              <data encoding="base64">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
JPT8Xs4BUEsFBgAAAAAGAAYARQIAAFkRAAAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>