Texture Example¶
The Textures example demonstrates the use of Qt’s image classes as textures in applications that use both OpenGL and Qt to display graphics.
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>images/side1.png</file>
<file>images/side2.png</file>
<file>images/side3.png</file>
<file>images/side4.png</file>
<file>images/side5.png</file>
<file>images/side6.png</file>
</qresource>
</RCC>
# Resource object code (Python 3)
# Created by: object code
# Created by: The Resource Compiler for Qt version 6.2.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
qt_resource_data = b"\
\x00\x00\x04\x14\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
\x00\x00\x00\x9fPLTE\xf8|\x00\xf8\x80\x00\xf8\x80\
\x08\xf8\x84\x08\xf8\x84\x10\xf8\x88\x10\xf8\x88\x18\xf8\x8c\x18\
\xf8\x8c \xf8\x90 \xf8\x94(\xf8\x940\xf8\x980\xf8\
\x988\xf8\x9c8\xf8\xa0@\xf8\xa4H\xf8\xa4P\xf8\xa8\
P\xf8\xa8X\xf8\xacX\xf8\xb0`\xf8\xb0h\xf8\xb4h\
\xf8\xb4p\xf8\xb8p\xf8\xb8x\xf8\xbcx\xf8\xc0\x80\xf8\
\xc4\x88\xf8\xc8\x90\xf8\xc8\x98\xf8\xcc\x98\xf8\xd0\xa0\xf8\xd4\
\xa8\xf8\xd4\xb0\xf8\xd8\xb0\xf8\xd8\xb8\xf8\xdc\xb8\xf8\xe0\xc0\
\xf8\xe0\xc8\xf8\xe4\xc8\xf8\xe4\xd0\xf8\xe8\xd0\xf8\xec\xd8\xf8\
\xec\xe0\xf8\xf0\xe0\xf8\xf0\xe8\xf8\xf4\xe8\xf8\xf4\xf0\xf8\xf8\
\xf0\xf8\xf8\xf8\xf8\xfc\xf85u\xa4p\x00\x00\x00\x09p\
HYs\x00\x00\x00H\x00\x00\x00H\x00F\xc9k>\
\x00\x00\x03\x1bIDATx\xda\xed\xddas\xd2@\
\x10\x80\xe1\x8b\x10#\x1a\x01#il\x0b\xb1\x80\x0db\
\x10b\xe8\xff\xffm\xb6\xd5\xd1\x92\x12r)8r\xbb\
\xef~\xce\xb0\xec3\xc9]\xb8\xd9\x1d\xcc\x9d\xf20\x00\
\x00\x00\x00\x00\x00\xdc\x19\x85\x01\x00\x00\x00\xec\x02\xa8Z\
\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x80\xff\x18E\xae\x1a \x1by\
\x91^\x80\xf5\xb8w\xff5\xdeh\x05\x98\x0d\xbd\xa7\xbd\
;\xca\x00\xf2K\xbf\xd2\xbc\xa4\x09\xa0H\xc3\xe7\xdd[\
z\x00n#o_\xfb\x9a\x12\x80\xfc*\xa8\xe9\xdf\xd3\
\x00P\xb9\xf5\xb5\x01\xcc\xab\xb7\xbe*\x80\xaf\x89\xdf\xd0\
\xc2*\x19`\xf5\xf8\xc2\xa3\x15\xa0H\xdf[51\xcb\
\x04(\xa7C\xcf\xb2\x8b[ \xc0v\x1eu\xec\xdb\xd8\
\xc5\x01dq\xb7U\x1f\xbf,\x80\xec\xc2o;\xc8 \
\x08`\x91\xbc~\xc1$\x87\x14\x80\xace\xf5\xb2\x00\xb2\
\xd8\x7f\xf1,\x8f\xf3\x00\xe5l\xd4=f\x98\xc9m\x80\
\xcd\xcd\xf0\xd5\x91\xd3\x5c\x0e\x03\xe4\xe3\xbew\xfc8\x9b\
\xa3\x00\xe5\x97\x8b\xe04\xf3|.\x02,'\x03\xefd\
\x03\x8d\xae\x01\xe4i\xe4\x9b\xd3\x84\x83\x00\xab\x0f\xa7*\
\xdeQ\x80\xcc\xae2/J\x02\x99\x00\x0b\x9b\xf2;\x97\
\xeb\xfb\xd3\x00_$\xc0\xb2\xb9*\x7f\x5c<^\x9a\x88\
\x04\xf8\xdeTS/-\x7f_:\x15\x09P\x1e\xae\xe8\
\xdd\xb4\xd5\xcd\xe2\xe26x\xe8\xc9\x1e\xdc\xeel\x182\
\x01\xfa\xf5\x0b\xff\xb2r&*\x13 \xae)?^\xb5\
|Z\x5c\x05Hk\xf7\xbd\xbd\xa9\xe5\x01\xecY\xda\x82\
\xc9\x8f\xda\xd4\x02\x7f\x0bT\xcf\xbb{7\xdb\x03\xa9\x05\
\x02\x0cwJ\x08g\x87S\x0b\x04\xf8\xfct\xdf\xcb\x9a\
R\x0b\x04X\xffY\xf8G\xdf\x9aSK<\x0f\xf8\xf5\
&\xd0IV6\xa9%\x02<l\x84\xfeua\x97Z\
\x22@\xe1\x05\x93\xd26\xb5\xc83\xc1E\x8b\xd4z\xfb\
\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x008_\x80\xadv\x80M3@!\x1a\xc0\
\xe2\x7f\xdas\xd1\x00\x93f\x80\xa9h\x80~3@,\
\x19\xc0\xe2\x090\xfeV0@h\x01`R\xb9\x00\xb1\
M\xfd\xa6\xbb\x16\x0aP\x8e\x8c]\xbc\xdd\x88\x04\x98\xf7\
\x8cm\x04\x998\x80\xe5\xd8\xbe\xfc\x87\x18\xccJ7\x01\
\xae\x9f\xc7U\x12\x85\x1d\xd3:\xbc\xf0\xe3\xa7\xeaGM\
\xce\x1e\xa04\xff4|\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x87O\x85\xcf#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@+\x80\xb6\x00\
\x00\x00\x00\xfe\x02\xe8\x0d\x00\x00\x00\x00\x00\xd5\xf1\x13;\
Ez\xc4\xe1\x22\xe3A\x00\x00\x00\x00IEND\xae\
B`\x82\
\x00\x00\x07\xa7\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
\x00\x00\x00\x8dPLTEx\xfc\x00\x80\xfc\x00\x80\xfc\
\x08\x80\xfc\x10\x88\xfc\x10\x88\xfc\x18\x88\xfc \x90\xfc \
\x90\xfc(\x90\xfc0\x98\xfc0\x98\xfc8\x98\xfc@\xa0\
\xfc@\xa0\xfcH\xa0\xfcP\xa8\xfcP\xa8\xfcX\xa8\xfc\
`\xb0\xfc`\xb0\xfch\xb0\xfcp\xb8\xfcp\xb8\xfcx\
\xc0\xfc\x80\xc0\xfc\x88\xc0\xfc\x90\xc8\xfc\x90\xc8\xfc\x98\xc8\
\xfc\xa0\xd0\xfc\xa0\xd0\xfc\xa8\xd0\xfc\xb0\xd8\xfc\xb0\xd8\xfc\
\xb8\xd8\xfc\xc0\xe0\xfc\xc0\xe0\xfc\xc8\xe0\xfc\xd0\xe8\xfc\xd0\
\xe8\xfc\xd8\xe8\xfc\xe0\xf0\xfc\xe0\xf0\xfc\xe8\xf0\xfc\xf0\xf8\
\xfc\xf0\xf8\xfc\xf8\xa0\x01\x02*\x00\x00\x00\x09pHY\
s\x00\x00\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\
\x06\xc0IDATx\xda\xed\xdd\xdbb\x9b8\x10\x06\
`K\x85B!f\xa1&\x1c\x8a\x03\x81\x9a@!\xf0\
\xfe\x8f\xb7\x17\xbbm\xe2\xc6\x18\x8c\xf5\x13\x81\x86\xcb6\
\x17\xf83\x16\xd2hf\xb4\xeb\x15\xbfv\x04@\x00\x04\
@\x00\x04\xd0\xef\x14\xbc\x08\x80\x00\x08\xe0\x1c@\xa9\xa1\
\x8f\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\
\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\
\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\
\x80\x00\x08\xe0\xae\xabC\xde|\xd7I\x0f\xf0\xccv\x5c\
7\xac\x07\xc7;\x04a\x9c<eyQVu\xd3N\
\xba\xf3\xaem\xea\xaa<\x15y\x96>\x1d\x7f\xc4Q\x18\
\xf8\x07\xcfu\xf6\xb6e\x1a\xba\xc6\xd9n\xc7\x7fI\x0e\
P\xf2\xc1\xcc,\xc65\xdd0M\xcb\xde;\x8e\xeby\
\x07\xff1\xf8\xf0\xf9\xc6/Gr\x80\x00\x9d\xe0fH\
\x0e\x10\xa1\x01|\xc9\x01\x124@&9@\x8a\x06h\
%\x07(\xc0\x9f\xdf\x94\xfd5X\x82\x01<\xd9\x01j\
0\xc0\x0f\xd9\x01Z0@!\xfdL\x10\x0c\xf0Kz\
\x00\x0e\xfd\xfcL\xfe\xc5\x90\x0e\x05\xd0\xe4\x070e\x7f\
\x0b\xa2\x01l(\x80%?\xc0\x1e\x0a`\xcb\x0f\xe0\xaa\
\x0epP\x1d\xe0Qu\x80Pu\x80X\xf5\xb7\x006\
\x22\xf2M~\x80T\xf5\x89P&yH\x14\x0e\x90\xab\
\xbe\x16\xc0\xc6\xc4V\xb0\x1a\x04\xc7\xc4\xe4\xdf\x1a{Q\
\xfd-PA\x7f\x01\x95\xfc\x00\xf5\x87\xfd\xc0\xff6\x04\
\xff\xec\x08\xfaA\x18Fq\x9c\x1c\x8fi\x96\xe5Eq\
*\xcb\xb2<\xfd,\xf2<\xcb\xd2\xa7c\x92\xc4Q\x14\
\x86\x81\xef\x1f\xbe{\xae\xeb\xec\xf7\xb6m\x99\xa6\xf1U\
\xd74\x1e\xf5\xf2\x034g\x00a/\xdf\xb5(@\xa4\
\x1e\xc0y\x5c<V\x1d Q\x0f\xe0\xf5\x0c\xe0\xa8\x1e\
@w\x06\xf0\xa4:@\xaa:@\xa6:@\xae:@\
\xa1:\xc0O\xd5\x01N\xaa\x03\x94\xaa\x03T\xaa\x03\xd4\
\xaa\x034\xaa\x03\xb4\x04\xa08@\xa7:@\xaf8\x00\
S\x1d\x80\x13\x80\xe2\x00\x9a\xea\x00\xba\xea\x00\x86\xea\x00\
\xa6\xea\x00\xdfT\x07\xb0T\x07\xb0U\x07\xd8\xab\x0e\xe0\
\x5c\xfc\x93\xf6t\x0c\xbd\xbd\xa9k\x9c\xed\xd8\x17\xdd0\
m\xf71\xceN\xaf\x1b\x04p?\xfc\xf7K\xe2\x1a\x83\
9pn\x94w[\x06\xe82O\x1bM\x82y\x88_\
\xd6\x0d\xf0:P\xe6\xd8e\xee\xd4z*=\xacW\x0c\
p\x96\x1fp\xf8\xfd\xaf\xa7\xc3m\xd5d\xf6\xb1[+\
@\xf3\xb1\xd6\xbdMfTRiq\xb7\x01\x80\xa0\xef\
\xfb\xea0\xb3\x94\x10E\xb0d\x9a\x5c\xd8?\xdfSE\
\xf65_!\xc0Y\xa6\xa8m\xdc[,\xde\xae\x0e\xe0\
$8=<_\x1b\x80\xf0l\xf1pe\x00\xcf\xc2\x13\
\x84\x9dvU\x00\x80\x92\x19\xb3]\x13\x00\xa2hJ\xac\
\xc0\x1a\xcb\xe6\xccf=\x00\x98\xc2I\xb3[\x0d\x80\x8f\
)\x95pW\x03\xe0\x81\x8aE\xe2\xb5\x00\xa0\xca\xe7Y\
\xb1\x12\x00X\x03\x05\xa3[\x07\x80\x05\xab\x98\x0a\xd6\x01\
`\xc0\x00\xd8\xcb*\x004\x18\xc0\xeea\x15\x00\x0c\x07\
(\xf1\x16\x0b\xd0!\xeb&\xf7+\x00h\xa0\x95\xb3\
\xa5\xfc\x00\x03\x95\xb3\xcc\xf2\xa2\xb4\xa8\x9a\xd7\xbe\xef\xdb\
\xa6.\x8e\xa17g\xb4\xf4\xe4\x07\xb8\x10\x10\xe2N|\
\xf1\x9bks\xff\xd6\xc6c\xbc\x93\x1e\xe0\xef\xfe\x09\xcc\
\xcd\xae\xddt\xe9\xdf\x162N\xa5\x078\x8f\x87\xe8\xd1\
\xe8J\xbeK\xf4\x85\x87A,\xc0\xfbx\x88>\xadl\
\xb2\x8b\xa7?\x05\xac\x95\x1d\xe0\xad\xb12\x9f\xbe~k\
\xa7\xaf\xa0r\xd9\x01\x82y\x11\xfd'\xbe\xdc\x82\x00<\
\x0f\xf0\xd9\xacp~5q$\xb0d\x07\xe8\xfb\xca\x99\
\x15\xc9n\xa6-#Y'=@\xdf\x9ffEo:\
k\xa1\xc9 \x1e`\xe6\xd5\x1a\xcb\xcc\x04\xa4\x05\xe8\xeb\
)K\xe9h\xc3\x00\x93\xfa\x90y[\x06\x98\x12S\xb7\
7\x0d\xd0\x8d\xbf\x0c\xcdM\x03L\xd8Z5\xb6\x0d0\
\x1eT\xd66\x0e0:\x0e\xf2\x8d\x03\x8c\x86\xd5\xd9\xd6\
\x01b\xd5\x9f\x80\xb1\xa8\xaa\xbeu\x80\xb1\xf6\xf4\xe6\xe6\
\x01b\x95'B}?\xda\x94\xd4\xd9<\xc0\xc8)%\
\xde\xf6\x01\xf6\xe0\xbcI\xe9\x01|e\xe3\x01\xff_\xd7\
3\x0d\xab\xed\x03\xe4\xe0\xd6\xd2\xd2\x03T\xd8i\x80\xfc\
\x00\xbf\xc0\xfb\xc3\xd2\x03\x5c=\xaf-Q\x00\xe0j\x92\
I\xad\x00@\x8f\x1d\x02\xd6\xfd\x04\x84*\x004\xe0<\
1\xe9\x01jd@p\x0d\x00W\xea\xce|\x99\x01*\
WPaK\x8a\x9c\x07\xc3\x00Z\x9f\x89*p\x8b\xd6\
\x98(\x19\x7f\xd9\xedv\x5c\xcc#0|^]&+\
\xc0\xb3!2\xa1\xdd\xc4\xc5CA\x00\x7f\xaad\x98\x88\
\xc6\x07\x1d\x03W\xcd\x88\x07x{f\xff\x11p\x7f\x83\
\xb5\xb7Z'+@*\xb4\x97x0\x04 \xea\xb0\x06\
\xf1\x00\x8d\xd0\xc2\x9e\xaf\xc0e\x00j\x104\x04\xe6\xf1\
\x95\xc0\x14I\x18\xc0\xbb0&\xbbw\xb6\xeeC\xe7\x00\
\x80\xf7{\xda\xfa}\x93\x81v`W\x80U2\x03\
\xb4\xe2\x8a\x5ccx\xe1(d&h\x8a\xba\xd7VC\
\xff\x000\x00g?\x5cv\xc7p5\xf0\x0e\xd4d/\
\x9f?\xef\x9b\xc1g\xff^k\x86\x5c\x04\x00\x01\xda\xf3\
\x1b\xd7\xe7N\x89-`\x18\x00\xbb\x1a\xfc\xeb\xceg\x0a\
\x04\xf8\x01\x00\x05\xf0\xf7\xad\xebs~\x05)\xbe{\x04\
\x0c\xe0\xc3~\x9ev\xfb\x84\xa8\xb8<\x00\xe8\xa2O\xa9\
\x80\x00\xbc~\xb8y~\xeb>\xf6\xcf\xcbS .\xbc\
\xbf\x22&$va\xf8\xf2ozt\xb3\xcb\xdf?\x17\
\x7fV\x15\x06\xe0\xd2\xf8e\xdeP\xdd\x11\x0d|~\xc0\
IM\x18\x80\x8b\x9b\xfa,\x98\xf8\x104\x03\xb9q\x1a\
\xe2\xa0&PTx`\x04\x9b\x14\xc5\x18\xaa\x9c\xd4!\
\xbdEA\xfb\x02Ci\xdeF2\xf6\x14\xa4C\xe9\xc1\
\x06\xa6\xb7*\x08\xe0qx?+\xb8\xf2 \xb7\x91\xbe\
T\x1790\xc0\xd5<w#(.=\x07u\xf20\
\x18\x02f\xb0#\x8bA\x00\xedX\x9a\xbbuH\xf2\xea\
\xf7\x97\xda\x96i\xe4\x5c+\x12\xd3pG5\xa2\xf6\x06\
\xa7u\x84`\x5c\xd3\xb5\xf1F+6\xf0\x902\x14\xc0\
A\x5c\xab\x10\x0e=\xb0\x1a\x05p\x14\xd7,\x06{H\
\x1fl{\x5c\xd0\xc7\xd7\xd0g\x15\xc3\x12$\xb8\x88\x8f\
\xcf|\xf8\x01u0\x00\x01}\xe4\xd8\xf7\x05\x8e\xa8\x84\
\x01\xdc\xdfL\xd3]\xe4\x88R\x18@v\xe7\xb7\xef\xbd\
\xf4\xfd\xaa\x01\xee\xea\xa25\xa1\xe1\x8e\xf4\x00}0\xb7\
\x95\x1es\x96<\xa3\x1c\x98&\xd7\xa53\x9a\xe9\xb3}\
\xb2\xec\xd9\xb4\xd8<\xc1:\xba\xe94\x09\xee\xa6\x8b\x9f\
\xcb\x0aO\x94\xac\x93\xfd\xa4\xae\x8a\x9a\x13\x15\x9fq(\
\xeb\x22\x99\xa2\xa7\xd85\xae(h\xb6\x9f~\xda\xa1\xd4\
\x8b\xa5\xcav/Y\x1c\xb8{\xcb\xd08g;\xc6u\
\xc3\xb4\xf7n\x90\xe4\xd5\xe7\x1e\xc6+\x7f\xbd\x00\x01\x10\
\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\
\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\
\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01@\x00T\xbb\
\x08\x80\x00\x08\xe0\x0d@\xdd\x8b\x00\x08\x80\x00\x08@\xe9\
\xeb_)~G\x9c\x8c?\x1d\xdc\x00\x00\x00\x00IE\
ND\xaeB`\x82\
\x00\x00\x05>\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
\x00\x00\x00\xa5PLTE\x00|\xf8\x00\x80\xf8\x08\x80\
\xf8\x08\x84\xf8\x10\x84\xf8\x10\x88\xf8\x18\x88\xf8\x18\x8c\xf8\
\x90\xf8(\x90\xf8(\x94\xf80\x94\xf80\x98\xf88\
\x98\xf88\x9c\xf8@\x9c\xf8@\xa0\xf8H\xa4\xf8P\xa4\
\xf8P\xa8\xf8X\xa8\xf8X\xac\xf8`\xb0\xf8h\xb0\xf8\
h\xb4\xf8p\xb4\xf8p\xb8\xf8x\xbc\xf8\x80\xbc\xf8\x80\
\xc0\xf8\x88\xc4\xf8\x90\xc4\xf8\x90\xc8\xf8\x98\xcc\xf8\xa0\xcc\
\xf8\xa0\xd0\xf8\xa8\xd4\xf8\xb0\xd8\xf8\xb8\xd8\xf8\xb8\xdc\xf8\
\xc0\xdc\xf8\xc0\xe0\xf8\xc8\xe0\xf8\xc8\xe4\xf8\xd0\xe4\xf8\xd0\
\xe8\xf8\xd8\xe8\xf8\xd8\xec\xf8\xe0\xec\xf8\xe0\xf0\xf8\xe8\xf4\
\xf8\xf0\xf4\xf8\xf0\xf8\xf8\xf8\xf8\xf8\xf8\xfc\xf8\xce\x99\xaa\
w\x00\x00\x00\x09pHYs\x00\x00\x00H\x00\x00\x00\
H\x00F\xc9k>\x00\x00\x04?IDATx\xda\
\xed\xdd\xe1v\xd2@\x10\x05\xe0\x0d4\x05\x91b(\x82\
\x14$\x16S\xc4\x88\x18\x13\xd3y\xffG\xf3\x8f\x9e\xee\
%\x9b\x9e\xb6\xb6s\xef>@\x0f\xfbA\x93\xbd3\
\x13p\x02\xbe\x1c\x01\x08@\x00\x02\x10@\x1c\xe0\x22\x00\
\x01\x08\xa0\x01\xa0.}\x04 \x00\x01\x08@\x00\x02\x10\
\x80\x00\x04 \x00\x01\x08@\x00\x02\x10\x80\x00\x04 \x00\
\x01\x08@\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\
\x10\xe0\x05\xac\x9f\xd9|8\x02\x05\xa8\xf3t\xd2s\xce\
\xb9\x1e @\x91\xcd\x87\xd1\xdf!\x96.\x16@\x9d\xa7\
\x93\xf3cc<\x08\x00\xea\x8d\x07\x03\xa8\xf3\xf42>\
9\xc8e\x18\xa0<\xfe\xc6\xc3\x00T\xbd\xa0Q>\xbb\
\x00S\x87\x0dp\xe3\xb0\x01\xaa\x18\x1c`\xe2\xb0\x012\
\x87\x0dP\xc6\xe0\x00c\x87\x0d\x909l\x80\xf2\x0c\x1c\
`\xec\xb0\x012\x87\x0d\x10t\x07\xb0\x0cp\xe9\xb0\x01\
2\x87\x0dP\xc5\xe0\x00~\x06\x88\x00\x01T\x08^\xe0\
\x01\xa8*P\xbf\xc6\x03\x98\xf9\x1b\xdc\x0a\x1c\xc0\xd6\xdf\
\xdfL\xe0\x00\xea\xbe\xb7\xbd\xb8\xc2\x03\xb8\xf2\xb7\x97\x09\
\x1c\xc07\xff\xb6\x97\x08\x1e\xc0\xc0?\x02\x14x\x00+\
\x7fsK\x81\x03(:\xea\x08\x80\x07\x90\xf8{\xdb\x08\
\x1c\xc0\xda\xdf\xdaX\xe0\x00T\x08\xec\x14x\x00\xaa\x13\
\xba\x128\x00u\x06\xfes\x05D\x02Pg`\xf7E\
\xe0\x00\x96\xfe\xbe&\x02\x07\xf0\xc3?\x03wK<\x00\
u\x04H\x05\x0e@\xd5\x81\x07\x02\x07\xa0\xeb\xc09\x1e\
\xc0\xfc\xa0\x0c\x84\x06\xb0\x8b\x0e\xca@h\x00C\x7fO\
k\x81\x03P!h(p\x00\xea\x0a\x18\xed\xf0\x00>\
\xf8;\x9a\x0b\x1c\xc0\xa9+ \x04\xc0\xf0\xb0\x10\x0e\x06\
\xf0\xd9\xdf\xcf\x85\xc0\x01\xd4\xe7\xf7\x9e\x011\x00T\xfb\
;\x118\x80B\x0d@\xec\xf0\x00\xc6\xf7\x94AP\x00\
6\xee\x9fV\x18\x16\xc0\x9b\xfbS \x04\xc0\xb5\xbf\x97\
N\x09\x07\xa0\xcb \x0b\x81\x03P\xb7\xc0\xb3\x0a\x0e@\
\xdf\x02S\x81\x03P\xcfD\xf5j8\x80\xdc\x9d\xa8\x03\
!\x00\xa8\x14\xd8\x178\x00=\x11~\x03\x07p\xdb?\
U\x08\x04\x00\xf8\xe4\xf4D,\x1a\xc0\xaf\xb8)\x06\x1b\
\x07P\xcd\xf0\xa31\xd86@\xd9i\x8c\xc1\xb6\x01f\
\xcd1\xd84\x80>\x04\xcf\x04\x0e\xe0}@\x0c\xb6\x0c\
\xf0\xdd\x05\xc4`\xcb\x00\xe3\x90\x18l\x18@\xa7\xa0T\
\xe0\x00FA1\xd8.\xc06,\x06\xdb\x05\x18\x85\xc5\
`\xb3\x00\xdb\xc0\x18l\x16`\x18\x18\x83\xad\x02lB\
c\xb0U\x80ah\x0c6\x0a\xb0\x09\x8e\xc1F\x01.\
\x82c\xb0M\x00}\x0b\xd8\xe3\x01\xbc\xf3_\xfc\xa5\xc0\
\x01\xe4\xad\xaf\x00\xc6\x00\x92\xb6\xb7\x00c\x00;\xf5\xda\
\xbf\xe2\x01LZ\x1e\x02\xad\x01\xec\xa3v)\xc0\x1c\xc0\
\xac]\x0c4\x07P\xaa\x0f\xc05\x1e\x80\x1a\x88\xe9\xd6\
p\x00U\xb7E)\xd8\x22\xc0*\xbc\x19d\x12\xe0\xf6\
\xbcu\x0c\xb2\x05\xa0\x1e\x0b86\x16o\x1d\xc0\xff~\
\x1c7\x128\x80\xb6\xa5Ps\x00\xe3\x07\x1d\x82\xec\x00\
\xec\xdb5C\xec\x01\xa8SpO\xe0\x00\xf4!h\x8d\
\x07\x90>\xfc\x03`\x03\xa0\xe9\xb7b\x1ey\x15/\x0d\
\xe0\xe6y\xf7\x1f\xd2oz^\x80\x04\x1c`\xef\xc0\x01\
\xe6\xe0\x00u\x17\x1c\xe0\xda\x81\x03\x0c\xc0\x01r\x07\x0e\
0\x05\x07\xa8\x22p\x80\xbdC\xff\x17@\xff\x04\xc8[\
^\x04\xc1\x01Rt\x80-:@\x89\x0e 1:@\
\x82\x0ep\x85\x0e\xf0\x08\xaf\xc4\xe0\xb3\xc3\x04 \x00\x01\
\x08@\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x9c\
X\x0d\xbf;\x5c\x9b\x07h()V\xe6\x01vO?\
\x10\xf6\xb2\x016\xa7\x01r\xf3\x00\x0d}\x95\xcc<@\
Cgmi\x1e\xa0a\xc84\xb1\x0e\xd04^\xd0\xb5\
\x0e\xf0\xb1\xa9\x07\x90\x1b\x07h\x1c\xb3\x9e\xd9\x06X7\
v\x81\xba\x95e\x80*`\xce~i\x19 d\xba$\
*\xec\x02\xac\x82Z\xa1\x83\xda*\xc0\x22\xb0\x19\x9c\xd4\
&\x01\xf6\xa3\xe0v\xf8`g\x0e\xa0\xdeL\xda\xcc\x17\
F\xd3\xfc\x15\x03\xac\x96\x07k1\xbdh?]\x19'\
\xf3\xbb\xbfP\xbc*\x80'\x18%\xdd\x12\x80\x00\x04 \
\x00\x01\x08@\x00\x02\x18(\x8a\xfe\xafE\x00\x02\x10\x80\
\x00\x04 \x00\x01\x08@\x00\x02\x10\x80\x00\x04 \x00\x01\
\x08@\x00\x02\x10\x80\x00\x04 \x00\x01\x08@\x00\x02\x10\
\x80\x00\x04 \x00*\x00\xda\x22\x00\x01\x08p\x07\x80\xbb\
\x08@\x00\x02\x10\x00z\xfd\x06\x0eL\xb1gp\xf4v\
\x0b\x00\x00\x00\x00IEND\xaeB`\x82\
\x00\x00\x09\x8e\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
\x00\x00\x00\xf0PLTE\xf8\x00x\xf8\x00\x80\xf8\x04\
\x80\xf8\x08\x80\xf8\x0c\x80\xf8\x10\x80\xf8\x10\x88\xf8\x14\x88\
\xf8\x18\x88\xf8\x1c\x88\xf8 \x88\xf8 \x90\xf8$\x90\xf8\
(\x90\xf8,\x90\xf80\x90\xf80\x98\xf84\x98\xf88\
\x98\xf8<\x98\xf8@\x98\xf8@\xa0\xf8D\xa0\xf8H\xa0\
\xf8L\xa0\xf8P\xa0\xf8P\xa8\xf8T\xa8\xf8X\xa8\xf8\
\x5c\xa8\xf8`\xa8\xf8`\xb0\xf8d\xb0\xf8h\xb0\xf8l\
\xb0\xf8p\xb0\xf8p\xb8\xf8t\xb8\xf8x\xb8\xf8|\xb8\
\xf8\x80\xb8\xf8\x80\xc0\xf8\x84\xc0\xf8\x88\xc0\xf8\x8c\xc0\xf8\
\x90\xc0\xf8\x90\xc8\xf8\x94\xc8\xf8\x98\xc8\xf8\x9c\xc8\xf8\xa0\
\xc8\xf8\xa0\xd0\xf8\xa4\xd0\xf8\xa8\xd0\xf8\xac\xd0\xf8\xb0\xd0\
\xf8\xb0\xd8\xf8\xb4\xd8\xf8\xb8\xd8\xf8\xbc\xd8\xf8\xc0\xd8\xf8\
\xc0\xe0\xf8\xc4\xe0\xf8\xc8\xe0\xf8\xcc\xe0\xf8\xd0\xe0\xf8\xd0\
\xe8\xf8\xd4\xe8\xf8\xd8\xe8\xf8\xdc\xe8\xf8\xe0\xe8\xf8\xe0\xf0\
\xf8\xe4\xf0\xf8\xe8\xf0\xf8\xec\xf0\xf8\xf0\xf0\xf8\xf0\xf8\xf8\
\xf4\xf8\xf8\xf8\xf8\xf8\xfc\xf8\xd6\xac>\xe0\x00\x00\x00\x09\
pHYs\x00\x00\x00H\x00\x00\x00H\x00F\xc9k\
>\x00\x00\x08DIDATx\xda\xed\xddk[\xda\
H\x14\x00\xe0@R\x01\x05T\xac\xc8J\x11a-V\
\xa4\x5c\xaa`\x15\xb9\x88`\x00I\xce\xff\xff7\xfb\xa1\
\xbb\xed\xb6\x0fs\x83\x990\xc9\x9c\xf9\xacy\x987\x99\
\xfb\x99\x19\x0b\x0cO\x16\x02 \x00\x02 \x00\x02\x80e\
`B\x00\x04@\x80\xdf\x01\x8c\xaa\xfa\x10\x00\x01\x10\x00\
\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\
\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\
\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10`\xf7i\xe5\
N\x86O\x0f\xdd\xce\xa3a\x00\xf3\xe7\xbb\x9b\xf2\xd9Q\
2\xfe3\x96\xa7\xb84\x04\xc0\x1f\xb7/s\x1f\xd6D\
3%\x9f\xa2\x0f\xe0\xf5\xafO\xe2\xe4\x80\xae\xaa\x17i\
\x80y\xbb`3B\xda2\xe3\xc8\x02\xbcw\xf21\x8e\
\xa0\xbex=\x9a\x00\xe3\xb2\xcd\x1b\xd7\x98\x9bE\x0f\xa0\
w,\x12\xd9\xe9\xb8\xd1\x02\xf0;i\xb1\xd0\xd6F\xb4\
\xbe\x80{\xc1\xec[\xb5H\xd5\x01\xfd\xachhs%\
J\x95\xe0\xec\x9c#\xc7v6_\xba\xaa7Z\xedN\
\xbbY\xff|\x1d\xa1f\xd0\xaf3j\xfeX\xa6\xf4\xb5\
?\x8f\xec`hD\xff\xfa\xd3\x95\xdeR\xfd\x8f\xd8\x1d\
\x80_\xa3u{\xb27\xaf\x11\x1f\x0e\x8f)\xaf\xdf\xa9\
\xbcD~>\xa0A\x1e\xf0\xa4\xdb\x1e@\xc4\x01\x16g\
\xc4\xec\x1f\xf5\x0c\x98\x11\x1a$I\xd9?\xe8\x9a0%\
\xd6\x22}\xfeN\xc37`N\xd0\xbb \xbd\xfes\x17\
\xfa\x00\xee\x11!\xfb{]\x00\x03\x00^H\xc5\xff\
t\x0e&\x00\xf4\x1dB\xfe\xaf\x01L\x00\xb8'T\x7f\
N\x0f\x8c\x00h\x10^\x7fr\x02F\x00\xd4I]\xbf\
\x19\x18\x01pK\xc8\xff\xe1\x02\x8c\x00 \xe5?\xb3\xd3\
\xfc\x07\x07@*\xff\xe99\x18\x01\xf0\x8d\x90\xff\xc4\x0c\
\x8c\x00x\x22\xb4\x7f\xf6\x08\x8c\x00x!\xf5\x7f\xba`\
\x04\x80K\xea\xffV\xc1\x08\x00\xef\x90\x90\xffc\xdf\x0c\
\x802i\xf8?\x03#\x00\xda\xa4\xf1\x7f\x1b\x8c\x00\x18\
\x93\xe6\x7f\xf2`\x04\xc02EZ\xf0\x9a\x99\x01P\x22\
\x15\x80:\x18\x01\xf0\x9d\x94\xff}\xdf\x08\x80e\x82\x04\
p\x0fF\x00\x14\x89\xeb\x1f`\x04\x00\xb1\x00X\x0fF\
\x00x\x07\xc4\xc5_0\x02\xe0\x86\xf8\x01t\x8c\x00p\
\x89\xf1\x1f\x09\xcf\x08\x80b0q^\xda\x02\x8c\xc8\x11\
\x10S#\x00\xc81\x0090\x01`H\xfe\x00\x9aF\
\x00\xe4\xc9\x00\xae\x09\x00\x94\x0f\xe0\x18L\x00(\x90\x01\
\xaeM\x00\x98R\x82\x00\x07&\x00T)Q\x80\xbe\x01\
\x00+\x87\x0c\x90\x07\x03\x00\x9aVH\xaa\x00U\x00\x19\
\x0a\xc0\xa3\x01\x00cZ\x14\xf8\xc2\x00\x80+J\xfe\x93\
\x10}\x00?i\x85\xa5\x0eT\x03\xf0D+\x01W\x06\
\x00\x94h\x00-\x03\x00\xf6h\x00\xfd\xe8\x03\x0c\xa9[\
\x81(+b\xb3n\xbd|\x9aM:v\xccN\xa42\
'\x17\xf5\xee$\x94\x005\xeaF0BG\xf8\xadu\
\xbe\xee\xc3q\x0a\x8dq\xe8\x00\xa8\x9b\xc1\xd6\xb6\x82\xab\
V\x8e\xb6}\xac\xee\x86\x0a\xc0\xa5\x96\x805\x93\x01n\
\xd5al\x9d\x8c\xe5\x07!\x02\xe8P\xf3R\xf8\xf3\xcf\
\x17\xd58\xcf\x86\xd9\xfc04\x00ejF.\xff\xf8\
\xeb\x96cq\xa6\xe2\x22$\x00i\x81\xad\xdfS\x91s\
\x03\xf6\xeeB\x01\xb0\x10\xd8\xfb\xdf\xb6-\xa1t\xbe\x0a\
\x01@\x8f\x9e\x87\xff\xad\x0az%\xe1[\xc1\xb2o\xfa\
\x03\x5c\xd1\xb3\xf0ko\xc8\xfch\x83{\xd1\x12C\xed\
\x01>\xd2s\xf0\xf3(\xa4\xd7\xd4F7\xc39C\xdd\
\x01\xf6\xe8\x19\x18\xfd\xd7_v\xac\xcd\x923\xd6\x1b`\
\xce\xf8\xfd\xff\xee\x8a\x7f\xb6\xadM\xd3\xde\xab\xd6\x00O\
\x8c\x9f\xffc,\xd4\xdf<\xff\x96\x95Y\xe9\x0c\xd0`\
\xfc\xfa9\x00\xc0p\x9b\xfc[VQg\x00V\xd3\xb6\
\x04\x80\xc9\x87-\xef\xc8lj\x0cp\xc2\xf8\xed+\xca\
\xf6\x01\xee$1\xccV:\x00\xabq\xf3\xe0=km\
\x9d\xce\xb4\x05\xf0Y\x07\xc2\xf9\xfe\xa9\x8c\x8bb{\xba\
\x02\xccX\xbf\xdc\xafH\xb9)7\xe5k\x0a\xf0\xcc\xfa\
\xe5mIw\x05\xb75\x05\xb8c\x9e\x87(\x09\xe0\xc0\
\xd7\x13\xe0V\xb4>?\xbd\xbe\x1f\xb9K\xdf\x9bO\xba\
\xb5\x93\x98\xc0\x7f~\xd3\x13\xa0&\x92\xfb\xf8\xf9\xc3\xef\
\xefq\xd1\xcap\xff\xf3\xa1\x9e\x00\x97\xfc\xd9\x8f\x95\xd7\
\xb5\xe6=n\x82\x17-\x01\x8a\xfc=\xfa\x11\xa1!\xad\
qV\x13U-\x01\xb8\x1b\xf9\x229^z\x98\xe0\x9b\
\x1b\xf1u\x048\xb4$\xbc\xbe\x19_1x\xd4\x11\xe0\
\x80/\xff%\xc6\xc4*\x97\xc0\x95\x8e\x00|\xf3\x5c9\
\xd6\xd7;\xdf\xe7\xa9Et\x04\xe0*\xbe6;\x5c~\
\xccS\x13\xba\x1a\x02\xec\xc9:\x17\x98\xa7\xcb\xdc\xd1\x10\
\xc0\x966\x90)\x04s\xc0\xael\x80\xb8\xb4\x17\xf7\xc6\
\xb6\xcci\x08 \xb1\xfd\xae\xb3g\xc8\xc3\xf9\x05|\xe6\
|\x94\xc7\xaeP\xa7\xfa\x01p,wp\xc7\xfd\xb0G\
\x96\x0f\xfa\x01\xb0\xdf\xda>\xf7\xb3VL\xcdV\x18;\
B\x02U7s\xf6\xac\xa6\x1f\x00\xfb\xa8|\x81\xe9\xcc\
\xf1\x96=\xea]\x00d\xa5v\xdfXO;\xd5\x0f\x80\
\x19\xf2\x22\x14,\xfeE\xfdh@6\xc0Gf\xb4\x97\
\xc8\xd3Xe\xe0 \x843B\x15\x99ujR?\x80\
\xaa\x8c\x81\xd0\xaf\xf4\x89\xfe\xb0\x0f\xfa\x010\xfb\xafb\
\xe7\xc7\xb5\x18\xd3\xca\xfa\x01|c\x01<\x83\xc4J \
\xa6\x1f\x00+@\xc4\x12\x8bo\xf1\xe9c\x0b[?\x80\
\x17\x16\x80\xe0\x11\xa2\xf4\xc9\xc1\x84~\x00\x0b\x16\x80\xe0\
\xbd)\xe7ak\x06\x99\xc3A\xc1\xe3Sja\xeb\x08\
1\xbb\x82\x82\xab\x19-\xd1\xcd\x07;\x07`\x05I\x09\
>\x8e\x1ey\xfcQC\x80\xba\xdc\x220\xa0>\xec\x93\
\x86\x00=v\x94\x98H\x9a\x86m>\x80\xf1\x8b\x85\xb7\
N\xcfU\xc7\xc9H\x07`t]DWs\x96|\xa1\
\xe7\x1a\x01\xb0\x9a\x01\xc1\xad\x90\x1eG\xe0\xb1f\x00\x8c\
\xf1`\x7f\x83\x1fH\x1c\x0a\xf8:\x02te\x8e\x06\xc1\
W\xbd<,\x1f\xc0\x95:\x93\xbd\xa2=\xab\xac%\x00\
c\x16\xa7&\xb1\x12l\xeb\x09\xf0If\xac\xff\x5cb\
\x85\x1a\x14\x00\xbd\xfb.x\x9c\xecD\xedl\x80\x12\x80\
\x99\xcci\xbc\xbe\xda\x91\x80\x9a\xed\xf3\x19\x893\x22\xb4\
6\xe5VW\x00\xfa\x18\xfe\xbb\xd0\xb3\x9aj\x17\xc7w\
q\x84\x86\xd8IZ\x94n\x95\x9c\xb3\x89U\x00\xd0\xd7\
\xc8\xc5v\xbb(?\x96P\x09\x00\xf5\x04\x01\xb1\xd3\xf4\
(\xab\xcdc}\x01\xe8s\xe3\x22\xa7a\xac\xc8;\x08\
\xd2\xa0/\x00\xec\xcb\xaa\x04\x06\xca\xf7\x0e\xaa\x01\xb8\x91\
\xd5\x15\x22\xefCuV:\x03\xb81I\x8bC\x05\xc5\
\xbb\x05\x94\x1d\xa8x&\xa7\x0c\xf8\xb6\xdaN\x80:\x80\
\x9e\x9c8\xb1'\xf5[G\x15\x01\xd0\xbb\xc3\xdcqR\
\xc4\x1dH\xb1\x89\xee\x00\xf72b|=\xe2:\xdb\x05\
\xe8\x0e@\x8f\x97\x1bn\xa9h\xbb\xfa\x03\xdcI\xf8\x04\
\xb2\x0a\x17D\x94\x03\xf8\xe9\xad\xa7F\x1f\x89\x1b\x0e\xde\
C\x00@o\x08\xb8\xb2p\xa4p=$\x00\x00\xf8k\
\xcb \xd7\x96\xea>\x90j\x00\xd7\xd9\xaa\x10\xb8\xa4\x83\
F\xd2^H\x00\xa8\xb39\xcc\xfbf}\xd2\x19\x93\xf1\
\x11\x84\x05\x00r\xd4\x00\xa7\xd9f} \xc9w4)\
\x05\x98Q7\xd1\xa5h\xbd\xb9\xab\x00Z@\xf5\x00\xe4\
\x86\xec\xc7\x88\x96\xb8PJ>h\xa4\x08\xa1\x02`l\
\xfb\x89\xd5\xd6O\x8f\xcd\x89\x87\x11\xe5\xbc\x90\x01\xb0v\
\xbdd\xd74\xe9~\x93\xd8|\x9c\x84\xe1D\xc9?\x12\
+~>\xd7\xfb\xfd\xa5\xbe7\xc8\x8b\xabg\x0a\xeeh\
S\x0e\xe03w\x108\xa5\xce\xf8GQX\x0e\xbe\xe6\
)\x116E\x15\xb7\xb3(\x07\x00\xbf\xcc\xb3\x9f\xdaI\
\xa5\x93\x8c \xd3\x8a\x92\xdbi\xd4\x030\xa6Hy\x93\
\xad\xe8\x96\xd6 \x00\xa0ko\x9d\xff\xcc+\x84\x18\x00\
^3[\xe6\xbf\xac\xec\x8a\xca`\x00\xc0\xfb\x1c\xdb\xe6\
\xf5+\xbc\x94! \x00\x80\xe1\xe1\xc6\xa5\xffV\xe5\xdd\
\x5c\x81\x01\x00\xb4\x13\x9bd?~\xa1\xf6v\xc2\x00\x01\
`u+L`\xff\xad\xfar\xc6 \x01\x00\xbc\xb6\xd0\
q\x9a\xc9/K\x80H\x01\x00\xc0\xe0\x92\xf3HY\xa7\
\x1c\xc8}4\x81\x03\x00\xf8\xdf+\xccS\x06R\xa5^\
@\xb7\x12\xee\x00\x00\x00`\xda\xb9\xcc\x12z\xfd\xb1\xcc\
\xe5\xdd\x1b\x04\x96v\x04\x00\x00\xe0\xbfvo\xab\x85\x5c\
&\xe9\xd8\xb1\x98\x93<\xc8\xe6\xce\xaa\xcd\xc7i\xc0\xf7\
Q\xee\x10@\x8f\x84\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\
\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\
\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\x00\x08\x80\
\x00\x08`*\x80i\x09\x01\x10\x00\x01~\x01\x98\x9b\x10\
\x00\x01\x10\x00\x01\x8cN\xff\x00\xf3k\xd4\xa5uQ\x85\
3\x00\x00\x00\x00IEND\xaeB`\x82\
\x00\x00\x06\xe8\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
\x00\x00\x00\x8aPLTE\x00\xfcx\x00\xfc\x80\x08\xfc\
\x80\x10\xfc\x80\x10\xfc\x88\x18\xfc\x88 \xfc\x88 \xfc\x90\
(\xfc\x900\xfc\x900\xfc\x988\xfc\x98@\xfc\x98@\
\xfc\xa0H\xfc\xa0P\xfc\xa0P\xfc\xa8X\xfc\xa8`\xfc\
\xa8`\xfc\xb0h\xfc\xb0p\xfc\xb0p\xfc\xb8x\xfc\xb8\
\x80\xfc\xb8\x80\xfc\xc0\x88\xfc\xc0\x90\xfc\xc0\x90\xfc\xc8\x98\
\xfc\xc8\xa0\xfc\xd0\xa8\xfc\xd0\xb0\xfc\xd0\xb0\xfc\xd8\xb8\xfc\
\xd8\xc0\xfc\xe0\xc8\xfc\xe0\xd0\xfc\xe0\xd0\xfc\xe8\xd8\xfc\xe8\
\xe0\xfc\xe8\xe0\xfc\xf0\xe8\xfc\xf0\xf0\xfc\xf0\xf0\xfc\xf8\xf8\
\xfc\xf8`;^\x10\x00\x00\x00\x09pHYs\x00\x00\
\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\x06\x04I\
DATx\xda\xed\xddaw\xa28\x14\x06`Ba\
`\xa4\xba\xd0vtuQ*2Pb\xf8\xff\x7fo\
;\x9d=g\xdb\x01\x14\x85$7\xe4\xcdw\xcf\xe9}\
*\xe1\xe6\xe6&:\x8d\xe5\xc3\x01\x00\x00\x00\x00\x00\x00\
4\x8e\x85\x03\x00\x00\x00\xc0W\x00\xab\xa6>\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00&\x1eU\x9e\xae\x93(\xf4]\x971\xd7\xf3\x830\
J\xd6iV\x08\x1b\x00\xc4q\xf3\xe8\xf6u,\x06\xf1\
\xf6\xc8\xe7\x0cP\xed\x1e\xd9\xd5\xbe\xcdp\x9d\x8bY\x02\
\xf0\x7f\x16C{W\xd9\xea \xe6\x06P$\xec\xa6\xfe\
]7\xc9\xe7\x04p\x8c\xee\xe8a\x0eR1\x13\x80\xe3\
\xe2\xce6no\xcbg\x00PD#:\xd9\xdd\x9d\xe9\
\x00u2\xb2\x99?8\x1a\x0d\x90\xba\xe3\xcf3,k\
c\x01\xca\xc5$':\x1e2C\x016l\xaaC-\
O\xc2@\x80\x89\xfe\xfd\xff\xcd\x04\x95q\x00S<\xfd\
\x9f\xdf\x88\x85Y\x00<\x9e\xfah\x97{4\x0a\xe0\xdb\
\xf4\x87\xdb\xd8\xc1 \x00.\xe3x\x1f\xcb\xcd\x01(\xa4\
\x1cptO\xc6\x00\x1c\xe5\x1c\xf1\xf4*S\x00RI\
\x87\x5c\xbf\x0bC\x006\xb2\x8e\xf9\xbe\x18\x02\x90\xc8\x02\
p23\x00\x1e\xa5\x01x\xdc\x08\x80@\xdeY\xf7\x17\
#\x00\x98<\x00V\x1a\x00\xc0\x1d\x89ci\x00\xc0\x80\
<\x88\xb9w\x7fK\x0a\xfa\x00\x97\xf2 o\xb5\xcd\x8a\
\x8f\x99L\xf0\x22\xdb\xae\xbc\x9b\x01\x12\xfa\x00\xbdy\xd0\
b\xdb~\x82\xcbMx\xe3,\xc0\xc9\x03t\xe7A\xee\
\xba/\x93=\xc57=\x0f\x7f\x93\x07\xe8\xca\x83\xbc\xdd\
\xa54\xb6\x5c\xdeR\x1e\x22\x0f\xd0\xde\x09`?\xceW\
>\x93\xdd0\x19T\xd4\x01ZyP8`\xe6\xae\x87\
\x7f\x09v\xd4\x01\xfe|\xa2\xe3a\x8b\xb8\xe7\xa1\x00\x8f\
\xc4\x01\xfe\xcc\x83\xd6C?\xb8\x1e\xfa\x1e \x0eP\xdc\
\x19\xff\xf0U\xe4O\xda\x00\xaf_\xfe\xd8\xbf\xc6M\x9f\
\x9d\xe3@\x1b\xe0K\x1e\xe4\xdf\x94\xb6\xd4\xc3v\x13\xd6\
\xb4\x01\xbe<\xca\xfb\xdb>{\x18\x04\xb0\xa2\x0d\xf0\xf9\
I\xf6\xc7\xe7\x10])5m\x80hL\xfd\xe24\x04\
\xa4\x0d\xf09\x0f\xba}3cH>\xe4\xd3\x06\xf8\
\x94\x07\xb1\xdb\xeb\xd8C\xf6\x14\x5c\xd2\x00|d\xf9\xc6\
W\x99\x09\xc9\x00(Ff\xed/\xa6\x7f\x03^G\xa6\
l\xf9\x80\xe28i\x80t\xec\x1f\xca\x14V\x04d\x00\
\xac\xc7\x96\xef\xae\xa7\x02\x11i\x80dl\xce~}Q\
\x98\x90\x06\xf8\xf4\x0f\xbc\xaf\xc3oo\xf8Z \x18\x9b\
\xb0\xe5\x86\xaf\x06\xd9\xd8\x7fT\xa9poD\x02\x00\x1f\
\x93\x07\xff^\x13\x9b]\x11*\xc6\xe4\xc1\x1fC\xa8{\
\x09\xc8\x00\xc8\xc6oc^\x03\xd8\x90\x06H\xc7W\xaf\
\xaf\x01\x1ci\x03\x04\xee\xc8\xa9\xea|m% H\x03\
|Lc?\xf3C\xba\xbd\xfb\xd3\xca\x0abD\x8f\xce\
VW\x00\xf6s\x078\x19\xbf=>rd\x97\x01\xe2\
f\xee\x00;e\xef\x00\xa2\x00/\x8a\x0a\xa2d\x01.\
\xd7\x03\xb6\xf3\x07\xb8\xd8*\xe1\xf2\xd9\x03\xd43\xe8\x14\
\x95\xf7\x12`o\xf3\x07\xb88\x07>7\xf3\x07\xb8t\
\xde\x90U\xf3\x07\xe0l\x06\x07&\xc6\x8c\xbd\xbaW\x00\
M\x80XM\x7f\x1cY\x00\xe1\xaah\x0b \x0cp\xa9\
G\xe6d\x03\xc0JQ\x9f<U\x80\x0b\xef\x00\x9f\xdb\
\x00\xb0U\xb4\x0c&\x0b\xd0\xdf\x1e\xf2\xd4\xd8\x00\xd0\xbf\
\x0e\x08\xceV\x00\xf4\x96\x02\x98a7H\xdc9r\x85\
)\x10I\x80H\xc5V\x00a\x80\xdezx(\xec\x00\
\xe8\xfb\x02\xb8Uc\x05@\xdf+\x80I\xbcN\x8c\x14\
@\xdf\x99\xf3\xb4\xb1\x03`'\xbd#\x8a6@\xdfa\
\x91\xb8\xb1\x04\xa0g\x19\xb8\x14\x96\x00\xf4\xcc\x80\x0b\xc9\
\xf7\x8a\x92\x01\xe0\xdd\xab\xa0P\xf6\xa5\xa2d\x00\x12=\
\xf1\x93\x01\xc84\xc5O\x05\xa0\xf64\xc5O\x05\xa0\xf3\
\xde\xa1\x85\x8a{\xd6i\x00t\xde8\x11\x9d\x1b[\x00\
r\xa6\xfe\xfdO\x09\xa0s\x02X)\xba^\x9e\x00\x80\
X(\xcf\x7fi\x01$\x8a\xb6@\xa8\x02\xecTl\x82\
\x13\x06\xc8\x98\xe2\xf5/1\x80\xc2\x95z\x1a\x80<@\
\xe5\xc9\xee\x03\xa4\x0d\xc0\x03\xb5\xf5/j\x00\xe7\xf6\x0b\
\x90\xed\x1b{\x00D\xa4\xe8\xfal\xaa\x00\xed\x1a\x18\xcb\
\x1a\x8b\x00bU\x17\xc8\x13\x05\xe8\x88?o,\x02\x88\
\x95\x5c\x9dN\x17 V\xf6\x13\x124\x01\xda\xf3\x9fW\
6\xf6\x00\x88\xf6UA~\xd5\xd8\x03\xd0\x11\x7f\xa0+\
~\x1d\x00\xe7v\xfe\x13\xd6\x8d=\x00|\xa1\xa5\xfcM\
\x06\x80\x87z\xca\xdfT\x00\xeav\xfc\x91h\xec\x01\xa8\
\x03]\xe5o\x1a\x00\xd57m\xe5o\x12\x00\x95\xaf\xaf\
\xfcM\x01\xa0\xf45\x96\xbf\x09\x00\x14\x9e\xce\xf2\xb7~\
\x80\xe2Ak\xf9[;\xc0\xc9\xd5[\xfe\xd6\x0d\x90\xbb\
\xca\xfa\xbfI\x02\x1c]\xdd\xe5o\xbd\x00\xafL{\xf9\
[+@{\xffO}\xf9['\xc0\x81\x11(\x7fk\
\x04\xd83\x0a\xe5o}\x00)\x8d\xf2\xb76\x80\x1d\x91\
\xf2\xb7.\x80-\x95\xf2\xb7&\x80v\x03\xa0?E\xf9\
[pC\x00~\x8c:\xfe$\xf8[Y\x9c\xf2\xec\xb0\
O\xb7\x9b\xf5K\x12\xaf\x96Q\x18\xf8\x0f\xec\xfe\xdbJ\
\x15\x03t]\x07S\xb7\xc3\xac\xab\xf70_\xdf\xc3\xdc\
\xbd\x87\xf9\xfc+\xcc\xef\x81\xef\xb9j\xae\x93\x92\x09\xf0\
\xd4y\x0bJ\xba\xdb\xbe\x87\x99\xbc\x87\xb9\xb8\x1af\xff\
H\x0d\x00\x90\xf7\xcb\xb3S\xde\xac,\x0f \x96\x19?\
\xfd9@\xac\xa4\xc6?\xddm\x22\x92\x00\xc4Rn\xfc\
NI\x1b@D\x92\xe3\x9f\xee\x17\x07\xe5\xfc\xda\xdcB\
v\xfc\x0e\xa7\x0c\xa0 ~\xe7L\x18\x80\x87\xf2\xe3w\
\x04]\x80:P\x10\xfft\xd9\xfa\xe4\x00oJ\xe2\xa7\
\x0bP\xf9\x8e\xd5\x00\xa5\xa2\xf8\xa9\x02\x94\x9ec5@\
\xa1,~\xa2\x00+\x07\x00\x00\x00\x00\x00\x00\xa0b\x08\
\xdb\x018\x00,\x07\xa8m\x07\xa8l\x07(l\x07\xa0\
^\x167g\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`+\x80\
m\x03\x00\x00\x00\xc0\xff\x00\xf6\x0e\x00\x00\x00\x00\x00\xb0\
z\xfc\x0bC\xd4\xc6\xc6D\x07\xe4\xaa\x00\x00\x00\x00I\
END\xaeB`\x82\
\x00\x00\x09\x13\
\x89\
PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\
\x00\x01\x00\x00\x00\x01\x00\x08\x03\x00\x00\x00k\xacXT\
\x00\x00\x00\xedPLTEx\x00\xf8\x80\x00\xf8\x80\x04\
\xf8\x80\x08\xf8\x80\x0c\xf8\x88\x10\xf8\x88\x14\xf8\x88\x18\xf8\
\x88\x1c\xf8\x88 \xf8\x90 \xf8\x90$\xf8\x90(\xf8\x90\
,\xf8\x900\xf8\x980\xf8\x984\xf8\x988\xf8\x98<\
\xf8\x98@\xf8\xa0@\xf8\xa0D\xf8\xa0H\xf8\xa0L\xf8\
\xa0P\xf8\xa8P\xf8\xa8T\xf8\xa8X\xf8\xa8\x5c\xf8\xa8\
`\xf8\xb0`\xf8\xb0d\xf8\xb0h\xf8\xb0l\xf8\xb0p\
\xf8\xb8p\xf8\xb8t\xf8\xb8x\xf8\xb8|\xf8\xb8\x80\xf8\
\xc0\x80\xf8\xc0\x84\xf8\xc0\x88\xf8\xc0\x8c\xf8\xc0\x90\xf8\xc8\
\x90\xf8\xc8\x94\xf8\xc8\x98\xf8\xc8\x9c\xf8\xc8\xa0\xf8\xd0\xa0\
\xf8\xd0\xa4\xf8\xd0\xa8\xf8\xd0\xac\xf8\xd0\xb0\xf8\xd8\xb0\xf8\
\xd8\xb4\xf8\xd8\xb8\xf8\xd8\xbc\xf8\xd8\xc0\xf8\xe0\xc0\xf8\xe0\
\xc4\xf8\xe0\xc8\xf8\xe0\xcc\xf8\xe0\xd0\xf8\xe8\xd0\xf8\xe8\xd4\
\xf8\xe8\xd8\xf8\xe8\xdc\xf8\xe8\xe0\xf8\xf0\xe0\xf8\xf0\xe4\xf8\
\xf0\xe8\xf8\xf0\xec\xf8\xf0\xf0\xf8\xf8\xf0\xf8\xf8\xf4\xf8\xf8\
\xf8\xf8\xf8\xfc\xf8\x09\xd19\xc7\x00\x00\x00\x09pHY\
s\x00\x00\x00H\x00\x00\x00H\x00F\xc9k>\x00\x00\
\x07\xccIDATx\xda\xed\xddiC\xdaL\x10\x00\
\xe0\x1cP\x90\xa3(-R\x81\xaax\x03\xe5\xa8\x82\x22\
E\xa8\x81\x0a\x91d\xfe\xff\xcf\xe9\x87\xbe\xafr\xe4\xce\
&f6\xb3\xdf#\xd9G\xc81;3+@\xcc\x87\
@\x00\x04@\x00\x04@\x00 \xc4p\x10\x00\x01\x10\xc0\
&@\xac.}\x04@\x00\x04@\x00\x04@\x00\x04@\
\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\
\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\x04\
@\x00\x04@\x00\x04@\x00\x04@\x00\x04@\x00\xac\x87\
\xae\x0cZg\x95/\xf9tR\x96\x04)\xf1)\x9d-\
V\xce[}E\x8f\x03\x80\xd2=\xfe,\x99\xa4,J\
\x85Zg\xc63\xc0\xea\xae\x96\xb2M\xdcLUo_\
\xb9\x04\xd0\xee\x0e%\x87\xc9\xab\xd2\xb7\xbe\xc6\x1b\xc0\xe4\
Xv\x95\xc0\x9b8\x9fs\x04\xa0\xff,\xb8\xcfa\x16\
+\x13N\x00^\x1b\x9f<\xe6qW\xe7\x1c\x00\xa8W\
\x09\xef\x99\xec\xd2\xf9\x0a9\xc0\xab\x9f\xe9\x0b\x82 d\
\xc6\x98\x01\xb4V\xd2w9\x83x\xa6\xa1\x05\xb8K3\
\xa9\xe88X\xe2\x04P\xf7Y\xd5\xb4\xa4\x9fQ\x02<\
\xb0\xab\xea\x91\xc7\x18\x01\xae\x18\xd65%\x9e\x10\x02\x1c\
\xb2\xac\xecJL\xf1\x01$Y\x02\x08\xa9%6\x809\
\xe3\xea\xbe\xa2\x8e\x0c\xe0\x8eu}\xe3\x052\x80s\xd6\
\x00\xe2\x04\x17\xc0\x01\xf3\x12\xd7}T\x00\xba\xcc\x1c@\
\xe8`\x02\xf8\x1d@\x95sJG\x04\xd0\x0d\xa2\xce\xfb\
\x16\x11\xc0I\x10\x00yD\x00\xf9@J\xfd'h\x00\
4\xd1\xf4n\x96\xab\x5cw\x87OSE\x99\x8e\x07\x9d\
\xcb\xf2\x9e\x1b\x80K4\x00c\x93\x17\xdb\xb3\xe1N\x8c\
k\xd9?q\x1c3\xcc\xa1\x01h\x19\x86yGf\xf7\
\xcca\xd9\xa1\xc0\x1c\x0b@\xd5 \xc4k\xb9\xe8\xa5T\
\x1c\x01\x0c\xb0\x00dv\xbe\xbc\xb61\x8dQ\xd6\x01\xc0\
\x15\x12\x80\xe5\xf6\x89\x9f8\x88l\xaej\xf6\x00e$\
\x00\xc3\xad_\x7f\xcf\xd9a\x0d[\x80\xcfH\x00n6\
\x977\x86N\x8fk\xdb.\x13 \x01\xd8\x08\x87\x89\xf7\
\xce\x0f\xbc\xb0\x01H\x22\x01\xd8\xb8\xb1\xf7\xdc\x1c\xf9\xc5\
&(\x80\x03\xe0\xcf\xc6\xf5\xcf]$\xcdz)M\xc6\
\x01\xd0_\x7f\x81\xd1\xfc\x5c>\x90\xfe\x04\xd6~\xc9\xa2\
\xdbx\xf6\xca2\x9a\x9c\xc6\x01P\xf4\x13\xca\xb4\x0c&\
\x16q\x00\xbc\x87\xc3\x92\xee\xf3\x9d\x9e-S&P\x00\
\xacM\xe1\x07\x8b\xc7\xe8\xb5q\x83\x02\xa0\xe7/\x8ag\
\x15L\x1a\xa2\x008};\xdf\x06\xebp\xe2\x12\x05\xc0\
[J\x98\xacz9\xfc\x97\xf9\xfc\x0b(\x02\x22\xda[\
>\xe4wO\xc7\xbf\x84\xf76\x1c\x0c\xc0\xd3\xdb\xf9z\
\xcbkP\xcd\x01~\xa3\x00h\xfb|u\xd3C\x5c\x1c\
\x0b\x04\xa0\xeas=W3\x05\xe8\xe1\x00\xc8\xfa\x8c\xe2\
/M\x9f\x83\x91,\x8d\xfd\xec\xfd\x1b?=\x1e?\xe3\
bq\x94]<\xed=\xae\xaa\xc7\x04\xc0,.\xf6\x0b\
b\x02pl<\xff\x13\x88\x0b\x80\xf1\xcbPN\x8b\x0b\
\x80qz\x99\x1cL\xbal\x14\x01\x9a\x86\xc1\xd0\x07\x88\
\x0d@\xce\x08\xe0\x07\xc4\x06`d4\xff\x06\xc4\x07\xa0\
\x18B\x1c(\xca\x00\x06I\xf6b\x07\xe2\x03\xf0\xba[\
d\x22\x0f F\x00\xbb+\xe4{S\x88\x11\xc0nf\
MI\x85\x18\x01\x0c\xb6s\xcb\xa4V\xc0\x9f\x18-\x80\
\xbb\xed\xf9\xe7~C\x9c\x00\x1a[\xf3\x97\xae\x83o\xa8\
\x10!\x80\xe5v\xa6\x5cQ\x09\xe1S\xa3\x03\xd0\xdbZ\
\x14N\xdf\x85\xf2\xb1Q\x01\x18l\xa5\x16\xcbW\xdc5\
P\xb0\xfa\xf2\xb7\xb6\xde\x7f\xa4\xfa2\xac\xcf\xfex\x00\
\xa5U\x92vj\xe6\x07S\x95S\x00u\xf9\xdfX\xcc\
\x95\xa7A\xab^4\xcd\x08J\xee\xd7\x1a\xc3\x05o\x00\
\xaa\xe8\xb6l\xba\xda}\xe1\x09`\xe0\xa5H\xa2\xd0\x5c\
p\x03\xe0\xb1\x8eF\xac<q\x02\xb0'x\x1d\xa5\x09\
\x0f\x003?\xe5B\xd5\x17\xfc\x00\x1d\x7f\x15\xf4=\xf4\
\x00e\xc1\xdf8Z\xe1\x06\xd0}v\xd4\x11\x84\xac\x82\
\x1a`\xec\xbfn0\xf9\x84\x19\x80ES\x11\xf9\x111\
\x00\x93\xb6:\xf2\x08-\x80\xeb\xe7`\x93\x9b\x81\x82\x15\
\xa0\xcf\xa8~8\xa3\x22\x05`VO^F\x0a\x90f\
\x05 tQ\x02\xcc\x98\xcd_H,0\x02l\xa7>\
\x89\x92w\x81\x1aF\x80\x7f\xa9O\x99\xf2E\xe7a2\
W5\x00\x00m9\x1b\xf5\xae\xca)\xf7\x02S\x84\x00\
\xfae\xf1\xfa\xd1\xb8\x80fq[q\xf9\x94\x5c\xe1*\
*\x0c\x00\xa0\xdf\x1f\xbayL\x10\xe7\xbc\x01\x00\xc0\xfc\
\xd8\x05\xc1%\x87\x00\x00\xb3#\xe7-\x85\xb8\x04\x00\x18\
8\xee&2\xe6\x13\x00\x96\xa5p{\xcbE/IJ\
\xaf;\x03\xf8\xcc+\x80I\xa6\xe8\xeeP\xb9\x05\xb0\xa9\
\x1f\xff\x7f\x8c\xf8\x05X+\xbc\xb4\x18-\x8e\x01t'\
\xcd\x18O9\x06\x80\x85\x83'\xe3\x12\xcf\x00N\x96P\
\xf2\x5c\x038\x08\xa0\xa6\xf8\x06\x18\xd9GE\xf8\x06\xb0\
\xff\x0aH\x9c\x03\xd8\xe6R\x88\x9c\x03\xe8v\xad\xc9\x93\
\x9c\x03\xd8F\xd13\xbc\x03<\xda\xa5\x0e\xf1\x0e\xb0\xb2\
\x89\x0f}\xe5\x1d\xc0\xee>p\xc4=@=\xc6\xef\x02\
\x00`\xdb\x5c\xb1\xc3=\xc0\xd0\x1a\xe0\x89{\x00\xc5\xfa\
9H\xe3\x1e`\x11F\x8f\xe9(\x03\xbc\x0a!\xb4\x95\
\x8b2\x80n\x09\xd0\xe6\x1f@\xb3\x04x\x89,\x80\xfa\
\xc0\xa8\xd6}i5\x7fV=\xa5\x18\x03\xa8\xf7\xe7\x05\
\x91U\xd3?\xcb\x9d\x9a\x1aQ\x04\xb8\xcc\x8b,\xff=\
\x13+\x80Y\x14\x01\xde[\x1f0I\xe7\xec\x87\xb1\xd1\
\x02S\x80\xb3\xb7\xf3;`qn\x8d\xe0\xef\x01\x8c\x01\
\xd6v\x17c\xd1\xf3\xe5\xbbE4H\x8b$\x80\xc26\
h\x9f\x0d\xa3\xb1$\xdb\xbb\xc0\xda\xeeZ\xfe\xb7D\xb2\
\xb8\x0bJQ\xcd\x13\x5c[\xd2K\xfb\xfe\x92Z\x84\x85\
\x19v\x15c\x0bp\xca\xf2[j\xbe\xdf\x864\x8f*\
\xc0zC`\xf9\x8f\xcf\x07\xe1D(\xade\xd9\x02L\
\x18\xe6t\x9b\xff\x02\xd2Zd\x016\xf7\xd7\xf2\xd7\x01\
\xe1K8[\x0d1~\x17\xd8\xb8s%\xfd4\x01\x98\
\x06\x9c\x17\x10\x10\xc0\xe6nQ\x87\xc0\xea/\xad/\x0a\
\xcf\xa2\x0cp\xbdy\xb2M\xcf\x7f\xc8\xbc\xc2\xae\x0fQ\
\x06\xd8\xbar\x89\x9e3\xb9\x0a\xc1\xae\x06\x04\x060c\
T\xe1e\x9a*X\xd0\xa2\x0d\xa0oW\x81\xecy\x8a\
\x5cM\xcc\x8aI\x12\xacw\xdbc\x1e\x12\xdb\xd9h3\
\xeb\xe1\xb1]5\xdbcCb\xbd\xbf\x04{\x80\xddm\
\x06\xb3\xae\x9f\x085\xb3,A1\x80\xdeJ\xac\x01\x0c\
\x82\x18)\x97\xfdp\xf5r\x88\xad\xc5\x99\x03\x18=\xc0\
&\xee\xdd\xfc\x85U)\xe88h\xa0\x00\xc6\xc5\x81u\
\xe7\xd7\xee\xc5~\xc0\x05\x02\x01\x03\x80\xf1\xf5;\xeb\xb4\
/\xfa\xd0\xb4b\xa4\x098\x00\xcc\xf6[\xae:\xb9\x16\
\xae\xceLC\x00A\xf5\x96c\x0eP5\x9dB\xdd\xf6\
\x91\xe0\xd6\xb4\x8221\x02,\x00\x16\xb1l\xa9j\x95\
\xd3\xa0\xf7r\xe6\x11\x80g@\x03`\x9d\xe0\x99\xbd1\
y6\x9e^X\xd4\xcf\x1e\x06\xd8\x5c\x8f9\x80m\x8d\
x\xe6\xe4v\xeb\x85v\xd1\xaf[\xed8,\xfd\x00@\
\x04\x00Nj\xc2\xe5B\xe5\xac\xd1\xe9v\xdb\x8d\xcb\xea\
\x81M\xa5`6\xd0\xbe\xca\x01\x00\xe4\x05\xa6\xe3x\x05\
\xc8\x00\xaa,\xa7\x9f\x1f\x03`\x03h\xb0\x9b~\xa2\x8d\
\xb1\xaf\xf0\x03\xb3\xf9\xd7\xc2\xe8\xac\xca\x1e`\xceh\xfa\
GS\x00\x94\x00\xeb+\xa4\x9e\x87X}\x06\xc0\x0a\xe0\
\xbfa\x96X\x9b\x01\xe0\x05\xf0\xdb/)\xdb\x5c\x00`\
\x06\x80\xc7o\xde\x9b\x86\xc9\xdf\xc7\x10\xea\x08&Qr\
q\x93\xf34\xfbro\x05\xc0\x03\x00\x00L/2.\
[\xa4\xd5\x1f5\x08\x7f\x04\x99*\xab\xb4J\xce\xee\x08\
b\xae\xd6V\xe0cF\xc0\xb9\xc2\xfa\xb4]\xcd[)\
\xc8\xd9Js\xb4\x82\x8f\x1b\xa1$K\xcf\x87\xdd\xab\xe3\
\xc3b>\x9dL\xc8\x92 %R\x99\xfc\xfe\xd7\xf2i\
\xb3?Y\xc0G\x8f(g\x8b\x13\x00\x01\x10\x00\x01\x10\
\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\
\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\x10\x00\x01\
\x10\x00\x01\x10\x00\x01\x10@\x80\x00q\x1b\x04@\x00\x04\
\xf0\x0e\x10\xdfA\x00\x04@\x00\x04\x10\xeb\xf1\x17\xe9\x89\
Gh\xda\x1b|\x00\x00\x00\x00\x00IEND\xaeB\
`\x82\
"
qt_resource_name = b"\
\x00\x06\
\x07\x03}\xc3\
\x00i\
\x00m\x00a\x00g\x00e\x00s\
\x00\x09\
\x0a\x84\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x001\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\x88\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x005\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\x87\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x004\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\x89\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x006\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\x85\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x002\x00.\x00p\x00n\x00g\
\x00\x09\
\x0a\x86\xa4\xa7\
\x00s\
\x00i\x00d\x00e\x003\x00.\x00p\x00n\x00g\
"
qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00r\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x97\
\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00!\x83\
\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00B\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xc3\
\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00*\x00\x00\x00\x00\x00\x01\x00\x00\x04\x18\
\x00\x00\x01z\xe7\xee&\xf9\
\x00\x00\x00Z\x00\x00\x00\x00\x00\x01\x00\x00\x11\x05\
\x00\x00\x01z\xe7\xee&\xf9\
"
def qInitResources():
QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
def qCleanupResources():
QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()
"""PySide6 port of the opengl/textures example from Qt v6.x showing the use
of legacy OpenGL functions with QOpenGLVersionFunctionsFactory."""
import sys
from PySide6.QtCore import QPoint, QSize, Qt, QTimer, Signal
from PySide6.QtGui import QColor, QImage, QSurfaceFormat
from PySide6.QtWidgets import QApplication, QGridLayout, QMessageBox, QWidget
from PySide6.QtOpenGL import (QOpenGLTexture, QOpenGLVersionFunctionsFactory,
QOpenGLVersionProfile)
from PySide6.QtOpenGLWidgets import QOpenGLWidget
try:
from OpenGL import GL
except ImportError:
app = QApplication(sys.argv)
messageBox = QMessageBox(QMessageBox.Critical, "OpenGL textures",
"PyOpenGL must be installed to run this example.",
QMessageBox.Close)
messageBox.setDetailedText("Run:\npip install PyOpenGL PyOpenGL_accelerate")
messageBox.exec()
sys.exit(1)
import textures_rc
class GLWidget(QOpenGLWidget):
sharedObject = 0
refCount = 0
coords = (
( ( +1, -1, -1 ), ( -1, -1, -1 ), ( -1, +1, -1 ), ( +1, +1, -1 ) ),
( ( +1, +1, -1 ), ( -1, +1, -1 ), ( -1, +1, +1 ), ( +1, +1, +1 ) ),
( ( +1, -1, +1 ), ( +1, -1, -1 ), ( +1, +1, -1 ), ( +1, +1, +1 ) ),
( ( -1, -1, -1 ), ( -1, -1, +1 ), ( -1, +1, +1 ), ( -1, +1, -1 ) ),
( ( +1, -1, +1 ), ( -1, -1, +1 ), ( -1, -1, -1 ), ( +1, -1, -1 ) ),
( ( -1, -1, +1 ), ( +1, -1, +1 ), ( +1, +1, +1 ), ( -1, +1, +1 ) )
)
clicked = Signal()
def __init__(self, parent):
super().__init__(parent)
self.clearColor = Qt.black
self.xRot = 0
self.yRot = 0
self.zRot = 0
self.clearColor = QColor()
self.lastPos = QPoint()
self.funcs = None
def freeGLResources(self):
GLWidget.refCount -= 1
if GLWidget.refCount == 0:
self.makeCurrent()
self.funcs.glDeleteLists(self.__class__.sharedObject, 1)
def minimumSizeHint(self):
return QSize(50, 50)
def sizeHint(self):
return QSize(200, 200)
def rotateBy(self, xAngle, yAngle, zAngle):
self.xRot = (self.xRot + xAngle) % 5760
self.yRot = (self.yRot + yAngle) % 5760
self.zRot = (self.zRot + zAngle) % 5760
self.update()
def setClearColor(self, color):
self.clearColor = color
self.update()
def initializeGL(self):
profile = QOpenGLVersionProfile()
profile.setVersion(3, 2)
profile.setProfile(QSurfaceFormat.CompatibilityProfile)
self.funcs = QOpenGLVersionFunctionsFactory.get(profile)
self.funcs.initializeOpenGLFunctions()
if not GLWidget.sharedObject:
self.textures = []
for i in range(6):
image = QImage(f":/images/side{i + 1}.png")
self.textures.append(QOpenGLTexture(image))
GLWidget.sharedObject = self.makeObject()
GLWidget.refCount += 1
self.funcs.glEnable(GL.GL_DEPTH_TEST)
self.funcs.glEnable(GL.GL_CULL_FACE)
self.funcs.glEnable(GL.GL_TEXTURE_2D)
def paintGL(self):
self.funcs.glClearColor(self.clearColor.red(), self.clearColor.green(),
self.clearColor.blue(), 1)
self.funcs.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
self.funcs.glLoadIdentity()
self.funcs.glTranslated(0.0, 0.0, -10.0)
self.funcs.glRotated(self.xRot / 16.0, 1.0, 0.0, 0.0)
self.funcs.glRotated(self.yRot / 16.0, 0.0, 1.0, 0.0)
self.funcs.glRotated(self.zRot / 16.0, 0.0, 0.0, 1.0)
self.funcs.glCallList(GLWidget.sharedObject)
def resizeGL(self, width, height):
side = min(width, height)
x = int((width - side) / 2)
y = int((height - side) / 2)
self.funcs.glViewport(x, y, side, side)
self.funcs.glMatrixMode(GL.GL_PROJECTION)
self.funcs.glLoadIdentity()
self.funcs.glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0)
self.funcs.glMatrixMode(GL.GL_MODELVIEW)
def mousePressEvent(self, event):
self.lastPos = event.position().toPoint()
def mouseMoveEvent(self, event):
pos = event.position().toPoint()
dx = pos.x() - self.lastPos.x()
dy = pos.y() - self.lastPos.y()
if event.buttons() & Qt.LeftButton:
self.rotateBy(8 * dy, 8 * dx, 0)
elif event.buttons() & Qt.RightButton:
self.rotateBy(8 * dy, 0, 8 * dx)
self.lastPos = pos
def mouseReleaseEvent(self, event):
self.clicked.emit()
def makeObject(self):
dlist = self.funcs.glGenLists(1)
self.funcs.glNewList(dlist, GL.GL_COMPILE)
for i in range(6):
self.textures[i].bind()
self.funcs.glBegin(GL.GL_QUADS)
for j in range(4):
tx = {False: 0, True: 1}[j == 0 or j == 3]
ty = {False: 0, True: 1}[j == 0 or j == 1]
self.funcs.glTexCoord2d(tx, ty)
x = 0.2 * GLWidget.coords[i][j][0]
y = 0.2 * GLWidget.coords[i][j][1]
z = 0.2 * GLWidget.coords[i][j][2]
self.funcs.glVertex3d(x, y, z)
self.funcs.glEnd()
self.funcs.glEndList()
return dlist
class Window(QWidget):
NumRows = 2
NumColumns = 3
def __init__(self, parent=None):
QWidget.__init__(self, parent)
mainLayout = QGridLayout(self)
self.glWidgets = []
for i in range(Window.NumRows):
self.glWidgets.append([])
for j in range(Window.NumColumns):
self.glWidgets[i].append(None)
hue_div = (Window.NumRows * Window.NumColumns - 1)
for i in range(Window.NumRows):
for j in range(Window.NumColumns):
clearColor = QColor()
hue = ((i * Window.NumColumns) + j) * 255 / hue_div
clearColor.setHsv(hue, 255, 63)
glw = GLWidget(self)
self.glWidgets[i][j] = glw
glw.setClearColor(clearColor)
glw.rotateBy(+42 * 16, +42 * 16, -21 * 16)
mainLayout.addWidget(glw, i, j)
glw.clicked.connect(self.setCurrentGlWidget)
qApp.lastWindowClosed.connect(glw.freeGLResources)
self.currentGlWidget = self.glWidgets[0][0]
timer = QTimer(self)
timer.timeout.connect(self.rotateOneStep)
timer.start(20)
self.setWindowTitle(self.tr("Textures"))
def setCurrentGlWidget(self):
self.currentGlWidget = self.sender()
def rotateOneStep(self):
if self.currentGlWidget:
self.currentGlWidget.rotateBy(+2 * 16, +2 * 16, -1 * 16)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec())
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.