Web Camera for mbed-os. This sample works on GR-LYCHEE besides GR-PEACH. When you use this program, we judge you have agreed to the following contents. https://developer.mbed.org/teams/Renesas/wiki/About-LICENSE
Dependencies: HttpServer_snapshot_mbed-os
License
When you use this program, we judge you have agreed to the following contents.
本プログラムを使用する際は、以下の内容に合意した事になります。
Information
Japanese version is available in lower part of this page.
このページの後半に日本語版が用意されています.
Video Links on how to setup and run WebCamera Application:
Your video will be live at:
- https://youtu.be/loTD846FEL0 Part1
- https://youtu.be/uKm77l8kl3A Part2
- https://youtu.be/iwQ9RzwhDNI Part3
Overview
This is a sample program that works on GR-PEACH or GR-LYCHEE.
This is a web camera sample program. When accessing from the Web browser, the following will be displayed.
- Camera input picture
- Control screen of devices connected to the I2C bus
- LED control screen
Requirements
For GR-PEACH (via Wi-Fi):
- GR-PEACH
- GR-PEACH Wireless CAMERA Shield : OV7725
For GR-PEACH (via Ether):
- GR-PEACH
- One of the following
- GR-PEACH Wireless CAMERA Shield : OV7725
- NTSC analog camera
- MT9V111 and GR-PEACH AUDIO CAMERA Shield
- OV5642 and GR-PEACH AUDIO CAMERA Shield
- GR-PEACH Wireless CAMERA Shield : OV7725
For GR-LYCHEE (via Wi-Fi):
- GR-LYCHEE
How to use
Turn on the power to the GR-Board and start the terminal software.
The default value of the bow rate with mbed is 9600, and in this sample we use the baud rate 9600.
When you press the reset button of GR-Board, the scan result of Wifi will be output on Terminal. Please refer to the following link for usage of Terminal.
********* PROGRAM START *********** Network Setting up... Scan: No.0 Network: SSID_1 secured:WPA/WPA2 BSSID: xx:xx:xx:xx:xx:xx RSSI: -52 Ch: 1 No.1 Network: SSID_2 secured: Unknown BSSID: xx:xx:xx:xx:xx:xx RSSI: -67 Ch: 2 2 networks available. Please enter the number of the network you want to connect. Enter key:[0]-[1], (If inputting the other key, it's scanned again.) |
Enter the number of the network you want to connect from the keyboard. To select SSID_1, press "0" on the keyboard.
[SSID_1] is selected. please enter the PSK. |
Finally, enter the password to connect to the network.
If the connection is successful, the IP address is output on Terminal.
connecting... MAC Address is xx:xx:xx:xx:xx:xx IP Address is 192.168.0.2 NetMask is 255.255.255.240 Gateway Address is 192.168.0.1 Network Setup OK |
When you open IP Address ("192.168.0.2" in the above example) by a Web browser, top screen is indicated. The configuration of the top screen is a menu screen on the left side, a description screen of the sample program on the right side. If you click on each menu on the left side of the screen, the screen along the menu is indicated on the right screen.
Page Top
Web Camera
When you click the "Web camera" in the menu screen, the pictures of a camera is indicated. It can be changed at a slider bar in "Wait time" at the timing of a renewal of a camera picture. (Defaults are 500ms.)
Setting by I2C
When you click the "Setting by I2C" of the menu screen, the control screen of the device connected to the I2C bus is indicated. By sending a command of a format listed below("Format of the device set by I2C") in Direct input or File reference, data transmission and reception is possible with respect to devices connected to I2C_SDA and I2C_SCL terminals of I2C. The communication log of transmission and reception by "Format of the device set by I2C" is displayed in the log window. When you press the "Clear" button, the log is cleared. When you press the "Save" button, the log is saved.
Format of the device set by I2C
Method:I2C addr,data length,data1,data2,data3,... |
The details of each parameter is shown below.
For specific settings, check on the specifications of the connected device, you must create a command along the format.
Method | Please specify one of the following: "Wr" ・・・ Write functions in I2C "Rd" ・・・ Read functions in I2C "WrNoP" ・・・ Write functions in I2C(No STOP condition) "RdNoP" ・・・ Read functions in I2C(No STOP condition) |
I2C addr | Set the I2C address of device in hexadecimal. Ex: If the address is 0x90, set the "90" |
data length | If Method is "Wr" or "WrNoP", set write size(the size of the data portion) in hexadecimal. Ex: If the write size is 2 byte(data1, data2), set the "02". If Method is "Rd" or "RdNoP", set read size in hexadecimal. Ex: If the read size is 10 byte, set the "0A". |
data | If Method is "Wr" or "WrNoP", set write data in 1 byte unit in hexadecimal. Ex: If the write data is 0x01 0x02, set "01" in the data1 and "02" in the data2. If Method is "Rd" or "RdNoP", this parameter is omitted. |
An example of the format is shown below.
Wr:90,03,25,45,14 |
To the device of the I2C address 0x90, the data write of 3Byte(0x25 0x45 0x14)
Rd:90,02 |
To the device of the I2C address 0x90, the data read of 2Byte
LED On/Off
When you click the "LED On/Off" of the menu screen, the LED control screen is indicated. Each switch switches of GR-Boards to ON or OFF. Each switch indicates the current LED state. When the LED is On, the color of switch will change the LED color.
Switch to web page in SD card
Web pages displayed on the Web browser are located in the built-in ROM. file_table_peach.h is saved as table information for GR-PEACH and file_table_lychee.h is saved as table information for GR-LYCHEE. The contents of the saved file are as follows.
When connecting the SD card, SDBlockDevice will be displayed on the terminal and the web page displayed in the web browser will switch from the built-in ROM to the SD card. The top page is index.htm.
Change network connection
You can change the network connection by changing the following macro in main.cpp.
/**** User Selection *********/ #define NETWORK_TYPE (2) /* Select 0(Ethernet), 1(BP3595), 2(ESP32 STA) ,3(ESP32 AP) */ #if (NETWORK_TYPE >= 1) #define SCAN_NETWORK (1) /* Select 0(Use WLAN_SSID, WLAN_PSK, WLAN_SECURITY) or 1(To select a network using the terminal.) */ #define WLAN_SSID ("SSIDofYourAP") /* SSID */ #define WLAN_PSK ("PSKofYourAP") /* PSK(Pre-Shared Key) */ #define WLAN_SECURITY NSAPI_SECURITY_WPA_WPA2 /* NSAPI_SECURITY_NONE, NSAPI_SECURITY_WEP, NSAPI_SECURITY_WPA, NSAPI_SECURITY_WPA2 or NSAPI_SECURITY_WPA_WPA2 */ #endif
Depending on the value set for NETWORK_TYPE, the connection method changes as follows.
Number | Connection | Description |
0 | Ethernet | GR-PEACH only |
1 | reserved | It can not be selected. |
2 | ESP32 STA | Use ESP32 in STA mode. |
3 | ESP32 AP | Use ESP32 in AP mode. |
When using GR-LYCHEE, NETWORK_TYPE 2 and 3 can be selected.
GR-PEACH Wireless CAMERA Shield is required separately when using ESP32 with GR-PEACH.
When using Ethernet, the user must provide the MAC address.
To specify MAC address, add fllowing function to main.cpp.
Specify MAC address
// set mac address void mbed_mac_address(char *mac) { mac[0] = 0x00; mac[1] = 0x02; mac[2] = 0xF7; mac[3] = 0xF0; mac[4] = 0x00; mac[5] = 0x00; }
Camera selection
To select the Camera, add camera-type to mbed_app.json.
See here for details.
mbed_app.json
{ "config": { "camera":{ "help": "0:disable 1:enable", "value": "1" }, "camera-type":{ "help": "Please see EasyAttach_CameraAndLCD/README.md", "value": null }, "lcd":{ "help": "0:disable 1:enable", "value": "0" }, "lcd-type":{ "help": "Please see EasyAttach_CameraAndLCD/README.md", "value": null } }, "target_overrides": { "RZ_A1H": { "camera-type" : "CAMERA_WIRELESS_CAMERA" } } }
Appendix
概要
GR-PEACH、および、GR-LYCHEEで動作するサンプルプログラムです。
Webカメラのサンプルです。Webブラウザからアクセスすると以下が表示されます。
- Camera入力画像
- I2Cバスに繋がっているデバイスの制御画面
- LED操作画面
構成
GR-PEACH (Wi-Fi経由)の場合:
- GR-PEACH
- GR-PEACH Wireless CAMERA Shield : OV7725
GR-PEACH (Ether経由)の場合:
- GR-PEACH
- 以下のいずれか
- GR-PEACH Wireless CAMERA Shield : OV7725
- NTSCアナログカメラ
- MT9V111 and GR-PEACH AUDIO CAMERA Shield
- OV5642 and GR-PEACH AUDIO CAMERA Shield
- GR-PEACH Wireless CAMERA Shield : OV7725
GR-LYCHEE(Wi-Fi経由)の場合:
- GR-LYCHEE
使い方
GR-Boardに電源を入れ、Terminalソフトを立ち上げます。
Mbedでのボーレートのデフォルト値は9600で、このサンプルではボーレート9600を使います。
GR-Boardのリセットボタンを押すと、Terminal上にWifiのスキャン結果が出力されます。
********* PROGRAM START *********** Network Setting up... Scan: No.0 Network: SSID_1 secured:WPA/WPA2 BSSID: xx:xx:xx:xx:xx:xx RSSI: -52 Ch: 1 No.1 Network: SSID_2 secured: Unknown BSSID: xx:xx:xx:xx:xx:xx RSSI: -67 Ch: 2 2 networks available. Please enter the number of the network you want to connect. Enter key:[0]-[1], (If inputting the other key, it's scanned again.) |
接続したいネットワークの番号をキーボードから入力します。0番のSSID_1を選択する場合はキーボードの "0" を押します。
[SSID_1] is selected. please enter the PSK. |
最後にネットワークに接続するためのパスワードを入力します。
接続に成功すると、Terminal上にIPアドレスが出力されます。
connecting... MAC Address is xx:xx:xx:xx:xx:xx IP Address is 192.168.0.2 NetMask is 255.255.255.240 Gateway Address is 192.168.0.1 Network Setup OK |
PCのWebブラウザで Terminalに表示された IP Address (上記例では 192.168.0.2)を開くと、トップ画面が表示されます。トップ画面は、左側にメニュー画面、右側にサンプルプログラムの説明画面という構成になっており、左画面の各メニューをクリックすると、メニューに沿った画面が右画面に表示されます。
Page Top 画面
Web Camera 画面
メニュー画面の”Web Camera”をクリックすると、Camera画像が表示されます。
"Wait time"のスライダーバーでCamera画像の更新タイミングが変更できます。(初期値は500msです)
Setting by I2C 画面
メニュー画面の"Setting by I2C"をクリックすると、I2Cバスに繋がっているデバイスの制御画面が表示されます。直接入力(Direct input)欄又はファイル参照(File reference)欄にて、下記("I2Cによるデバイス設定のフォーマット")に記載されているフォーマットのコマンドを送信する事で、I2CのI2C_SDA,I2C_SCL端子に繋がっているデバイスに対して、データの送受信が可能です。"I2Cによるデバイス設定のフォーマット"による送受信の通信ログは、ログウィンドウに表示されます。"Clear"ボタンを押すとログのクリア、"Save"ボタンを押すとログの保存ができます。
I2Cによるデバイス設定のフォーマット
Method:I2C addr,data length,data1,data2,data3,... |
各パラメータの詳細を以下に示します。
具体的な設定値については、接続先のデバイスの仕様をご確認のうえ、フォーマットに沿ってコマンドを作成して下さい。
Method | 以下のいづれかを指定して下さい "Wr" ・・・ I2Cでの書き込み "Rd" ・・・ I2Cでの読み出し "WrNoP" ・・・ I2Cでの書き込み(STOPコンディション省略) "RdNoP" ・・・ I2Cでの読み出し(STOPコンディション省略) |
I2C addr | 接続先デバイスのI2Cアドレスを16進数で設定して下さい。 (例) アドレスが0x90の場合、"90"を設定 |
data length | Methodが"Wr"又は"WrNoP"の場合、書き込むサイズ(data部分のサイズ)を16進数で設定して下さい。 (例) 書き込むサイズが2Byte(data1,data2)の場合、"02"を設定 Methodが"Rd"又は"RdNoP"の場合は読み取るサイズを16進数で設定して下さい。 (例) 読み取りサイズが10Byteの場合、"0A"を設定 |
data | Methodが"Wr"又は"WrNoP"の場合、書き込むデータを16進数で1Byte単位で設定して下さい。 (例) 書き込みデータが0x01,0x02の場合、data1に"01"、data2に"02"を設定 "Rd"又は"RdNoP"の場合は省略して下さい。 |
フォーマットの例を以下に示します。
Wr:90,03,25,45,14 |
I2Cアドレス0x90のデバイスに対して0x25 0x45 0x14の計3Byteのデータ書き込み
Rd:90,02 |
I2Cアドレス0x90のデバイスに対して2Byteのデータ読み出し
LED On/Off 画面
メニュー画面の"LED On/Off"をクリックすると、LED操作画面が表示されます。各スイッチはGR-BoardのLED ON/OFFを切り替えます。スイッチはそれぞれGR-BoardのLEDの現在の状態を表しており、ONにすると対応するLEDの色になります。
SDカード内のWebページに切り替える
Webブラウザで表示されるWebページは内蔵ROMに配置されています。file_table_peach.h はGR-PEACH用、 file_table_lychee.h はGR-LYCHEE用のWebページがテーブル情報として保存されています。保存されているファイルの内容は下記の通りです。
SDカードを接続するとTerminal上に SDBlockDevice と表示され、Webブラウザで表示されるWebページが内蔵ROMからSDカードに切り替わります。トップページは index.htm となります。
ネットワークの接続方法を変更する
main.cppの下記マクロを変更することでネットワークの接続方法を変更できます。
/**** User Selection *********/ #define NETWORK_TYPE (2) /* Select 0(Ethernet), 1(BP3595), 2(ESP32 STA) ,3(ESP32 AP) */ #if (NETWORK_TYPE >= 1) #define SCAN_NETWORK (1) /* Select 0(Use WLAN_SSID, WLAN_PSK, WLAN_SECURITY) or 1(To select a network using the terminal.) */ #define WLAN_SSID ("SSIDofYourAP") /* SSID */ #define WLAN_PSK ("PSKofYourAP") /* PSK(Pre-Shared Key) */ #define WLAN_SECURITY NSAPI_SECURITY_WPA_WPA2 /* NSAPI_SECURITY_NONE, NSAPI_SECURITY_WEP, NSAPI_SECURITY_WPA, NSAPI_SECURITY_WPA2 or NSAPI_SECURITY_WPA_WPA2 */ #endif
NETWORK_TYPE に設定する値により、以下の接続方法に切り替わります。
番号 | 接続方法 | 説明 |
0 | Ethernet | GR-PEACHのみ。 |
1 | reserved | 選択できません。 |
2 | ESP32 STA | ESP32をSTAモードで使用します。 |
3 | ESP32 AP | ESP32をAPモードで使用します。 |
GR-LYCHEEを使用する場合はNETWORK_TYPE 2と3が選択できます。
GR-PEACHでNETWORK_TYPE 2と3を使用する場合は別途GR-PEACH Wireless/Cameraシールドが必要です。
NETWORK_TYPE 1のEthernetを使う場合はMACアドレスをユーザが用意する必要があります。
"main.cpp"の最後にの下記のように関数を追加し、用意したMACアドレスを設定してください。
Specify MAC address
// set mac address void mbed_mac_address(char *mac) { mac[0] = 0x00; mac[1] = 0x02; mac[2] = 0xF7; mac[3] = 0xF0; mac[4] = 0x00; mac[5] = 0x00; }
カメラの設定
カメラの指定を行う場合はmbed_app.jsonにcamera-typeを変更して追加してください。
詳細はこちらを参照ください。
mbed_app.json
{ "config": { "camera":{ "help": "0:disable 1:enable", "value": "1" }, "camera-type":{ "help": "Please see EasyAttach_CameraAndLCD/README.md", "value": null }, "lcd":{ "help": "0:disable 1:enable", "value": "0" }, "lcd-type":{ "help": "Please see EasyAttach_CameraAndLCD/README.md", "value": null } }, "target_overrides": { "RZ_A1H": { "camera-type" : "CAMERA_WIRELESS_CAMERA" } } }
付録
Revision 23:e7fd26563f8f, committed 2018-12-25
- Comitter:
- 1050186
- Date:
- Tue Dec 25 09:57:54 2018 +0000
- Parent:
- 22:9e54410bd934
- Child:
- 24:63e5f399af4a
- Commit message:
- Support Mbed OS 5.10, replace Renesas libraries to mbed-gr-libs and optimize main.cpp and related files for supporting GR-LYCHEE too.;
Changed in this revision
--- a/GR-PEACH_video.lib Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://developer.mbed.org/teams/Renesas/code/GR-PEACH_video/#aeefe5171463
--- a/GraphicsFramework.lib Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://developer.mbed.org/teams/Renesas/code/GraphicsFramework/#1ee2176ef13f
--- a/LWIPBP3595Interface_mbed-os.lib Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://developer.mbed.org/users/dkato/code/LWIPBP3595Interface_STA_for_mbed-os/#6bd475023468
--- a/R_BSP.lib Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://developer.mbed.org/teams/Renesas/code/R_BSP/#fb9eda52224e
--- a/RomRamBlockDevice.lib Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://developer.mbed.org/users/dkato/code/RomRamBlockDevice/#3e16bac28356
--- a/file_table.h Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1224 +0,0 @@ - -static const char index_htm_tbl[] = { - 0x3C,0x53,0x43,0x52,0x49,0x50,0x54,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 -,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x3E,0x0D -,0x0A,0x3C,0x21,0x2D,0x2D,0x0D,0x0A,0x6C,0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E,0x2E -,0x68,0x72,0x65,0x66,0x3D,0x22,0x2F,0x77,0x65,0x62,0x5F,0x74,0x6F,0x70,0x2E,0x68 -,0x74,0x6D,0x22,0x3B,0x0D,0x0A,0x2D,0x2D,0x3E,0x0D,0x0A,0x3C,0x2F,0x53,0x43,0x52 -,0x49,0x50,0x54,0x3E,0x0D,0x0A -}; - -static const char camaera_js_tbl[] = { - 0x76,0x61,0x72,0x20,0x69,0x6D,0x61,0x67,0x65,0x4E,0x72,0x20,0x3D,0x20,0x30,0x3B -,0x20,0x2F,0x2F,0x20,0x53,0x65,0x72,0x69,0x61,0x6C,0x20,0x6E,0x75,0x6D,0x62,0x65 -,0x72,0x20,0x6F,0x66,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6D,0x61 -,0x67,0x65,0x0D,0x0A,0x76,0x61,0x72,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64 -,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x29,0x3B,0x20 -,0x2F,0x2F,0x20,0x52,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x20,0x74,0x6F -,0x20,0x69,0x6D,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x73,0x20,0x77,0x68,0x69 -,0x63,0x68,0x20,0x68,0x61,0x76,0x65,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64 -,0x20,0x64,0x6F,0x77,0x6E,0x6C,0x6F,0x61,0x64,0x69,0x6E,0x67,0x0D,0x0A,0x0D,0x0A -,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49 -,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20 -,0x20,0x76,0x61,0x72,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x3D,0x20,0x6E,0x65,0x77 -,0x20,0x49,0x6D,0x61,0x67,0x65,0x28,0x29,0x3B,0x0D,0x0A,0x0D,0x0A,0x20,0x20,0x69 -,0x6D,0x61,0x67,0x65,0x2E,0x73,0x72,0x63,0x20,0x3D,0x20,0x22,0x63,0x61,0x6D,0x65 -,0x72,0x61,0x2F,0x22,0x20,0x2B,0x20,0x28,0x2B,0x2B,0x69,0x6D,0x61,0x67,0x65,0x4E -,0x72,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x73,0x74,0x79 -,0x6C,0x65,0x2E,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x3D,0x20,0x22,0x61 -,0x62,0x73,0x6F,0x6C,0x75,0x74,0x65,0x22,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61 -,0x67,0x65,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x7A,0x49,0x6E,0x64,0x65,0x78,0x20 -,0x3D,0x20,0x2D,0x31,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x6F -,0x6E,0x6C,0x6F,0x61,0x64,0x20,0x3D,0x20,0x69,0x6D,0x61,0x67,0x65,0x4F,0x6E,0x6C -,0x6F,0x61,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x6F,0x6E -,0x65,0x72,0x72,0x6F,0x72,0x20,0x3D,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6D -,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x3B,0x0D,0x0A,0x0D,0x0A,0x20,0x20,0x76 -,0x61,0x72,0x20,0x77,0x65,0x62,0x63,0x61,0x6D,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75 -,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42 -,0x79,0x49,0x64,0x28,0x22,0x77,0x65,0x62,0x63,0x61,0x6D,0x22,0x29,0x3B,0x0D,0x0A -,0x20,0x20,0x77,0x65,0x62,0x63,0x61,0x6D,0x2E,0x69,0x6E,0x73,0x65,0x72,0x74,0x42 -,0x65,0x66,0x6F,0x72,0x65,0x28,0x69,0x6D,0x61,0x67,0x65,0x2C,0x20,0x77,0x65,0x62 -,0x63,0x61,0x6D,0x2E,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6C,0x64,0x29,0x3B -,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 -,0x69,0x6D,0x61,0x67,0x65,0x4F,0x6E,0x6C,0x6F,0x61,0x64,0x28,0x29,0x20,0x7B,0x0D -,0x0A,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x7A,0x49 -,0x6E,0x64,0x65,0x78,0x20,0x3D,0x20,0x69,0x6D,0x61,0x67,0x65,0x4E,0x72,0x3B,0x0D -,0x0A,0x20,0x20,0x77,0x68,0x69,0x6C,0x65,0x20,0x28,0x31,0x20,0x3C,0x20,0x66,0x69 -,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x6C,0x65,0x6E,0x67,0x74,0x68,0x29,0x20,0x7B -,0x0D,0x0A,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x6C,0x20,0x3D,0x20 -,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x73,0x68,0x69,0x66,0x74,0x28,0x29 -,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x64,0x65,0x6C,0x2E,0x70,0x61,0x72,0x65,0x6E -,0x74,0x4E,0x6F,0x64,0x65,0x2E,0x72,0x65,0x6D,0x6F,0x76,0x65,0x43,0x68,0x69,0x6C -,0x64,0x28,0x64,0x65,0x6C,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x7D,0x0D,0x0A,0x20,0x20 -,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x70,0x75,0x73,0x68,0x28,0x74,0x68 -,0x69,0x73,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x74,0x69,0x6D,0x65,0x72,0x49,0x44,0x20 -,0x3D,0x20,0x73,0x65,0x74,0x54,0x69,0x6D,0x65,0x6F,0x75,0x74,0x28,0x66,0x75,0x6E -,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x7B,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49 -,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x28,0x29,0x20,0x7D,0x2C,0x20,0x64 -,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x46,0x31,0x2E,0x77,0x61,0x69,0x74,0x74 -,0x69,0x6D,0x65,0x2E,0x76,0x61,0x6C,0x75,0x65,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A -}; - -static const char camera_htm_tbl[] = { - 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A -,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x63,0x61,0x6D,0x65,0x72,0x61,0x3C,0x2F,0x74 -,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74 -,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63 -,0x72,0x69,0x70,0x74,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72 -,0x61,0x2E,0x6A,0x73,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75 -,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D -,0x0A,0x3C,0x73,0x74,0x79,0x6C,0x65,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 -,0x78,0x74,0x2F,0x63,0x73,0x73,0x22,0x3E,0x0D,0x0A,0x23,0x77,0x65,0x62,0x63,0x61 -,0x6D,0x20,0x69,0x6D,0x67,0x20,0x7B,0x0D,0x0A,0x09,0x6C,0x65,0x66,0x74,0x3A,0x20 -,0x30,0x3B,0x0D,0x0A,0x09,0x72,0x69,0x67,0x68,0x74,0x3A,0x20,0x30,0x3B,0x0D,0x0A -,0x09,0x6D,0x61,0x78,0x2D,0x77,0x69,0x64,0x74,0x68,0x3A,0x20,0x36,0x34,0x30,0x70 -,0x78,0x3B,0x20,0x0D,0x0A,0x09,0x77,0x69,0x64,0x74,0x68,0x3A,0x20,0x31,0x30,0x30 -,0x25,0x3B,0x0D,0x0A,0x09,0x68,0x65,0x69,0x67,0x68,0x74,0x3A,0x20,0x61,0x75,0x74 -,0x6F,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A,0x3C,0x2F,0x73,0x74,0x79,0x6C,0x65,0x3E -,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79 -,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x20,0x6F,0x6E,0x6C,0x6F,0x61,0x64,0x3D -,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65 -,0x72,0x28,0x29,0x3B,0x22,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x72,0x6D,0x20,0x61,0x63 -,0x74,0x69,0x6F,0x6E,0x3D,0x22,0x23,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x46 -,0x31,0x22,0x3E,0x0D,0x0A,0x57,0x61,0x69,0x74,0x20,0x74,0x69,0x6D,0x65,0x20,0x3C -,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x72,0x61,0x6E,0x67 -,0x65,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x77,0x61,0x69,0x74,0x74,0x69,0x6D -,0x65,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x35,0x30,0x30,0x22,0x20,0x6D -,0x61,0x78,0x3D,0x22,0x31,0x30,0x30,0x30,0x22,0x20,0x73,0x74,0x65,0x70,0x3D,0x22 -,0x35,0x30,0x22,0x3E,0x20,0x5B,0x6D,0x73,0x5D,0x0D,0x0A,0x3C,0x2F,0x66,0x6F,0x72 -,0x6D,0x3E,0x0D,0x0A,0x3C,0x64,0x69,0x76,0x20,0x69,0x64,0x3D,0x22,0x77,0x65,0x62 -,0x63,0x61,0x6D,0x22,0x3E,0x3C,0x6E,0x6F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x3C -,0x69,0x6D,0x67,0x20,0x73,0x72,0x63,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72,0x61,0x2F -,0x30,0x22,0x20,0x2F,0x3E,0x3C,0x2F,0x6E,0x6F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E -,0x3C,0x2F,0x64,0x69,0x76,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D -,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A -}; - -static const char mbedrpc_js_tbl[] = { - 0x2F,0x2F,0x20,0x6D,0x62,0x65,0x64,0x52,0x50,0x43,0x20,0x4A,0x61,0x76,0x61,0x73 -,0x63,0x72,0x69,0x70,0x74,0x20,0x49,0x6E,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20 -,0x75,0x73,0x69,0x6E,0x67,0x20,0x48,0x54,0x54,0x50,0x0D,0x0A,0x2F,0x2F,0x20,0x73 -,0x66,0x6F,0x72,0x64,0x20,0x61,0x6E,0x64,0x20,0x4D,0x20,0x57,0x61,0x6C,0x6B,0x65 -,0x72,0x0D,0x0A,0x2F,0x2F,0x20,0x41,0x20,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69 -,0x70,0x74,0x20,0x69,0x6E,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6F,0x72 -,0x20,0x74,0x61,0x6C,0x6B,0x69,0x6E,0x67,0x20,0x74,0x6F,0x20,0x6D,0x62,0x65,0x64 -,0x20,0x72,0x70,0x63,0x20,0x6F,0x76,0x65,0x72,0x20,0x68,0x74,0x74,0x70,0x0D,0x0A -,0x2F,0x2F,0x0D,0x0A,0x2F,0x2F,0x43,0x6F,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20 -,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x30,0x20,0x41,0x52,0x4D,0x20,0x4C,0x74,0x64 -,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F,0x2F,0x50,0x65,0x72,0x6D,0x69,0x73,0x73 -,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x68,0x65,0x72,0x65,0x62,0x79,0x20,0x67,0x72 -,0x61,0x6E,0x74,0x65,0x64,0x2C,0x20,0x66,0x72,0x65,0x65,0x20,0x6F,0x66,0x20,0x63 -,0x68,0x61,0x72,0x67,0x65,0x2C,0x20,0x74,0x6F,0x20,0x61,0x6E,0x79,0x20,0x70,0x65 -,0x72,0x73,0x6F,0x6E,0x20,0x6F,0x62,0x74,0x61,0x69,0x6E,0x69,0x6E,0x67,0x20,0x61 -,0x20,0x63,0x6F,0x70,0x79,0x0D,0x0A,0x2F,0x2F,0x6F,0x66,0x20,0x74,0x68,0x69,0x73 -,0x20,0x73,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x61,0x6E,0x64,0x20,0x61,0x73 -,0x73,0x6F,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E -,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x73,0x20,0x28,0x74,0x68 -,0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x22,0x29,0x2C,0x20,0x74 -,0x6F,0x20,0x64,0x65,0x61,0x6C,0x0D,0x0A,0x2F,0x2F,0x69,0x6E,0x20,0x74,0x68,0x65 -,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x77,0x69,0x74,0x68,0x6F,0x75 -,0x74,0x20,0x72,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x69 -,0x6E,0x63,0x6C,0x75,0x64,0x69,0x6E,0x67,0x20,0x77,0x69,0x74,0x68,0x6F,0x75,0x74 -,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20 -,0x72,0x69,0x67,0x68,0x74,0x73,0x0D,0x0A,0x2F,0x2F,0x74,0x6F,0x20,0x75,0x73,0x65 -,0x2C,0x20,0x63,0x6F,0x70,0x79,0x2C,0x20,0x6D,0x6F,0x64,0x69,0x66,0x79,0x2C,0x20 -,0x6D,0x65,0x72,0x67,0x65,0x2C,0x20,0x70,0x75,0x62,0x6C,0x69,0x73,0x68,0x2C,0x20 -,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2C,0x20,0x73,0x75,0x62,0x6C -,0x69,0x63,0x65,0x6E,0x73,0x65,0x2C,0x20,0x61,0x6E,0x64,0x2F,0x6F,0x72,0x20,0x73 -,0x65,0x6C,0x6C,0x0D,0x0A,0x2F,0x2F,0x63,0x6F,0x70,0x69,0x65,0x73,0x20,0x6F,0x66 -,0x20,0x74,0x68,0x65,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x2C,0x20,0x61 -,0x6E,0x64,0x20,0x74,0x6F,0x20,0x70,0x65,0x72,0x6D,0x69,0x74,0x20,0x70,0x65,0x72 -,0x73,0x6F,0x6E,0x73,0x20,0x74,0x6F,0x20,0x77,0x68,0x6F,0x6D,0x20,0x74,0x68,0x65 -,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x69,0x73,0x0D,0x0A,0x2F,0x2F -,0x66,0x75,0x72,0x6E,0x69,0x73,0x68,0x65,0x64,0x20,0x74,0x6F,0x20,0x64,0x6F,0x20 -,0x73,0x6F,0x2C,0x20,0x73,0x75,0x62,0x6A,0x65,0x63,0x74,0x20,0x74,0x6F,0x20,0x74 -,0x68,0x65,0x20,0x66,0x6F,0x6C,0x6C,0x6F,0x77,0x69,0x6E,0x67,0x20,0x63,0x6F,0x6E -,0x64,0x69,0x74,0x69,0x6F,0x6E,0x73,0x3A,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F -,0x2F,0x54,0x68,0x65,0x20,0x61,0x62,0x6F,0x76,0x65,0x20,0x63,0x6F,0x70,0x79,0x72 -,0x69,0x67,0x68,0x74,0x20,0x6E,0x6F,0x74,0x69,0x63,0x65,0x20,0x61,0x6E,0x64,0x20 -,0x74,0x68,0x69,0x73,0x20,0x70,0x65,0x72,0x6D,0x69,0x73,0x73,0x69,0x6F,0x6E,0x20 -,0x6E,0x6F,0x74,0x69,0x63,0x65,0x20,0x73,0x68,0x61,0x6C,0x6C,0x20,0x62,0x65,0x20 -,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x64,0x20,0x69,0x6E,0x0D,0x0A,0x2F,0x2F,0x61 -,0x6C,0x6C,0x20,0x63,0x6F,0x70,0x69,0x65,0x73,0x20,0x6F,0x72,0x20,0x73,0x75,0x62 -,0x73,0x74,0x61,0x6E,0x74,0x69,0x61,0x6C,0x20,0x70,0x6F,0x72,0x74,0x69,0x6F,0x6E -,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72 -,0x65,0x2E,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F,0x2F,0x54,0x48,0x45,0x20,0x53 -,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x20,0x49,0x53,0x20,0x50,0x52,0x4F,0x56,0x49 -,0x44,0x45,0x44,0x20,0x22,0x41,0x53,0x20,0x49,0x53,0x22,0x2C,0x20,0x57,0x49,0x54 -,0x48,0x4F,0x55,0x54,0x20,0x57,0x41,0x52,0x52,0x41,0x4E,0x54,0x59,0x20,0x4F,0x46 -,0x20,0x41,0x4E,0x59,0x20,0x4B,0x49,0x4E,0x44,0x2C,0x20,0x45,0x58,0x50,0x52,0x45 -,0x53,0x53,0x20,0x4F,0x52,0x0D,0x0A,0x2F,0x2F,0x49,0x4D,0x50,0x4C,0x49,0x45,0x44 -,0x2C,0x20,0x49,0x4E,0x43,0x4C,0x55,0x44,0x49,0x4E,0x47,0x20,0x42,0x55,0x54,0x20 -,0x4E,0x4F,0x54,0x20,0x4C,0x49,0x4D,0x49,0x54,0x45,0x44,0x20,0x54,0x4F,0x20,0x54 -,0x48,0x45,0x20,0x57,0x41,0x52,0x52,0x41,0x4E,0x54,0x49,0x45,0x53,0x20,0x4F,0x46 -,0x20,0x4D,0x45,0x52,0x43,0x48,0x41,0x4E,0x54,0x41,0x42,0x49,0x4C,0x49,0x54,0x59 -,0x2C,0x0D,0x0A,0x2F,0x2F,0x46,0x49,0x54,0x4E,0x45,0x53,0x53,0x20,0x46,0x4F,0x52 -,0x20,0x41,0x20,0x50,0x41,0x52,0x54,0x49,0x43,0x55,0x4C,0x41,0x52,0x20,0x50,0x55 -,0x52,0x50,0x4F,0x53,0x45,0x20,0x41,0x4E,0x44,0x20,0x4E,0x4F,0x4E,0x49,0x4E,0x46 -,0x52,0x49,0x4E,0x47,0x45,0x4D,0x45,0x4E,0x54,0x2E,0x20,0x49,0x4E,0x20,0x4E,0x4F -,0x20,0x45,0x56,0x45,0x4E,0x54,0x20,0x53,0x48,0x41,0x4C,0x4C,0x20,0x54,0x48,0x45 -,0x0D,0x0A,0x2F,0x2F,0x41,0x55,0x54,0x48,0x4F,0x52,0x53,0x20,0x4F,0x52,0x20,0x43 -,0x4F,0x50,0x59,0x52,0x49,0x47,0x48,0x54,0x20,0x48,0x4F,0x4C,0x44,0x45,0x52,0x53 -,0x20,0x42,0x45,0x20,0x4C,0x49,0x41,0x42,0x4C,0x45,0x20,0x46,0x4F,0x52,0x20,0x41 -,0x4E,0x59,0x20,0x43,0x4C,0x41,0x49,0x4D,0x2C,0x20,0x44,0x41,0x4D,0x41,0x47,0x45 -,0x53,0x20,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x0D,0x0A,0x2F,0x2F,0x4C,0x49 -,0x41,0x42,0x49,0x4C,0x49,0x54,0x59,0x2C,0x20,0x57,0x48,0x45,0x54,0x48,0x45,0x52 -,0x20,0x49,0x4E,0x20,0x41,0x4E,0x20,0x41,0x43,0x54,0x49,0x4F,0x4E,0x20,0x4F,0x46 -,0x20,0x43,0x4F,0x4E,0x54,0x52,0x41,0x43,0x54,0x2C,0x20,0x54,0x4F,0x52,0x54,0x20 -,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x57,0x49,0x53,0x45,0x2C,0x20,0x41,0x52 -,0x49,0x53,0x49,0x4E,0x47,0x20,0x46,0x52,0x4F,0x4D,0x2C,0x0D,0x0A,0x2F,0x2F,0x4F -,0x55,0x54,0x20,0x4F,0x46,0x20,0x4F,0x52,0x20,0x49,0x4E,0x20,0x43,0x4F,0x4E,0x4E -,0x45,0x43,0x54,0x49,0x4F,0x4E,0x20,0x57,0x49,0x54,0x48,0x20,0x54,0x48,0x45,0x20 -,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x20,0x4F,0x52,0x20,0x54,0x48,0x45,0x20 -,0x55,0x53,0x45,0x20,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x20,0x44,0x45,0x41 -,0x4C,0x49,0x4E,0x47,0x53,0x20,0x49,0x4E,0x0D,0x0A,0x2F,0x2F,0x54,0x48,0x45,0x20 -,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x2E,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x2F -,0x2F,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x72,0x74,0x20,0x4D,0x65,0x63,0x68,0x61 -,0x6E,0x69,0x73,0x6D,0x73,0x20,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74 -,0x69,0x6F,0x6E,0x20,0x70,0x6F,0x73,0x74,0x28,0x75,0x72,0x6C,0x29,0x20,0x7B,0x0D -,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x20,0x3D,0x20,0x28,0x77,0x69,0x6E -,0x64,0x6F,0x77,0x2E,0x58,0x4D,0x4C,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65 -,0x73,0x74,0x29,0x20,0x3F,0x20,0x6E,0x65,0x77,0x20,0x58,0x4D,0x4C,0x48,0x74,0x74 -,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x28,0x29,0x20,0x3A,0x20,0x6E,0x65,0x77 -,0x20,0x41,0x63,0x74,0x69,0x76,0x65,0x58,0x4F,0x62,0x6A,0x65,0x63,0x74,0x28,0x22 -,0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x2E,0x58,0x4D,0x4C,0x48,0x54,0x54 -,0x50,0x22,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x69,0x66,0x28,0x21,0x68,0x74 -,0x74,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x66,0x61,0x6C,0x73,0x65 -,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x2E,0x6F,0x70,0x65,0x6E -,0x28,0x22,0x47,0x45,0x54,0x22,0x2C,0x20,0x75,0x72,0x6C,0x2C,0x20,0x66,0x61,0x6C -,0x73,0x65,0x29,0x3B,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x0D,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x2E,0x73,0x65,0x6E,0x64 -,0x28,0x6E,0x75,0x6C,0x6C,0x29,0x3B,0x20,0x20,0x20,0x0D,0x0A,0x20,0x20,0x20,0x20 -,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x68,0x74,0x74,0x70,0x2E,0x72,0x65,0x73,0x70 -,0x6F,0x6E,0x73,0x65,0x54,0x65,0x78,0x74,0x3B,0x0D,0x0A,0x09,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0D,0x0A -,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6D,0x62 -,0x65,0x64,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x2F,0x2F,0x4E,0x6F,0x20,0x61,0x63,0x74 -,0x69,0x6F,0x6E,0x20,0x6E,0x65,0x65,0x64,0x73,0x20,0x74,0x6F,0x20,0x62,0x65,0x20 -,0x74,0x61,0x6B,0x65,0x6E,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x6D,0x62,0x65,0x64 -,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x70,0x63,0x20,0x3D -,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6F,0x62,0x6A,0x65,0x63,0x74 -,0x2C,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x2C,0x20,0x61,0x72,0x67,0x75,0x6D,0x65 -,0x6E,0x74,0x73,0x29,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x2F,0x2F,0x54,0x68,0x69 -,0x73,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x6F,0x76,0x65,0x72 -,0x72,0x69,0x64,0x64,0x65,0x6E,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x61,0x20 -,0x74,0x72,0x61,0x6E,0x73,0x70,0x6F,0x72,0x74,0x20,0x6D,0x65,0x63,0x68,0x61,0x6E -,0x69,0x73,0x6D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52,0x50 -,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x20,0x3D,0x20,0x6E,0x65 -,0x77,0x20,0x6D,0x62,0x65,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52 -,0x50,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x63,0x6F,0x6E -,0x73,0x74,0x72,0x75,0x63,0x74,0x6F,0x72,0x20,0x3D,0x20,0x48,0x54,0x54,0x50,0x52 -,0x50,0x43,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x48,0x54,0x54 -,0x50,0x52,0x50,0x43,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x2F,0x2F,0x75,0x6E,0x6C,0x69 -,0x6B,0x65,0x20,0x6F,0x74,0x68,0x65,0x72,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67 -,0x65,0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20 -,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x70,0x61,0x73,0x73,0x65 -,0x64,0x20,0x61,0x6E,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x20,0x61,0x73,0x20 -,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x62,0x65,0x20 -,0x61,0x6C,0x6C,0x6F,0x77,0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6D,0x6D,0x75 -,0x6E,0x69,0x63,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x69,0x74,0x73,0x65 -,0x6C,0x66,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52 -,0x50,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x70,0x63 -,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6F,0x62,0x6A,0x65,0x63 -,0x74,0x2C,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x2C,0x20,0x61,0x72,0x67,0x75,0x6D -,0x65,0x6E,0x74,0x73,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x72,0x65,0x74 -,0x75,0x72,0x6E,0x20,0x70,0x6F,0x73,0x74,0x28,0x22,0x2F,0x72,0x70,0x63,0x2F,0x22 -,0x20,0x2B,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x20,0x2B,0x20,0x22,0x2F,0x22,0x20 -,0x2B,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x20,0x2B,0x20,0x22,0x2C,0x22,0x20,0x2B -,0x20,0x61,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x2E,0x6A,0x6F,0x69,0x6E,0x28 -,0x22,0x2C,0x22,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x20 -,0x50,0x69,0x6E,0x20,0x4E,0x61,0x6D,0x65,0x73,0x20,0x74,0x6F,0x20,0x41,0x6C,0x6C -,0x6F,0x77,0x20,0x70,0x69,0x6E,0x73,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x72,0x65 -,0x66,0x66,0x65,0x72,0x65,0x64,0x20,0x74,0x6F,0x20,0x61,0x73,0x20,0x61,0x20,0x74 -,0x79,0x70,0x65,0x20,0x72,0x61,0x74,0x68,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20 -,0x61,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x20,0x6F,0x72,0x20,0x6E,0x75,0x6D,0x62 -,0x65,0x72,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x70 -,0x69,0x6E,0x28,0x6E,0x61,0x6D,0x65,0x29,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73 -,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x0D,0x0A -,0x7D,0x0D,0x0A,0x0D,0x0A,0x4C,0x45,0x44,0x31,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20 -,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45,0x44,0x31,0x22,0x29,0x3B,0x0D,0x0A,0x4C,0x45 -,0x44,0x32,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45 -,0x44,0x32,0x22,0x29,0x3B,0x0D,0x0A,0x4C,0x45,0x44,0x33,0x20,0x3D,0x20,0x6E,0x65 -,0x77,0x20,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45,0x44,0x33,0x22,0x29,0x3B,0x0D,0x0A -,0x4C,0x45,0x44,0x34,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x70,0x69,0x6E,0x28,0x22 -,0x4C,0x45,0x44,0x34,0x22,0x29,0x3B,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x20,0x69,0x6E -,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E -,0x73,0x20,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D -,0x2D,0x2D,0x2D,0x2D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74 -,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x44,0x69 -,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62 -,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66 -,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69,0x6E,0x20,0x21,0x3D,0x20 -,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F -,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62 -,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 -,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D -,0x0A,0x09,0x2F,0x2F,0x76,0x61,0x72,0x20,0x61,0x72,0x79,0x20,0x3D,0x20,0x6E,0x65 -,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 -,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x29,0x3B,0x0D -,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65 -,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 -,0x28,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x22,0x2C,0x20,0x22 -,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D -,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29,0x3B,0x20 -,0x0D,0x0A,0x09,0x2F,0x2F,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20 -,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 -,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x22,0x2C,0x20,0x22,0x6E -,0x65,0x77,0x22,0x2C,0x20,0x61,0x72,0x79,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65 -,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F -,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A -,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 -,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A -,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70 -,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x44,0x69 -,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79 -,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 -,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74 -,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 -,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x22 -,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A -,0x0D,0x0A,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F -,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74 -,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69 -,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73 -,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B -,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x44,0x69,0x67,0x69,0x74,0x61,0x6C -,0x49,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 -,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D -,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69 -,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69,0x6E,0x20,0x21,0x3D -,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09 -,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F -,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D -,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B -,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D -,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 -,0x70,0x63,0x28,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x22,0x2C,0x20 -,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 -,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29,0x3B -,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F,0x2F -,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74,0x69 -,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 -,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D -,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D -,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x0D -,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x2E -,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D -,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09 -,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28 -,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74 -,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22 -,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A -,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x41,0x6E -,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63 -,0x74,0x69,0x6F,0x6E,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74,0x28,0x74 -,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20 -,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70 -,0x69,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B -,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20 -,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68 -,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F -,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69 -,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D -,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F -,0x75,0x74,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69 -,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 -,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D -,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65 -,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A -,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74 -,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 -,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A -,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F -,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69 -,0x74,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61 -,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D -,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D -,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C -,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C -,0x6F,0x67,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E -,0x77,0x72,0x69,0x74,0x65,0x5F,0x75,0x31,0x36,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63 -,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09 -,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74 -,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65 -,0x5F,0x75,0x31,0x36,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B -,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74 -,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20 -,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A -,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F -,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70 -,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65 -,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D -,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x28 -,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29 -,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D -,0x70,0x69,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29 -,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61 -,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74 -,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73 -,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68 -,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F -,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x41,0x6E,0x61,0x6C,0x6F,0x67 -,0x49,0x6E,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69 -,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 -,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D -,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65 -,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A -,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74 -,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 -,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A -,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49 -,0x6E,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64 -,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D -,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C -,0x6F,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 -,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72 -,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D -,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x2E,0x70,0x72,0x6F -,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x5F,0x75,0x31,0x36,0x20 -,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A -,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74 -,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 -,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64 -,0x5F,0x75,0x31,0x36,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A -,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x20,0x50,0x77,0x6D,0x4F,0x75,0x74,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x50,0x77,0x6D,0x4F,0x75,0x74,0x28,0x74,0x68 -,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B -,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69 -,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09 -,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E -,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 -,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D -,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73 -,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 -,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x50,0x77,0x6D,0x4F,0x75,0x74,0x22,0x2C -,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E -,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29 -,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F -,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74 -,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68 -,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F -,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61 -,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A -,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74 -,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D -,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 -,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69 -,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A -,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74 -,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E -,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x72 -,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F,0x61,0x74 -,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 -,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64 -,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D -,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70 -,0x65,0x2E,0x70,0x65,0x72,0x69,0x6F,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 -,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74 -,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 -,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x65,0x72,0x69,0x6F,0x64 -,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D -,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74 -,0x79,0x70,0x65,0x2E,0x70,0x65,0x72,0x69,0x6F,0x64,0x5F,0x6D,0x73,0x20,0x3D,0x20 -,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 -,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 -,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70 -,0x65,0x72,0x69,0x6F,0x64,0x5F,0x6D,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75 -,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75 -,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x65,0x72,0x69 -,0x6F,0x64,0x5F,0x75,0x73,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E -,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73 -,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E -,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x65,0x72,0x69,0x6F,0x64,0x5F,0x75,0x73 -,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D -,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74 -,0x79,0x70,0x65,0x2E,0x70,0x75,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x20,0x3D -,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29 -,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E -,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22 -,0x70,0x75,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x22,0x2C,0x20,0x5B,0x76,0x61 -,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D -,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75 -,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x6D,0x73,0x20,0x3D,0x20,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D -,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 -,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x75,0x6C -,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x6D,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61 -,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D -,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75 -,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x75,0x73,0x20,0x3D,0x20,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D -,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 -,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x75,0x6C -,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x75,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61 -,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x73,0x65,0x72,0x69,0x61 -,0x6C,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x53 -,0x65,0x72,0x69,0x61,0x6C,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C -,0x20,0x74,0x78,0x2C,0x20,0x72,0x78,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28 -,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x74,0x78,0x20,0x21,0x3D,0x20,0x22,0x73,0x74 -,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72 -,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63 -,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20 -,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20 -,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20 -,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22 -,0x53,0x65,0x72,0x69,0x61,0x6C,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20 -,0x5B,0x74,0x78,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x72,0x78,0x2E,0x5F,0x6E -,0x61,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B -,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20 -,0x65,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D -,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20 -,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68 -,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x78,0x3B,0x0D,0x0A,0x09 -,0x7D,0x0D,0x0A,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C -,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75,0x74,0x63,0x20 -,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65 -,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64 -,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20 -,0x22,0x70,0x75,0x74,0x63,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29 -,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70 -,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x67,0x65,0x74,0x63,0x20,0x3D,0x20 -,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 -,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65 -,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 -,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x67 -,0x65,0x74,0x63,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D -,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70,0x72,0x6F,0x74,0x6F -,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x61,0x62,0x6C,0x65,0x20,0x3D,0x20 -,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 -,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65 -,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 -,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72 -,0x65,0x61,0x64,0x61,0x62,0x6C,0x65,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29 -,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70 -,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x61,0x62 -,0x6C,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61 -,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20 -,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D -,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D -,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x61,0x62,0x6C,0x65,0x22,0x2C,0x20 -,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A -,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x52,0x50 -,0x43,0x56,0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 -,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 -,0x6C,0x65,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6E,0x61 -,0x6D,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 -,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D -,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61 -,0x6D,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A -,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x2E,0x70,0x72 -,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20 -,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 -,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 -,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77 -,0x72,0x69,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B -,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 -,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61 -,0x64,0x5F,0x69,0x6E,0x74,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E -,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61 -,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 -,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C -,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B -,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 -,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61 -,0x64,0x5F,0x66,0x6C,0x6F,0x61,0x74,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69 -,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20 -,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E -,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E -,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22 -,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61 -,0x72,0x69,0x61,0x62,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65 -,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E -,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x28,0x74 -,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 -,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C -,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F -,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x52,0x50,0x43 -,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A -,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E -,0x63,0x74,0x69,0x6F,0x6E,0x20,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F -,0x6E,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6E,0x61,0x6D -,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 -,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D -,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D -,0x0A,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x70,0x72,0x6F -,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x75,0x6E,0x20,0x3D,0x20,0x66,0x75,0x6E -,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A -,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D -,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D -,0x65,0x2C,0x20,0x22,0x72,0x75,0x6E,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65 -,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D -}; - -static const char led_htm_tbl[] = { - 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A -,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 -,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 -,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 -,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x20,0x75,0x74 -,0x66,0x2D,0x38,0x22,0x3E,0x20,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x4C -,0x45,0x44,0x20,0x54,0x6F,0x67,0x67,0x6C,0x65,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65 -,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3D -,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74 -,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D,0x62,0x65,0x64,0x52,0x50,0x43,0x2E,0x6A -,0x73,0x22,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67,0x65,0x3D,0x22,0x6A,0x61,0x76 -,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74 -,0x3D,0x22,0x75,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70 -,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65 -,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70 -,0x74,0x22,0x3E,0x6D,0x62,0x65,0x64,0x3D,0x6E,0x65,0x77,0x20,0x48,0x54,0x54,0x50 -,0x52,0x50,0x43,0x28,0x29,0x3B,0x6C,0x65,0x64,0x31,0x3D,0x6E,0x65,0x77,0x20,0x44 -,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C -,0x45,0x44,0x31,0x29,0x3B,0x6C,0x65,0x64,0x32,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69 -,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45 -,0x44,0x32,0x29,0x3B,0x6C,0x65,0x64,0x33,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69,0x67 -,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45,0x44 -,0x33,0x29,0x3B,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A -,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 -,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x3E,0x0D -,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x31,0x5F,0x74 -,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x64,0x31,0x20,0x3D,0x20,0x6C,0x65,0x64 -,0x31,0x2E,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x64,0x31,0x20,0x3D,0x3D,0x20,0x31,0x29 -,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x31,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30 -,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x2E,0x76,0x61,0x6C -,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x31,0x20,0x4F,0x66,0x66,0x27,0x3B -,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C -,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C -,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B -,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23 -,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65 -,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 -,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74 -,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30 -,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x31,0x2E,0x77,0x72,0x69 -,0x74,0x65,0x28,0x31,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31 -,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x31,0x20,0x4F -,0x6E,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 -,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 -,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62 -,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D -,0x20,0x27,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63 -,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74 -,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29 -,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27 -,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F -,0x6E,0x20,0x6C,0x65,0x64,0x32,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x20 -,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72 -,0x64,0x32,0x20,0x3D,0x20,0x6C,0x65,0x64,0x32,0x2E,0x72,0x65,0x61,0x64,0x28,0x29 -,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72 -,0x64,0x32,0x20,0x3D,0x3D,0x20,0x31,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x32 -,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F -,0x4C,0x45,0x44,0x32,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45 -,0x44,0x32,0x20,0x4F,0x66,0x66,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65 -,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 -,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74 -,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F -,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B -,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C -,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C -,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F -,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x6C,0x65,0x64,0x32,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x31,0x29,0x3B,0x0D,0x0A -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D -,0x20,0x27,0x4C,0x45,0x44,0x32,0x20,0x4F,0x6E,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63 -,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74 -,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29 -,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E -,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30,0x38,0x30,0x30 -,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 -,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 -,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63 -,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27 -,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7D,0x0D,0x0A,0x7D,0x0D -,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x33,0x5F,0x74 -,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x64,0x33,0x20,0x3D,0x20,0x6C,0x65,0x64 -,0x33,0x2E,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x64,0x33,0x20,0x3D,0x3D,0x20,0x31,0x29 -,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x33,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30 -,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x2E,0x76,0x61,0x6C -,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x33,0x20,0x4F,0x66,0x66,0x27,0x3B -,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C -,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C -,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B -,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23 -,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65 -,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 -,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74 -,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30 -,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x33,0x2E,0x77,0x72,0x69 -,0x74,0x65,0x28,0x31,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33 -,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x33,0x20,0x4F -,0x6E,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 -,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 -,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62 -,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D -,0x20,0x27,0x23,0x30,0x30,0x30,0x30,0x63,0x63,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63 -,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74 -,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29 -,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27 -,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70 -,0x74,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F -,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69 -,0x7A,0x65,0x3D,0x22,0x38,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79 -,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x38 -,0x30,0x22,0x3E,0x3C,0x62,0x3E,0x4C,0x45,0x44,0x20,0x54,0x6F,0x67,0x67,0x6C,0x65 -,0x20,0x53,0x77,0x69,0x74,0x63,0x68,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61 -,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x3C,0x62,0x72 -,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22 -,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D,0x22,0x62,0x74,0x6E,0x5F -,0x4C,0x45,0x44,0x31,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E -,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B -,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x63,0x6F -,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3B,0x62,0x61,0x63,0x6B -,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x63,0x30 -,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x20,0x37,0x30,0x70,0x78 -,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34,0x30,0x70,0x78,0x22,0x20 -,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65,0x64,0x31,0x5F,0x74,0x6F -,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20 -,0x22,0x4C,0x45,0x44,0x31,0x20,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C,0x62,0x72,0x3E -,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74 -,0x79,0x70,0x65,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D -,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 -,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61 -,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39 -,0x70,0x74,0x3B,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30 -,0x3B,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F -,0x72,0x3A,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A -,0x20,0x37,0x30,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34 -,0x30,0x70,0x78,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65 -,0x64,0x32,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C -,0x75,0x65,0x20,0x3D,0x20,0x22,0x4C,0x45,0x44,0x32,0x20,0x4F,0x66,0x66,0x22,0x3E -,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E -,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E -,0x22,0x20,0x49,0x44,0x3D,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x20 -,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49 -,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53 -,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30 -,0x30,0x30,0x30,0x30,0x30,0x3B,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64 -,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57 -,0x49,0x44,0x54,0x48,0x3A,0x20,0x37,0x30,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47 -,0x48,0x54,0x3A,0x20,0x34,0x30,0x70,0x78,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63 -,0x6B,0x3D,0x22,0x6C,0x65,0x64,0x33,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29 -,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x22,0x4C,0x45,0x44,0x33,0x20 -,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F -,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A -}; - -static const char i2c_set_htm_tbl[] = { - 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A -,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 -,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 -,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 -,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 -,0x2D,0x38,0x22,0x3E,0x20,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x53,0x65 -,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x74,0x69 -,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79 -,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72 -,0x69,0x70,0x74,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D,0x62,0x65,0x64,0x52,0x50 -,0x43,0x2E,0x6A,0x73,0x22,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67,0x65,0x3D,0x22 -,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x63,0x68,0x61,0x72 -,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63 -,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74 -,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63 -,0x72,0x69,0x70,0x74,0x22,0x3E,0x6D,0x62,0x65,0x64,0x3D,0x6E,0x65,0x77,0x20,0x48 -,0x54,0x54,0x50,0x52,0x50,0x43,0x28,0x29,0x3B,0x74,0x65,0x72,0x6D,0x3D,0x6E,0x65 -,0x77,0x20,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6D,0x62 -,0x65,0x64,0x2C,0x22,0x53,0x65,0x74,0x49,0x32,0x43,0x66,0x72,0x6F,0x6D,0x57,0x65 -,0x62,0x22,0x29,0x3B,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C -,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A -,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x38 -,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43 -,0x4F,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62 -,0x3E,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x69,0x6E,0x70,0x75,0x74,0x3C,0x2F,0x62 -,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C -,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 -,0x3D,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x64,0x69,0x72,0x5F -,0x69,0x6E,0x22,0x3E,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,0x3E,0x3C,0x62,0x75,0x74 -,0x74,0x6F,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D -,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F -,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63 -,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x73,0x6E,0x64,0x5F,0x64,0x69,0x72,0x5F,0x69,0x6E -,0x28,0x29,0x22,0x3E,0x53,0x65,0x6E,0x64,0x3C,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E -,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A -,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x38 -,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43 -,0x4F,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62 -,0x3E,0x46,0x69,0x6C,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x3C -,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74 -,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79 -,0x70,0x65,0x3D,0x22,0x66,0x69,0x6C,0x65,0x22,0x20,0x69,0x64,0x3D,0x22,0x66,0x69 -,0x6C,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 -,0x3D,0x22,0x44,0x49,0x53,0x50,0x4C,0x41,0x59,0x3A,0x6E,0x6F,0x6E,0x65,0x22,0x20 -,0x6F,0x6E,0x63,0x68,0x61,0x6E,0x67,0x65,0x3D,0x22,0x74,0x78,0x74,0x5F,0x66,0x69 -,0x6C,0x65,0x6E,0x61,0x6D,0x65,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x74 -,0x68,0x69,0x73,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3B,0x22,0x20,0x61,0x63,0x63,0x65 -,0x70,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x70,0x6C,0x61,0x69,0x6E,0x22,0x3E -,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74 -,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x78,0x74,0x5F,0x66,0x69,0x6C -,0x65,0x6E,0x61,0x6D,0x65,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F -,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61 -,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20 -,0x73,0x69,0x7A,0x65,0x3D,0x22,0x32,0x35,0x22,0x20,0x44,0x49,0x53,0x41,0x42,0x4C -,0x45,0x44,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 -,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x69,0x64,0x3D,0x22,0x66,0x69 -,0x6C,0x65,0x5F,0x73,0x65,0x6C,0x65,0x63,0x74,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 -,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61 -,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39 -,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x66,0x69,0x6C -,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x2E,0x63,0x6C,0x69,0x63,0x6B,0x28,0x29 -,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x43,0x68,0x6F,0x6F,0x73,0x65,0x20 -,0x61,0x20,0x74,0x65,0x78,0x74,0x20,0x46,0x69,0x6C,0x65,0x22,0x3E,0x0D,0x0A,0x3C -,0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x73,0x75,0x62 -,0x6D,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x73,0x6E,0x64,0x62,0x6F,0x78,0x22 -,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D -,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D -,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63 -,0x6B,0x3D,0x22,0x73,0x6E,0x64,0x5F,0x66,0x69,0x6C,0x65,0x5F,0x72,0x65,0x66,0x28 -,0x29,0x22,0x3E,0x53,0x65,0x6E,0x64,0x3C,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3E -,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 -,0x72,0x3E,0x0D,0x0A,0x3C,0x70,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F -,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61 -,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x31,0x38,0x70,0x74,0x22 -,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43,0x4F -,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x0D,0x0A,0x3C -,0x62,0x3E,0x4C,0x4F,0x47,0x3A,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E -,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22 -,0x73,0x75,0x62,0x6D,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x65,0x78,0x74 -,0x61,0x72,0x65,0x61,0x5F,0x63,0x6C,0x65,0x61,0x72,0x22,0x20,0x73,0x74,0x79,0x6C -,0x65,0x3D,0x22,0x44,0x49,0x53,0x50,0x4C,0x41,0x59,0x3A,0x62,0x6C,0x6F,0x63,0x6B -,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68 -,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70 -,0x74,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x37,0x30,0x70,0x78,0x3B,0x48,0x45,0x49 -,0x47,0x48,0x54,0x3A,0x32,0x30,0x70,0x78,0x3B,0x50,0x4F,0x53,0x49,0x54,0x49,0x4F -,0x4E,0x3A,0x61,0x62,0x73,0x6F,0x6C,0x75,0x74,0x65,0x3B,0x4C,0x45,0x46,0x54,0x3A -,0x38,0x70,0x78,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x43,0x6C -,0x72,0x5F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x22,0x20,0x76,0x61 -,0x6C,0x75,0x65,0x3D,0x22,0x43,0x6C,0x65,0x61,0x72,0x22,0x3E,0x0D,0x0A,0x3C,0x62 -,0x75,0x74,0x74,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x73,0x75,0x62,0x6D -,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61 -,0x5F,0x73,0x61,0x76,0x65,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x44,0x49 -,0x53,0x50,0x4C,0x41,0x59,0x3A,0x62,0x6C,0x6F,0x63,0x6B,0x3B,0x46,0x4F,0x4E,0x54 -,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46 -,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x57,0x49,0x44 -,0x54,0x48,0x3A,0x37,0x30,0x70,0x78,0x3B,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x32 -,0x30,0x70,0x78,0x3B,0x50,0x4F,0x53,0x49,0x54,0x49,0x4F,0x4E,0x3A,0x61,0x62,0x73 -,0x6F,0x6C,0x75,0x74,0x65,0x3B,0x4C,0x45,0x46,0x54,0x3A,0x38,0x32,0x70,0x78,0x22 -,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x53,0x61,0x76,0x65,0x5F,0x74 -,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x22,0x3E,0x53,0x61,0x76,0x65,0x3C -,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x72,0x6D,0x20 -,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x22,0x3E -,0x0D,0x0A,0x3C,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x69,0x64,0x3D,0x22 -,0x72,0x65,0x73,0x75,0x6C,0x74,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x74,0x65 -,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x22,0x20,0x63,0x6F,0x6C,0x73,0x3D,0x22,0x35 -,0x30,0x22,0x20,0x72,0x6F,0x77,0x73,0x3D,0x22,0x32,0x30,0x22,0x20,0x70,0x6C,0x61 -,0x63,0x65,0x68,0x6F,0x6C,0x64,0x65,0x72,0x3D,0x22,0x22,0x20,0x76,0x61,0x6C,0x75 -,0x65,0x3D,0x22,0x22,0x3E,0x3C,0x2F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3E -,0x0D,0x0A,0x3C,0x2F,0x66,0x6F,0x72,0x6D,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D -,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74 -,0x3E,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x73,0x6E,0x64,0x5F -,0x64,0x69,0x72,0x5F,0x69,0x6E,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72,0x20 -,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74,0x3B,0x0D,0x0A,0x09,0x69,0x66,0x20,0x28 -,0x28,0x64,0x69,0x72,0x5F,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x21,0x3D -,0x20,0x6E,0x75,0x6C,0x6C,0x29,0x20,0x26,0x26,0x20,0x28,0x64,0x69,0x72,0x5F,0x69 -,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x21,0x3D,0x20,0x22,0x22,0x29,0x29,0x20 -,0x7B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75 -,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61 -,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x53,0x45,0x4E,0x44 -,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E -,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72 -,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x64,0x69,0x72,0x5F -,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63 -,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74 -,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B -,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x72,0x63,0x76 -,0x5F,0x74,0x65,0x78,0x74,0x20,0x3D,0x20,0x74,0x65,0x72,0x6D,0x2E,0x72,0x75,0x6E -,0x28,0x64,0x69,0x72,0x5F,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x29,0x3B,0x0D -,0x0A,0x09,0x09,0x69,0x66,0x20,0x28,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74,0x20 -,0x21,0x3D,0x20,0x22,0x72,0x75,0x6E,0x22,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09 -,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72 -,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75 -,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x52,0x45,0x43,0x56,0x5D,0x22,0x3B,0x0D,0x0A -,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F -,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76 -,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74 -,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F -,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65 -,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E -,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A -,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x73,0x6E,0x64,0x5F,0x66 -,0x69,0x6C,0x65,0x5F,0x72,0x65,0x66,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72 -,0x20,0x6F,0x62,0x6A,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E -,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22 -,0x66,0x69,0x6C,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x22,0x29,0x2E,0x66,0x69 -,0x6C,0x65,0x73,0x5B,0x30,0x5D,0x3B,0x0D,0x0A,0x09,0x76,0x61,0x72,0x20,0x72,0x65 -,0x61,0x64,0x65,0x72,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x46,0x69,0x6C,0x65,0x52 -,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3B,0x0D,0x0A,0x09,0x72,0x65,0x61,0x64,0x65 -,0x72,0x2E,0x6F,0x6E,0x6C,0x6F,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 -,0x69,0x6F,0x6E,0x28,0x65,0x76,0x74,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x76,0x61 -,0x72,0x20,0x73,0x74,0x72,0x20,0x3D,0x20,0x65,0x76,0x74,0x2E,0x74,0x61,0x72,0x67 -,0x65,0x74,0x2E,0x72,0x65,0x73,0x75,0x6C,0x74,0x3B,0x0D,0x0A,0x09,0x09,0x76,0x61 -,0x72,0x20,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x20,0x3D,0x20,0x73,0x74,0x72 -,0x2E,0x73,0x70,0x6C,0x69,0x74,0x28,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x29,0x3B,0x0D -,0x0A,0x09,0x09,0x76,0x61,0x72,0x20,0x63,0x6E,0x74,0x20,0x3D,0x20,0x30,0x3B,0x0D -,0x0A,0x09,0x09,0x76,0x61,0x72,0x20,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20 -,0x3D,0x20,0x30,0x3B,0x0D,0x0A,0x09,0x09,0x77,0x68,0x69,0x6C,0x65,0x20,0x28,0x28 -,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x20,0x21,0x3D -,0x20,0x6E,0x75,0x6C,0x6C,0x29,0x20,0x26,0x26,0x20,0x28,0x73,0x6E,0x64,0x5F,0x64 -,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x20,0x21,0x3D,0x20,0x22,0x22,0x29,0x29 -,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E -,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72 -,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x53,0x45 -,0x4E,0x44,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65 -,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74 -,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x73 -,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x3B,0x0D,0x0A,0x09 -,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66 -,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61 -,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A -,0x09,0x09,0x09,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20,0x3D,0x20,0x74,0x65 -,0x72,0x6D,0x2E,0x72,0x75,0x6E,0x28,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B -,0x63,0x6E,0x74,0x5D,0x29,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x69,0x66,0x20,0x28,0x72 -,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20,0x21,0x3D,0x20,0x22,0x72,0x75,0x6E,0x22 -,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E -,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F -,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B -,0x52,0x45,0x43,0x56,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x09,0x64,0x6F,0x63 -,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74 -,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B -,0x3D,0x20,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x3B,0x0D,0x0A,0x09,0x09,0x09 -,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F -,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C -,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A,0x09 -,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x09,0x09,0x63,0x6E,0x74,0x2B,0x2B,0x3B,0x0D,0x0A -,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x09,0x72,0x65,0x61,0x64,0x65,0x72 -,0x2E,0x72,0x65,0x61,0x64,0x41,0x73,0x54,0x65,0x78,0x74,0x28,0x6F,0x62,0x6A,0x29 -,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E -,0x20,0x43,0x6C,0x72,0x5F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x7B -,0x0D,0x0A,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F -,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76 -,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x22,0x22,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D -,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x53,0x61,0x76,0x65,0x5F,0x74 -,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72 -,0x20,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20 -,0x42,0x6C,0x6F,0x62,0x28,0x5B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F -,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65 -,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x5D,0x2C,0x20,0x7B,0x74,0x79,0x70,0x65,0x3A -,0x22,0x74,0x65,0x78,0x74,0x2F,0x70,0x6C,0x61,0x69,0x6E,0x22,0x7D,0x29,0x3B,0x0D -,0x0A,0x09,0x3C,0x21,0x2D,0x2D,0x20,0x44,0x65,0x74,0x65,0x72,0x6D,0x69,0x6E,0x65 -,0x73,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x09 -,0x69,0x66,0x20,0x28,0x6E,0x61,0x76,0x69,0x67,0x61,0x74,0x6F,0x72,0x2E,0x6D,0x73 -,0x53,0x61,0x76,0x65,0x42,0x6C,0x6F,0x62,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x3C -,0x21,0x2D,0x2D,0x20,0x49,0x45,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x20,0x20,0x20,0x20 -,0x20,0x20,0x20,0x20,0x09,0x6E,0x61,0x76,0x69,0x67,0x61,0x74,0x6F,0x72,0x2E,0x6D -,0x73,0x53,0x61,0x76,0x65,0x4F,0x72,0x4F,0x70,0x65,0x6E,0x42,0x6C,0x6F,0x62,0x28 -,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x2C,0x20,0x27,0x63,0x6F,0x6D,0x6D,0x5F -,0x6C,0x6F,0x67,0x2E,0x74,0x78,0x74,0x27,0x29,0x3B,0x0D,0x0A,0x09,0x7D,0x20,0x65 -,0x6C,0x73,0x65,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x3C,0x21,0x2D,0x2D,0x20,0x45,0x78 -,0x70,0x65,0x63,0x74,0x20,0x49,0x45,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x09,0x09,0x76 -,0x61,0x72,0x20,0x61,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E -,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x28,0x27,0x61 -,0x27,0x29,0x3B,0x0D,0x0A,0x09,0x09,0x61,0x2E,0x68,0x72,0x65,0x66,0x20,0x3D,0x20 -,0x55,0x52,0x4C,0x2E,0x63,0x72,0x65,0x61,0x74,0x65,0x4F,0x62,0x6A,0x65,0x63,0x74 -,0x55,0x52,0x4C,0x28,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x29,0x3B,0x0D,0x0A -,0x09,0x09,0x61,0x2E,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65 -,0x28,0x27,0x64,0x6F,0x77,0x6E,0x6C,0x6F,0x61,0x64,0x27,0x2C,0x20,0x27,0x63,0x6F -,0x6D,0x6D,0x5F,0x6C,0x6F,0x67,0x2E,0x74,0x78,0x74,0x27,0x29,0x3B,0x0D,0x0A,0x09 -,0x09,0x61,0x2E,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6E,0x74 -,0x28,0x6E,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6F,0x6D,0x45,0x76,0x65,0x6E,0x74 -,0x28,0x27,0x63,0x6C,0x69,0x63,0x6B,0x27,0x29,0x29,0x3B,0x0D,0x0A,0x09,0x7D,0x0D -,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D -,0x0A,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74 -,0x6D,0x6C,0x3E,0x0D,0x0A -}; - -static const char web_top_htm_tbl[] = { - 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A -,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 -,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 -,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 -,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 -,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x54,0x6F,0x70 -,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C -,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D,0x65,0x73,0x65 -,0x74,0x20,0x63,0x6F,0x6C,0x73,0x3D,0x22,0x32,0x30,0x25,0x2C,0x38,0x30,0x25,0x22 -,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D,0x65,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D -,0x65,0x6E,0x75,0x2E,0x68,0x74,0x6D,0x22,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D -,0x65,0x20,0x73,0x72,0x63,0x3D,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x68,0x74 -,0x6D,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65 -,0x22,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x6E,0x6F,0x66,0x72,0x61,0x6D,0x65,0x73,0x3E -,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x59,0x6F,0x75 -,0x20,0x63,0x61,0x6E,0x20,0x6E,0x6F,0x74,0x20,0x76,0x69,0x65,0x77,0x20,0x74,0x68 -,0x69,0x73,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x73,0x69,0x6E,0x63,0x65,0x20 -,0x74,0x68,0x65,0x20,0x66,0x72,0x61,0x6D,0x65,0x20,0x6F,0x66,0x20,0x75,0x6E,0x73 -,0x75,0x70,0x70,0x6F,0x72,0x74,0x65,0x64,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72 -,0x2E,0x3C,0x2F,0x70,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A -,0x3C,0x2F,0x6E,0x6F,0x66,0x72,0x61,0x6D,0x65,0x73,0x3E,0x0D,0x0A,0x3C,0x2F,0x66 -,0x72,0x61,0x6D,0x65,0x73,0x65,0x74,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C -,0x3E,0x0D,0x0A -}; - -static const char menu_htm_tbl[] = { - 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A -,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 -,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 -,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 -,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 -,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x47,0x52,0x2D -,0x50,0x45,0x41,0x43,0x48,0x20,0x4D,0x65,0x6E,0x75,0x3C,0x2F,0x74,0x69,0x74,0x6C -,0x65,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F -,0x64,0x79,0x20,0x62,0x67,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x22,0x23,0x46,0x46,0x46 -,0x41,0x46,0x41,0x22,0x3E,0x0D,0x0A,0x3C,0x43,0x45,0x4E,0x54,0x45,0x52,0x3E,0x0D -,0x0A,0x3C,0x50,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22 -,0x34,0x22,0x3E,0x3C,0x42,0x3E,0x4D,0x65,0x6E,0x75,0x3C,0x2F,0x42,0x3E,0x3C,0x2F -,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x2F,0x50,0x3E,0x0D,0x0A,0x3C,0x2F,0x43,0x45,0x4E -,0x54,0x45,0x52,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x70,0x3E,0x0D,0x0A,0x3C,0x66,0x6F -,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61 -,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 -,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D -,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61,0x72 -,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x54,0x6F -,0x70,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E -,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 -,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22 -,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22 -,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C -,0x61,0x20,0x68,0x72,0x65,0x66,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72,0x61,0x2E,0x68 -,0x74,0x6D,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69 -,0x6B,0x61,0x65,0x22,0x3E,0x57,0x65,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x3C -,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74 -,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F -,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61 -,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 -,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D -,0x22,0x69,0x32,0x63,0x5F,0x73,0x65,0x74,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61 -,0x72,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x53 -,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x61 -,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C -,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x6E,0x74 -,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20 -,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30 -,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D,0x22,0x6C -,0x65,0x64,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3D,0x22 -,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x4C,0x45,0x44,0x20,0x4F,0x6E,0x2F -,0x4F,0x66,0x66,0x3C,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F -,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64 -,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x0D,0x0A -}; - -static const char window_htm_tbl[] = { - 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A -,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 -,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 -,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 -,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 -,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x47,0x52,0x2D -,0x50,0x45,0x41,0x43,0x48,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x3C,0x2F,0x74,0x69 -,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C -,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20 -,0x73,0x69,0x7A,0x65,0x3D,0x22,0x31,0x35,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20 -,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30 -,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62,0x3E,0x47,0x52,0x2D,0x50,0x45,0x41,0x43 -,0x48,0x20,0x41,0x75,0x64,0x69,0x6F,0x2F,0x43,0x61,0x6D,0x65,0x72,0x61,0x20,0x53 -,0x68,0x69,0x65,0x6C,0x64,0x20,0x53,0x61,0x6D,0x70,0x6C,0x65,0x3C,0x2F,0x62,0x3E -,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62 -,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x54,0x68 -,0x69,0x73,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61 -,0x6D,0x20,0x75,0x73,0x69,0x6E,0x67,0x20,0x47,0x52,0x2D,0x50,0x45,0x41,0x43,0x48 -,0x20,0x61,0x6E,0x64,0x20,0x41,0x75,0x64,0x69,0x6F,0x2F,0x43,0x61,0x6D,0x65,0x72 -,0x61,0x20,0x53,0x68,0x69,0x65,0x6C,0x64,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x57 -,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x74,0x68 -,0x65,0x20,0x4D,0x65,0x6E,0x75,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x65 -,0x66,0x74,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x64 -,0x69,0x73,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x69,0x73 -,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 -,0x72,0x3E,0x0D,0x0A,0x49,0x74,0x20,0x73,0x68,0x6F,0x77,0x73,0x20,0x74,0x68,0x65 -,0x20,0x6F,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x6F,0x66,0x20,0x65,0x61,0x63 -,0x68,0x20,0x6C,0x69,0x6E,0x6B,0x20,0x62,0x65,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72 -,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x73,0x74,0x79,0x6C,0x65,0x20 -,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x63,0x73,0x73,0x22,0x3E -,0x0D,0x0A,0x2E,0x74,0x61,0x62,0x6C,0x65,0x20,0x74,0x68,0x20,0x7B,0x0D,0x0A,0x20 -,0x20,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F -,0x72,0x3A,0x20,0x23,0x65,0x36,0x66,0x66,0x65,0x39,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A -,0x3C,0x2F,0x73,0x74,0x79,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x74,0x61,0x62,0x6C,0x65 -,0x20,0x63,0x6C,0x61,0x73,0x73,0x3D,0x22,0x74,0x61,0x62,0x6C,0x65,0x22,0x20,0x62 -,0x6F,0x72,0x64,0x65,0x72,0x3D,0x31,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A -,0x3C,0x74,0x68,0x3E,0x4C,0x69,0x6E,0x6B,0x73,0x3C,0x2F,0x74,0x68,0x3E,0x3C,0x74 -,0x68,0x3E,0x4F,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x3C,0x2F,0x74,0x68,0x3E,0x0D -,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74 -,0x64,0x3E,0x54,0x6F,0x70,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x74,0x64,0x3E,0x3C -,0x74,0x64,0x3E,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x74,0x75,0x72 -,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x74,0x6F,0x70,0x20,0x70,0x61,0x67 -,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74 -,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x57,0x65 -,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x3C,0x2F,0x74,0x64,0x3E,0x3C,0x74,0x64 -,0x3E,0x49,0x74,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x74,0x68 -,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x61,0x63,0x71,0x75,0x69,0x72,0x65,0x64 -,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x6D,0x65,0x72,0x61,0x20,0x6F -,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6F,0x77,0x73,0x65 -,0x72,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x49,0x74,0x20,0x63,0x61,0x6E,0x20,0x62 -,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x61,0x74,0x20,0x61,0x20,0x73 -,0x6C,0x69,0x64,0x65,0x72,0x20,0x62,0x61,0x72,0x20,0x69,0x6E,0x20,0x22,0x57,0x61 -,0x69,0x74,0x20,0x74,0x69,0x6D,0x65,0x22,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20 -,0x74,0x69,0x6D,0x69,0x6E,0x67,0x20,0x6F,0x66,0x20,0x61,0x20,0x72,0x65,0x6E,0x65 -,0x77,0x61,0x6C,0x20,0x6F,0x66,0x20,0x61,0x20,0x63,0x61,0x6D,0x65,0x72,0x61,0x20 -,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2E,0x20,0x28,0x44,0x65,0x66,0x61,0x75,0x6C -,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x35,0x30,0x30,0x6D,0x73,0x2E,0x29,0x3C,0x2F -,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E -,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x53,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79 -,0x20,0x49,0x32,0x43,0x3C,0x2F,0x74,0x64,0x3E,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20 -,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x49,0x32,0x43,0x20,0x73,0x65 -,0x74,0x74,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x65,0x62 -,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x49 -,0x6E,0x20,0x49,0x32,0x43,0x20,0x63,0x6F,0x6D,0x6D,0x75,0x6E,0x69,0x63,0x61,0x74 -,0x69,0x6F,0x6E,0x2C,0x20,0x47,0x52,0x2D,0x50,0x45,0x41,0x43,0x48,0x20,0x65,0x78 -,0x65,0x63,0x75,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x74,0x74,0x69 -,0x6E,0x67,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x76,0x69,0x63 -,0x65,0x73,0x20,0x63,0x6F,0x6E,0x6E,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6F,0x20 -,0x49,0x32,0x43,0x5F,0x53,0x43,0x41,0x20,0x74,0x65,0x72,0x6D,0x69,0x6E,0x61,0x6C -,0x20,0x61,0x6E,0x64,0x20,0x49,0x32,0x43,0x5F,0x53,0x43,0x4C,0x20,0x74,0x65,0x72 -,0x6D,0x69,0x6E,0x61,0x6C,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x4F,0x6E,0x20,0x74 -,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20 -,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2C,0x20,0x47,0x52,0x2D,0x50,0x45,0x41,0x43 -,0x48,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x73,0x20,0x74,0x6F,0x20,0x72,0x65 -,0x67,0x69,0x73,0x74,0x65,0x72,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x64 -,0x65,0x76,0x69,0x63,0x65,0x73,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x59,0x6F,0x75 -,0x20,0x63,0x61,0x6E,0x20,0x73,0x65,0x6E,0x64,0x20,0x74,0x68,0x65,0x20,0x63,0x6F -,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65 -,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20,0x69,0x6E -,0x20,0x6F,0x6E,0x65,0x20,0x6F,0x66,0x20,0x74,0x77,0x6F,0x20,0x70,0x61,0x74,0x74 -,0x65,0x72,0x6E,0x73,0x20,0x62,0x65,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D -,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x44,0x69 -,0x72,0x65,0x63,0x74,0x6C,0x20,0x69,0x6E,0x70,0x75,0x74,0x22,0x20,0x6F,0x72,0x20 -,0x22,0x46,0x69,0x6C,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x22 -,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x63,0x72 -,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x61 -,0x6C,0x6F,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20 -,0x61,0x66,0x74,0x65,0x72,0x20,0x79,0x6F,0x75,0x20,0x63,0x68,0x65,0x63,0x6B,0x20 -,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F -,0x6E,0x73,0x20,0x6F,0x66,0x20,0x65,0x61,0x63,0x68,0x20,0x64,0x65,0x76,0x69,0x63 -,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x54,0x68,0x65,0x20,0x66,0x6F,0x72,0x6D -,0x61,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E -,0x64,0x20,0x69,0x73,0x3A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70 -,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x4D,0x65,0x74,0x68,0x6F,0x64,0x3A,0x49,0x32 -,0x43,0x20,0x61,0x64,0x64,0x72,0x2C,0x64,0x61,0x74,0x61,0x20,0x6C,0x65,0x6E,0x67 -,0x74,0x68,0x2C,0x64,0x61,0x74,0x61,0x31,0x2C,0x64,0x61,0x74,0x61,0x32,0x2C,0x64 -,0x61,0x74,0x61,0x33,0x2C,0x2E,0x2E,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 -,0x72,0x3E,0x0D,0x0A,0x4D,0x65,0x74,0x68,0x6F,0x64,0x20,0x69,0x73,0x20,0x62,0x65 -,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B -,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x57,0x72,0x22 -,0x69,0x73,0x20,0x57,0x72,0x69,0x74,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F -,0x6E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62 -,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x52,0x64,0x22,0x20,0x69,0x73 -,0x20,0x52,0x65,0x61,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x3C,0x62 -,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B -,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x57,0x72,0x4E,0x6F,0x70,0x22,0x20,0x69,0x73 -,0x20,0x57,0x72,0x69,0x74,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28 -,0x4E,0x6F,0x20,0x53,0x54,0x4F,0x50,0x20,0x63,0x6F,0x6E,0x64,0x69,0x74,0x69,0x6F -,0x6E,0x29,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E -,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x52,0x64,0x4E,0x6F,0x70 -,0x22,0x20,0x69,0x73,0x20,0x52,0x65,0x61,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69 -,0x6F,0x6E,0x28,0x4E,0x6F,0x20,0x53,0x54,0x4F,0x50,0x20,0x63,0x6F,0x6E,0x64,0x69 -,0x74,0x69,0x6F,0x6E,0x29,0x3C,0x62,0x72,0x3E,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A -,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64 -,0x3E,0x4C,0x45,0x44,0x20,0x4F,0x6E,0x2F,0x4F,0x66,0x66,0x3C,0x2F,0x74,0x64,0x3E -,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73 -,0x20,0x4C,0x45,0x44,0x31,0x2C,0x20,0x4C,0x45,0x44,0x32,0x20,0x61,0x6E,0x64,0x20 -,0x4C,0x45,0x44,0x33,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x6F,0x67,0x67 -,0x6C,0x65,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65 -,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x2E,0x3C,0x62,0x72 -,0x3E,0x0D,0x0A,0x45,0x61,0x63,0x68,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x69 -,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72 -,0x72,0x65,0x6E,0x74,0x20,0x4C,0x45,0x44,0x20,0x73,0x74,0x61,0x74,0x65,0x2E,0x3C -,0x62,0x72,0x3E,0x0D,0x0A,0x4C,0x45,0x44,0x20,0x4F,0x4E,0x20,0x61,0x6E,0x64,0x20 -,0x4F,0x46,0x46,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x65,0x73,0x20,0x77,0x68,0x65 -,0x6E,0x20,0x79,0x6F,0x75,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20 -,0x73,0x77,0x69,0x74,0x63,0x68,0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,0x74,0x68,0x65 -,0x20,0x4C,0x45,0x44,0x20,0x69,0x73,0x20,0x4F,0x4E,0x2C,0x20,0x74,0x68,0x65,0x20 -,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x77,0x69 -,0x74,0x63,0x68,0x20,0x77,0x69,0x6C,0x6C,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20 -,0x74,0x68,0x65,0x20,0x4C,0x45,0x44,0x20,0x63,0x6F,0x6C,0x6F,0x72,0x2E,0x3C,0x2F -,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x61 -,0x62,0x6C,0x65,0x3E,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79 -,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x0D,0x0A -};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/file_table_lychee.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,1223 @@ + +static const char index_htm_tbl[] = { + 0x3C,0x53,0x43,0x52,0x49,0x50,0x54,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x3E,0x0D +,0x0A,0x3C,0x21,0x2D,0x2D,0x0D,0x0A,0x6C,0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E,0x2E +,0x68,0x72,0x65,0x66,0x3D,0x22,0x2F,0x77,0x65,0x62,0x5F,0x74,0x6F,0x70,0x2E,0x68 +,0x74,0x6D,0x22,0x3B,0x0D,0x0A,0x2D,0x2D,0x3E,0x0D,0x0A,0x3C,0x2F,0x53,0x43,0x52 +,0x49,0x50,0x54,0x3E,0x0D,0x0A +}; + +static const char camaera_js_tbl[] = { + 0x76,0x61,0x72,0x20,0x69,0x6D,0x61,0x67,0x65,0x4E,0x72,0x20,0x3D,0x20,0x30,0x3B +,0x20,0x2F,0x2F,0x20,0x53,0x65,0x72,0x69,0x61,0x6C,0x20,0x6E,0x75,0x6D,0x62,0x65 +,0x72,0x20,0x6F,0x66,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6D,0x61 +,0x67,0x65,0x0D,0x0A,0x76,0x61,0x72,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64 +,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x29,0x3B,0x20 +,0x2F,0x2F,0x20,0x52,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x20,0x74,0x6F +,0x20,0x69,0x6D,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x73,0x20,0x77,0x68,0x69 +,0x63,0x68,0x20,0x68,0x61,0x76,0x65,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64 +,0x20,0x64,0x6F,0x77,0x6E,0x6C,0x6F,0x61,0x64,0x69,0x6E,0x67,0x0D,0x0A,0x0D,0x0A +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49 +,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20 +,0x20,0x76,0x61,0x72,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x3D,0x20,0x6E,0x65,0x77 +,0x20,0x49,0x6D,0x61,0x67,0x65,0x28,0x29,0x3B,0x0D,0x0A,0x0D,0x0A,0x20,0x20,0x69 +,0x6D,0x61,0x67,0x65,0x2E,0x73,0x72,0x63,0x20,0x3D,0x20,0x22,0x63,0x61,0x6D,0x65 +,0x72,0x61,0x2F,0x22,0x20,0x2B,0x20,0x28,0x2B,0x2B,0x69,0x6D,0x61,0x67,0x65,0x4E +,0x72,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x73,0x74,0x79 +,0x6C,0x65,0x2E,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x3D,0x20,0x22,0x61 +,0x62,0x73,0x6F,0x6C,0x75,0x74,0x65,0x22,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61 +,0x67,0x65,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x7A,0x49,0x6E,0x64,0x65,0x78,0x20 +,0x3D,0x20,0x2D,0x31,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x6F +,0x6E,0x6C,0x6F,0x61,0x64,0x20,0x3D,0x20,0x69,0x6D,0x61,0x67,0x65,0x4F,0x6E,0x6C +,0x6F,0x61,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x6F,0x6E +,0x65,0x72,0x72,0x6F,0x72,0x20,0x3D,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6D +,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x3B,0x0D,0x0A,0x0D,0x0A,0x20,0x20,0x76 +,0x61,0x72,0x20,0x77,0x65,0x62,0x63,0x61,0x6D,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75 +,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42 +,0x79,0x49,0x64,0x28,0x22,0x77,0x65,0x62,0x63,0x61,0x6D,0x22,0x29,0x3B,0x0D,0x0A +,0x20,0x20,0x77,0x65,0x62,0x63,0x61,0x6D,0x2E,0x69,0x6E,0x73,0x65,0x72,0x74,0x42 +,0x65,0x66,0x6F,0x72,0x65,0x28,0x69,0x6D,0x61,0x67,0x65,0x2C,0x20,0x77,0x65,0x62 +,0x63,0x61,0x6D,0x2E,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6C,0x64,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 +,0x69,0x6D,0x61,0x67,0x65,0x4F,0x6E,0x6C,0x6F,0x61,0x64,0x28,0x29,0x20,0x7B,0x0D +,0x0A,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x7A,0x49 +,0x6E,0x64,0x65,0x78,0x20,0x3D,0x20,0x69,0x6D,0x61,0x67,0x65,0x4E,0x72,0x3B,0x0D +,0x0A,0x20,0x20,0x77,0x68,0x69,0x6C,0x65,0x20,0x28,0x31,0x20,0x3C,0x20,0x66,0x69 +,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x6C,0x65,0x6E,0x67,0x74,0x68,0x29,0x20,0x7B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x6C,0x20,0x3D,0x20 +,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x73,0x68,0x69,0x66,0x74,0x28,0x29 +,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x64,0x65,0x6C,0x2E,0x70,0x61,0x72,0x65,0x6E +,0x74,0x4E,0x6F,0x64,0x65,0x2E,0x72,0x65,0x6D,0x6F,0x76,0x65,0x43,0x68,0x69,0x6C +,0x64,0x28,0x64,0x65,0x6C,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x7D,0x0D,0x0A,0x20,0x20 +,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x70,0x75,0x73,0x68,0x28,0x74,0x68 +,0x69,0x73,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x74,0x69,0x6D,0x65,0x72,0x49,0x44,0x20 +,0x3D,0x20,0x73,0x65,0x74,0x54,0x69,0x6D,0x65,0x6F,0x75,0x74,0x28,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x7B,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49 +,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x28,0x29,0x20,0x7D,0x2C,0x20,0x64 +,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x46,0x31,0x2E,0x77,0x61,0x69,0x74,0x74 +,0x69,0x6D,0x65,0x2E,0x76,0x61,0x6C,0x75,0x65,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A +}; + +static const char camera_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x63,0x61,0x6D,0x65,0x72,0x61,0x3C,0x2F,0x74 +,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74 +,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63 +,0x72,0x69,0x70,0x74,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72 +,0x61,0x2E,0x6A,0x73,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75 +,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D +,0x0A,0x3C,0x73,0x74,0x79,0x6C,0x65,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x2F,0x63,0x73,0x73,0x22,0x3E,0x0D,0x0A,0x23,0x77,0x65,0x62,0x63,0x61 +,0x6D,0x20,0x69,0x6D,0x67,0x20,0x7B,0x0D,0x0A,0x09,0x6C,0x65,0x66,0x74,0x3A,0x20 +,0x30,0x3B,0x0D,0x0A,0x09,0x72,0x69,0x67,0x68,0x74,0x3A,0x20,0x30,0x3B,0x0D,0x0A +,0x09,0x6D,0x61,0x78,0x2D,0x77,0x69,0x64,0x74,0x68,0x3A,0x20,0x36,0x34,0x30,0x70 +,0x78,0x3B,0x20,0x0D,0x0A,0x09,0x77,0x69,0x64,0x74,0x68,0x3A,0x20,0x31,0x30,0x30 +,0x25,0x3B,0x0D,0x0A,0x09,0x68,0x65,0x69,0x67,0x68,0x74,0x3A,0x20,0x61,0x75,0x74 +,0x6F,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A,0x3C,0x2F,0x73,0x74,0x79,0x6C,0x65,0x3E +,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79 +,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x20,0x6F,0x6E,0x6C,0x6F,0x61,0x64,0x3D +,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65 +,0x72,0x28,0x29,0x3B,0x22,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x72,0x6D,0x20,0x61,0x63 +,0x74,0x69,0x6F,0x6E,0x3D,0x22,0x23,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x46 +,0x31,0x22,0x3E,0x0D,0x0A,0x57,0x61,0x69,0x74,0x20,0x74,0x69,0x6D,0x65,0x20,0x3C +,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x72,0x61,0x6E,0x67 +,0x65,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x77,0x61,0x69,0x74,0x74,0x69,0x6D +,0x65,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x35,0x30,0x30,0x22,0x20,0x6D +,0x61,0x78,0x3D,0x22,0x31,0x30,0x30,0x30,0x22,0x20,0x73,0x74,0x65,0x70,0x3D,0x22 +,0x35,0x30,0x22,0x3E,0x20,0x5B,0x6D,0x73,0x5D,0x0D,0x0A,0x3C,0x2F,0x66,0x6F,0x72 +,0x6D,0x3E,0x0D,0x0A,0x3C,0x64,0x69,0x76,0x20,0x69,0x64,0x3D,0x22,0x77,0x65,0x62 +,0x63,0x61,0x6D,0x22,0x3E,0x3C,0x6E,0x6F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x3C +,0x69,0x6D,0x67,0x20,0x73,0x72,0x63,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72,0x61,0x2F +,0x30,0x22,0x20,0x2F,0x3E,0x3C,0x2F,0x6E,0x6F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E +,0x3C,0x2F,0x64,0x69,0x76,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D +,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A +}; + +static const char mbedrpc_js_tbl[] = { + 0x2F,0x2F,0x20,0x6D,0x62,0x65,0x64,0x52,0x50,0x43,0x20,0x4A,0x61,0x76,0x61,0x73 +,0x63,0x72,0x69,0x70,0x74,0x20,0x49,0x6E,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20 +,0x75,0x73,0x69,0x6E,0x67,0x20,0x48,0x54,0x54,0x50,0x0D,0x0A,0x2F,0x2F,0x20,0x73 +,0x66,0x6F,0x72,0x64,0x20,0x61,0x6E,0x64,0x20,0x4D,0x20,0x57,0x61,0x6C,0x6B,0x65 +,0x72,0x0D,0x0A,0x2F,0x2F,0x20,0x41,0x20,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69 +,0x70,0x74,0x20,0x69,0x6E,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6F,0x72 +,0x20,0x74,0x61,0x6C,0x6B,0x69,0x6E,0x67,0x20,0x74,0x6F,0x20,0x6D,0x62,0x65,0x64 +,0x20,0x72,0x70,0x63,0x20,0x6F,0x76,0x65,0x72,0x20,0x68,0x74,0x74,0x70,0x0D,0x0A +,0x2F,0x2F,0x0D,0x0A,0x2F,0x2F,0x43,0x6F,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20 +,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x30,0x20,0x41,0x52,0x4D,0x20,0x4C,0x74,0x64 +,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F,0x2F,0x50,0x65,0x72,0x6D,0x69,0x73,0x73 +,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x68,0x65,0x72,0x65,0x62,0x79,0x20,0x67,0x72 +,0x61,0x6E,0x74,0x65,0x64,0x2C,0x20,0x66,0x72,0x65,0x65,0x20,0x6F,0x66,0x20,0x63 +,0x68,0x61,0x72,0x67,0x65,0x2C,0x20,0x74,0x6F,0x20,0x61,0x6E,0x79,0x20,0x70,0x65 +,0x72,0x73,0x6F,0x6E,0x20,0x6F,0x62,0x74,0x61,0x69,0x6E,0x69,0x6E,0x67,0x20,0x61 +,0x20,0x63,0x6F,0x70,0x79,0x0D,0x0A,0x2F,0x2F,0x6F,0x66,0x20,0x74,0x68,0x69,0x73 +,0x20,0x73,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x61,0x6E,0x64,0x20,0x61,0x73 +,0x73,0x6F,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E +,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x73,0x20,0x28,0x74,0x68 +,0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x22,0x29,0x2C,0x20,0x74 +,0x6F,0x20,0x64,0x65,0x61,0x6C,0x0D,0x0A,0x2F,0x2F,0x69,0x6E,0x20,0x74,0x68,0x65 +,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x77,0x69,0x74,0x68,0x6F,0x75 +,0x74,0x20,0x72,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x69 +,0x6E,0x63,0x6C,0x75,0x64,0x69,0x6E,0x67,0x20,0x77,0x69,0x74,0x68,0x6F,0x75,0x74 +,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20 +,0x72,0x69,0x67,0x68,0x74,0x73,0x0D,0x0A,0x2F,0x2F,0x74,0x6F,0x20,0x75,0x73,0x65 +,0x2C,0x20,0x63,0x6F,0x70,0x79,0x2C,0x20,0x6D,0x6F,0x64,0x69,0x66,0x79,0x2C,0x20 +,0x6D,0x65,0x72,0x67,0x65,0x2C,0x20,0x70,0x75,0x62,0x6C,0x69,0x73,0x68,0x2C,0x20 +,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2C,0x20,0x73,0x75,0x62,0x6C +,0x69,0x63,0x65,0x6E,0x73,0x65,0x2C,0x20,0x61,0x6E,0x64,0x2F,0x6F,0x72,0x20,0x73 +,0x65,0x6C,0x6C,0x0D,0x0A,0x2F,0x2F,0x63,0x6F,0x70,0x69,0x65,0x73,0x20,0x6F,0x66 +,0x20,0x74,0x68,0x65,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x2C,0x20,0x61 +,0x6E,0x64,0x20,0x74,0x6F,0x20,0x70,0x65,0x72,0x6D,0x69,0x74,0x20,0x70,0x65,0x72 +,0x73,0x6F,0x6E,0x73,0x20,0x74,0x6F,0x20,0x77,0x68,0x6F,0x6D,0x20,0x74,0x68,0x65 +,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x69,0x73,0x0D,0x0A,0x2F,0x2F +,0x66,0x75,0x72,0x6E,0x69,0x73,0x68,0x65,0x64,0x20,0x74,0x6F,0x20,0x64,0x6F,0x20 +,0x73,0x6F,0x2C,0x20,0x73,0x75,0x62,0x6A,0x65,0x63,0x74,0x20,0x74,0x6F,0x20,0x74 +,0x68,0x65,0x20,0x66,0x6F,0x6C,0x6C,0x6F,0x77,0x69,0x6E,0x67,0x20,0x63,0x6F,0x6E +,0x64,0x69,0x74,0x69,0x6F,0x6E,0x73,0x3A,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F +,0x2F,0x54,0x68,0x65,0x20,0x61,0x62,0x6F,0x76,0x65,0x20,0x63,0x6F,0x70,0x79,0x72 +,0x69,0x67,0x68,0x74,0x20,0x6E,0x6F,0x74,0x69,0x63,0x65,0x20,0x61,0x6E,0x64,0x20 +,0x74,0x68,0x69,0x73,0x20,0x70,0x65,0x72,0x6D,0x69,0x73,0x73,0x69,0x6F,0x6E,0x20 +,0x6E,0x6F,0x74,0x69,0x63,0x65,0x20,0x73,0x68,0x61,0x6C,0x6C,0x20,0x62,0x65,0x20 +,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x64,0x20,0x69,0x6E,0x0D,0x0A,0x2F,0x2F,0x61 +,0x6C,0x6C,0x20,0x63,0x6F,0x70,0x69,0x65,0x73,0x20,0x6F,0x72,0x20,0x73,0x75,0x62 +,0x73,0x74,0x61,0x6E,0x74,0x69,0x61,0x6C,0x20,0x70,0x6F,0x72,0x74,0x69,0x6F,0x6E +,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72 +,0x65,0x2E,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F,0x2F,0x54,0x48,0x45,0x20,0x53 +,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x20,0x49,0x53,0x20,0x50,0x52,0x4F,0x56,0x49 +,0x44,0x45,0x44,0x20,0x22,0x41,0x53,0x20,0x49,0x53,0x22,0x2C,0x20,0x57,0x49,0x54 +,0x48,0x4F,0x55,0x54,0x20,0x57,0x41,0x52,0x52,0x41,0x4E,0x54,0x59,0x20,0x4F,0x46 +,0x20,0x41,0x4E,0x59,0x20,0x4B,0x49,0x4E,0x44,0x2C,0x20,0x45,0x58,0x50,0x52,0x45 +,0x53,0x53,0x20,0x4F,0x52,0x0D,0x0A,0x2F,0x2F,0x49,0x4D,0x50,0x4C,0x49,0x45,0x44 +,0x2C,0x20,0x49,0x4E,0x43,0x4C,0x55,0x44,0x49,0x4E,0x47,0x20,0x42,0x55,0x54,0x20 +,0x4E,0x4F,0x54,0x20,0x4C,0x49,0x4D,0x49,0x54,0x45,0x44,0x20,0x54,0x4F,0x20,0x54 +,0x48,0x45,0x20,0x57,0x41,0x52,0x52,0x41,0x4E,0x54,0x49,0x45,0x53,0x20,0x4F,0x46 +,0x20,0x4D,0x45,0x52,0x43,0x48,0x41,0x4E,0x54,0x41,0x42,0x49,0x4C,0x49,0x54,0x59 +,0x2C,0x0D,0x0A,0x2F,0x2F,0x46,0x49,0x54,0x4E,0x45,0x53,0x53,0x20,0x46,0x4F,0x52 +,0x20,0x41,0x20,0x50,0x41,0x52,0x54,0x49,0x43,0x55,0x4C,0x41,0x52,0x20,0x50,0x55 +,0x52,0x50,0x4F,0x53,0x45,0x20,0x41,0x4E,0x44,0x20,0x4E,0x4F,0x4E,0x49,0x4E,0x46 +,0x52,0x49,0x4E,0x47,0x45,0x4D,0x45,0x4E,0x54,0x2E,0x20,0x49,0x4E,0x20,0x4E,0x4F +,0x20,0x45,0x56,0x45,0x4E,0x54,0x20,0x53,0x48,0x41,0x4C,0x4C,0x20,0x54,0x48,0x45 +,0x0D,0x0A,0x2F,0x2F,0x41,0x55,0x54,0x48,0x4F,0x52,0x53,0x20,0x4F,0x52,0x20,0x43 +,0x4F,0x50,0x59,0x52,0x49,0x47,0x48,0x54,0x20,0x48,0x4F,0x4C,0x44,0x45,0x52,0x53 +,0x20,0x42,0x45,0x20,0x4C,0x49,0x41,0x42,0x4C,0x45,0x20,0x46,0x4F,0x52,0x20,0x41 +,0x4E,0x59,0x20,0x43,0x4C,0x41,0x49,0x4D,0x2C,0x20,0x44,0x41,0x4D,0x41,0x47,0x45 +,0x53,0x20,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x0D,0x0A,0x2F,0x2F,0x4C,0x49 +,0x41,0x42,0x49,0x4C,0x49,0x54,0x59,0x2C,0x20,0x57,0x48,0x45,0x54,0x48,0x45,0x52 +,0x20,0x49,0x4E,0x20,0x41,0x4E,0x20,0x41,0x43,0x54,0x49,0x4F,0x4E,0x20,0x4F,0x46 +,0x20,0x43,0x4F,0x4E,0x54,0x52,0x41,0x43,0x54,0x2C,0x20,0x54,0x4F,0x52,0x54,0x20 +,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x57,0x49,0x53,0x45,0x2C,0x20,0x41,0x52 +,0x49,0x53,0x49,0x4E,0x47,0x20,0x46,0x52,0x4F,0x4D,0x2C,0x0D,0x0A,0x2F,0x2F,0x4F +,0x55,0x54,0x20,0x4F,0x46,0x20,0x4F,0x52,0x20,0x49,0x4E,0x20,0x43,0x4F,0x4E,0x4E +,0x45,0x43,0x54,0x49,0x4F,0x4E,0x20,0x57,0x49,0x54,0x48,0x20,0x54,0x48,0x45,0x20 +,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x20,0x4F,0x52,0x20,0x54,0x48,0x45,0x20 +,0x55,0x53,0x45,0x20,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x20,0x44,0x45,0x41 +,0x4C,0x49,0x4E,0x47,0x53,0x20,0x49,0x4E,0x0D,0x0A,0x2F,0x2F,0x54,0x48,0x45,0x20 +,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x2E,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x2F +,0x2F,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x72,0x74,0x20,0x4D,0x65,0x63,0x68,0x61 +,0x6E,0x69,0x73,0x6D,0x73,0x20,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x20,0x70,0x6F,0x73,0x74,0x28,0x75,0x72,0x6C,0x29,0x20,0x7B,0x0D +,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x20,0x3D,0x20,0x28,0x77,0x69,0x6E +,0x64,0x6F,0x77,0x2E,0x58,0x4D,0x4C,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65 +,0x73,0x74,0x29,0x20,0x3F,0x20,0x6E,0x65,0x77,0x20,0x58,0x4D,0x4C,0x48,0x74,0x74 +,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x28,0x29,0x20,0x3A,0x20,0x6E,0x65,0x77 +,0x20,0x41,0x63,0x74,0x69,0x76,0x65,0x58,0x4F,0x62,0x6A,0x65,0x63,0x74,0x28,0x22 +,0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x2E,0x58,0x4D,0x4C,0x48,0x54,0x54 +,0x50,0x22,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x69,0x66,0x28,0x21,0x68,0x74 +,0x74,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x66,0x61,0x6C,0x73,0x65 +,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x2E,0x6F,0x70,0x65,0x6E +,0x28,0x22,0x47,0x45,0x54,0x22,0x2C,0x20,0x75,0x72,0x6C,0x2C,0x20,0x66,0x61,0x6C +,0x73,0x65,0x29,0x3B,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x0D,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x2E,0x73,0x65,0x6E,0x64 +,0x28,0x6E,0x75,0x6C,0x6C,0x29,0x3B,0x20,0x20,0x20,0x0D,0x0A,0x20,0x20,0x20,0x20 +,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x68,0x74,0x74,0x70,0x2E,0x72,0x65,0x73,0x70 +,0x6F,0x6E,0x73,0x65,0x54,0x65,0x78,0x74,0x3B,0x0D,0x0A,0x09,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6D,0x62 +,0x65,0x64,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x2F,0x2F,0x4E,0x6F,0x20,0x61,0x63,0x74 +,0x69,0x6F,0x6E,0x20,0x6E,0x65,0x65,0x64,0x73,0x20,0x74,0x6F,0x20,0x62,0x65,0x20 +,0x74,0x61,0x6B,0x65,0x6E,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x6D,0x62,0x65,0x64 +,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x70,0x63,0x20,0x3D +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6F,0x62,0x6A,0x65,0x63,0x74 +,0x2C,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x2C,0x20,0x61,0x72,0x67,0x75,0x6D,0x65 +,0x6E,0x74,0x73,0x29,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x2F,0x2F,0x54,0x68,0x69 +,0x73,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x6F,0x76,0x65,0x72 +,0x72,0x69,0x64,0x64,0x65,0x6E,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x61,0x20 +,0x74,0x72,0x61,0x6E,0x73,0x70,0x6F,0x72,0x74,0x20,0x6D,0x65,0x63,0x68,0x61,0x6E +,0x69,0x73,0x6D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52,0x50 +,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x20,0x3D,0x20,0x6E,0x65 +,0x77,0x20,0x6D,0x62,0x65,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52 +,0x50,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x63,0x6F,0x6E +,0x73,0x74,0x72,0x75,0x63,0x74,0x6F,0x72,0x20,0x3D,0x20,0x48,0x54,0x54,0x50,0x52 +,0x50,0x43,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x48,0x54,0x54 +,0x50,0x52,0x50,0x43,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x2F,0x2F,0x75,0x6E,0x6C,0x69 +,0x6B,0x65,0x20,0x6F,0x74,0x68,0x65,0x72,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67 +,0x65,0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20 +,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x70,0x61,0x73,0x73,0x65 +,0x64,0x20,0x61,0x6E,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x20,0x61,0x73,0x20 +,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x62,0x65,0x20 +,0x61,0x6C,0x6C,0x6F,0x77,0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6D,0x6D,0x75 +,0x6E,0x69,0x63,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x69,0x74,0x73,0x65 +,0x6C,0x66,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52 +,0x50,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x70,0x63 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6F,0x62,0x6A,0x65,0x63 +,0x74,0x2C,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x2C,0x20,0x61,0x72,0x67,0x75,0x6D +,0x65,0x6E,0x74,0x73,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x72,0x65,0x74 +,0x75,0x72,0x6E,0x20,0x70,0x6F,0x73,0x74,0x28,0x22,0x2F,0x72,0x70,0x63,0x2F,0x22 +,0x20,0x2B,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x20,0x2B,0x20,0x22,0x2F,0x22,0x20 +,0x2B,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x20,0x2B,0x20,0x22,0x2C,0x22,0x20,0x2B +,0x20,0x61,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x2E,0x6A,0x6F,0x69,0x6E,0x28 +,0x22,0x2C,0x22,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x20 +,0x50,0x69,0x6E,0x20,0x4E,0x61,0x6D,0x65,0x73,0x20,0x74,0x6F,0x20,0x41,0x6C,0x6C +,0x6F,0x77,0x20,0x70,0x69,0x6E,0x73,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x72,0x65 +,0x66,0x66,0x65,0x72,0x65,0x64,0x20,0x74,0x6F,0x20,0x61,0x73,0x20,0x61,0x20,0x74 +,0x79,0x70,0x65,0x20,0x72,0x61,0x74,0x68,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20 +,0x61,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x20,0x6F,0x72,0x20,0x6E,0x75,0x6D,0x62 +,0x65,0x72,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x70 +,0x69,0x6E,0x28,0x6E,0x61,0x6D,0x65,0x29,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73 +,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x4C,0x45,0x44,0x31,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20 +,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45,0x44,0x31,0x22,0x29,0x3B,0x0D,0x0A,0x4C,0x45 +,0x44,0x32,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45 +,0x44,0x32,0x22,0x29,0x3B,0x0D,0x0A,0x4C,0x45,0x44,0x33,0x20,0x3D,0x20,0x6E,0x65 +,0x77,0x20,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45,0x44,0x33,0x22,0x29,0x3B,0x0D,0x0A +,0x4C,0x45,0x44,0x34,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x70,0x69,0x6E,0x28,0x22 +,0x4C,0x45,0x44,0x34,0x22,0x29,0x3B,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x20,0x69,0x6E +,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x73,0x20,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74 +,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x44,0x69 +,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62 +,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66 +,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69,0x6E,0x20,0x21,0x3D,0x20 +,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F +,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62 +,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 +,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D +,0x0A,0x09,0x2F,0x2F,0x76,0x61,0x72,0x20,0x61,0x72,0x79,0x20,0x3D,0x20,0x6E,0x65 +,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x29,0x3B,0x0D +,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65 +,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x22,0x2C,0x20,0x22 +,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D +,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29,0x3B,0x20 +,0x0D,0x0A,0x09,0x2F,0x2F,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20 +,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 +,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x22,0x2C,0x20,0x22,0x6E +,0x65,0x77,0x22,0x2C,0x20,0x61,0x72,0x79,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65 +,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F +,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A +,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 +,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A +,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70 +,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x44,0x69 +,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79 +,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x22 +,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A +,0x0D,0x0A,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F +,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74 +,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69 +,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73 +,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B +,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x44,0x69,0x67,0x69,0x74,0x61,0x6C +,0x49,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 +,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D +,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69 +,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69,0x6E,0x20,0x21,0x3D +,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09 +,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F +,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x22,0x2C,0x20 +,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29,0x3B +,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F,0x2F +,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74,0x69 +,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D +,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x0D +,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x2E +,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09 +,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28 +,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74 +,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22 +,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A +,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x41,0x6E +,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63 +,0x74,0x69,0x6F,0x6E,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74,0x28,0x74 +,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70 +,0x69,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B +,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20 +,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F +,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F +,0x75,0x74,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69 +,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D +,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65 +,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A +,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74 +,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A +,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F +,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69 +,0x74,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61 +,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C +,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C +,0x6F,0x67,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E +,0x77,0x72,0x69,0x74,0x65,0x5F,0x75,0x31,0x36,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63 +,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09 +,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74 +,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65 +,0x5F,0x75,0x31,0x36,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74 +,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A +,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F +,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70 +,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65 +,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D +,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x28 +,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29 +,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D +,0x70,0x69,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29 +,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61 +,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73 +,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F +,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x41,0x6E,0x61,0x6C,0x6F,0x67 +,0x49,0x6E,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69 +,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D +,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65 +,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A +,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74 +,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A +,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49 +,0x6E,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64 +,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C +,0x6F,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72 +,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D +,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x2E,0x70,0x72,0x6F +,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x5F,0x75,0x31,0x36,0x20 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A +,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 +,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64 +,0x5F,0x75,0x31,0x36,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x20,0x50,0x77,0x6D,0x4F,0x75,0x74,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x50,0x77,0x6D,0x4F,0x75,0x74,0x28,0x74,0x68 +,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B +,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69 +,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09 +,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E +,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D +,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73 +,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 +,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x50,0x77,0x6D,0x4F,0x75,0x74,0x22,0x2C +,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E +,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29 +,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F +,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74 +,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F +,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61 +,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74 +,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69 +,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74 +,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x72 +,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F,0x61,0x74 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 +,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64 +,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D +,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70 +,0x65,0x2E,0x70,0x65,0x72,0x69,0x6F,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x65,0x72,0x69,0x6F,0x64 +,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D +,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74 +,0x79,0x70,0x65,0x2E,0x70,0x65,0x72,0x69,0x6F,0x64,0x5F,0x6D,0x73,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70 +,0x65,0x72,0x69,0x6F,0x64,0x5F,0x6D,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75 +,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75 +,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x65,0x72,0x69 +,0x6F,0x64,0x5F,0x75,0x73,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73 +,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E +,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x65,0x72,0x69,0x6F,0x64,0x5F,0x75,0x73 +,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D +,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74 +,0x79,0x70,0x65,0x2E,0x70,0x75,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x20,0x3D +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29 +,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E +,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22 +,0x70,0x75,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x22,0x2C,0x20,0x5B,0x76,0x61 +,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D +,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75 +,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x6D,0x73,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x75,0x6C +,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x6D,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61 +,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D +,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75 +,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x75,0x73,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x75,0x6C +,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x75,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61 +,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x73,0x65,0x72,0x69,0x61 +,0x6C,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x53 +,0x65,0x72,0x69,0x61,0x6C,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C +,0x20,0x74,0x78,0x2C,0x20,0x72,0x78,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28 +,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x74,0x78,0x20,0x21,0x3D,0x20,0x22,0x73,0x74 +,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72 +,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63 +,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20 +,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20 +,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20 +,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22 +,0x53,0x65,0x72,0x69,0x61,0x6C,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20 +,0x5B,0x74,0x78,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x72,0x78,0x2E,0x5F,0x6E +,0x61,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B +,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20 +,0x65,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D +,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20 +,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x78,0x3B,0x0D,0x0A,0x09 +,0x7D,0x0D,0x0A,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C +,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75,0x74,0x63,0x20 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65 +,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64 +,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20 +,0x22,0x70,0x75,0x74,0x63,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29 +,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70 +,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x67,0x65,0x74,0x63,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65 +,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x67 +,0x65,0x74,0x63,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D +,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70,0x72,0x6F,0x74,0x6F +,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x61,0x62,0x6C,0x65,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65 +,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72 +,0x65,0x61,0x64,0x61,0x62,0x6C,0x65,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29 +,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70 +,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x61,0x62 +,0x6C,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61 +,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20 +,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x61,0x62,0x6C,0x65,0x22,0x2C,0x20 +,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A +,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x52,0x50 +,0x43,0x56,0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 +,0x6C,0x65,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6E,0x61 +,0x6D,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 +,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D +,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61 +,0x6D,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A +,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x2E,0x70,0x72 +,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77 +,0x72,0x69,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 +,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61 +,0x64,0x5F,0x69,0x6E,0x74,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61 +,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 +,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C +,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 +,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61 +,0x64,0x5F,0x66,0x6C,0x6F,0x61,0x74,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69 +,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20 +,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E +,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E +,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22 +,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61 +,0x72,0x69,0x61,0x62,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65 +,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x28,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C +,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F +,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x52,0x50,0x43 +,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x20,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F +,0x6E,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6E,0x61,0x6D +,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 +,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D +,0x0A,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x70,0x72,0x6F +,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x75,0x6E,0x20,0x3D,0x20,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A +,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x2C,0x20,0x22,0x72,0x75,0x6E,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65 +,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D +}; + +static const char led_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x20,0x75,0x74 +,0x66,0x2D,0x38,0x22,0x3E,0x20,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x4C +,0x45,0x44,0x20,0x54,0x6F,0x67,0x67,0x6C,0x65,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65 +,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3D +,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74 +,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D,0x62,0x65,0x64,0x52,0x50,0x43,0x2E,0x6A +,0x73,0x22,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67,0x65,0x3D,0x22,0x6A,0x61,0x76 +,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74 +,0x3D,0x22,0x75,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70 +,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70 +,0x74,0x22,0x3E,0x6D,0x62,0x65,0x64,0x3D,0x6E,0x65,0x77,0x20,0x48,0x54,0x54,0x50 +,0x52,0x50,0x43,0x28,0x29,0x3B,0x6C,0x65,0x64,0x31,0x3D,0x6E,0x65,0x77,0x20,0x44 +,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C +,0x45,0x44,0x31,0x29,0x3B,0x6C,0x65,0x64,0x32,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69 +,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45 +,0x44,0x32,0x29,0x3B,0x6C,0x65,0x64,0x33,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69,0x67 +,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45,0x44 +,0x33,0x29,0x3B,0x6C,0x65,0x64,0x34,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69,0x67,0x69 +,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45,0x44,0x34 +,0x29,0x3B,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63 +,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F +,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x3E,0x66,0x75,0x6E,0x63 +,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x31,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65 +,0x28,0x29,0x7B,0x76,0x61,0x72,0x20,0x72,0x64,0x31,0x3D,0x6C,0x65,0x64,0x31,0x2E +,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x69,0x66,0x28,0x72,0x64,0x31,0x3D,0x3D,0x31 +,0x29,0x7B,0x6C,0x65,0x64,0x31,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30,0x29,0x3B +,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3D,0x27 +,0x4C,0x45,0x44,0x31,0x20,0x4F,0x66,0x66,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 +,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74 +,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F +,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x64,0x6F +,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E +,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22 +,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23 +,0x30,0x30,0x30,0x30,0x30,0x30,0x27,0x3B,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x6C,0x65 +,0x64,0x31,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x31,0x29,0x3B,0x62,0x74,0x6E,0x5F +,0x4C,0x45,0x44,0x31,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3D,0x27,0x4C,0x45,0x44,0x31 +,0x20,0x4F,0x6E,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 +,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 +,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62 +,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x3D,0x27 +,0x23,0x30,0x30,0x38,0x30,0x30,0x30,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E +,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64 +,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74,0x79 +,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x66,0x66,0x66,0x66,0x66 +,0x66,0x27,0x3B,0x7D,0x7D,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 +,0x6C,0x65,0x64,0x32,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x7B,0x76,0x61 +,0x72,0x20,0x72,0x64,0x32,0x3D,0x6C,0x65,0x64,0x32,0x2E,0x72,0x65,0x61,0x64,0x28 +,0x29,0x3B,0x69,0x66,0x28,0x72,0x64,0x32,0x3D,0x3D,0x31,0x29,0x7B,0x6C,0x65,0x64 +,0x32,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30,0x29,0x3B,0x62,0x74,0x6E,0x5F,0x4C +,0x45,0x44,0x32,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3D,0x27,0x4C,0x45,0x44,0x32,0x20 +,0x4F,0x66,0x66,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 +,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 +,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62 +,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x3D,0x27 +,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E +,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64 +,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79 +,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x30,0x30,0x30,0x30,0x30 +,0x30,0x27,0x3B,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x6C,0x65,0x64,0x32,0x2E,0x77,0x72 +,0x69,0x74,0x65,0x28,0x31,0x29,0x3B,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x2E +,0x76,0x61,0x6C,0x75,0x65,0x3D,0x27,0x4C,0x45,0x44,0x32,0x20,0x4F,0x6E,0x27,0x3B +,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D +,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44 +,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72 +,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x66,0x66,0x66,0x66 +,0x30,0x30,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74 +,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E +,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F +,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27,0x3B,0x7D,0x7D +,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x33,0x5F +,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x7B,0x76,0x61,0x72,0x20,0x72,0x64,0x33 +,0x3D,0x6C,0x65,0x64,0x33,0x2E,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x69,0x66,0x28 +,0x72,0x64,0x33,0x3D,0x3D,0x31,0x29,0x7B,0x6C,0x65,0x64,0x33,0x2E,0x77,0x72,0x69 +,0x74,0x65,0x28,0x30,0x29,0x3B,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x2E,0x76 +,0x61,0x6C,0x75,0x65,0x3D,0x27,0x4C,0x45,0x44,0x33,0x20,0x4F,0x66,0x66,0x27,0x3B +,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D +,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44 +,0x33,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72 +,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x63,0x30,0x63,0x30 +,0x63,0x30,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74 +,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E +,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F +,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x27,0x3B,0x7D,0x65 +,0x6C,0x73,0x65,0x7B,0x6C,0x65,0x64,0x33,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x31 +,0x29,0x3B,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x2E,0x76,0x61,0x6C,0x75,0x65 +,0x3D,0x27,0x4C,0x45,0x44,0x33,0x20,0x4F,0x6E,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D +,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79 +,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29,0x2E,0x73 +,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43 +,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x66,0x66,0x36,0x36,0x30,0x30,0x27,0x3B,0x64 +,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65 +,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33 +,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x27 +,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27,0x3B,0x7D,0x7D,0x0D,0x0A,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x34,0x5F,0x74,0x6F,0x67,0x67,0x6C +,0x65,0x28,0x29,0x7B,0x76,0x61,0x72,0x20,0x72,0x64,0x34,0x3D,0x6C,0x65,0x64,0x34 +,0x2E,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x69,0x66,0x28,0x72,0x64,0x34,0x3D,0x3D +,0x31,0x29,0x7B,0x6C,0x65,0x64,0x34,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30,0x29 +,0x3B,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x34,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3D +,0x27,0x4C,0x45,0x44,0x34,0x20,0x4F,0x66,0x66,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D +,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79 +,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x34,0x22,0x29,0x2E,0x73 +,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43 +,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x64 +,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65 +,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x34 +,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x27 +,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x27,0x3B,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x6C +,0x65,0x64,0x34,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x31,0x29,0x3B,0x62,0x74,0x6E +,0x5F,0x4C,0x45,0x44,0x34,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3D,0x27,0x4C,0x45,0x44 +,0x34,0x20,0x4F,0x6E,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67 +,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62 +,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x34,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E +,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x3D +,0x27,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x27,0x3B,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 +,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x34,0x22,0x29,0x2E,0x73,0x74 +,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x27,0x23,0x66,0x66,0x66,0x66 +,0x66,0x66,0x27,0x3B,0x7D,0x7D,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D +,0x0A,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64 +,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A +,0x65,0x3D,0x22,0x38,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C +,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30 +,0x22,0x3E,0x3C,0x62,0x3E,0x4C,0x45,0x44,0x20,0x54,0x6F,0x67,0x67,0x6C,0x65,0x20 +,0x53,0x77,0x69,0x74,0x63,0x68,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E +,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x3C,0x62,0x72,0x3E +,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x62 +,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D,0x22,0x62,0x74,0x6E,0x5F,0x4C +,0x45,0x44,0x31,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54 +,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46 +,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x63,0x6F,0x6C +,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3B,0x62,0x61,0x63,0x6B,0x67 +,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x63,0x30,0x63 +,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x20,0x37,0x30,0x70,0x78,0x3B +,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34,0x30,0x70,0x78,0x22,0x20,0x6F +,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65,0x64,0x31,0x5F,0x74,0x6F,0x67 +,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x4C,0x45 +,0x44,0x31,0x20,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D,0x22,0x62,0x74 +,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46 +,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D +,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B +,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3B,0x62,0x61 +,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 +,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x20,0x37,0x30 +,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34,0x30,0x70,0x78 +,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65,0x64,0x32,0x5F +,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D +,0x22,0x4C,0x45,0x44,0x32,0x20,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C,0x62,0x72,0x3E +,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74 +,0x79,0x70,0x65,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D +,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 +,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61 +,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39 +,0x70,0x74,0x3B,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30 +,0x3B,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F +,0x72,0x3A,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A +,0x20,0x37,0x30,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34 +,0x30,0x70,0x78,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65 +,0x64,0x33,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C +,0x75,0x65,0x3D,0x22,0x4C,0x45,0x44,0x33,0x20,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75 +,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20 +,0x49,0x44,0x3D,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x34,0x22,0x20,0x73,0x74 +,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59 +,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A +,0x45,0x3A,0x39,0x70,0x74,0x3B,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30 +,0x30,0x30,0x30,0x3B,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63 +,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44 +,0x54,0x48,0x3A,0x20,0x37,0x30,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54 +,0x3A,0x20,0x34,0x30,0x70,0x78,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D +,0x22,0x6C,0x65,0x64,0x34,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20 +,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x4C,0x45,0x44,0x34,0x20,0x4F,0x66,0x66,0x22 +,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79 +,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A +}; + +static const char i2c_set_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x20,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x53,0x65 +,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x74,0x69 +,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79 +,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72 +,0x69,0x70,0x74,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D,0x62,0x65,0x64,0x52,0x50 +,0x43,0x2E,0x6A,0x73,0x22,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67,0x65,0x3D,0x22 +,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x63,0x68,0x61,0x72 +,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63 +,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74 +,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63 +,0x72,0x69,0x70,0x74,0x22,0x3E,0x6D,0x62,0x65,0x64,0x3D,0x6E,0x65,0x77,0x20,0x48 +,0x54,0x54,0x50,0x52,0x50,0x43,0x28,0x29,0x3B,0x74,0x65,0x72,0x6D,0x3D,0x6E,0x65 +,0x77,0x20,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6D,0x62 +,0x65,0x64,0x2C,0x22,0x53,0x65,0x74,0x49,0x32,0x43,0x66,0x72,0x6F,0x6D,0x57,0x65 +,0x62,0x22,0x29,0x3B,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C +,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A +,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x38 +,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43 +,0x4F,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62 +,0x3E,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x69,0x6E,0x70,0x75,0x74,0x3C,0x2F,0x62 +,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x64,0x69,0x72,0x5F +,0x69,0x6E,0x22,0x3E,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,0x3E,0x3C,0x62,0x75,0x74 +,0x74,0x6F,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D +,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F +,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63 +,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x73,0x6E,0x64,0x5F,0x64,0x69,0x72,0x5F,0x69,0x6E +,0x28,0x29,0x22,0x3E,0x53,0x65,0x6E,0x64,0x3C,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E +,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A +,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x38 +,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43 +,0x4F,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62 +,0x3E,0x46,0x69,0x6C,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x3C +,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74 +,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79 +,0x70,0x65,0x3D,0x22,0x66,0x69,0x6C,0x65,0x22,0x20,0x69,0x64,0x3D,0x22,0x66,0x69 +,0x6C,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 +,0x3D,0x22,0x44,0x49,0x53,0x50,0x4C,0x41,0x59,0x3A,0x6E,0x6F,0x6E,0x65,0x22,0x20 +,0x6F,0x6E,0x63,0x68,0x61,0x6E,0x67,0x65,0x3D,0x22,0x74,0x78,0x74,0x5F,0x66,0x69 +,0x6C,0x65,0x6E,0x61,0x6D,0x65,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x74 +,0x68,0x69,0x73,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3B,0x22,0x20,0x61,0x63,0x63,0x65 +,0x70,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x70,0x6C,0x61,0x69,0x6E,0x22,0x3E +,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74 +,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x78,0x74,0x5F,0x66,0x69,0x6C +,0x65,0x6E,0x61,0x6D,0x65,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F +,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61 +,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20 +,0x73,0x69,0x7A,0x65,0x3D,0x22,0x32,0x35,0x22,0x20,0x44,0x49,0x53,0x41,0x42,0x4C +,0x45,0x44,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x69,0x64,0x3D,0x22,0x66,0x69 +,0x6C,0x65,0x5F,0x73,0x65,0x6C,0x65,0x63,0x74,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 +,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61 +,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39 +,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x66,0x69,0x6C +,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x2E,0x63,0x6C,0x69,0x63,0x6B,0x28,0x29 +,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x43,0x68,0x6F,0x6F,0x73,0x65,0x20 +,0x61,0x20,0x74,0x65,0x78,0x74,0x20,0x46,0x69,0x6C,0x65,0x22,0x3E,0x0D,0x0A,0x3C +,0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x73,0x75,0x62 +,0x6D,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x73,0x6E,0x64,0x62,0x6F,0x78,0x22 +,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D +,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D +,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63 +,0x6B,0x3D,0x22,0x73,0x6E,0x64,0x5F,0x66,0x69,0x6C,0x65,0x5F,0x72,0x65,0x66,0x28 +,0x29,0x22,0x3E,0x53,0x65,0x6E,0x64,0x3C,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3E +,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x3C,0x70,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F +,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61 +,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x31,0x38,0x70,0x74,0x22 +,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43,0x4F +,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x0D,0x0A,0x3C +,0x62,0x3E,0x4C,0x4F,0x47,0x3A,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E +,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22 +,0x73,0x75,0x62,0x6D,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x65,0x78,0x74 +,0x61,0x72,0x65,0x61,0x5F,0x63,0x6C,0x65,0x61,0x72,0x22,0x20,0x73,0x74,0x79,0x6C +,0x65,0x3D,0x22,0x44,0x49,0x53,0x50,0x4C,0x41,0x59,0x3A,0x62,0x6C,0x6F,0x63,0x6B +,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68 +,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70 +,0x74,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x37,0x30,0x70,0x78,0x3B,0x48,0x45,0x49 +,0x47,0x48,0x54,0x3A,0x32,0x30,0x70,0x78,0x3B,0x50,0x4F,0x53,0x49,0x54,0x49,0x4F +,0x4E,0x3A,0x61,0x62,0x73,0x6F,0x6C,0x75,0x74,0x65,0x3B,0x4C,0x45,0x46,0x54,0x3A +,0x38,0x70,0x78,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x43,0x6C +,0x72,0x5F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x22,0x20,0x76,0x61 +,0x6C,0x75,0x65,0x3D,0x22,0x43,0x6C,0x65,0x61,0x72,0x22,0x3E,0x0D,0x0A,0x3C,0x62 +,0x75,0x74,0x74,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x73,0x75,0x62,0x6D +,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61 +,0x5F,0x73,0x61,0x76,0x65,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x44,0x49 +,0x53,0x50,0x4C,0x41,0x59,0x3A,0x62,0x6C,0x6F,0x63,0x6B,0x3B,0x46,0x4F,0x4E,0x54 +,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46 +,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x57,0x49,0x44 +,0x54,0x48,0x3A,0x37,0x30,0x70,0x78,0x3B,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x32 +,0x30,0x70,0x78,0x3B,0x50,0x4F,0x53,0x49,0x54,0x49,0x4F,0x4E,0x3A,0x61,0x62,0x73 +,0x6F,0x6C,0x75,0x74,0x65,0x3B,0x4C,0x45,0x46,0x54,0x3A,0x38,0x32,0x70,0x78,0x22 +,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x53,0x61,0x76,0x65,0x5F,0x74 +,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x22,0x3E,0x53,0x61,0x76,0x65,0x3C +,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x72,0x6D,0x20 +,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x22,0x3E +,0x0D,0x0A,0x3C,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x69,0x64,0x3D,0x22 +,0x72,0x65,0x73,0x75,0x6C,0x74,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x22,0x20,0x63,0x6F,0x6C,0x73,0x3D,0x22,0x35 +,0x30,0x22,0x20,0x72,0x6F,0x77,0x73,0x3D,0x22,0x32,0x30,0x22,0x20,0x70,0x6C,0x61 +,0x63,0x65,0x68,0x6F,0x6C,0x64,0x65,0x72,0x3D,0x22,0x22,0x20,0x76,0x61,0x6C,0x75 +,0x65,0x3D,0x22,0x22,0x3E,0x3C,0x2F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3E +,0x0D,0x0A,0x3C,0x2F,0x66,0x6F,0x72,0x6D,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D +,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74 +,0x3E,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x73,0x6E,0x64,0x5F +,0x64,0x69,0x72,0x5F,0x69,0x6E,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72,0x20 +,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74,0x3B,0x0D,0x0A,0x09,0x69,0x66,0x20,0x28 +,0x28,0x64,0x69,0x72,0x5F,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x21,0x3D +,0x20,0x6E,0x75,0x6C,0x6C,0x29,0x20,0x26,0x26,0x20,0x28,0x64,0x69,0x72,0x5F,0x69 +,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x21,0x3D,0x20,0x22,0x22,0x29,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75 +,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61 +,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x53,0x45,0x4E,0x44 +,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72 +,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x64,0x69,0x72,0x5F +,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74 +,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B +,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x72,0x63,0x76 +,0x5F,0x74,0x65,0x78,0x74,0x20,0x3D,0x20,0x74,0x65,0x72,0x6D,0x2E,0x72,0x75,0x6E +,0x28,0x64,0x69,0x72,0x5F,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x29,0x3B,0x0D +,0x0A,0x09,0x09,0x69,0x66,0x20,0x28,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74,0x20 +,0x21,0x3D,0x20,0x22,0x72,0x75,0x6E,0x22,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09 +,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72 +,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75 +,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x52,0x45,0x43,0x56,0x5D,0x22,0x3B,0x0D,0x0A +,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F +,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76 +,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74 +,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F +,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65 +,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E +,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A +,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x73,0x6E,0x64,0x5F,0x66 +,0x69,0x6C,0x65,0x5F,0x72,0x65,0x66,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72 +,0x20,0x6F,0x62,0x6A,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22 +,0x66,0x69,0x6C,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x22,0x29,0x2E,0x66,0x69 +,0x6C,0x65,0x73,0x5B,0x30,0x5D,0x3B,0x0D,0x0A,0x09,0x76,0x61,0x72,0x20,0x72,0x65 +,0x61,0x64,0x65,0x72,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x46,0x69,0x6C,0x65,0x52 +,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3B,0x0D,0x0A,0x09,0x72,0x65,0x61,0x64,0x65 +,0x72,0x2E,0x6F,0x6E,0x6C,0x6F,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x28,0x65,0x76,0x74,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x76,0x61 +,0x72,0x20,0x73,0x74,0x72,0x20,0x3D,0x20,0x65,0x76,0x74,0x2E,0x74,0x61,0x72,0x67 +,0x65,0x74,0x2E,0x72,0x65,0x73,0x75,0x6C,0x74,0x3B,0x0D,0x0A,0x09,0x09,0x76,0x61 +,0x72,0x20,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x20,0x3D,0x20,0x73,0x74,0x72 +,0x2E,0x73,0x70,0x6C,0x69,0x74,0x28,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x29,0x3B,0x0D +,0x0A,0x09,0x09,0x76,0x61,0x72,0x20,0x63,0x6E,0x74,0x20,0x3D,0x20,0x30,0x3B,0x0D +,0x0A,0x09,0x09,0x76,0x61,0x72,0x20,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20 +,0x3D,0x20,0x30,0x3B,0x0D,0x0A,0x09,0x09,0x77,0x68,0x69,0x6C,0x65,0x20,0x28,0x28 +,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x20,0x21,0x3D +,0x20,0x6E,0x75,0x6C,0x6C,0x29,0x20,0x26,0x26,0x20,0x28,0x73,0x6E,0x64,0x5F,0x64 +,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x20,0x21,0x3D,0x20,0x22,0x22,0x29,0x29 +,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72 +,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x53,0x45 +,0x4E,0x44,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74 +,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x73 +,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x3B,0x0D,0x0A,0x09 +,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66 +,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61 +,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A +,0x09,0x09,0x09,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20,0x3D,0x20,0x74,0x65 +,0x72,0x6D,0x2E,0x72,0x75,0x6E,0x28,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B +,0x63,0x6E,0x74,0x5D,0x29,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x69,0x66,0x20,0x28,0x72 +,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20,0x21,0x3D,0x20,0x22,0x72,0x75,0x6E,0x22 +,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E +,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F +,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B +,0x52,0x45,0x43,0x56,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x09,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74 +,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B +,0x3D,0x20,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x3B,0x0D,0x0A,0x09,0x09,0x09 +,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F +,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C +,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A,0x09 +,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x09,0x09,0x63,0x6E,0x74,0x2B,0x2B,0x3B,0x0D,0x0A +,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x09,0x72,0x65,0x61,0x64,0x65,0x72 +,0x2E,0x72,0x65,0x61,0x64,0x41,0x73,0x54,0x65,0x78,0x74,0x28,0x6F,0x62,0x6A,0x29 +,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x20,0x43,0x6C,0x72,0x5F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x7B +,0x0D,0x0A,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F +,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76 +,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x22,0x22,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D +,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x53,0x61,0x76,0x65,0x5F,0x74 +,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72 +,0x20,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20 +,0x42,0x6C,0x6F,0x62,0x28,0x5B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F +,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65 +,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x5D,0x2C,0x20,0x7B,0x74,0x79,0x70,0x65,0x3A +,0x22,0x74,0x65,0x78,0x74,0x2F,0x70,0x6C,0x61,0x69,0x6E,0x22,0x7D,0x29,0x3B,0x0D +,0x0A,0x09,0x3C,0x21,0x2D,0x2D,0x20,0x44,0x65,0x74,0x65,0x72,0x6D,0x69,0x6E,0x65 +,0x73,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x09 +,0x69,0x66,0x20,0x28,0x6E,0x61,0x76,0x69,0x67,0x61,0x74,0x6F,0x72,0x2E,0x6D,0x73 +,0x53,0x61,0x76,0x65,0x42,0x6C,0x6F,0x62,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x3C +,0x21,0x2D,0x2D,0x20,0x49,0x45,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x09,0x6E,0x61,0x76,0x69,0x67,0x61,0x74,0x6F,0x72,0x2E,0x6D +,0x73,0x53,0x61,0x76,0x65,0x4F,0x72,0x4F,0x70,0x65,0x6E,0x42,0x6C,0x6F,0x62,0x28 +,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x2C,0x20,0x27,0x63,0x6F,0x6D,0x6D,0x5F +,0x6C,0x6F,0x67,0x2E,0x74,0x78,0x74,0x27,0x29,0x3B,0x0D,0x0A,0x09,0x7D,0x20,0x65 +,0x6C,0x73,0x65,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x3C,0x21,0x2D,0x2D,0x20,0x45,0x78 +,0x70,0x65,0x63,0x74,0x20,0x49,0x45,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x09,0x09,0x76 +,0x61,0x72,0x20,0x61,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x28,0x27,0x61 +,0x27,0x29,0x3B,0x0D,0x0A,0x09,0x09,0x61,0x2E,0x68,0x72,0x65,0x66,0x20,0x3D,0x20 +,0x55,0x52,0x4C,0x2E,0x63,0x72,0x65,0x61,0x74,0x65,0x4F,0x62,0x6A,0x65,0x63,0x74 +,0x55,0x52,0x4C,0x28,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x29,0x3B,0x0D,0x0A +,0x09,0x09,0x61,0x2E,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65 +,0x28,0x27,0x64,0x6F,0x77,0x6E,0x6C,0x6F,0x61,0x64,0x27,0x2C,0x20,0x27,0x63,0x6F +,0x6D,0x6D,0x5F,0x6C,0x6F,0x67,0x2E,0x74,0x78,0x74,0x27,0x29,0x3B,0x0D,0x0A,0x09 +,0x09,0x61,0x2E,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6E,0x74 +,0x28,0x6E,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6F,0x6D,0x45,0x76,0x65,0x6E,0x74 +,0x28,0x27,0x63,0x6C,0x69,0x63,0x6B,0x27,0x29,0x29,0x3B,0x0D,0x0A,0x09,0x7D,0x0D +,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D +,0x0A,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74 +,0x6D,0x6C,0x3E,0x0D,0x0A +}; + +static const char web_top_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x54,0x6F,0x70 +,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C +,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D,0x65,0x73,0x65 +,0x74,0x20,0x63,0x6F,0x6C,0x73,0x3D,0x22,0x32,0x30,0x25,0x2C,0x38,0x30,0x25,0x22 +,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D,0x65,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D +,0x65,0x6E,0x75,0x2E,0x68,0x74,0x6D,0x22,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D +,0x65,0x20,0x73,0x72,0x63,0x3D,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x68,0x74 +,0x6D,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65 +,0x22,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x6E,0x6F,0x66,0x72,0x61,0x6D,0x65,0x73,0x3E +,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x59,0x6F,0x75 +,0x20,0x63,0x61,0x6E,0x20,0x6E,0x6F,0x74,0x20,0x76,0x69,0x65,0x77,0x20,0x74,0x68 +,0x69,0x73,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x73,0x69,0x6E,0x63,0x65,0x20 +,0x74,0x68,0x65,0x20,0x66,0x72,0x61,0x6D,0x65,0x20,0x6F,0x66,0x20,0x75,0x6E,0x73 +,0x75,0x70,0x70,0x6F,0x72,0x74,0x65,0x64,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72 +,0x2E,0x3C,0x2F,0x70,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A +,0x3C,0x2F,0x6E,0x6F,0x66,0x72,0x61,0x6D,0x65,0x73,0x3E,0x0D,0x0A,0x3C,0x2F,0x66 +,0x72,0x61,0x6D,0x65,0x73,0x65,0x74,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C +,0x3E,0x0D,0x0A +}; + +static const char menu_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x47,0x52,0x2D +,0x50,0x45,0x41,0x43,0x48,0x20,0x4D,0x65,0x6E,0x75,0x3C,0x2F,0x74,0x69,0x74,0x6C +,0x65,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F +,0x64,0x79,0x20,0x62,0x67,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x22,0x23,0x46,0x46,0x46 +,0x41,0x46,0x41,0x22,0x3E,0x0D,0x0A,0x3C,0x43,0x45,0x4E,0x54,0x45,0x52,0x3E,0x0D +,0x0A,0x3C,0x50,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22 +,0x34,0x22,0x3E,0x3C,0x42,0x3E,0x4D,0x65,0x6E,0x75,0x3C,0x2F,0x42,0x3E,0x3C,0x2F +,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x2F,0x50,0x3E,0x0D,0x0A,0x3C,0x2F,0x43,0x45,0x4E +,0x54,0x45,0x52,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x70,0x3E,0x0D,0x0A,0x3C,0x66,0x6F +,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61 +,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 +,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D +,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61,0x72 +,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x54,0x6F +,0x70,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E +,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22 +,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22 +,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C +,0x61,0x20,0x68,0x72,0x65,0x66,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72,0x61,0x2E,0x68 +,0x74,0x6D,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69 +,0x6B,0x61,0x65,0x22,0x3E,0x57,0x65,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x3C +,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74 +,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F +,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61 +,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 +,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D +,0x22,0x69,0x32,0x63,0x5F,0x73,0x65,0x74,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61 +,0x72,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x53 +,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x61 +,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x6E,0x74 +,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20 +,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30 +,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D,0x22,0x6C +,0x65,0x64,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3D,0x22 +,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x4C,0x45,0x44,0x20,0x4F,0x6E,0x2F +,0x4F,0x66,0x66,0x3C,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F +,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64 +,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x0D,0x0A +}; + +static const char window_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x20,0x75,0x74 +,0x66,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x47,0x52 +,0x2D,0x4C,0x59,0x43,0x48,0x45,0x45,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x3C,0x2F +,0x74,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D +,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E +,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x31,0x35,0x22,0x3E,0x3C,0x73,0x70,0x61 +,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 +,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62,0x3E,0x47,0x52,0x2D,0x4C,0x59 +,0x43,0x48,0x45,0x45,0x20,0x57,0x65,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x20 +,0x53,0x61,0x6D,0x70,0x6C,0x65,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E +,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x54,0x68,0x69,0x73,0x20,0x73,0x61,0x6D +,0x70,0x6C,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x75,0x73,0x69,0x6E +,0x67,0x20,0x47,0x52,0x2D,0x4C,0x59,0x43,0x48,0x45,0x45,0x2E,0x3C,0x62,0x72,0x3E +,0x0D,0x0A,0x57,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,0x70,0x72,0x65,0x73,0x73 +,0x20,0x74,0x68,0x65,0x20,0x4D,0x65,0x6E,0x75,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65 +,0x20,0x6C,0x65,0x66,0x74,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62 +,0x65,0x20,0x64,0x69,0x73,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x69,0x6E,0x20,0x74 +,0x68,0x69,0x73,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D +,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x49,0x74,0x20,0x73,0x68,0x6F,0x77,0x73,0x20 +,0x74,0x68,0x65,0x20,0x6F,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x6F,0x66,0x20 +,0x65,0x61,0x63,0x68,0x20,0x6C,0x69,0x6E,0x6B,0x20,0x62,0x65,0x6C,0x6F,0x77,0x2E +,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x73,0x74,0x79 +,0x6C,0x65,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x63,0x73 +,0x73,0x22,0x3E,0x2E,0x74,0x61,0x62,0x6C,0x65,0x20,0x74,0x68,0x7B,0x62,0x61,0x63 +,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x65 +,0x36,0x66,0x66,0x65,0x39,0x7D,0x3C,0x2F,0x73,0x74,0x79,0x6C,0x65,0x3E,0x0D,0x0A +,0x3C,0x74,0x61,0x62,0x6C,0x65,0x20,0x63,0x6C,0x61,0x73,0x73,0x3D,0x22,0x74,0x61 +,0x62,0x6C,0x65,0x22,0x20,0x62,0x6F,0x72,0x64,0x65,0x72,0x3D,0x31,0x3E,0x0D,0x0A +,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x68,0x3E,0x4C,0x69,0x6E,0x6B,0x73,0x3C +,0x2F,0x74,0x68,0x3E,0x3C,0x74,0x68,0x3E,0x4F,0x76,0x65,0x72,0x76,0x69,0x65,0x77 +,0x3C,0x2F,0x74,0x68,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74 +,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x54,0x6F,0x70,0x20,0x50,0x61,0x67,0x65 +,0x3C,0x2F,0x74,0x64,0x3E,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C +,0x20,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x74 +,0x6F,0x70,0x20,0x70,0x61,0x67,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x3C,0x2F,0x74,0x64 +,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A +,0x3C,0x74,0x64,0x3E,0x57,0x65,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x3C,0x2F +,0x74,0x64,0x3E,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20,0x69,0x6E,0x64,0x69,0x63,0x61 +,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x61,0x63 +,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x61 +,0x6D,0x65,0x72,0x61,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x65,0x62,0x20 +,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x49,0x74 +,0x20,0x63,0x61,0x6E,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20 +,0x61,0x74,0x20,0x61,0x20,0x73,0x6C,0x69,0x64,0x65,0x72,0x20,0x62,0x61,0x72,0x20 +,0x69,0x6E,0x20,0x22,0x57,0x61,0x69,0x74,0x20,0x74,0x69,0x6D,0x65,0x22,0x20,0x61 +,0x74,0x20,0x74,0x68,0x65,0x20,0x74,0x69,0x6D,0x69,0x6E,0x67,0x20,0x6F,0x66,0x20 +,0x61,0x20,0x72,0x65,0x6E,0x65,0x77,0x61,0x6C,0x20,0x6F,0x66,0x20,0x61,0x20,0x63 +,0x61,0x6D,0x65,0x72,0x61,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2E,0x20,0x28 +,0x44,0x65,0x66,0x61,0x75,0x6C,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x35,0x30,0x30 +,0x6D,0x73,0x2E,0x29,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E +,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x53,0x65,0x74,0x74 +,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x74,0x64,0x3E,0x3C +,0x74,0x64,0x3E,0x49,0x74,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20 +,0x49,0x32,0x43,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x20,0x74 +,0x68,0x65,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x2E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x49,0x6E,0x20,0x49,0x32,0x43,0x20,0x63,0x6F,0x6D,0x6D +,0x75,0x6E,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x47,0x52,0x2D,0x4C,0x59 +,0x43,0x48,0x45,0x45,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x73,0x20,0x74,0x68 +,0x65,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x6F,0x66,0x20,0x74,0x68 +,0x65,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x20,0x63,0x6F,0x6E,0x6E,0x65,0x63 +,0x74,0x65,0x64,0x20,0x74,0x6F,0x20,0x49,0x32,0x43,0x5F,0x53,0x43,0x41,0x20,0x74 +,0x65,0x72,0x6D,0x69,0x6E,0x61,0x6C,0x20,0x61,0x6E,0x64,0x20,0x49,0x32,0x43,0x5F +,0x53,0x43,0x4C,0x20,0x74,0x65,0x72,0x6D,0x69,0x6E,0x61,0x6C,0x2E,0x3C,0x62,0x72 +,0x3E,0x0D,0x0A,0x4F,0x6E,0x20,0x74,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x73,0x20 +,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2C,0x20 +,0x47,0x52,0x2D,0x4C,0x59,0x43,0x48,0x45,0x45,0x20,0x61,0x63,0x63,0x65,0x73,0x73 +,0x65,0x73,0x20,0x74,0x6F,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,0x20 +,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x2E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x59,0x6F,0x75,0x20,0x63,0x61,0x6E,0x20,0x73,0x65,0x6E +,0x64,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x6F,0x66 +,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x66 +,0x6F,0x72,0x6D,0x61,0x74,0x20,0x69,0x6E,0x20,0x6F,0x6E,0x65,0x20,0x6F,0x66,0x20 +,0x74,0x77,0x6F,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x20,0x62,0x65,0x6C +,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26 +,0x6E,0x62,0x73,0x70,0x3B,0x22,0x44,0x69,0x72,0x65,0x63,0x74,0x6C,0x20,0x69,0x6E +,0x70,0x75,0x74,0x22,0x20,0x6F,0x72,0x20,0x22,0x46,0x69,0x6C,0x65,0x20,0x72,0x65 +,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x22,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x50 +,0x6C,0x65,0x61,0x73,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x63 +,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x61,0x6C,0x6F,0x6E,0x67,0x20,0x74,0x68,0x65 +,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x79,0x6F +,0x75,0x20,0x63,0x68,0x65,0x63,0x6B,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63 +,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x73,0x20,0x6F,0x66,0x20,0x65,0x61 +,0x63,0x68,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A +,0x54,0x68,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20,0x6F,0x66,0x20,0x74,0x68 +,0x65,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x69,0x73,0x3A,0x3C,0x62,0x72 +,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x4D +,0x65,0x74,0x68,0x6F,0x64,0x3A,0x49,0x32,0x43,0x20,0x61,0x64,0x64,0x72,0x2C,0x64 +,0x61,0x74,0x61,0x20,0x6C,0x65,0x6E,0x67,0x74,0x68,0x2C,0x64,0x61,0x74,0x61,0x31 +,0x2C,0x64,0x61,0x74,0x61,0x32,0x2C,0x64,0x61,0x74,0x61,0x33,0x2C,0x2E,0x2E,0x2E +,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x4D,0x65,0x74,0x68 +,0x6F,0x64,0x20,0x69,0x73,0x20,0x62,0x65,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E +,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E +,0x62,0x73,0x70,0x3B,0x22,0x57,0x72,0x22,0x69,0x73,0x20,0x57,0x72,0x69,0x74,0x65 +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26 +,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70 +,0x3B,0x22,0x52,0x64,0x22,0x20,0x69,0x73,0x20,0x52,0x65,0x61,0x64,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73 +,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x57 +,0x72,0x4E,0x6F,0x70,0x22,0x20,0x69,0x73,0x20,0x57,0x72,0x69,0x74,0x65,0x20,0x66 +,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x4E,0x6F,0x20,0x53,0x54,0x4F,0x50,0x20 +,0x63,0x6F,0x6E,0x64,0x69,0x74,0x69,0x6F,0x6E,0x29,0x3C,0x62,0x72,0x3E,0x0D,0x0A +,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73 +,0x70,0x3B,0x22,0x52,0x64,0x4E,0x6F,0x70,0x22,0x20,0x69,0x73,0x20,0x52,0x65,0x61 +,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x4E,0x6F,0x20,0x53,0x54 +,0x4F,0x50,0x20,0x63,0x6F,0x6E,0x64,0x69,0x74,0x69,0x6F,0x6E,0x29,0x3C,0x62,0x72 +,0x3E,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C +,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x4C,0x45,0x44,0x20,0x4F,0x6E,0x2F +,0x4F,0x66,0x66,0x3C,0x2F,0x74,0x64,0x3E,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20,0x69 +,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x4C,0x45,0x44,0x31,0x2C,0x20,0x4C +,0x45,0x44,0x32,0x20,0x61,0x6E,0x64,0x20,0x4C,0x45,0x44,0x33,0x20,0x6F,0x66,0x20 +,0x74,0x68,0x65,0x20,0x74,0x6F,0x67,0x67,0x6C,0x65,0x20,0x73,0x77,0x69,0x74,0x63 +,0x68,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6F +,0x77,0x73,0x65,0x72,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x45,0x61,0x63,0x68,0x20 +,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73 +,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x4C,0x45,0x44 +,0x20,0x73,0x74,0x61,0x74,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x4C,0x45,0x44 +,0x20,0x4F,0x4E,0x20,0x61,0x6E,0x64,0x20,0x4F,0x46,0x46,0x20,0x73,0x77,0x69,0x74 +,0x63,0x68,0x65,0x73,0x20,0x77,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,0x70,0x72 +,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x2E,0x20 +,0x57,0x68,0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x4C,0x45,0x44,0x20,0x69,0x73,0x20 +,0x4F,0x4E,0x2C,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x6F,0x66 +,0x20,0x74,0x68,0x65,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x77,0x69,0x6C,0x6C +,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20,0x4C,0x45,0x44,0x20 +,0x63,0x6F,0x6C,0x6F,0x72,0x2E,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74 +,0x72,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x61,0x62,0x6C,0x65,0x3E,0x0D,0x0A,0x0D,0x0A +,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D +,0x6C,0x3E,0x0D,0x0A,0x0D,0x0A +}; +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/file_table_peach.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,1225 @@ + +static const char index_htm_tbl[] = { + 0x3C,0x53,0x43,0x52,0x49,0x50,0x54,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x3E,0x0D +,0x0A,0x3C,0x21,0x2D,0x2D,0x0D,0x0A,0x6C,0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E,0x2E +,0x68,0x72,0x65,0x66,0x3D,0x22,0x2F,0x77,0x65,0x62,0x5F,0x74,0x6F,0x70,0x2E,0x68 +,0x74,0x6D,0x22,0x3B,0x0D,0x0A,0x2D,0x2D,0x3E,0x0D,0x0A,0x3C,0x2F,0x53,0x43,0x52 +,0x49,0x50,0x54,0x3E,0x0D,0x0A +}; + +static const char camaera_js_tbl[] = { + 0x76,0x61,0x72,0x20,0x69,0x6D,0x61,0x67,0x65,0x4E,0x72,0x20,0x3D,0x20,0x30,0x3B +,0x20,0x2F,0x2F,0x20,0x53,0x65,0x72,0x69,0x61,0x6C,0x20,0x6E,0x75,0x6D,0x62,0x65 +,0x72,0x20,0x6F,0x66,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6D,0x61 +,0x67,0x65,0x0D,0x0A,0x76,0x61,0x72,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64 +,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x29,0x3B,0x20 +,0x2F,0x2F,0x20,0x52,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x20,0x74,0x6F +,0x20,0x69,0x6D,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x73,0x20,0x77,0x68,0x69 +,0x63,0x68,0x20,0x68,0x61,0x76,0x65,0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64 +,0x20,0x64,0x6F,0x77,0x6E,0x6C,0x6F,0x61,0x64,0x69,0x6E,0x67,0x0D,0x0A,0x0D,0x0A +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49 +,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20 +,0x20,0x76,0x61,0x72,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x3D,0x20,0x6E,0x65,0x77 +,0x20,0x49,0x6D,0x61,0x67,0x65,0x28,0x29,0x3B,0x0D,0x0A,0x0D,0x0A,0x20,0x20,0x69 +,0x6D,0x61,0x67,0x65,0x2E,0x73,0x72,0x63,0x20,0x3D,0x20,0x22,0x63,0x61,0x6D,0x65 +,0x72,0x61,0x2F,0x22,0x20,0x2B,0x20,0x28,0x2B,0x2B,0x69,0x6D,0x61,0x67,0x65,0x4E +,0x72,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x73,0x74,0x79 +,0x6C,0x65,0x2E,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x3D,0x20,0x22,0x61 +,0x62,0x73,0x6F,0x6C,0x75,0x74,0x65,0x22,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61 +,0x67,0x65,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x7A,0x49,0x6E,0x64,0x65,0x78,0x20 +,0x3D,0x20,0x2D,0x31,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x6F +,0x6E,0x6C,0x6F,0x61,0x64,0x20,0x3D,0x20,0x69,0x6D,0x61,0x67,0x65,0x4F,0x6E,0x6C +,0x6F,0x61,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,0x6F,0x6E +,0x65,0x72,0x72,0x6F,0x72,0x20,0x3D,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6D +,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x3B,0x0D,0x0A,0x0D,0x0A,0x20,0x20,0x76 +,0x61,0x72,0x20,0x77,0x65,0x62,0x63,0x61,0x6D,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75 +,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42 +,0x79,0x49,0x64,0x28,0x22,0x77,0x65,0x62,0x63,0x61,0x6D,0x22,0x29,0x3B,0x0D,0x0A +,0x20,0x20,0x77,0x65,0x62,0x63,0x61,0x6D,0x2E,0x69,0x6E,0x73,0x65,0x72,0x74,0x42 +,0x65,0x66,0x6F,0x72,0x65,0x28,0x69,0x6D,0x61,0x67,0x65,0x2C,0x20,0x77,0x65,0x62 +,0x63,0x61,0x6D,0x2E,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6C,0x64,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 +,0x69,0x6D,0x61,0x67,0x65,0x4F,0x6E,0x6C,0x6F,0x61,0x64,0x28,0x29,0x20,0x7B,0x0D +,0x0A,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x7A,0x49 +,0x6E,0x64,0x65,0x78,0x20,0x3D,0x20,0x69,0x6D,0x61,0x67,0x65,0x4E,0x72,0x3B,0x0D +,0x0A,0x20,0x20,0x77,0x68,0x69,0x6C,0x65,0x20,0x28,0x31,0x20,0x3C,0x20,0x66,0x69 +,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x6C,0x65,0x6E,0x67,0x74,0x68,0x29,0x20,0x7B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x6C,0x20,0x3D,0x20 +,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x73,0x68,0x69,0x66,0x74,0x28,0x29 +,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x64,0x65,0x6C,0x2E,0x70,0x61,0x72,0x65,0x6E +,0x74,0x4E,0x6F,0x64,0x65,0x2E,0x72,0x65,0x6D,0x6F,0x76,0x65,0x43,0x68,0x69,0x6C +,0x64,0x28,0x64,0x65,0x6C,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x7D,0x0D,0x0A,0x20,0x20 +,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x2E,0x70,0x75,0x73,0x68,0x28,0x74,0x68 +,0x69,0x73,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x74,0x69,0x6D,0x65,0x72,0x49,0x44,0x20 +,0x3D,0x20,0x73,0x65,0x74,0x54,0x69,0x6D,0x65,0x6F,0x75,0x74,0x28,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x7B,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49 +,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65,0x72,0x28,0x29,0x20,0x7D,0x2C,0x20,0x64 +,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x46,0x31,0x2E,0x77,0x61,0x69,0x74,0x74 +,0x69,0x6D,0x65,0x2E,0x76,0x61,0x6C,0x75,0x65,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A +}; + +static const char camera_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x63,0x61,0x6D,0x65,0x72,0x61,0x3C,0x2F,0x74 +,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74 +,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63 +,0x72,0x69,0x70,0x74,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72 +,0x61,0x2E,0x6A,0x73,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75 +,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D +,0x0A,0x3C,0x73,0x74,0x79,0x6C,0x65,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x2F,0x63,0x73,0x73,0x22,0x3E,0x0D,0x0A,0x23,0x77,0x65,0x62,0x63,0x61 +,0x6D,0x20,0x69,0x6D,0x67,0x20,0x7B,0x0D,0x0A,0x09,0x6C,0x65,0x66,0x74,0x3A,0x20 +,0x30,0x3B,0x0D,0x0A,0x09,0x72,0x69,0x67,0x68,0x74,0x3A,0x20,0x30,0x3B,0x0D,0x0A +,0x09,0x6D,0x61,0x78,0x2D,0x77,0x69,0x64,0x74,0x68,0x3A,0x20,0x36,0x34,0x30,0x70 +,0x78,0x3B,0x20,0x0D,0x0A,0x09,0x77,0x69,0x64,0x74,0x68,0x3A,0x20,0x31,0x30,0x30 +,0x25,0x3B,0x0D,0x0A,0x09,0x68,0x65,0x69,0x67,0x68,0x74,0x3A,0x20,0x61,0x75,0x74 +,0x6F,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A,0x3C,0x2F,0x73,0x74,0x79,0x6C,0x65,0x3E +,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79 +,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x20,0x6F,0x6E,0x6C,0x6F,0x61,0x64,0x3D +,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6D,0x61,0x67,0x65,0x4C,0x61,0x79,0x65 +,0x72,0x28,0x29,0x3B,0x22,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x72,0x6D,0x20,0x61,0x63 +,0x74,0x69,0x6F,0x6E,0x3D,0x22,0x23,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x46 +,0x31,0x22,0x3E,0x0D,0x0A,0x57,0x61,0x69,0x74,0x20,0x74,0x69,0x6D,0x65,0x20,0x3C +,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x72,0x61,0x6E,0x67 +,0x65,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x77,0x61,0x69,0x74,0x74,0x69,0x6D +,0x65,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x35,0x30,0x30,0x22,0x20,0x6D +,0x61,0x78,0x3D,0x22,0x31,0x30,0x30,0x30,0x22,0x20,0x73,0x74,0x65,0x70,0x3D,0x22 +,0x35,0x30,0x22,0x3E,0x20,0x5B,0x6D,0x73,0x5D,0x0D,0x0A,0x3C,0x2F,0x66,0x6F,0x72 +,0x6D,0x3E,0x0D,0x0A,0x3C,0x64,0x69,0x76,0x20,0x69,0x64,0x3D,0x22,0x77,0x65,0x62 +,0x63,0x61,0x6D,0x22,0x3E,0x3C,0x6E,0x6F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x3C +,0x69,0x6D,0x67,0x20,0x73,0x72,0x63,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72,0x61,0x2F +,0x30,0x22,0x20,0x2F,0x3E,0x3C,0x2F,0x6E,0x6F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E +,0x3C,0x2F,0x64,0x69,0x76,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D +,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A +}; + +static const char mbedrpc_js_tbl[] = { + 0x2F,0x2F,0x20,0x6D,0x62,0x65,0x64,0x52,0x50,0x43,0x20,0x4A,0x61,0x76,0x61,0x73 +,0x63,0x72,0x69,0x70,0x74,0x20,0x49,0x6E,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20 +,0x75,0x73,0x69,0x6E,0x67,0x20,0x48,0x54,0x54,0x50,0x0D,0x0A,0x2F,0x2F,0x20,0x73 +,0x66,0x6F,0x72,0x64,0x20,0x61,0x6E,0x64,0x20,0x4D,0x20,0x57,0x61,0x6C,0x6B,0x65 +,0x72,0x0D,0x0A,0x2F,0x2F,0x20,0x41,0x20,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69 +,0x70,0x74,0x20,0x69,0x6E,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6F,0x72 +,0x20,0x74,0x61,0x6C,0x6B,0x69,0x6E,0x67,0x20,0x74,0x6F,0x20,0x6D,0x62,0x65,0x64 +,0x20,0x72,0x70,0x63,0x20,0x6F,0x76,0x65,0x72,0x20,0x68,0x74,0x74,0x70,0x0D,0x0A +,0x2F,0x2F,0x0D,0x0A,0x2F,0x2F,0x43,0x6F,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20 +,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x30,0x20,0x41,0x52,0x4D,0x20,0x4C,0x74,0x64 +,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F,0x2F,0x50,0x65,0x72,0x6D,0x69,0x73,0x73 +,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x68,0x65,0x72,0x65,0x62,0x79,0x20,0x67,0x72 +,0x61,0x6E,0x74,0x65,0x64,0x2C,0x20,0x66,0x72,0x65,0x65,0x20,0x6F,0x66,0x20,0x63 +,0x68,0x61,0x72,0x67,0x65,0x2C,0x20,0x74,0x6F,0x20,0x61,0x6E,0x79,0x20,0x70,0x65 +,0x72,0x73,0x6F,0x6E,0x20,0x6F,0x62,0x74,0x61,0x69,0x6E,0x69,0x6E,0x67,0x20,0x61 +,0x20,0x63,0x6F,0x70,0x79,0x0D,0x0A,0x2F,0x2F,0x6F,0x66,0x20,0x74,0x68,0x69,0x73 +,0x20,0x73,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x61,0x6E,0x64,0x20,0x61,0x73 +,0x73,0x6F,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E +,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x73,0x20,0x28,0x74,0x68 +,0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x22,0x29,0x2C,0x20,0x74 +,0x6F,0x20,0x64,0x65,0x61,0x6C,0x0D,0x0A,0x2F,0x2F,0x69,0x6E,0x20,0x74,0x68,0x65 +,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x77,0x69,0x74,0x68,0x6F,0x75 +,0x74,0x20,0x72,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x69 +,0x6E,0x63,0x6C,0x75,0x64,0x69,0x6E,0x67,0x20,0x77,0x69,0x74,0x68,0x6F,0x75,0x74 +,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20 +,0x72,0x69,0x67,0x68,0x74,0x73,0x0D,0x0A,0x2F,0x2F,0x74,0x6F,0x20,0x75,0x73,0x65 +,0x2C,0x20,0x63,0x6F,0x70,0x79,0x2C,0x20,0x6D,0x6F,0x64,0x69,0x66,0x79,0x2C,0x20 +,0x6D,0x65,0x72,0x67,0x65,0x2C,0x20,0x70,0x75,0x62,0x6C,0x69,0x73,0x68,0x2C,0x20 +,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2C,0x20,0x73,0x75,0x62,0x6C +,0x69,0x63,0x65,0x6E,0x73,0x65,0x2C,0x20,0x61,0x6E,0x64,0x2F,0x6F,0x72,0x20,0x73 +,0x65,0x6C,0x6C,0x0D,0x0A,0x2F,0x2F,0x63,0x6F,0x70,0x69,0x65,0x73,0x20,0x6F,0x66 +,0x20,0x74,0x68,0x65,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x2C,0x20,0x61 +,0x6E,0x64,0x20,0x74,0x6F,0x20,0x70,0x65,0x72,0x6D,0x69,0x74,0x20,0x70,0x65,0x72 +,0x73,0x6F,0x6E,0x73,0x20,0x74,0x6F,0x20,0x77,0x68,0x6F,0x6D,0x20,0x74,0x68,0x65 +,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x69,0x73,0x0D,0x0A,0x2F,0x2F +,0x66,0x75,0x72,0x6E,0x69,0x73,0x68,0x65,0x64,0x20,0x74,0x6F,0x20,0x64,0x6F,0x20 +,0x73,0x6F,0x2C,0x20,0x73,0x75,0x62,0x6A,0x65,0x63,0x74,0x20,0x74,0x6F,0x20,0x74 +,0x68,0x65,0x20,0x66,0x6F,0x6C,0x6C,0x6F,0x77,0x69,0x6E,0x67,0x20,0x63,0x6F,0x6E +,0x64,0x69,0x74,0x69,0x6F,0x6E,0x73,0x3A,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F +,0x2F,0x54,0x68,0x65,0x20,0x61,0x62,0x6F,0x76,0x65,0x20,0x63,0x6F,0x70,0x79,0x72 +,0x69,0x67,0x68,0x74,0x20,0x6E,0x6F,0x74,0x69,0x63,0x65,0x20,0x61,0x6E,0x64,0x20 +,0x74,0x68,0x69,0x73,0x20,0x70,0x65,0x72,0x6D,0x69,0x73,0x73,0x69,0x6F,0x6E,0x20 +,0x6E,0x6F,0x74,0x69,0x63,0x65,0x20,0x73,0x68,0x61,0x6C,0x6C,0x20,0x62,0x65,0x20 +,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x64,0x20,0x69,0x6E,0x0D,0x0A,0x2F,0x2F,0x61 +,0x6C,0x6C,0x20,0x63,0x6F,0x70,0x69,0x65,0x73,0x20,0x6F,0x72,0x20,0x73,0x75,0x62 +,0x73,0x74,0x61,0x6E,0x74,0x69,0x61,0x6C,0x20,0x70,0x6F,0x72,0x74,0x69,0x6F,0x6E +,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x53,0x6F,0x66,0x74,0x77,0x61,0x72 +,0x65,0x2E,0x0D,0x0A,0x2F,0x2F,0x20,0x0D,0x0A,0x2F,0x2F,0x54,0x48,0x45,0x20,0x53 +,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x20,0x49,0x53,0x20,0x50,0x52,0x4F,0x56,0x49 +,0x44,0x45,0x44,0x20,0x22,0x41,0x53,0x20,0x49,0x53,0x22,0x2C,0x20,0x57,0x49,0x54 +,0x48,0x4F,0x55,0x54,0x20,0x57,0x41,0x52,0x52,0x41,0x4E,0x54,0x59,0x20,0x4F,0x46 +,0x20,0x41,0x4E,0x59,0x20,0x4B,0x49,0x4E,0x44,0x2C,0x20,0x45,0x58,0x50,0x52,0x45 +,0x53,0x53,0x20,0x4F,0x52,0x0D,0x0A,0x2F,0x2F,0x49,0x4D,0x50,0x4C,0x49,0x45,0x44 +,0x2C,0x20,0x49,0x4E,0x43,0x4C,0x55,0x44,0x49,0x4E,0x47,0x20,0x42,0x55,0x54,0x20 +,0x4E,0x4F,0x54,0x20,0x4C,0x49,0x4D,0x49,0x54,0x45,0x44,0x20,0x54,0x4F,0x20,0x54 +,0x48,0x45,0x20,0x57,0x41,0x52,0x52,0x41,0x4E,0x54,0x49,0x45,0x53,0x20,0x4F,0x46 +,0x20,0x4D,0x45,0x52,0x43,0x48,0x41,0x4E,0x54,0x41,0x42,0x49,0x4C,0x49,0x54,0x59 +,0x2C,0x0D,0x0A,0x2F,0x2F,0x46,0x49,0x54,0x4E,0x45,0x53,0x53,0x20,0x46,0x4F,0x52 +,0x20,0x41,0x20,0x50,0x41,0x52,0x54,0x49,0x43,0x55,0x4C,0x41,0x52,0x20,0x50,0x55 +,0x52,0x50,0x4F,0x53,0x45,0x20,0x41,0x4E,0x44,0x20,0x4E,0x4F,0x4E,0x49,0x4E,0x46 +,0x52,0x49,0x4E,0x47,0x45,0x4D,0x45,0x4E,0x54,0x2E,0x20,0x49,0x4E,0x20,0x4E,0x4F +,0x20,0x45,0x56,0x45,0x4E,0x54,0x20,0x53,0x48,0x41,0x4C,0x4C,0x20,0x54,0x48,0x45 +,0x0D,0x0A,0x2F,0x2F,0x41,0x55,0x54,0x48,0x4F,0x52,0x53,0x20,0x4F,0x52,0x20,0x43 +,0x4F,0x50,0x59,0x52,0x49,0x47,0x48,0x54,0x20,0x48,0x4F,0x4C,0x44,0x45,0x52,0x53 +,0x20,0x42,0x45,0x20,0x4C,0x49,0x41,0x42,0x4C,0x45,0x20,0x46,0x4F,0x52,0x20,0x41 +,0x4E,0x59,0x20,0x43,0x4C,0x41,0x49,0x4D,0x2C,0x20,0x44,0x41,0x4D,0x41,0x47,0x45 +,0x53,0x20,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x0D,0x0A,0x2F,0x2F,0x4C,0x49 +,0x41,0x42,0x49,0x4C,0x49,0x54,0x59,0x2C,0x20,0x57,0x48,0x45,0x54,0x48,0x45,0x52 +,0x20,0x49,0x4E,0x20,0x41,0x4E,0x20,0x41,0x43,0x54,0x49,0x4F,0x4E,0x20,0x4F,0x46 +,0x20,0x43,0x4F,0x4E,0x54,0x52,0x41,0x43,0x54,0x2C,0x20,0x54,0x4F,0x52,0x54,0x20 +,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x57,0x49,0x53,0x45,0x2C,0x20,0x41,0x52 +,0x49,0x53,0x49,0x4E,0x47,0x20,0x46,0x52,0x4F,0x4D,0x2C,0x0D,0x0A,0x2F,0x2F,0x4F +,0x55,0x54,0x20,0x4F,0x46,0x20,0x4F,0x52,0x20,0x49,0x4E,0x20,0x43,0x4F,0x4E,0x4E +,0x45,0x43,0x54,0x49,0x4F,0x4E,0x20,0x57,0x49,0x54,0x48,0x20,0x54,0x48,0x45,0x20 +,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x20,0x4F,0x52,0x20,0x54,0x48,0x45,0x20 +,0x55,0x53,0x45,0x20,0x4F,0x52,0x20,0x4F,0x54,0x48,0x45,0x52,0x20,0x44,0x45,0x41 +,0x4C,0x49,0x4E,0x47,0x53,0x20,0x49,0x4E,0x0D,0x0A,0x2F,0x2F,0x54,0x48,0x45,0x20 +,0x53,0x4F,0x46,0x54,0x57,0x41,0x52,0x45,0x2E,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x2F +,0x2F,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x72,0x74,0x20,0x4D,0x65,0x63,0x68,0x61 +,0x6E,0x69,0x73,0x6D,0x73,0x20,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x20,0x70,0x6F,0x73,0x74,0x28,0x75,0x72,0x6C,0x29,0x20,0x7B,0x0D +,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x20,0x3D,0x20,0x28,0x77,0x69,0x6E +,0x64,0x6F,0x77,0x2E,0x58,0x4D,0x4C,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65 +,0x73,0x74,0x29,0x20,0x3F,0x20,0x6E,0x65,0x77,0x20,0x58,0x4D,0x4C,0x48,0x74,0x74 +,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x28,0x29,0x20,0x3A,0x20,0x6E,0x65,0x77 +,0x20,0x41,0x63,0x74,0x69,0x76,0x65,0x58,0x4F,0x62,0x6A,0x65,0x63,0x74,0x28,0x22 +,0x4D,0x69,0x63,0x72,0x6F,0x73,0x6F,0x66,0x74,0x2E,0x58,0x4D,0x4C,0x48,0x54,0x54 +,0x50,0x22,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x69,0x66,0x28,0x21,0x68,0x74 +,0x74,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x66,0x61,0x6C,0x73,0x65 +,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x2E,0x6F,0x70,0x65,0x6E +,0x28,0x22,0x47,0x45,0x54,0x22,0x2C,0x20,0x75,0x72,0x6C,0x2C,0x20,0x66,0x61,0x6C +,0x73,0x65,0x29,0x3B,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x0D,0x0A,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x2E,0x73,0x65,0x6E,0x64 +,0x28,0x6E,0x75,0x6C,0x6C,0x29,0x3B,0x20,0x20,0x20,0x0D,0x0A,0x20,0x20,0x20,0x20 +,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x68,0x74,0x74,0x70,0x2E,0x72,0x65,0x73,0x70 +,0x6F,0x6E,0x73,0x65,0x54,0x65,0x78,0x74,0x3B,0x0D,0x0A,0x09,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6D,0x62 +,0x65,0x64,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x2F,0x2F,0x4E,0x6F,0x20,0x61,0x63,0x74 +,0x69,0x6F,0x6E,0x20,0x6E,0x65,0x65,0x64,0x73,0x20,0x74,0x6F,0x20,0x62,0x65,0x20 +,0x74,0x61,0x6B,0x65,0x6E,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x6D,0x62,0x65,0x64 +,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x70,0x63,0x20,0x3D +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6F,0x62,0x6A,0x65,0x63,0x74 +,0x2C,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x2C,0x20,0x61,0x72,0x67,0x75,0x6D,0x65 +,0x6E,0x74,0x73,0x29,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x2F,0x2F,0x54,0x68,0x69 +,0x73,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x6F,0x76,0x65,0x72 +,0x72,0x69,0x64,0x64,0x65,0x6E,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x61,0x20 +,0x74,0x72,0x61,0x6E,0x73,0x70,0x6F,0x72,0x74,0x20,0x6D,0x65,0x63,0x68,0x61,0x6E +,0x69,0x73,0x6D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52,0x50 +,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x20,0x3D,0x20,0x6E,0x65 +,0x77,0x20,0x6D,0x62,0x65,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52 +,0x50,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x63,0x6F,0x6E +,0x73,0x74,0x72,0x75,0x63,0x74,0x6F,0x72,0x20,0x3D,0x20,0x48,0x54,0x54,0x50,0x52 +,0x50,0x43,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x48,0x54,0x54 +,0x50,0x52,0x50,0x43,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x2F,0x2F,0x75,0x6E,0x6C,0x69 +,0x6B,0x65,0x20,0x6F,0x74,0x68,0x65,0x72,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67 +,0x65,0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20 +,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x70,0x61,0x73,0x73,0x65 +,0x64,0x20,0x61,0x6E,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x20,0x61,0x73,0x20 +,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x62,0x65,0x20 +,0x61,0x6C,0x6C,0x6F,0x77,0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6D,0x6D,0x75 +,0x6E,0x69,0x63,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x69,0x74,0x73,0x65 +,0x6C,0x66,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x48,0x54,0x54,0x50,0x52 +,0x50,0x43,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x70,0x63 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6F,0x62,0x6A,0x65,0x63 +,0x74,0x2C,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x2C,0x20,0x61,0x72,0x67,0x75,0x6D +,0x65,0x6E,0x74,0x73,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x72,0x65,0x74 +,0x75,0x72,0x6E,0x20,0x70,0x6F,0x73,0x74,0x28,0x22,0x2F,0x72,0x70,0x63,0x2F,0x22 +,0x20,0x2B,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x20,0x2B,0x20,0x22,0x2F,0x22,0x20 +,0x2B,0x20,0x6D,0x65,0x74,0x68,0x6F,0x64,0x20,0x2B,0x20,0x22,0x2C,0x22,0x20,0x2B +,0x20,0x61,0x72,0x67,0x75,0x6D,0x65,0x6E,0x74,0x73,0x2E,0x6A,0x6F,0x69,0x6E,0x28 +,0x22,0x2C,0x22,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x20 +,0x50,0x69,0x6E,0x20,0x4E,0x61,0x6D,0x65,0x73,0x20,0x74,0x6F,0x20,0x41,0x6C,0x6C +,0x6F,0x77,0x20,0x70,0x69,0x6E,0x73,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x72,0x65 +,0x66,0x66,0x65,0x72,0x65,0x64,0x20,0x74,0x6F,0x20,0x61,0x73,0x20,0x61,0x20,0x74 +,0x79,0x70,0x65,0x20,0x72,0x61,0x74,0x68,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20 +,0x61,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x20,0x6F,0x72,0x20,0x6E,0x75,0x6D,0x62 +,0x65,0x72,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x70 +,0x69,0x6E,0x28,0x6E,0x61,0x6D,0x65,0x29,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73 +,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x4C,0x45,0x44,0x31,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20 +,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45,0x44,0x31,0x22,0x29,0x3B,0x0D,0x0A,0x4C,0x45 +,0x44,0x32,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45 +,0x44,0x32,0x22,0x29,0x3B,0x0D,0x0A,0x4C,0x45,0x44,0x33,0x20,0x3D,0x20,0x6E,0x65 +,0x77,0x20,0x70,0x69,0x6E,0x28,0x22,0x4C,0x45,0x44,0x33,0x22,0x29,0x3B,0x0D,0x0A +,0x4C,0x45,0x44,0x34,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x70,0x69,0x6E,0x28,0x22 +,0x4C,0x45,0x44,0x34,0x22,0x29,0x3B,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x20,0x69,0x6E +,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x73,0x20,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D +,0x2D,0x2D,0x2D,0x2D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74 +,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x44,0x69 +,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62 +,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66 +,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69,0x6E,0x20,0x21,0x3D,0x20 +,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F +,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62 +,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 +,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D +,0x0A,0x09,0x2F,0x2F,0x76,0x61,0x72,0x20,0x61,0x72,0x79,0x20,0x3D,0x20,0x6E,0x65 +,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x29,0x3B,0x0D +,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65 +,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x22,0x2C,0x20,0x22 +,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D +,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29,0x3B,0x20 +,0x0D,0x0A,0x09,0x2F,0x2F,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20 +,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 +,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x22,0x2C,0x20,0x22,0x6E +,0x65,0x77,0x22,0x2C,0x20,0x61,0x72,0x79,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65 +,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F +,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A +,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 +,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A +,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70 +,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x44,0x69 +,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79 +,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x22 +,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A +,0x0D,0x0A,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F +,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74 +,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69 +,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73 +,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B +,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x44,0x69,0x67,0x69,0x74,0x61,0x6C +,0x49,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20 +,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D +,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69 +,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69,0x6E,0x20,0x21,0x3D +,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09 +,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F +,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x22,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x22,0x2C,0x20 +,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29,0x3B +,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F,0x2F +,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74,0x69 +,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D +,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x0D +,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x44,0x69,0x67,0x69,0x74,0x61,0x6C,0x49,0x6E,0x2E +,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09 +,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28 +,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74 +,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22 +,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A +,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x41,0x6E +,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63 +,0x74,0x69,0x6F,0x6E,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74,0x28,0x74 +,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70 +,0x69,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B +,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20 +,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F +,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F +,0x75,0x74,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69 +,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D +,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65 +,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A +,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74 +,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A +,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F +,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69 +,0x74,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61 +,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C +,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C +,0x6F,0x67,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E +,0x77,0x72,0x69,0x74,0x65,0x5F,0x75,0x31,0x36,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63 +,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09 +,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74 +,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65 +,0x5F,0x75,0x31,0x36,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x4F,0x75,0x74 +,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A +,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F +,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70 +,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65 +,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D +,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x28 +,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29 +,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D +,0x70,0x69,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29 +,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61 +,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73 +,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F +,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x41,0x6E,0x61,0x6C,0x6F,0x67 +,0x49,0x6E,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69 +,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61 +,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D +,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65 +,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A +,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74 +,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A +,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49 +,0x6E,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64 +,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C +,0x6F,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72 +,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D +,0x0D,0x0A,0x0D,0x0A,0x41,0x6E,0x61,0x6C,0x6F,0x67,0x49,0x6E,0x2E,0x70,0x72,0x6F +,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x5F,0x75,0x31,0x36,0x20 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A +,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 +,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64 +,0x5F,0x75,0x31,0x36,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x20,0x50,0x77,0x6D,0x4F,0x75,0x74,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x50,0x77,0x6D,0x4F,0x75,0x74,0x28,0x74,0x68 +,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6D,0x70,0x69,0x6E,0x29,0x20,0x7B +,0x0D,0x0A,0x09,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x6D,0x70,0x69 +,0x6E,0x20,0x21,0x3D,0x20,0x22,0x73,0x74,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09 +,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E +,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69 +,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D +,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73 +,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 +,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22,0x50,0x77,0x6D,0x4F,0x75,0x74,0x22,0x2C +,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20,0x5B,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E +,0x61,0x6D,0x65,0x2C,0x6D,0x70,0x69,0x6E,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x5D,0x29 +,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x09,0x09,0x2F +,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20,0x65,0x78,0x69,0x73,0x74 +,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F +,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61 +,0x6D,0x65,0x20,0x3D,0x20,0x6D,0x70,0x69,0x6E,0x3B,0x0D,0x0A,0x09,0x7D,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74 +,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77,0x72,0x69 +,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A +,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74 +,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x72 +,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F,0x61,0x74 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28 +,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64 +,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D +,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70 +,0x65,0x2E,0x70,0x65,0x72,0x69,0x6F,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x65,0x72,0x69,0x6F,0x64 +,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D +,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74 +,0x79,0x70,0x65,0x2E,0x70,0x65,0x72,0x69,0x6F,0x64,0x5F,0x6D,0x73,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70 +,0x65,0x72,0x69,0x6F,0x64,0x5F,0x6D,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75 +,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75 +,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x65,0x72,0x69 +,0x6F,0x64,0x5F,0x75,0x73,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73 +,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E +,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x65,0x72,0x69,0x6F,0x64,0x5F,0x75,0x73 +,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D +,0x0A,0x0D,0x0A,0x50,0x77,0x6D,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74 +,0x79,0x70,0x65,0x2E,0x70,0x75,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x20,0x3D +,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29 +,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E +,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22 +,0x70,0x75,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x22,0x2C,0x20,0x5B,0x76,0x61 +,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D +,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75 +,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x6D,0x73,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x75,0x6C +,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x6D,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61 +,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x50,0x77,0x6D +,0x4F,0x75,0x74,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75 +,0x6C,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x75,0x73,0x20,0x3D,0x20,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D +,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63 +,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x70,0x75,0x6C +,0x73,0x65,0x77,0x69,0x64,0x74,0x68,0x5F,0x75,0x73,0x22,0x2C,0x20,0x5B,0x76,0x61 +,0x6C,0x75,0x65,0x5D,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F,0x2F,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x73,0x65,0x72,0x69,0x61 +,0x6C,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x53 +,0x65,0x72,0x69,0x61,0x6C,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C +,0x20,0x74,0x78,0x2C,0x20,0x72,0x78,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x69,0x66,0x28 +,0x74,0x79,0x70,0x65,0x6F,0x66,0x20,0x74,0x78,0x20,0x21,0x3D,0x20,0x22,0x73,0x74 +,0x72,0x69,0x6E,0x67,0x22,0x29,0x7B,0x09,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x63,0x72 +,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6E,0x65,0x77,0x20,0x6F,0x62,0x6A,0x65,0x63 +,0x74,0x0D,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20 +,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x20,0x20 +,0x20,0x20,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20 +,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x22 +,0x53,0x65,0x72,0x69,0x61,0x6C,0x22,0x2C,0x20,0x22,0x6E,0x65,0x77,0x22,0x2C,0x20 +,0x5B,0x74,0x78,0x2E,0x5F,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x72,0x78,0x2E,0x5F,0x6E +,0x61,0x6D,0x65,0x5D,0x29,0x3B,0x20,0x0D,0x0A,0x09,0x7D,0x65,0x6C,0x73,0x65,0x7B +,0x0D,0x0A,0x09,0x09,0x2F,0x2F,0x54,0x69,0x65,0x20,0x74,0x6F,0x20,0x61,0x6E,0x20 +,0x65,0x78,0x69,0x73,0x74,0x69,0x6E,0x67,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x0D +,0x0A,0x09,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x20,0x3D,0x20 +,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A,0x09,0x09,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x20,0x3D,0x20,0x74,0x78,0x3B,0x0D,0x0A,0x09 +,0x7D,0x0D,0x0A,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C +,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x70,0x75,0x74,0x63,0x20 +,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65 +,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64 +,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20 +,0x22,0x70,0x75,0x74,0x63,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29 +,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70 +,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x67,0x65,0x74,0x63,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65 +,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x67 +,0x65,0x74,0x63,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D +,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70,0x72,0x6F,0x74,0x6F +,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61,0x64,0x61,0x62,0x6C,0x65,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61,0x72,0x73,0x65 +,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72 +,0x65,0x61,0x64,0x61,0x62,0x6C,0x65,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29 +,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x53,0x65,0x72,0x69,0x61,0x6C,0x2E,0x70 +,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x61,0x62 +,0x6C,0x65,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61 +,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20 +,0x70,0x61,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x2C,0x20,0x22,0x77,0x72,0x69,0x74,0x65,0x61,0x62,0x6C,0x65,0x22,0x2C,0x20 +,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A +,0x2F,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x52,0x50 +,0x43,0x56,0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75 +,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 +,0x6C,0x65,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6E,0x61 +,0x6D,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62 +,0x65,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D +,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61 +,0x6D,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A +,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x2E,0x70,0x72 +,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x77,0x72,0x69,0x74,0x65,0x20,0x3D,0x20 +,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72 +,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x77 +,0x72,0x69,0x74,0x65,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65,0x5D,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 +,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61 +,0x64,0x5F,0x69,0x6E,0x74,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x70,0x61 +,0x72,0x73,0x65,0x49,0x6E,0x74,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 +,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C +,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B +,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61,0x72,0x69,0x61,0x62 +,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x65,0x61 +,0x64,0x5F,0x66,0x6C,0x6F,0x61,0x74,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69 +,0x6F,0x6E,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20 +,0x70,0x61,0x72,0x73,0x65,0x46,0x6C,0x6F,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2E +,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E +,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C,0x20,0x5B,0x22,0x22 +,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x52,0x50,0x43,0x56,0x61 +,0x72,0x69,0x61,0x62,0x6C,0x65,0x2E,0x70,0x72,0x6F,0x74,0x6F,0x74,0x79,0x70,0x65 +,0x2E,0x72,0x65,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x28,0x74 +,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68 +,0x69,0x73,0x2E,0x6E,0x61,0x6D,0x65,0x2C,0x20,0x22,0x72,0x65,0x61,0x64,0x22,0x2C +,0x20,0x5B,0x22,0x22,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x2F +,0x2F,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x20,0x52,0x50,0x43 +,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A +,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x20,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F +,0x6E,0x28,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x2C,0x20,0x6E,0x61,0x6D +,0x65,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D,0x62,0x65 +,0x64,0x20,0x3D,0x20,0x74,0x68,0x69,0x73,0x5F,0x6D,0x62,0x65,0x64,0x3B,0x0D,0x0A +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x20,0x3D,0x20,0x6E,0x61,0x6D,0x65,0x3B,0x20,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D +,0x0A,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x2E,0x70,0x72,0x6F +,0x74,0x6F,0x74,0x79,0x70,0x65,0x2E,0x72,0x75,0x6E,0x20,0x3D,0x20,0x66,0x75,0x6E +,0x63,0x74,0x69,0x6F,0x6E,0x28,0x76,0x61,0x6C,0x75,0x65,0x29,0x20,0x7B,0x0D,0x0A +,0x09,0x72,0x65,0x74,0x75,0x72,0x6E,0x20,0x28,0x74,0x68,0x69,0x73,0x2E,0x5F,0x6D +,0x62,0x65,0x64,0x2E,0x72,0x70,0x63,0x28,0x74,0x68,0x69,0x73,0x2E,0x6E,0x61,0x6D +,0x65,0x2C,0x20,0x22,0x72,0x75,0x6E,0x22,0x2C,0x20,0x5B,0x76,0x61,0x6C,0x75,0x65 +,0x5D,0x29,0x29,0x3B,0x0D,0x0A,0x7D +}; + +static const char led_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x20,0x75,0x74 +,0x66,0x2D,0x38,0x22,0x3E,0x20,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x4C +,0x45,0x44,0x20,0x54,0x6F,0x67,0x67,0x6C,0x65,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65 +,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3D +,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74 +,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D,0x62,0x65,0x64,0x52,0x50,0x43,0x2E,0x6A +,0x73,0x22,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67,0x65,0x3D,0x22,0x6A,0x61,0x76 +,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74 +,0x3D,0x22,0x75,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70 +,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70 +,0x74,0x22,0x3E,0x6D,0x62,0x65,0x64,0x3D,0x6E,0x65,0x77,0x20,0x48,0x54,0x54,0x50 +,0x52,0x50,0x43,0x28,0x29,0x3B,0x6C,0x65,0x64,0x31,0x3D,0x6E,0x65,0x77,0x20,0x44 +,0x69,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C +,0x45,0x44,0x31,0x29,0x3B,0x6C,0x65,0x64,0x32,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69 +,0x67,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45 +,0x44,0x32,0x29,0x3B,0x6C,0x65,0x64,0x33,0x3D,0x6E,0x65,0x77,0x20,0x44,0x69,0x67 +,0x69,0x74,0x61,0x6C,0x4F,0x75,0x74,0x28,0x6D,0x62,0x65,0x64,0x2C,0x4C,0x45,0x44 +,0x33,0x29,0x3B,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A +,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x3E,0x0D +,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x31,0x5F,0x74 +,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x64,0x31,0x20,0x3D,0x20,0x6C,0x65,0x64 +,0x31,0x2E,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x64,0x31,0x20,0x3D,0x3D,0x20,0x31,0x29 +,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x31,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30 +,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x2E,0x76,0x61,0x6C +,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x31,0x20,0x4F,0x66,0x66,0x27,0x3B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C +,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C +,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B +,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23 +,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 +,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74 +,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30 +,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x31,0x2E,0x77,0x72,0x69 +,0x74,0x65,0x28,0x31,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31 +,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x31,0x20,0x4F +,0x6E,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 +,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 +,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62 +,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D +,0x20,0x27,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74 +,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x31,0x22,0x29 +,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27 +,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F +,0x6E,0x20,0x6C,0x65,0x64,0x32,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x20 +,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72 +,0x64,0x32,0x20,0x3D,0x20,0x6C,0x65,0x64,0x32,0x2E,0x72,0x65,0x61,0x64,0x28,0x29 +,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72 +,0x64,0x32,0x20,0x3D,0x3D,0x20,0x31,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x32 +,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F +,0x4C,0x45,0x44,0x32,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45 +,0x44,0x32,0x20,0x4F,0x66,0x66,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 +,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74 +,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F +,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C +,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C +,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F +,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x6C,0x65,0x64,0x32,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x31,0x29,0x3B,0x0D,0x0A +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D +,0x20,0x27,0x4C,0x45,0x44,0x32,0x20,0x4F,0x6E,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74 +,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29 +,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E +,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30,0x38,0x30,0x30 +,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 +,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 +,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63 +,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27 +,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7D,0x0D,0x0A,0x7D,0x0D +,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x6C,0x65,0x64,0x33,0x5F,0x74 +,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x64,0x33,0x20,0x3D,0x20,0x6C,0x65,0x64 +,0x33,0x2E,0x72,0x65,0x61,0x64,0x28,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x64,0x33,0x20,0x3D,0x3D,0x20,0x31,0x29 +,0x20,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x33,0x2E,0x77,0x72,0x69,0x74,0x65,0x28,0x30 +,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x2E,0x76,0x61,0x6C +,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x33,0x20,0x4F,0x66,0x66,0x27,0x3B +,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C +,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C +,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62,0x61,0x63,0x6B +,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23 +,0x63,0x30,0x63,0x30,0x63,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49 +,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74 +,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27,0x23,0x30,0x30 +,0x30,0x30,0x30,0x30,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x7D,0x65,0x6C,0x73,0x65,0x7B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6C,0x65,0x64,0x33,0x2E,0x77,0x72,0x69 +,0x74,0x65,0x28,0x31,0x29,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33 +,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x27,0x4C,0x45,0x44,0x33,0x20,0x4F +,0x6E,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65 +,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74 +,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x62 +,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x43,0x6F,0x6C,0x6F,0x72,0x20,0x3D +,0x20,0x27,0x23,0x30,0x30,0x30,0x30,0x63,0x63,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74 +,0x42,0x79,0x49,0x64,0x28,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x29 +,0x2E,0x73,0x74,0x79,0x6C,0x65,0x2E,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x3D,0x20,0x27 +,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x27,0x3B,0x0D,0x0A,0x20,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70 +,0x74,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F +,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69 +,0x7A,0x65,0x3D,0x22,0x38,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79 +,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x38 +,0x30,0x22,0x3E,0x3C,0x62,0x3E,0x4C,0x45,0x44,0x20,0x54,0x6F,0x67,0x67,0x6C,0x65 +,0x20,0x53,0x77,0x69,0x74,0x63,0x68,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61 +,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x3C,0x62,0x72 +,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22 +,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D,0x22,0x62,0x74,0x6E,0x5F +,0x4C,0x45,0x44,0x31,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E +,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B +,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x63,0x6F +,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3B,0x62,0x61,0x63,0x6B +,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x63,0x30 +,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x20,0x37,0x30,0x70,0x78 +,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34,0x30,0x70,0x78,0x22,0x20 +,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65,0x64,0x31,0x5F,0x74,0x6F +,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20 +,0x22,0x4C,0x45,0x44,0x31,0x20,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C,0x62,0x72,0x3E +,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74 +,0x79,0x70,0x65,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x49,0x44,0x3D +,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x32,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 +,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61 +,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39 +,0x70,0x74,0x3B,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x30,0x30 +,0x3B,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F +,0x72,0x3A,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A +,0x20,0x37,0x30,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x20,0x34 +,0x30,0x70,0x78,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x6C,0x65 +,0x64,0x32,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29,0x22,0x20,0x76,0x61,0x6C +,0x75,0x65,0x20,0x3D,0x20,0x22,0x4C,0x45,0x44,0x32,0x20,0x4F,0x66,0x66,0x22,0x3E +,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E +,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E +,0x22,0x20,0x49,0x44,0x3D,0x22,0x62,0x74,0x6E,0x5F,0x4C,0x45,0x44,0x33,0x22,0x20 +,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49 +,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53 +,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30 +,0x30,0x30,0x30,0x30,0x30,0x3B,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64 +,0x2D,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x63,0x30,0x63,0x30,0x63,0x30,0x3B,0x57 +,0x49,0x44,0x54,0x48,0x3A,0x20,0x37,0x30,0x70,0x78,0x3B,0x20,0x48,0x45,0x49,0x47 +,0x48,0x54,0x3A,0x20,0x34,0x30,0x70,0x78,0x22,0x20,0x6F,0x6E,0x43,0x6C,0x69,0x63 +,0x6B,0x3D,0x22,0x6C,0x65,0x64,0x33,0x5F,0x74,0x6F,0x67,0x67,0x6C,0x65,0x28,0x29 +,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x22,0x4C,0x45,0x44,0x33,0x20 +,0x4F,0x66,0x66,0x22,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F +,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A +}; + +static const char i2c_set_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x20,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x53,0x65 +,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x74,0x69 +,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79 +,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63,0x72 +,0x69,0x70,0x74,0x22,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D,0x62,0x65,0x64,0x52,0x50 +,0x43,0x2E,0x6A,0x73,0x22,0x20,0x6C,0x61,0x6E,0x67,0x75,0x61,0x67,0x65,0x3D,0x22 +,0x6A,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x63,0x68,0x61,0x72 +,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66,0x2D,0x38,0x22,0x3E,0x3C,0x2F,0x73,0x63 +,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74 +,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x6A,0x61,0x76,0x61,0x73,0x63 +,0x72,0x69,0x70,0x74,0x22,0x3E,0x6D,0x62,0x65,0x64,0x3D,0x6E,0x65,0x77,0x20,0x48 +,0x54,0x54,0x50,0x52,0x50,0x43,0x28,0x29,0x3B,0x74,0x65,0x72,0x6D,0x3D,0x6E,0x65 +,0x77,0x20,0x52,0x50,0x43,0x46,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28,0x6D,0x62 +,0x65,0x64,0x2C,0x22,0x53,0x65,0x74,0x49,0x32,0x43,0x66,0x72,0x6F,0x6D,0x57,0x65 +,0x62,0x22,0x29,0x3B,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D,0x0A,0x3C +,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A +,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x38 +,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43 +,0x4F,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62 +,0x3E,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x69,0x6E,0x70,0x75,0x74,0x3C,0x2F,0x62 +,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x64,0x69,0x72,0x5F +,0x69,0x6E,0x22,0x3E,0x3C,0x2F,0x69,0x6E,0x70,0x75,0x74,0x3E,0x3C,0x62,0x75,0x74 +,0x74,0x6F,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D +,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F +,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63 +,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x73,0x6E,0x64,0x5F,0x64,0x69,0x72,0x5F,0x69,0x6E +,0x28,0x29,0x22,0x3E,0x53,0x65,0x6E,0x64,0x3C,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E +,0x3E,0x20,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A +,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x38 +,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43 +,0x4F,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62 +,0x3E,0x46,0x69,0x6C,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x3C +,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74 +,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79 +,0x70,0x65,0x3D,0x22,0x66,0x69,0x6C,0x65,0x22,0x20,0x69,0x64,0x3D,0x22,0x66,0x69 +,0x6C,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 +,0x3D,0x22,0x44,0x49,0x53,0x50,0x4C,0x41,0x59,0x3A,0x6E,0x6F,0x6E,0x65,0x22,0x20 +,0x6F,0x6E,0x63,0x68,0x61,0x6E,0x67,0x65,0x3D,0x22,0x74,0x78,0x74,0x5F,0x66,0x69 +,0x6C,0x65,0x6E,0x61,0x6D,0x65,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x74 +,0x68,0x69,0x73,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3B,0x22,0x20,0x61,0x63,0x63,0x65 +,0x70,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x70,0x6C,0x61,0x69,0x6E,0x22,0x3E +,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x74 +,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x78,0x74,0x5F,0x66,0x69,0x6C +,0x65,0x6E,0x61,0x6D,0x65,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F +,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61 +,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20 +,0x73,0x69,0x7A,0x65,0x3D,0x22,0x32,0x35,0x22,0x20,0x44,0x49,0x53,0x41,0x42,0x4C +,0x45,0x44,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65 +,0x3D,0x22,0x62,0x75,0x74,0x74,0x6F,0x6E,0x22,0x20,0x69,0x64,0x3D,0x22,0x66,0x69 +,0x6C,0x65,0x5F,0x73,0x65,0x6C,0x65,0x63,0x74,0x22,0x20,0x73,0x74,0x79,0x6C,0x65 +,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61 +,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39 +,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x66,0x69,0x6C +,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x2E,0x63,0x6C,0x69,0x63,0x6B,0x28,0x29 +,0x22,0x20,0x76,0x61,0x6C,0x75,0x65,0x3D,0x22,0x43,0x68,0x6F,0x6F,0x73,0x65,0x20 +,0x61,0x20,0x74,0x65,0x78,0x74,0x20,0x46,0x69,0x6C,0x65,0x22,0x3E,0x0D,0x0A,0x3C +,0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x73,0x75,0x62 +,0x6D,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x73,0x6E,0x64,0x62,0x6F,0x78,0x22 +,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D +,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D +,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63 +,0x6B,0x3D,0x22,0x73,0x6E,0x64,0x5F,0x66,0x69,0x6C,0x65,0x5F,0x72,0x65,0x66,0x28 +,0x29,0x22,0x3E,0x53,0x65,0x6E,0x64,0x3C,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3E +,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x3C,0x70,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x46,0x4F +,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61 +,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x31,0x38,0x70,0x74,0x22 +,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x43,0x4F +,0x4C,0x4F,0x52,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x0D,0x0A,0x3C +,0x62,0x3E,0x4C,0x4F,0x47,0x3A,0x3C,0x2F,0x62,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E +,0x3E,0x0D,0x0A,0x3C,0x69,0x6E,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3D,0x22 +,0x73,0x75,0x62,0x6D,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x65,0x78,0x74 +,0x61,0x72,0x65,0x61,0x5F,0x63,0x6C,0x65,0x61,0x72,0x22,0x20,0x73,0x74,0x79,0x6C +,0x65,0x3D,0x22,0x44,0x49,0x53,0x50,0x4C,0x41,0x59,0x3A,0x62,0x6C,0x6F,0x63,0x6B +,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68 +,0x6F,0x6D,0x61,0x3B,0x46,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70 +,0x74,0x3B,0x57,0x49,0x44,0x54,0x48,0x3A,0x37,0x30,0x70,0x78,0x3B,0x48,0x45,0x49 +,0x47,0x48,0x54,0x3A,0x32,0x30,0x70,0x78,0x3B,0x50,0x4F,0x53,0x49,0x54,0x49,0x4F +,0x4E,0x3A,0x61,0x62,0x73,0x6F,0x6C,0x75,0x74,0x65,0x3B,0x4C,0x45,0x46,0x54,0x3A +,0x38,0x70,0x78,0x22,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x43,0x6C +,0x72,0x5F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x22,0x20,0x76,0x61 +,0x6C,0x75,0x65,0x3D,0x22,0x43,0x6C,0x65,0x61,0x72,0x22,0x3E,0x0D,0x0A,0x3C,0x62 +,0x75,0x74,0x74,0x6F,0x6E,0x20,0x74,0x79,0x70,0x65,0x3D,0x22,0x73,0x75,0x62,0x6D +,0x69,0x74,0x22,0x20,0x69,0x64,0x3D,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61 +,0x5F,0x73,0x61,0x76,0x65,0x22,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x44,0x49 +,0x53,0x50,0x4C,0x41,0x59,0x3A,0x62,0x6C,0x6F,0x63,0x6B,0x3B,0x46,0x4F,0x4E,0x54 +,0x2D,0x46,0x41,0x4D,0x49,0x4C,0x59,0x3A,0x54,0x61,0x68,0x6F,0x6D,0x61,0x3B,0x46 +,0x4F,0x4E,0x54,0x2D,0x53,0x49,0x5A,0x45,0x3A,0x39,0x70,0x74,0x3B,0x57,0x49,0x44 +,0x54,0x48,0x3A,0x37,0x30,0x70,0x78,0x3B,0x48,0x45,0x49,0x47,0x48,0x54,0x3A,0x32 +,0x30,0x70,0x78,0x3B,0x50,0x4F,0x53,0x49,0x54,0x49,0x4F,0x4E,0x3A,0x61,0x62,0x73 +,0x6F,0x6C,0x75,0x74,0x65,0x3B,0x4C,0x45,0x46,0x54,0x3A,0x38,0x32,0x70,0x78,0x22 +,0x20,0x6F,0x6E,0x63,0x6C,0x69,0x63,0x6B,0x3D,0x22,0x53,0x61,0x76,0x65,0x5F,0x74 +,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x22,0x3E,0x53,0x61,0x76,0x65,0x3C +,0x2F,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x72,0x6D,0x20 +,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x22,0x3E +,0x0D,0x0A,0x3C,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x69,0x64,0x3D,0x22 +,0x72,0x65,0x73,0x75,0x6C,0x74,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x74,0x65 +,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x22,0x20,0x63,0x6F,0x6C,0x73,0x3D,0x22,0x35 +,0x30,0x22,0x20,0x72,0x6F,0x77,0x73,0x3D,0x22,0x32,0x30,0x22,0x20,0x70,0x6C,0x61 +,0x63,0x65,0x68,0x6F,0x6C,0x64,0x65,0x72,0x3D,0x22,0x22,0x20,0x76,0x61,0x6C,0x75 +,0x65,0x3D,0x22,0x22,0x3E,0x3C,0x2F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3E +,0x0D,0x0A,0x3C,0x2F,0x66,0x6F,0x72,0x6D,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D +,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x73,0x63,0x72,0x69,0x70,0x74 +,0x3E,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x73,0x6E,0x64,0x5F +,0x64,0x69,0x72,0x5F,0x69,0x6E,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72,0x20 +,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74,0x3B,0x0D,0x0A,0x09,0x69,0x66,0x20,0x28 +,0x28,0x64,0x69,0x72,0x5F,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x21,0x3D +,0x20,0x6E,0x75,0x6C,0x6C,0x29,0x20,0x26,0x26,0x20,0x28,0x64,0x69,0x72,0x5F,0x69 +,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x21,0x3D,0x20,0x22,0x22,0x29,0x29,0x20 +,0x7B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75 +,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61 +,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x53,0x45,0x4E,0x44 +,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72 +,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x64,0x69,0x72,0x5F +,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x3B,0x0D,0x0A,0x09,0x09,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74 +,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B +,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x72,0x63,0x76 +,0x5F,0x74,0x65,0x78,0x74,0x20,0x3D,0x20,0x74,0x65,0x72,0x6D,0x2E,0x72,0x75,0x6E +,0x28,0x64,0x69,0x72,0x5F,0x69,0x6E,0x2E,0x76,0x61,0x6C,0x75,0x65,0x29,0x3B,0x0D +,0x0A,0x09,0x09,0x69,0x66,0x20,0x28,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74,0x20 +,0x21,0x3D,0x20,0x22,0x72,0x75,0x6E,0x22,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09 +,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72 +,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75 +,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x52,0x45,0x43,0x56,0x5D,0x22,0x3B,0x0D,0x0A +,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F +,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76 +,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x72,0x63,0x76,0x5F,0x74,0x65,0x78,0x74 +,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F +,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65 +,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E +,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x7D,0x0D,0x0A +,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x73,0x6E,0x64,0x5F,0x66 +,0x69,0x6C,0x65,0x5F,0x72,0x65,0x66,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72 +,0x20,0x6F,0x62,0x6A,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x67,0x65,0x74,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x42,0x79,0x49,0x64,0x28,0x22 +,0x66,0x69,0x6C,0x65,0x5F,0x75,0x70,0x6C,0x6F,0x61,0x64,0x22,0x29,0x2E,0x66,0x69 +,0x6C,0x65,0x73,0x5B,0x30,0x5D,0x3B,0x0D,0x0A,0x09,0x76,0x61,0x72,0x20,0x72,0x65 +,0x61,0x64,0x65,0x72,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20,0x46,0x69,0x6C,0x65,0x52 +,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3B,0x0D,0x0A,0x09,0x72,0x65,0x61,0x64,0x65 +,0x72,0x2E,0x6F,0x6E,0x6C,0x6F,0x61,0x64,0x20,0x3D,0x20,0x66,0x75,0x6E,0x63,0x74 +,0x69,0x6F,0x6E,0x28,0x65,0x76,0x74,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x76,0x61 +,0x72,0x20,0x73,0x74,0x72,0x20,0x3D,0x20,0x65,0x76,0x74,0x2E,0x74,0x61,0x72,0x67 +,0x65,0x74,0x2E,0x72,0x65,0x73,0x75,0x6C,0x74,0x3B,0x0D,0x0A,0x09,0x09,0x76,0x61 +,0x72,0x20,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x20,0x3D,0x20,0x73,0x74,0x72 +,0x2E,0x73,0x70,0x6C,0x69,0x74,0x28,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x29,0x3B,0x0D +,0x0A,0x09,0x09,0x76,0x61,0x72,0x20,0x63,0x6E,0x74,0x20,0x3D,0x20,0x30,0x3B,0x0D +,0x0A,0x09,0x09,0x76,0x61,0x72,0x20,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20 +,0x3D,0x20,0x30,0x3B,0x0D,0x0A,0x09,0x09,0x77,0x68,0x69,0x6C,0x65,0x20,0x28,0x28 +,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x20,0x21,0x3D +,0x20,0x6E,0x75,0x6C,0x6C,0x29,0x20,0x26,0x26,0x20,0x28,0x73,0x6E,0x64,0x5F,0x64 +,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x20,0x21,0x3D,0x20,0x22,0x22,0x29,0x29 +,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72 +,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B,0x53,0x45 +,0x4E,0x44,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65 +,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74 +,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x73 +,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B,0x63,0x6E,0x74,0x5D,0x3B,0x0D,0x0A,0x09 +,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66 +,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61 +,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A +,0x09,0x09,0x09,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20,0x3D,0x20,0x74,0x65 +,0x72,0x6D,0x2E,0x72,0x75,0x6E,0x28,0x73,0x6E,0x64,0x5F,0x64,0x61,0x74,0x61,0x5B +,0x63,0x6E,0x74,0x5D,0x29,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x69,0x66,0x20,0x28,0x72 +,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x20,0x21,0x3D,0x20,0x22,0x72,0x75,0x6E,0x22 +,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x09,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E +,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F +,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5B +,0x52,0x45,0x43,0x56,0x5D,0x22,0x3B,0x0D,0x0A,0x09,0x09,0x09,0x09,0x64,0x6F,0x63 +,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74 +,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x20,0x2B +,0x3D,0x20,0x72,0x63,0x76,0x5F,0x64,0x61,0x74,0x61,0x3B,0x0D,0x0A,0x09,0x09,0x09 +,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F,0x66,0x6F +,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76,0x61,0x6C +,0x75,0x65,0x20,0x2B,0x3D,0x20,0x22,0x5C,0x72,0x5C,0x6E,0x22,0x3B,0x0D,0x0A,0x09 +,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x09,0x09,0x63,0x6E,0x74,0x2B,0x2B,0x3B,0x0D,0x0A +,0x09,0x09,0x7D,0x0D,0x0A,0x09,0x7D,0x0D,0x0A,0x09,0x72,0x65,0x61,0x64,0x65,0x72 +,0x2E,0x72,0x65,0x61,0x64,0x41,0x73,0x54,0x65,0x78,0x74,0x28,0x6F,0x62,0x6A,0x29 +,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E +,0x20,0x43,0x6C,0x72,0x5F,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x7B +,0x0D,0x0A,0x09,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F,0x75,0x74,0x5F +,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65,0x61,0x2E,0x76 +,0x61,0x6C,0x75,0x65,0x20,0x3D,0x20,0x22,0x22,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A,0x0D +,0x0A,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x53,0x61,0x76,0x65,0x5F,0x74 +,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x28,0x29,0x7B,0x0D,0x0A,0x09,0x76,0x61,0x72 +,0x20,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x20,0x3D,0x20,0x6E,0x65,0x77,0x20 +,0x42,0x6C,0x6F,0x62,0x28,0x5B,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x6F +,0x75,0x74,0x5F,0x66,0x6F,0x72,0x6D,0x2E,0x74,0x65,0x78,0x74,0x5F,0x61,0x72,0x65 +,0x61,0x2E,0x76,0x61,0x6C,0x75,0x65,0x5D,0x2C,0x20,0x7B,0x74,0x79,0x70,0x65,0x3A +,0x22,0x74,0x65,0x78,0x74,0x2F,0x70,0x6C,0x61,0x69,0x6E,0x22,0x7D,0x29,0x3B,0x0D +,0x0A,0x09,0x3C,0x21,0x2D,0x2D,0x20,0x44,0x65,0x74,0x65,0x72,0x6D,0x69,0x6E,0x65 +,0x73,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x09 +,0x69,0x66,0x20,0x28,0x6E,0x61,0x76,0x69,0x67,0x61,0x74,0x6F,0x72,0x2E,0x6D,0x73 +,0x53,0x61,0x76,0x65,0x42,0x6C,0x6F,0x62,0x29,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x3C +,0x21,0x2D,0x2D,0x20,0x49,0x45,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x20,0x20,0x20,0x20 +,0x20,0x20,0x20,0x20,0x09,0x6E,0x61,0x76,0x69,0x67,0x61,0x74,0x6F,0x72,0x2E,0x6D +,0x73,0x53,0x61,0x76,0x65,0x4F,0x72,0x4F,0x70,0x65,0x6E,0x42,0x6C,0x6F,0x62,0x28 +,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x2C,0x20,0x27,0x63,0x6F,0x6D,0x6D,0x5F +,0x6C,0x6F,0x67,0x2E,0x74,0x78,0x74,0x27,0x29,0x3B,0x0D,0x0A,0x09,0x7D,0x20,0x65 +,0x6C,0x73,0x65,0x20,0x7B,0x0D,0x0A,0x09,0x09,0x3C,0x21,0x2D,0x2D,0x20,0x45,0x78 +,0x70,0x65,0x63,0x74,0x20,0x49,0x45,0x20,0x2D,0x2D,0x3E,0x0D,0x0A,0x09,0x09,0x76 +,0x61,0x72,0x20,0x61,0x20,0x3D,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x2E +,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x28,0x27,0x61 +,0x27,0x29,0x3B,0x0D,0x0A,0x09,0x09,0x61,0x2E,0x68,0x72,0x65,0x66,0x20,0x3D,0x20 +,0x55,0x52,0x4C,0x2E,0x63,0x72,0x65,0x61,0x74,0x65,0x4F,0x62,0x6A,0x65,0x63,0x74 +,0x55,0x52,0x4C,0x28,0x62,0x6C,0x6F,0x62,0x5F,0x6F,0x62,0x6A,0x29,0x3B,0x0D,0x0A +,0x09,0x09,0x61,0x2E,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65 +,0x28,0x27,0x64,0x6F,0x77,0x6E,0x6C,0x6F,0x61,0x64,0x27,0x2C,0x20,0x27,0x63,0x6F +,0x6D,0x6D,0x5F,0x6C,0x6F,0x67,0x2E,0x74,0x78,0x74,0x27,0x29,0x3B,0x0D,0x0A,0x09 +,0x09,0x61,0x2E,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6E,0x74 +,0x28,0x6E,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6F,0x6D,0x45,0x76,0x65,0x6E,0x74 +,0x28,0x27,0x63,0x6C,0x69,0x63,0x6B,0x27,0x29,0x29,0x3B,0x0D,0x0A,0x09,0x7D,0x0D +,0x0A,0x7D,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F,0x73,0x63,0x72,0x69,0x70,0x74,0x3E,0x0D +,0x0A,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74 +,0x6D,0x6C,0x3E,0x0D,0x0A +}; + +static const char web_top_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x54,0x6F,0x70 +,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x74,0x69,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C +,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D,0x65,0x73,0x65 +,0x74,0x20,0x63,0x6F,0x6C,0x73,0x3D,0x22,0x32,0x30,0x25,0x2C,0x38,0x30,0x25,0x22 +,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D,0x65,0x20,0x73,0x72,0x63,0x3D,0x22,0x6D +,0x65,0x6E,0x75,0x2E,0x68,0x74,0x6D,0x22,0x3E,0x0D,0x0A,0x3C,0x66,0x72,0x61,0x6D +,0x65,0x20,0x73,0x72,0x63,0x3D,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x68,0x74 +,0x6D,0x22,0x20,0x6E,0x61,0x6D,0x65,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65 +,0x22,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x6E,0x6F,0x66,0x72,0x61,0x6D,0x65,0x73,0x3E +,0x0D,0x0A,0x3C,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x59,0x6F,0x75 +,0x20,0x63,0x61,0x6E,0x20,0x6E,0x6F,0x74,0x20,0x76,0x69,0x65,0x77,0x20,0x74,0x68 +,0x69,0x73,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x73,0x69,0x6E,0x63,0x65,0x20 +,0x74,0x68,0x65,0x20,0x66,0x72,0x61,0x6D,0x65,0x20,0x6F,0x66,0x20,0x75,0x6E,0x73 +,0x75,0x70,0x70,0x6F,0x72,0x74,0x65,0x64,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72 +,0x2E,0x3C,0x2F,0x70,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A +,0x3C,0x2F,0x6E,0x6F,0x66,0x72,0x61,0x6D,0x65,0x73,0x3E,0x0D,0x0A,0x3C,0x2F,0x66 +,0x72,0x61,0x6D,0x65,0x73,0x65,0x74,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C +,0x3E,0x0D,0x0A +}; + +static const char menu_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x47,0x52,0x2D +,0x50,0x45,0x41,0x43,0x48,0x20,0x4D,0x65,0x6E,0x75,0x3C,0x2F,0x74,0x69,0x74,0x6C +,0x65,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C,0x62,0x6F +,0x64,0x79,0x20,0x62,0x67,0x63,0x6F,0x6C,0x6F,0x72,0x3D,0x22,0x23,0x46,0x46,0x46 +,0x41,0x46,0x41,0x22,0x3E,0x0D,0x0A,0x3C,0x43,0x45,0x4E,0x54,0x45,0x52,0x3E,0x0D +,0x0A,0x3C,0x50,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22 +,0x34,0x22,0x3E,0x3C,0x42,0x3E,0x4D,0x65,0x6E,0x75,0x3C,0x2F,0x42,0x3E,0x3C,0x2F +,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x2F,0x50,0x3E,0x0D,0x0A,0x3C,0x2F,0x43,0x45,0x4E +,0x54,0x45,0x52,0x3E,0x0D,0x0A,0x0D,0x0A,0x3C,0x70,0x3E,0x0D,0x0A,0x3C,0x66,0x6F +,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61 +,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 +,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D +,0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61,0x72 +,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x54,0x6F +,0x70,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E +,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22 +,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22 +,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C +,0x61,0x20,0x68,0x72,0x65,0x66,0x3D,0x22,0x63,0x61,0x6D,0x65,0x72,0x61,0x2E,0x68 +,0x74,0x6D,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69 +,0x6B,0x61,0x65,0x22,0x3E,0x57,0x65,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x3C +,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74 +,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F +,0x6E,0x74,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61 +,0x6E,0x20,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23 +,0x30,0x30,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D +,0x22,0x69,0x32,0x63,0x5F,0x73,0x65,0x74,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61 +,0x72,0x67,0x65,0x74,0x3D,0x22,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x53 +,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79,0x20,0x49,0x32,0x43,0x3C,0x2F,0x61 +,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x66,0x6F,0x6E,0x74 +,0x20,0x73,0x69,0x7A,0x65,0x3D,0x22,0x34,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20 +,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30 +,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x61,0x20,0x68,0x72,0x65,0x66,0x3D,0x22,0x6C +,0x65,0x64,0x2E,0x68,0x74,0x6D,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3D,0x22 +,0x6B,0x69,0x72,0x69,0x6B,0x61,0x65,0x22,0x3E,0x4C,0x45,0x44,0x20,0x4F,0x6E,0x2F +,0x4F,0x66,0x66,0x3C,0x2F,0x61,0x3E,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F +,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64 +,0x79,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x0D,0x0A +}; + +static const char window_htm_tbl[] = { + 0x3C,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x3C,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A +,0x3C,0x6D,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2D,0x65,0x71,0x75,0x69,0x76 +,0x3D,0x22,0x43,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x2D,0x54,0x79,0x70,0x65,0x22,0x20 +,0x63,0x6F,0x6E,0x74,0x65,0x6E,0x74,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x68,0x74 +,0x6D,0x6C,0x3B,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3D,0x22,0x75,0x74,0x66 +,0x2D,0x38,0x22,0x3E,0x0D,0x0A,0x3C,0x74,0x69,0x74,0x6C,0x65,0x3E,0x47,0x52,0x2D +,0x50,0x45,0x41,0x43,0x48,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x3C,0x2F,0x74,0x69 +,0x74,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x65,0x61,0x64,0x3E,0x0D,0x0A,0x3C +,0x62,0x6F,0x64,0x79,0x3E,0x0D,0x0A,0x3C,0x70,0x3E,0x3C,0x66,0x6F,0x6E,0x74,0x20 +,0x73,0x69,0x7A,0x65,0x3D,0x22,0x31,0x35,0x22,0x3E,0x3C,0x73,0x70,0x61,0x6E,0x20 +,0x73,0x74,0x79,0x6C,0x65,0x3D,0x22,0x63,0x6F,0x6C,0x6F,0x72,0x3A,0x23,0x30,0x30 +,0x30,0x30,0x38,0x30,0x22,0x3E,0x3C,0x62,0x3E,0x47,0x52,0x2D,0x50,0x45,0x41,0x43 +,0x48,0x20,0x41,0x75,0x64,0x69,0x6F,0x2F,0x43,0x61,0x6D,0x65,0x72,0x61,0x20,0x53 +,0x68,0x69,0x65,0x6C,0x64,0x20,0x53,0x61,0x6D,0x70,0x6C,0x65,0x3C,0x2F,0x62,0x3E +,0x3C,0x2F,0x73,0x70,0x61,0x6E,0x3E,0x3C,0x2F,0x66,0x6F,0x6E,0x74,0x3E,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x54,0x68 +,0x69,0x73,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61 +,0x6D,0x20,0x75,0x73,0x69,0x6E,0x67,0x20,0x47,0x52,0x2D,0x50,0x45,0x41,0x43,0x48 +,0x20,0x61,0x6E,0x64,0x20,0x41,0x75,0x64,0x69,0x6F,0x2F,0x43,0x61,0x6D,0x65,0x72 +,0x61,0x20,0x53,0x68,0x69,0x65,0x6C,0x64,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x57 +,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x74,0x68 +,0x65,0x20,0x4D,0x65,0x6E,0x75,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x65 +,0x66,0x74,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x64 +,0x69,0x73,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x69,0x73 +,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x49,0x74,0x20,0x73,0x68,0x6F,0x77,0x73,0x20,0x74,0x68,0x65 +,0x20,0x6F,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x6F,0x66,0x20,0x65,0x61,0x63 +,0x68,0x20,0x6C,0x69,0x6E,0x6B,0x20,0x62,0x65,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72 +,0x3E,0x0D,0x0A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x73,0x74,0x79,0x6C,0x65,0x20 +,0x74,0x79,0x70,0x65,0x3D,0x22,0x74,0x65,0x78,0x74,0x2F,0x63,0x73,0x73,0x22,0x3E +,0x0D,0x0A,0x2E,0x74,0x61,0x62,0x6C,0x65,0x20,0x74,0x68,0x20,0x7B,0x0D,0x0A,0x20 +,0x20,0x62,0x61,0x63,0x6B,0x67,0x72,0x6F,0x75,0x6E,0x64,0x2D,0x63,0x6F,0x6C,0x6F +,0x72,0x3A,0x20,0x23,0x65,0x36,0x66,0x66,0x65,0x39,0x3B,0x0D,0x0A,0x7D,0x0D,0x0A +,0x3C,0x2F,0x73,0x74,0x79,0x6C,0x65,0x3E,0x0D,0x0A,0x3C,0x74,0x61,0x62,0x6C,0x65 +,0x20,0x63,0x6C,0x61,0x73,0x73,0x3D,0x22,0x74,0x61,0x62,0x6C,0x65,0x22,0x20,0x62 +,0x6F,0x72,0x64,0x65,0x72,0x3D,0x31,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A +,0x3C,0x74,0x68,0x3E,0x4C,0x69,0x6E,0x6B,0x73,0x3C,0x2F,0x74,0x68,0x3E,0x3C,0x74 +,0x68,0x3E,0x4F,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x3C,0x2F,0x74,0x68,0x3E,0x0D +,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74 +,0x64,0x3E,0x54,0x6F,0x70,0x20,0x50,0x61,0x67,0x65,0x3C,0x2F,0x74,0x64,0x3E,0x3C +,0x74,0x64,0x3E,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x74,0x75,0x72 +,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x74,0x6F,0x70,0x20,0x70,0x61,0x67 +,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74 +,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x57,0x65 +,0x62,0x20,0x43,0x61,0x6D,0x65,0x72,0x61,0x3C,0x2F,0x74,0x64,0x3E,0x3C,0x74,0x64 +,0x3E,0x49,0x74,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x74,0x68 +,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x61,0x63,0x71,0x75,0x69,0x72,0x65,0x64 +,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x6D,0x65,0x72,0x61,0x20,0x6F +,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6F,0x77,0x73,0x65 +,0x72,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x49,0x74,0x20,0x63,0x61,0x6E,0x20,0x62 +,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x61,0x74,0x20,0x61,0x20,0x73 +,0x6C,0x69,0x64,0x65,0x72,0x20,0x62,0x61,0x72,0x20,0x69,0x6E,0x20,0x22,0x57,0x61 +,0x69,0x74,0x20,0x74,0x69,0x6D,0x65,0x22,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20 +,0x74,0x69,0x6D,0x69,0x6E,0x67,0x20,0x6F,0x66,0x20,0x61,0x20,0x72,0x65,0x6E,0x65 +,0x77,0x61,0x6C,0x20,0x6F,0x66,0x20,0x61,0x20,0x63,0x61,0x6D,0x65,0x72,0x61,0x20 +,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2E,0x20,0x28,0x44,0x65,0x66,0x61,0x75,0x6C +,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x35,0x30,0x30,0x6D,0x73,0x2E,0x29,0x3C,0x2F +,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E +,0x0D,0x0A,0x3C,0x74,0x64,0x3E,0x53,0x65,0x74,0x74,0x69,0x6E,0x67,0x20,0x62,0x79 +,0x20,0x49,0x32,0x43,0x3C,0x2F,0x74,0x64,0x3E,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20 +,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x49,0x32,0x43,0x20,0x73,0x65 +,0x74,0x74,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x65,0x62 +,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x49 +,0x6E,0x20,0x49,0x32,0x43,0x20,0x63,0x6F,0x6D,0x6D,0x75,0x6E,0x69,0x63,0x61,0x74 +,0x69,0x6F,0x6E,0x2C,0x20,0x47,0x52,0x2D,0x50,0x45,0x41,0x43,0x48,0x20,0x65,0x78 +,0x65,0x63,0x75,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x74,0x74,0x69 +,0x6E,0x67,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x76,0x69,0x63 +,0x65,0x73,0x20,0x63,0x6F,0x6E,0x6E,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6F,0x20 +,0x49,0x32,0x43,0x5F,0x53,0x43,0x41,0x20,0x74,0x65,0x72,0x6D,0x69,0x6E,0x61,0x6C +,0x20,0x61,0x6E,0x64,0x20,0x49,0x32,0x43,0x5F,0x53,0x43,0x4C,0x20,0x74,0x65,0x72 +,0x6D,0x69,0x6E,0x61,0x6C,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x4F,0x6E,0x20,0x74 +,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20 +,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2C,0x20,0x47,0x52,0x2D,0x50,0x45,0x41,0x43 +,0x48,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x73,0x20,0x74,0x6F,0x20,0x72,0x65 +,0x67,0x69,0x73,0x74,0x65,0x72,0x73,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x64 +,0x65,0x76,0x69,0x63,0x65,0x73,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x59,0x6F,0x75 +,0x20,0x63,0x61,0x6E,0x20,0x73,0x65,0x6E,0x64,0x20,0x74,0x68,0x65,0x20,0x63,0x6F +,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65 +,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20,0x69,0x6E +,0x20,0x6F,0x6E,0x65,0x20,0x6F,0x66,0x20,0x74,0x77,0x6F,0x20,0x70,0x61,0x74,0x74 +,0x65,0x72,0x6E,0x73,0x20,0x62,0x65,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D +,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x44,0x69 +,0x72,0x65,0x63,0x74,0x6C,0x20,0x69,0x6E,0x70,0x75,0x74,0x22,0x20,0x6F,0x72,0x20 +,0x22,0x46,0x69,0x6C,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x22 +,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x63,0x72 +,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x61 +,0x6C,0x6F,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x20 +,0x61,0x66,0x74,0x65,0x72,0x20,0x79,0x6F,0x75,0x20,0x63,0x68,0x65,0x63,0x6B,0x20 +,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F +,0x6E,0x73,0x20,0x6F,0x66,0x20,0x65,0x61,0x63,0x68,0x20,0x64,0x65,0x76,0x69,0x63 +,0x65,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x54,0x68,0x65,0x20,0x66,0x6F,0x72,0x6D +,0x61,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E +,0x64,0x20,0x69,0x73,0x3A,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70 +,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x4D,0x65,0x74,0x68,0x6F,0x64,0x3A,0x49,0x32 +,0x43,0x20,0x61,0x64,0x64,0x72,0x2C,0x64,0x61,0x74,0x61,0x20,0x6C,0x65,0x6E,0x67 +,0x74,0x68,0x2C,0x64,0x61,0x74,0x61,0x31,0x2C,0x64,0x61,0x74,0x61,0x32,0x2C,0x64 +,0x61,0x74,0x61,0x33,0x2C,0x2E,0x2E,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x4D,0x65,0x74,0x68,0x6F,0x64,0x20,0x69,0x73,0x20,0x62,0x65 +,0x6C,0x6F,0x77,0x2E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B +,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x57,0x72,0x22 +,0x69,0x73,0x20,0x57,0x72,0x69,0x74,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F +,0x6E,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62 +,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x52,0x64,0x22,0x20,0x69,0x73 +,0x20,0x52,0x65,0x61,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x3C,0x62 +,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B +,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x57,0x72,0x4E,0x6F,0x70,0x22,0x20,0x69,0x73 +,0x20,0x57,0x72,0x69,0x74,0x65,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x28 +,0x4E,0x6F,0x20,0x53,0x54,0x4F,0x50,0x20,0x63,0x6F,0x6E,0x64,0x69,0x74,0x69,0x6F +,0x6E,0x29,0x3C,0x62,0x72,0x3E,0x0D,0x0A,0x26,0x6E,0x62,0x73,0x70,0x3B,0x26,0x6E +,0x62,0x73,0x70,0x3B,0x26,0x6E,0x62,0x73,0x70,0x3B,0x22,0x52,0x64,0x4E,0x6F,0x70 +,0x22,0x20,0x69,0x73,0x20,0x52,0x65,0x61,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69 +,0x6F,0x6E,0x28,0x4E,0x6F,0x20,0x53,0x54,0x4F,0x50,0x20,0x63,0x6F,0x6E,0x64,0x69 +,0x74,0x69,0x6F,0x6E,0x29,0x3C,0x62,0x72,0x3E,0x3C,0x2F,0x74,0x64,0x3E,0x0D,0x0A +,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x74,0x64 +,0x3E,0x4C,0x45,0x44,0x20,0x4F,0x6E,0x2F,0x4F,0x66,0x66,0x3C,0x2F,0x74,0x64,0x3E +,0x3C,0x74,0x64,0x3E,0x49,0x74,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73 +,0x20,0x4C,0x45,0x44,0x31,0x2C,0x20,0x4C,0x45,0x44,0x32,0x20,0x61,0x6E,0x64,0x20 +,0x4C,0x45,0x44,0x33,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x6F,0x67,0x67 +,0x6C,0x65,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65 +,0x20,0x77,0x65,0x62,0x20,0x62,0x72,0x6F,0x77,0x73,0x65,0x72,0x2E,0x3C,0x62,0x72 +,0x3E,0x0D,0x0A,0x45,0x61,0x63,0x68,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x69 +,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72 +,0x72,0x65,0x6E,0x74,0x20,0x4C,0x45,0x44,0x20,0x73,0x74,0x61,0x74,0x65,0x2E,0x3C +,0x62,0x72,0x3E,0x0D,0x0A,0x4C,0x45,0x44,0x20,0x4F,0x4E,0x20,0x61,0x6E,0x64,0x20 +,0x4F,0x46,0x46,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x65,0x73,0x20,0x77,0x68,0x65 +,0x6E,0x20,0x79,0x6F,0x75,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20 +,0x73,0x77,0x69,0x74,0x63,0x68,0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,0x74,0x68,0x65 +,0x20,0x4C,0x45,0x44,0x20,0x69,0x73,0x20,0x4F,0x4E,0x2C,0x20,0x74,0x68,0x65,0x20 +,0x63,0x6F,0x6C,0x6F,0x72,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x77,0x69 +,0x74,0x63,0x68,0x20,0x77,0x69,0x6C,0x6C,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20 +,0x74,0x68,0x65,0x20,0x4C,0x45,0x44,0x20,0x63,0x6F,0x6C,0x6F,0x72,0x2E,0x3C,0x2F +,0x74,0x64,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x72,0x3E,0x0D,0x0A,0x3C,0x2F,0x74,0x61 +,0x62,0x6C,0x65,0x3E,0x0D,0x0A,0x0D,0x0A,0x0D,0x0A,0x3C,0x2F,0x62,0x6F,0x64,0x79 +,0x3E,0x0D,0x0A,0x3C,0x2F,0x68,0x74,0x6D,0x6C,0x3E,0x0D,0x0A,0x0D,0x0A +}; +
--- a/main.cpp Thu Jul 13 04:19:35 2017 +0000 +++ b/main.cpp Tue Dec 25 09:57:54 2018 +0000 @@ -1,20 +1,19 @@ #include "mbed.h" -#include "DisplayBace.h" -#include "rtos.h" +#include "EasyAttach_CameraAndLCD.h" +#include "dcache-control.h" #include "JPEG_Converter.h" #include "HTTPServer.h" #include "mbed_rpc.h" #include "FATFileSystem.h" #include "RomRamBlockDevice.h" -#include "file_table.h" //Binary data of web pages +#include "SDBlockDevice_GRBoard.h" +#if defined(TARGET_RZ_A1H) +#include "file_table_peach.h" //Binary data of web pages +#elif defined(TARGET_GR_LYCHEE) +#include "file_table_lychee.h" //Binary data of web pages +#endif #include "i2c_setting.h" -#define VIDEO_CVBS (0) /* Analog Video Signal */ -#define VIDEO_CMOS_CAMERA (1) /* Digital Video Signal */ -#define VIDEO_YCBCR422 (0) -#define VIDEO_RGB888 (1) -#define VIDEO_RGB565 (2) - /**** User Selection *********/ /** Network setting **/ #define USE_DHCP (1) /* Select 0(static configuration) or 1(use DHCP) */ @@ -23,73 +22,75 @@ #define SUBNET_MASK ("255.255.255.0") /* Subnet mask */ #define DEFAULT_GATEWAY ("192.168.0.3") /* Default gateway */ #endif -#define NETWORK_TYPE (0) /* Select 0(EthernetInterface) or 1(GR_PEACH_WlanBP3595) */ -#if (NETWORK_TYPE == 1) +#define NETWORK_TYPE (0) /* Select 0(Ethernet), 1(BP3595), 2(ESP32 STA) ,3(ESP32 AP) */ +#if (NETWORK_TYPE >= 1) #define SCAN_NETWORK (1) /* Select 0(Use WLAN_SSID, WLAN_PSK, WLAN_SECURITY) or 1(To select a network using the terminal.) */ #define WLAN_SSID ("SSIDofYourAP") /* SSID */ #define WLAN_PSK ("PSKofYourAP") /* PSK(Pre-Shared Key) */ #define WLAN_SECURITY NSAPI_SECURITY_WPA_WPA2 /* NSAPI_SECURITY_NONE, NSAPI_SECURITY_WEP, NSAPI_SECURITY_WPA, NSAPI_SECURITY_WPA2 or NSAPI_SECURITY_WPA_WPA2 */ #endif -/** Camera setting **/ -#define VIDEO_INPUT_METHOD (VIDEO_CMOS_CAMERA) /* Select VIDEO_CVBS or VIDEO_CMOS_CAMERA */ -#define VIDEO_INPUT_FORMAT (VIDEO_YCBCR422) /* Select VIDEO_YCBCR422 or VIDEO_RGB888 or VIDEO_RGB565 */ -#define USE_VIDEO_CH (0) /* Select 0 or 1 If selecting VIDEO_CMOS_CAMERA, should be 0.) */ -#define VIDEO_PAL (0) /* Select 0(NTSC) or 1(PAL) If selecting VIDEO_CVBS, this parameter is not referenced.) */ +/** JPEG out setting **/ +#define JPEG_ENCODE_QUALITY (75) /* JPEG encode quality (min:1, max:75 (Considering the size of JpegBuffer, about 75 is the upper limit.)) */ +#define VFIELD_INT_SKIP_CNT (0) /* A guide for GR-LYCHEE. 0:60fps, 1:30fps, 2:20fps, 3:15fps, 4:12fps, 5:10fps */ /*****************************/ -#if USE_VIDEO_CH == (0) -#define VIDEO_INPUT_CH (DisplayBase::VIDEO_INPUT_CHANNEL_0) -#define VIDEO_INT_TYPE (DisplayBase::INT_TYPE_S0_VFIELD) -#else -#define VIDEO_INPUT_CH (DisplayBase::VIDEO_INPUT_CHANNEL_1) -#define VIDEO_INT_TYPE (DisplayBase::INT_TYPE_S1_VFIELD) -#endif - -#if ( VIDEO_INPUT_FORMAT == VIDEO_YCBCR422 || VIDEO_INPUT_FORMAT == VIDEO_RGB565 ) -#define DATA_SIZE_PER_PIC (2u) -#else -#define DATA_SIZE_PER_PIC (4u) -#endif - -/*! Frame buffer stride: Frame buffer stride should be set to a multiple of 32 or 128 - in accordance with the frame buffer burst transfer mode. */ -#define PIXEL_HW (320u) /* QVGA */ -#define PIXEL_VW (240u) /* QVGA */ - -#define VIDEO_BUFFER_STRIDE (((PIXEL_HW * DATA_SIZE_PER_PIC) + 31u) & ~31u) -#define VIDEO_BUFFER_HEIGHT (PIXEL_VW) - #if (NETWORK_TYPE == 0) #include "EthernetInterface.h" EthernetInterface network; #elif (NETWORK_TYPE == 1) - #include "LWIPBP3595Interface.h" - LWIPBP3595Interface network; - DigitalOut usb1en(P3_8); + #error "Not supported" +#elif (NETWORK_TYPE == 2) + #include "ESP32Interface.h" + #if defined(TARGET_RZ_A1H) + ESP32Interface network(P3_10, P3_9, P2_14, P2_15); + #elif defined(TARGET_GR_LYCHEE) + ESP32Interface network(P5_3, P3_14, P7_1, P0_1); + #endif +#elif (NETWORK_TYPE == 3) + #include "ESP32InterfaceAP.h" + #if defined(TARGET_RZ_A1H) + ESP32InterfaceAP network(P3_10, P3_9, P2_14, P2_15); + #elif defined(TARGET_GR_LYCHEE) + ESP32InterfaceAP network(P5_3, P3_14, P7_1, P0_1); + #endif #else #error NETWORK_TYPE error #endif /* NETWORK_TYPE */ -FATFileSystem fs("storage"); -RomRamBlockDevice romram_bd(512000, 512); -Serial pc(USBTX, USBRX); + +/* Video input and LCD layer 0 output */ +#define VIDEO_FORMAT (DisplayBase::VIDEO_FORMAT_YCBCR422) +#define GRAPHICS_FORMAT (DisplayBase::GRAPHICS_FORMAT_YCBCR422) +#define WR_RD_WRSWA (DisplayBase::WR_RD_WRSWA_32_16BIT) +#define DATA_SIZE_PER_PIC (2u) + +/*! Frame buffer stride: Frame buffer stride should be set to a multiple of 32 or 128 + in accordance with the frame buffer burst transfer mode. */ +#define VIDEO_PIXEL_HW (320u) /* QVGA */ +#define VIDEO_PIXEL_VW (240u) /* QVGA */ + +#define FRAME_BUFFER_STRIDE (((VIDEO_PIXEL_HW * DATA_SIZE_PER_PIC) + 31u) & ~31u) +#define FRAME_BUFFER_HEIGHT (VIDEO_PIXEL_VW) + +DisplayBase Display; #if defined(__ICCARM__) -#pragma data_alignment=16 -static uint8_t FrameBuffer_Video[VIDEO_BUFFER_STRIDE * VIDEO_BUFFER_HEIGHT]@ ".mirrorram"; //16 bytes aligned!; -#pragma data_alignment=4 +#pragma data_alignment=32 +static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * FRAME_BUFFER_HEIGHT]@ ".mirrorram"; #else -static uint8_t FrameBuffer_Video[VIDEO_BUFFER_STRIDE * VIDEO_BUFFER_HEIGHT]__attribute((section("NC_BSS"),aligned(16))); //16 bytes aligned!; +static uint8_t user_frame_buffer0[FRAME_BUFFER_STRIDE * FRAME_BUFFER_HEIGHT]__attribute((section("NC_BSS"),aligned(32))); #endif -static volatile int32_t vsync_count = 0; -#if VIDEO_INPUT_METHOD == VIDEO_CVBS -static volatile int32_t vfield_count = 1; -#endif + +FATFileSystem fs("storage"); +RomRamBlockDevice romram_bd(512000, 512); +SDBlockDevice_GRBoard sd; +Serial pc(USBTX, USBRX); +Thread sdConnectTask; + #if defined(__ICCARM__) -#pragma data_alignment=8 -static uint8_t JpegBuffer[2][1024 * 50]@ ".mirrorram"; //8 bytes aligned!; -#pragma data_alignment=4 +#pragma data_alignment=32 +static uint8_t JpegBuffer[2][1024 * 64]; #else -static uint8_t JpegBuffer[2][1024 * 50]__attribute((section("NC_BSS"),aligned(8))); //8 bytes aligned!; +static uint8_t JpegBuffer[2][1024 * 64]__attribute((aligned(32))); #endif static size_t jcu_encode_size[2]; static int image_change = 0; @@ -98,200 +99,22 @@ static int jcu_buf_index_write_done = 0; static int jcu_buf_index_read = 0; static int jcu_encoding = 0; +static int Vfield_Int_Cnt = 0; static char i2c_setting_str_buf[I2C_SETTING_STR_BUF_SIZE]; static void JcuEncodeCallBackFunc(JPEG_Converter::jpeg_conv_error_t err_code) { - jcu_buf_index_write_done = jcu_buf_index_write; - image_change = 1; - jcu_encoding = 0; -} - -static void IntCallbackFunc_Vfield(DisplayBase::int_type_t int_type) { - //Interrupt callback function -#if VIDEO_INPUT_METHOD == VIDEO_CVBS - if (vfield_count != 0) { - vfield_count = 0; - } else { - vfield_count = 1; -#else - { -#endif - JPEG_Converter::bitmap_buff_info_t bitmap_buff_info; - JPEG_Converter::encode_options_t encode_options; - - bitmap_buff_info.width = PIXEL_HW; - bitmap_buff_info.height = PIXEL_VW; - bitmap_buff_info.format = JPEG_Converter::WR_RD_YCbCr422; - bitmap_buff_info.buffer_address = (void *)FrameBuffer_Video; - - encode_options.encode_buff_size = sizeof(JpegBuffer[0]); - encode_options.p_EncodeCallBackFunc = &JcuEncodeCallBackFunc; - - jcu_encoding = 1; - if (jcu_buf_index_read == jcu_buf_index_write) { - if (jcu_buf_index_write != 0) { - jcu_buf_index_write = 0; - } else { - jcu_buf_index_write = 1; - } - } - jcu_encode_size[jcu_buf_index_write] = 0; - if (Jcu.encode(&bitmap_buff_info, JpegBuffer[jcu_buf_index_write], &jcu_encode_size[jcu_buf_index_write], &encode_options) != JPEG_Converter::JPEG_CONV_OK) { - jcu_encode_size[jcu_buf_index_write] = 0; - jcu_encoding = 0; - } - } -} - -static void IntCallbackFunc_Vsync(DisplayBase::int_type_t int_type) { - //Interrupt callback function for Vsync interruption - if (vsync_count > 0) { - vsync_count--; - } -} - -static void WaitVsync(const int32_t wait_count) { - //Wait for the specified number of times Vsync occurs - vsync_count = wait_count; - while (vsync_count > 0) { - /* Do nothing */ - } -} - -static void camera_start(void) { - DisplayBase::graphics_error_t error; - -#if VIDEO_INPUT_METHOD == VIDEO_CMOS_CAMERA - DisplayBase::video_ext_in_config_t ext_in_config; - PinName cmos_camera_pin[11] = { - /* data pin */ - P2_7, P2_6, P2_5, P2_4, P2_3, P2_2, P2_1, P2_0, - /* control pin */ - P10_0, /* DV0_CLK */ - P1_0, /* DV0_Vsync */ - P1_1 /* DV0_Hsync */ - }; -#endif - - /* Create DisplayBase object */ - DisplayBase Display; - - /* Graphics initialization process */ - error = Display.Graphics_init(NULL); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - -#if VIDEO_INPUT_METHOD == VIDEO_CVBS - error = Display.Graphics_Video_init( DisplayBase::INPUT_SEL_VDEC, NULL); - if( error != DisplayBase::GRAPHICS_OK ) { - printf("Line %d, error %d\n", __LINE__, error); - while(1); + if (err_code == JPEG_Converter::JPEG_CONV_OK) { + jcu_buf_index_write_done = jcu_buf_index_write; + image_change = 1; } - -#elif VIDEO_INPUT_METHOD == VIDEO_CMOS_CAMERA - /* MT9V111 camera input config */ - ext_in_config.inp_format = DisplayBase::VIDEO_EXTIN_FORMAT_BT601; /* BT601 8bit YCbCr format */ - ext_in_config.inp_pxd_edge = DisplayBase::EDGE_RISING; /* Clock edge select for capturing data */ - ext_in_config.inp_vs_edge = DisplayBase::EDGE_RISING; /* Clock edge select for capturing Vsync signals */ - ext_in_config.inp_hs_edge = DisplayBase::EDGE_RISING; /* Clock edge select for capturing Hsync signals */ - ext_in_config.inp_endian_on = DisplayBase::OFF; /* External input bit endian change on/off */ - ext_in_config.inp_swap_on = DisplayBase::OFF; /* External input B/R signal swap on/off */ - ext_in_config.inp_vs_inv = DisplayBase::SIG_POL_NOT_INVERTED; /* External input DV_VSYNC inversion control */ - ext_in_config.inp_hs_inv = DisplayBase::SIG_POL_INVERTED; /* External input DV_HSYNC inversion control */ - ext_in_config.inp_f525_625 = DisplayBase::EXTIN_LINE_525; /* Number of lines for BT.656 external input */ - ext_in_config.inp_h_pos = DisplayBase::EXTIN_H_POS_CRYCBY; /* Y/Cb/Y/Cr data string start timing to Hsync reference */ - ext_in_config.cap_vs_pos = 6; /* Capture start position from Vsync */ - ext_in_config.cap_hs_pos = 150; /* Capture start position form Hsync */ - ext_in_config.cap_width = 640; /* Capture width */ - ext_in_config.cap_height = 468u; /* Capture height Max 468[line] - Due to CMOS(MT9V111) output signal timing and VDC5 specification */ - error = Display.Graphics_Video_init( DisplayBase::INPUT_SEL_EXT, &ext_in_config); - if( error != DisplayBase::GRAPHICS_OK ) { - printf("Line %d, error %d\n", __LINE__, error); - while(1); - } - - /* MT9V111 camera input port setting */ - error = Display.Graphics_Dvinput_Port_Init(cmos_camera_pin, 11); - if( error != DisplayBase::GRAPHICS_OK ) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } -#endif - - /* Interrupt callback function setting (Vsync signal input to scaler 0) */ - error = Display.Graphics_Irq_Handler_Set(DisplayBase::INT_TYPE_S0_VI_VSYNC, 0, IntCallbackFunc_Vsync); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - /* Video capture setting (progressive form fixed) */ - error = Display.Video_Write_Setting( - VIDEO_INPUT_CH, -#if VIDEO_PAL == 0 - DisplayBase::COL_SYS_NTSC_358, -#else - DisplayBase::COL_SYS_PAL_443, -#endif - FrameBuffer_Video, - VIDEO_BUFFER_STRIDE, -#if VIDEO_INPUT_FORMAT == VIDEO_YCBCR422 - DisplayBase::VIDEO_FORMAT_YCBCR422, - DisplayBase::WR_RD_WRSWA_NON, -#elif VIDEO_INPUT_FORMAT == VIDEO_RGB565 - DisplayBase::VIDEO_FORMAT_RGB565, - DisplayBase::WR_RD_WRSWA_32_16BIT, -#else - DisplayBase::VIDEO_FORMAT_RGB888, - DisplayBase::WR_RD_WRSWA_32BIT, -#endif - PIXEL_VW, - PIXEL_HW - ); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - - /* Interrupt callback function setting (Field end signal for recording function in scaler 0) */ - error = Display.Graphics_Irq_Handler_Set(VIDEO_INT_TYPE, 0, IntCallbackFunc_Vfield); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - - /* Video write process start */ - error = Display.Video_Start (VIDEO_INPUT_CH); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - - /* Video write process stop */ - error = Display.Video_Stop (VIDEO_INPUT_CH); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - - /* Video write process start */ - error = Display.Video_Start (VIDEO_INPUT_CH); - if (error != DisplayBase::GRAPHICS_OK) { - printf("Line %d, error %d\n", __LINE__, error); - while (1); - } - - /* Wait vsync to update resister */ - WaitVsync(1); + jcu_encoding = 0; } static int snapshot_req(const char ** pp_data) { int encode_size; while ((jcu_encoding == 1) || (image_change == 0)) { - Thread::wait(1); + ThisThread::sleep_for(1); } jcu_buf_index_read = jcu_buf_index_write_done; image_change = 0; @@ -302,6 +125,56 @@ return encode_size; } +static void IntCallbackFunc_Vfield(DisplayBase::int_type_t int_type) { + if (Vfield_Int_Cnt < VFIELD_INT_SKIP_CNT) { + Vfield_Int_Cnt++; + return; + } + Vfield_Int_Cnt = 0; + + //Interrupt callback function + if (jcu_encoding == 0) { + JPEG_Converter::bitmap_buff_info_t bitmap_buff_info; + JPEG_Converter::encode_options_t encode_options; + + bitmap_buff_info.width = VIDEO_PIXEL_HW; + bitmap_buff_info.height = VIDEO_PIXEL_VW; + bitmap_buff_info.format = JPEG_Converter::WR_RD_YCbCr422; + bitmap_buff_info.buffer_address = (void *)user_frame_buffer0; + + encode_options.encode_buff_size = sizeof(JpegBuffer[0]); + encode_options.p_EncodeCallBackFunc = &JcuEncodeCallBackFunc; + encode_options.input_swapsetting = JPEG_Converter::WR_RD_WRSWA_32_16_8BIT; + + jcu_encoding = 1; + if (jcu_buf_index_read == jcu_buf_index_write) { + jcu_buf_index_write ^= 1; // toggle + } + jcu_encode_size[jcu_buf_index_write] = 0; + dcache_invalid(JpegBuffer[jcu_buf_index_write], sizeof(JpegBuffer[0])); + if (Jcu.encode(&bitmap_buff_info, JpegBuffer[jcu_buf_index_write], + &jcu_encode_size[jcu_buf_index_write], &encode_options) != JPEG_Converter::JPEG_CONV_OK) { + jcu_encode_size[jcu_buf_index_write] = 0; + jcu_encoding = 0; + } + } +} + +static void Start_Video_Camera(void) { + // Video capture setting (progressive form fixed) + Display.Video_Write_Setting( + DisplayBase::VIDEO_INPUT_CHANNEL_0, + DisplayBase::COL_SYS_NTSC_358, + (void *)user_frame_buffer0, + FRAME_BUFFER_STRIDE, + VIDEO_FORMAT, + WR_RD_WRSWA, + VIDEO_PIXEL_VW, + VIDEO_PIXEL_HW + ); + EasyAttach_CameraStart(Display, DisplayBase::VIDEO_INPUT_CHANNEL_0); +} + static void TerminalWrite(Arguments* arg, Reply* r) { if ((arg != NULL) && (r != NULL)) { for (int i = 0; i < arg->argc; i++) { @@ -393,7 +266,7 @@ } } -#if (SCAN_NETWORK == 1) +#if (SCAN_NETWORK == 1) && (NETWORK_TYPE != 3) static const char *sec2str(nsapi_security_t sec) { switch (sec) { case NSAPI_SECURITY_NONE: @@ -416,15 +289,20 @@ WiFiAccessPoint *ap; bool ret = false; int i; - int count = 8; /* Limit number of network arbitrary to 8 */ + int count = 10; /* Limit number of network arbitrary to 10 */ printf("Scan:\r\n"); ap = new WiFiAccessPoint[count]; + if (ap == NULL) { + printf("memory error\r\n"); + return 0; + } count = wifi->scan(ap, count); for (i = 0; i < count; i++) { - printf("No.%d Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\r\n", i, ap[i].get_ssid(), - sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2], - ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel()); + printf("No.%d Network: %s secured: %s BSSID: %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx RSSI: %hhd Ch: %hhd\r\n", + i, ap[i].get_ssid(), sec2str(ap[i].get_security()), + ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2], ap[i].get_bssid()[3], + ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel()); } printf("%d networks available.\r\n", count); @@ -467,7 +345,6 @@ break; } } - printf("connecting...\r\n"); wifi->set_credentials(ap[select_no].get_ssid(), pass, ap[select_no].get_security()); ret = true; } @@ -479,28 +356,53 @@ } #endif +static void sd_connect_task(void) { + int storage_type = 0; + + while (1) { + if (storage_type == 0) { + if (sd.connect()) { + fs.unmount(); + fs.mount(&sd); + storage_type = 1; + printf("SDBlockDevice\r\n"); + } + } else { + if (sd.connected() == false) { + fs.unmount(); + fs.mount(&romram_bd); + storage_type = 0; + printf("RomRamBlockDevice\r\n"); + } + } + ThisThread::sleep_for(250); + } +} + int main(void) { printf("********* PROGRAM START ***********\r\n"); - /* Please enable this line when performing the setting from the Terminal side. */ -// Thread thread(SetI2CfromTerm, NULL, osPriorityBelowNormal, DEFAULT_STACK_SIZE); + mount_romramfs(); //RomRamFileSystem Mount + + sdConnectTask.start(&sd_connect_task); - mount_romramfs(); //RomRamFileSystem Mount - camera_start(); //Camera Start + EasyAttach_Init(Display); + Jcu.SetQuality(JPEG_ENCODE_QUALITY); + // Interrupt callback function setting (Field end signal for recording function in scaler 0) + Display.Graphics_Irq_Handler_Set(DisplayBase::INT_TYPE_S0_VFIELD, 0, IntCallbackFunc_Vfield); + Start_Video_Camera(); RPC::add_rpc_class<RpcDigitalOut>(); - RPC::construct<RpcDigitalOut, PinName, const char*>(LED1, "led1"); - RPC::construct<RpcDigitalOut, PinName, const char*>(LED2, "led2"); - RPC::construct<RpcDigitalOut, PinName, const char*>(LED3, "led3"); RPCFunction rpcFunc(TerminalWrite, "TerminalWrite"); RPCFunction rpcSetI2C(SetI2CfromWeb, "SetI2CfromWeb"); -#if (NETWORK_TYPE == 1) +#if defined(TARGET_RZ_A1H) && (NETWORK_TYPE == 1) //Audio Camera Shield USB1 enable for WlanBP3595 + DigitalOut usb1en(P3_8); usb1en = 1; //Outputs high level - Thread::wait(5); + ThisThread::sleep_for(5); usb1en = 0; //Outputs low level - Thread::wait(5); + ThisThread::sleep_for(5); #endif printf("Network Setting up...\r\n"); @@ -508,16 +410,18 @@ network.set_dhcp(false); if (network.set_network(IP_ADDRESS, SUBNET_MASK, DEFAULT_GATEWAY) != 0) { //for Static IP Address (IPAddress, NetMasks, Gateway) printf("Network Set Network Error \r\n"); - return -1; } #endif -#if (NETWORK_TYPE == 1) -#if (SCAN_NETWORK == 1) + +#if (NETWORK_TYPE >= 1) +#if (SCAN_NETWORK == 1) && (NETWORK_TYPE != 3) while (!scan_network(&network)); #else network.set_credentials(WLAN_SSID, WLAN_PSK, WLAN_SECURITY); #endif #endif + + printf("\r\nConnecting...\r\n"); if (network.connect() != 0) { printf("Network Connect Error \r\n"); return -1;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-gr-libs.lib Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,1 @@ +https://github.com/d-kato/mbed-gr-libs/#e8e5994d4ac5f76c13407bec22821499e6bf0ec1
--- a/mbed-os.lib Thu Jul 13 04:19:35 2017 +0000 +++ b/mbed-os.lib Tue Dec 25 09:57:54 2018 +0000 @@ -1,1 +1,1 @@ -https://github.com/ARMmbed/mbed-os/#8d21974ba35e04c4854e5090c0f8283171664175 +https://github.com/ARMmbed/mbed-os/#2fd0c5cfbd83fce62da6308f9d64c0ab64e1f0d6
--- a/mbed-rpc.lib Thu Jul 13 04:19:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://developer.mbed.org/teams/mbed/code/mbed-rpc/#33e21ae4d434
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/Arguments.cpp Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,142 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "mbed.h" +#include "Arguments.h" +#include "pinmap.h" + +using namespace std; + +namespace mbed { + +Arguments::Arguments(const char* rqs) { + obj_name = NULL; + method_name = NULL; + argc = 0; + + // This copy can be removed if we can assume the request string is + // persistent and writable for the duration of the call + strcpy(request, rqs); + + // Initial '/' + char* p = request; + if (*p != '/') return; + p++; + + // Object Name + p = search_arg(&obj_name, p, '/'); + if (p == NULL) return; + + // Method Name + p = search_arg(&method_name, p, ' '); + if (p == NULL) return; + + // Arguments + while (true) { + argv[argc] = NULL; + p = search_arg(&argv[argc], p, ' '); + if (argv[argc] != NULL) argc++; + if (p == NULL) break; + } + + index = -1; +} + +char* Arguments::search_arg(char **arg, char *p, char next_sep) { + char *s = p; + while (true) { + if ((*p == '/') || (*p == ' ') || (*p == '\n') || (*p == '\0')) break; + p++; + } + if (p == s) return NULL; + *arg = s; + char separator = *p; + *p = '\0'; + p++; + return (separator == next_sep) ? (p) : (NULL); +} + +template<> PinName Arguments::getArg<PinName>(void) { + index++; + return parse_pins(argv[index]); +} + +template<> int Arguments::getArg<int>(void) { + index++; + char *pEnd; + return strtol(argv[index], &pEnd, 10); +} + +template<> const char* Arguments::getArg<const char*>(void) { + index++; + return argv[index]; +} + +template<> char Arguments::getArg<char>(void) { + index++; + return *argv[index]; +} + +template<> double Arguments::getArg<double>(void) { + index++; + return atof(argv[index]); +} + +template<> float Arguments::getArg<float>(void) { + index++; + return atof(argv[index]); +} + +Reply::Reply(char* r) { + first = true; + *r = '\0'; + reply = r; +} + +void Reply::separator(void) { + if (first) { + first = false; + } else { + *reply = ' '; reply++; + } +} + +template<> void Reply::putData<const char*>(const char* s) { + separator(); + reply += sprintf(reply, "%s", s); +} + +template<> void Reply::putData<char*>(char* s) { + separator(); + reply += sprintf(reply, "%s", s); +} + +template<> void Reply::putData<char>(char c) { + separator(); + reply += sprintf(reply, "%c", c); +} + +template<> void Reply::putData<int>(int v) { + separator(); + reply += sprintf(reply, "%d", v); +} + +template<> void Reply::putData<float>(float f) { + separator(); + reply += sprintf(reply, "%.17g", f); +} + +} // namespace mbed +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/Arguments.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,65 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef ARGUMENTS_H +#define ARGUMENTS_H + +#include "platform.h" +#include "parse_pins.h" + +namespace mbed { + +#define RPC_MAX_STRING 128 +#define RPC_MAX_ARGS 16 + +class Arguments { +public: + Arguments(const char* rqs); + + template<typename Arg> + Arg getArg(void); + + char *obj_name; + char *method_name; + + int argc; + char* argv[RPC_MAX_ARGS]; + +private: + // This copy can be removed if we can assume the request string is + // persistent and writable for the duration of the call + char request[RPC_MAX_STRING]; + int index; + char* search_arg(char **arg, char *p, char next_sep); +}; + +class Reply { +public: + Reply(char* r); + + template<typename Data> + void putData(Data d); + +private: + void separator(void); + bool first; + char* reply; +}; + + +} // Namespace mbed + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/RPCFunction.cpp Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,43 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "RPCFunction.h" + +namespace mbed { + +//Custom rpc method caller for execute so that the string will not be delimited by anything +void rpc_method_caller_run(RPC *this_ptr, Arguments *arguments, Reply *result) { + ((static_cast<RPCFunction*>(this_ptr))->run)(arguments, result); +} + +RPCFunction::RPCFunction(void (*f)(Arguments*, Reply*), const char* name) : RPC(name) { + _ftr = f; +} + +//Just run the attached function using the string thats in private memory - or just using null values, +void RPCFunction::run(Arguments* args, Reply* r) { + (*_ftr)(args, r); +} + +const rpc_method *RPCFunction::get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"run", rpc_method_caller_run }, //Run using custom caller, all characters accepted in string + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; +} + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/RPCFunction.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,60 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef RPCFUNCTION_RPC +#define RPCFUNCTION_RPC + +#include "rpc.h" +#define STR_LEN 64 + +namespace mbed { + +/** + * + *Class to call custom functions over RPC + * + */ +class RPCFunction: public RPC { +public: + /** + * Constructor + * + *@param f Pointer to the function to call. the function must be of the form void foo(char * input, char * output) + *@param name The name of this object + */ + RPCFunction(void (*f)(Arguments*, Reply*), const char* = NULL); + + /** + *run + * + *Calls the attached function passing the string in but doesn't return the result. + *@param str The string to be passed into the attached function. This string can consist of any ASCII characters apart from escape codes. The usual limtations on argument content for RPC strings has been removed + *@return A string output from the function + */ + void run(Arguments* args, Reply* r); + + virtual const struct rpc_method *get_rpc_methods(); + +private: + void (*_ftr)(Arguments*, Reply*); + + char _input[STR_LEN]; + char _output[STR_LEN]; +}; + +} + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/RPCVariable.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,88 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef RPCVARIABLE_H_ +#define RPCVARIABLE_H_ + +#include "rpc.h" + +namespace mbed { + +/** + *Class to read and set an attached variable using the RPC + * + */ +template<class T> +class RPCVariable: public RPC { +public: + /** + * Constructor + * + *@param ptr Pointer to the variable to make accessible over RPC. Any type of + *variable can be connected + *@param name The name of that this object will be over RPC + */ + template<class A> + RPCVariable(A * ptr, const char * name) : RPC(name) { + _ptr = ptr; + } + /** + *Read the variable over RPC. + * + *@return The value of the variable + */ + T read() { + return (*_ptr); + } + /** + *Write a value to the variable over RPC + * + *@param The value to be written to the attached variable. + */ + void write(T value) { + *_ptr = value; + } + + virtual const struct rpc_method *get_rpc_methods(); + static struct rpc_class *get_rpc_class(); + +private: + T * _ptr; +}; + +template<class T> +const rpc_method *RPCVariable<T>::get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"read" , rpc_method_caller<T, RPCVariable, &RPCVariable::read> }, + {"write", rpc_method_caller<RPCVariable, T, &RPCVariable::write> }, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; +} + +template<class T> +rpc_class *RPCVariable<T>::get_rpc_class() { + static const rpc_function funcs[] = { + "new", rpc_function_caller<const char*, T, const char*, &RPC::construct<RPCVariable, T, const char*> > , + RPC_METHOD_END + }; + static rpc_class c = {"RPCVariable", funcs, NULL}; + return &c; +} + +} + +#endif //RPCVARIABLE_H_ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/RpcClasses.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,309 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBED_CLASSES_H +#define MBED_CLASSES_H + +#include "rpc.h" + +namespace mbed { + +class RpcDigitalOut : public RPC { +public: + RpcDigitalOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {} + + void write(int a0) {o.write(a0);} + int read(void) {return o.read();} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"write", rpc_method_caller<RpcDigitalOut, int, &RpcDigitalOut::write>}, + {"read", rpc_method_caller<int, RpcDigitalOut, &RpcDigitalOut::read>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalOut, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"DigitalOut", funcs, NULL}; + return &c; + } +private: + DigitalOut o; +}; + +class RpcDigitalIn : public RPC { +public: + RpcDigitalIn(PinName a0, const char *name=NULL) : RPC(name), o(a0) {} + + int read(void) {return o.read();} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"read", rpc_method_caller<int, RpcDigitalIn, &RpcDigitalIn::read>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalIn, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"DigitalIn", funcs, NULL}; + return &c; + } +private: + DigitalIn o; +}; + +class RpcDigitalInOut : public RPC { +public: + RpcDigitalInOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {} + + int read(void) {return o.read();} + void write(int a0) {o.write(a0);} + void input(void) {o.input();} + void output(void) {o.output();} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"read", rpc_method_caller<int, RpcDigitalInOut, &RpcDigitalInOut::read>}, + {"write", rpc_method_caller<RpcDigitalInOut, int, &RpcDigitalInOut::write>}, + {"input", rpc_method_caller<RpcDigitalInOut, &RpcDigitalInOut::input>}, + {"output", rpc_method_caller<RpcDigitalInOut, &RpcDigitalInOut::output>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcDigitalInOut, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"DigitalInOut", funcs, NULL}; + return &c; + } +private: + DigitalInOut o; +}; + +#if DEVICE_ANALOGIN +class RpcAnalogIn : public RPC { +public: + RpcAnalogIn(PinName a0, const char *name=NULL) : RPC(name), o(a0) {} + + float read(void) {return o.read();} + unsigned short read_u16(void) {return o.read_u16();} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"read", rpc_method_caller<float, RpcAnalogIn, &RpcAnalogIn::read>}, + {"read_u16", rpc_method_caller<unsigned short, RpcAnalogIn, &RpcAnalogIn::read_u16>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcAnalogIn, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"AnalogIn", funcs, NULL}; + return &c; + } +private: + AnalogIn o; +}; +#endif + +#if DEVICE_ANALOGOUT +class RpcAnalogOut : public RPC { +public: + RpcAnalogOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {} + + float read(void) {return o.read();} + void write(float a0) {o.write(a0);} + void write_u16(unsigned short a0) {o.write_u16(a0);} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"read", rpc_method_caller<float, RpcAnalogOut, &RpcAnalogOut::read>}, + {"write", rpc_method_caller<RpcAnalogOut, float, &RpcAnalogOut::write>}, + {"write_u16", rpc_method_caller<RpcAnalogOut, unsigned short, &RpcAnalogOut::write_u16>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcAnalogOut, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"AnalogOut", funcs, NULL}; + return &c; + } +private: + AnalogOut o; +}; +#endif + +#if DEVICE_PWMOUT +class RpcPwmOut : public RPC { +public: + RpcPwmOut(PinName a0, const char *name=NULL) : RPC(name), o(a0) {} + + float read(void) {return o.read();} + void write(float a0) {o.write(a0);} + void period(float a0) {o.period(a0);} + void period_ms(int a0) {o.period_ms(a0);} + void pulsewidth(float a0) {o.pulsewidth(a0);} + void pulsewidth_ms(int a0) {o.pulsewidth_ms(a0);} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"read", rpc_method_caller<float, RpcPwmOut, &RpcPwmOut::read>}, + {"write", rpc_method_caller<RpcPwmOut, float, &RpcPwmOut::write>}, + {"period", rpc_method_caller<RpcPwmOut, float, &RpcPwmOut::period>}, + {"period_ms", rpc_method_caller<RpcPwmOut, int, &RpcPwmOut::period_ms>}, + {"pulsewidth", rpc_method_caller<RpcPwmOut, float, &RpcPwmOut::pulsewidth>}, + {"pulsewidth_ms", rpc_method_caller<RpcPwmOut, int, &RpcPwmOut::pulsewidth_ms>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, const char*, &RPC::construct<RpcPwmOut, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"PwmOut", funcs, NULL}; + return &c; + } +private: + PwmOut o; +}; +#endif + +#if DEVICE_SPI +class RpcSPI : public RPC { +public: + RpcSPI(PinName a0, PinName a1, PinName a2, const char *name=NULL) : RPC(name), o(a0, a1, a2) {} + + void format(int a0, int a1) {o.format(a0, a1);} + void frequency(int a0) {o.frequency(a0);} + int write(int a0) {return o.write(a0);} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"format", rpc_method_caller<RpcSPI, int, int, &RpcSPI::format>}, + {"frequency", rpc_method_caller<RpcSPI, int, &RpcSPI::frequency>}, + {"write", rpc_method_caller<int, RpcSPI, int, &RpcSPI::write>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, PinName, PinName, const char*, &RPC::construct<RpcSPI, PinName, PinName, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"SPI", funcs, NULL}; + return &c; + } +private: + SPI o; +}; +#endif + +#if DEVICE_SERIAL +class RpcSerial : public RPC { +public: + RpcSerial(PinName a0, PinName a1, const char *name=NULL) : RPC(name), o(a0, a1) {} + + void baud(int a0) {o.baud(a0);} + int readable(void) {return o.readable();} + int writeable(void) {return o.writeable();} + int putc(int a0) {return o.putc(a0);} + int getc(void) {return o.getc();} + int puts(const char * a0) {return o.puts(a0);} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"baud", rpc_method_caller<RpcSerial, int, &RpcSerial::baud>}, + {"readable", rpc_method_caller<int, RpcSerial, &RpcSerial::readable>}, + {"writeable", rpc_method_caller<int, RpcSerial, &RpcSerial::writeable>}, + {"putc", rpc_method_caller<int, RpcSerial, int, &RpcSerial::putc>}, + {"getc", rpc_method_caller<int, RpcSerial, &RpcSerial::getc>}, + {"puts", rpc_method_caller<int, RpcSerial, const char *, &RpcSerial::puts>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, PinName, PinName, const char*, &RPC::construct<RpcSerial, PinName, PinName, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"Serial", funcs, NULL}; + return &c; + } +private: + Serial o; +}; +#endif + +class RpcTimer : public RPC { +public: + RpcTimer(const char *name=NULL) : RPC(name), o() {} + + void start(void) {o.start();} + void stop(void) {o.stop();} + void reset(void) {o.reset();} + float read(void) {return o.read();} + int read_ms(void) {return o.read_ms();} + int read_us(void) {return o.read_us();} + + virtual const struct rpc_method *get_rpc_methods() { + static const rpc_method rpc_methods[] = { + {"start", rpc_method_caller<RpcTimer, &RpcTimer::start>}, + {"stop", rpc_method_caller<RpcTimer, &RpcTimer::stop>}, + {"reset", rpc_method_caller<RpcTimer, &RpcTimer::reset>}, + {"read", rpc_method_caller<float, RpcTimer, &RpcTimer::read>}, + {"read_ms", rpc_method_caller<int, RpcTimer, &RpcTimer::read_ms>}, + {"read_us", rpc_method_caller<int, RpcTimer, &RpcTimer::read_us>}, + RPC_METHOD_SUPER(RPC) + }; + return rpc_methods; + } + static struct rpc_class *get_rpc_class() { + static const rpc_function funcs[] = { + {"new", rpc_function_caller<const char*, const char*, &RPC::construct<RpcTimer, const char*> >}, + RPC_METHOD_END + }; + static rpc_class c = {"Timer", funcs, NULL}; + return &c; + } +private: + Timer o; +}; + +} + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/mbed_rpc.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,26 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBED_RPC_H +#define MBED_RPC_H + +#include "rpc.h" +#include "RPCVariable.h" +#include "RPCFunction.h" +#include "RpcClasses.h" +#include "Arguments.h" + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/parse_pins.cpp Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,120 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "port_api.h" + +namespace mbed { + +PinName parse_pins(const char *str) { +#if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) + static const PinName pin_names[] = {p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 + , p15, p16, p17, p18, p19, p20, p21, p22, p23 + , p24, p25, p26, p27, p28, p29, p30}; +#elif defined(TARGET_LPC1114) + static const PinName pin_names[] = {dp1, dp2, dp4, dp5, dp6, dp9, dp10, dp11 + , dp13, dp14, dp15, dp16, dp17, dp18, dp23 + , dp24, dp25, dp26, dp27, dp28}; +#elif defined(TARGET_LPC4088) + static const PinName pin_names[] = {NC, NC, NC, NC, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 + , p15, p16, p17, p18, p19, p20, NC, NC, p23 + , p24, p25, p26, p27, p28, p29, p30, p31, p32 + , p33, p34, NC, NC, p37, p38, p39, NC, NC, NC, NC, NC, NC, NC}; +#elif defined(TARGET_LPC4088_DM) + static const PinName pin_names[] = {p1, p2, p3, p4, NC, NC, p7, p8, p9, p10, p11, p12, p13, p14 + , p15, p16, p17, p18, p19, p20, p21, p22, p23 + , p24, p25, p26, NC, NC, p29, p30, NC, NC + , NC, NC, NC, NC, NC, NC, NC, NC, p41, p42, p43, p44, p45, p46}; +#endif + +#if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) || defined(TARGET_LPC812) || defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_LPC1114) || defined(TARGET_RZ_A1H) || defined(TARGET_VK_RZ_A1H) || defined(TARGET_GR_LYCHEE) + if (str[0] == 'P') { // Pn_n + uint32_t port = str[1] - '0'; + uint32_t pin = str[3] - '0'; // Pn_n + uint32_t pin2 = str[4] - '0'; // Pn_nn + if (pin2 <= 9) { + pin = pin * 10 + pin2; + } + return port_pin((PortName)port, pin); + +#elif defined(TARGET_KL25Z) || defined(TARGET_KL27Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_K22F) || defined(TARGET_K64F) + if (str[0] == 'P' && str[1] == 'T') { // PTxn + uint32_t port = str[2] - 'A'; + uint32_t pin = str[3] - '0'; // PTxn + uint32_t pin2 = str[4] - '0'; // PTxnn + + if (pin2 <= 9) { + pin = pin * 10 + pin2; + } + return port_pin((PortName)port, pin); + +#elif defined(TARGET_NUCLEO_F072RB) || defined(TARGET_NUCLEO_F303K8) || defined(TARGET_NUCLEO_F411RE) + if (str[0] == 'P') { // PX_XX e.g.PA_2 PC_15 + uint32_t port = str[1] - 'A'; + uint32_t pin = str[3] - '0'; + uint32_t pin2 = str[4] - '0'; + + if (pin2 <= 9) { + pin = pin * 10 + pin2; + } + return port_pin((PortName)port, pin); + +#endif + + + +#if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) + } else if (str[0] == 'p') { // pn + uint32_t pin = str[1] - '0'; // pn + uint32_t pin2 = str[2] - '0'; // pnn + if (pin2 <= 9) { + pin = pin * 10 + pin2; + } + if (pin < 5 || pin > 30) { + return NC; + } + return pin_names[pin - 5]; +#elif defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) + } else if (str[0] == 'p') { // pn + uint32_t pin = str[1] - '0'; // pn + uint32_t pin2 = str[2] - '0'; // pnn + if (pin2 <= 9) { + pin = pin * 10 + pin2; + } + if (pin < 1 || pin > 46) { + return NC; + } + return pin_names[pin - 1]; +#endif + } else if (str[0] == 'L') { // LEDn + switch (str[3]) { + case '1' : return LED1; + case '2' : return LED2; + case '3' : return LED3; + case '4' : return LED4; + } + + } else if (str[0] == 'U') { // USB?X + switch (str[3]) { + case 'T' : return USBTX; + case 'R' : return USBRX; + } + } + + return NC; +} +} + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/parse_pins.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,28 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBED_PINMAP_H +#define MBED_PINMAP_H + +#include "PinNames.h" + +namespace mbed { + +PinName parse_pins(const char *str); + +} + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/rpc.cpp Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,192 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "rpc.h" + +using namespace std; + +namespace mbed { + +RPC::RPC(const char *name) { + _from_construct = false; + if (name != NULL) { + _name = new char[strlen(name) + 1]; + strcpy(_name, name); + } else { + _name = new char[12]; + sprintf(_name, "obj%p", this); + } + // put this object at head of the list + _next = _head; + _head = this; +} + +RPC::~RPC() { + // remove this object from the list + if (_head == this) { // first in the list, so just drop me + _head = _next; + } else { // find the object before me, then drop me + RPC* p = _head; + while (p->_next != this) { + p = p->_next; + } + p->_next = _next; + } +} + +const rpc_method *RPC::get_rpc_methods() { + static const rpc_method methods[] = { + {"delete", rpc_method_caller<RPC, &RPC::delete_self> }, + RPC_METHOD_END + }; + return methods; +} + +RPC *RPC::lookup(const char *name) { + size_t len = strlen(name); + for (RPC *p = _head; p != NULL; p = p->_next) { + /* Check that p->_name matches name and is the correct length */ + if (strncmp(p->_name, name, len) == 0 && (strlen(p->_name) == len)) { + return p; + } + } + return NULL; +} + +void RPC::delete_self() { + delete[] _name; + if (_from_construct) { + delete this; + } +} + +void RPC::list_objs(Arguments *args, Reply *result) { + for (RPC *ptr = RPC::_head; ptr != NULL; ptr = ptr->_next) { + if (ptr->_from_construct) { + result->putData<const char*>(ptr->_name); + } + } +} + +void RPC::clear(Arguments*, Reply*) { + RPC *ptr = RPC::_head; + while (ptr != NULL) { + RPC *tmp = ptr; + ptr = ptr->_next; + delete[] tmp->_name; + if (tmp->_from_construct) { + delete tmp; + } + } +} + +const rpc_function RPC::_RPC_funcs[] = { + {"clear", &RPC::clear }, + { "objects", &RPC::list_objs }, + RPC_METHOD_END +}; + +rpc_class RPC::_RPC_class = { "RPC", _RPC_funcs, NULL }; + +RPC *RPC::_head = NULL; + +rpc_class *RPC::_classes = &_RPC_class; + +bool RPC::call(const char *request, char *reply) { + if (request == NULL) return false; + + Arguments args(request); + Reply r(reply); + + /* If there's no name print object and class names to result */ + if (args.obj_name == NULL) { + for (RPC *p = RPC::_head; p != NULL; p = p->_next) { + r.putData<const char*>(p->_name); + } + for (rpc_class *c = RPC::_classes; c != NULL; c = c->next) { + r.putData<const char*>(c->name); + } + return true; + } + + /* First try matching an instance */ + RPC *p = lookup(args.obj_name); + if (p != NULL) { + /* Get the list of methods we support */ + const rpc_method *cur_method = p->get_rpc_methods(); + + /* When there's no method print method names to result */ + if (args.method_name == NULL) { + while (true) { + for (; cur_method->name != NULL; cur_method++) { + r.putData<const char*>(cur_method->name); + } + + /* write_name_arr's args are references, so result and cur_method will have changed */ + if (cur_method->super != 0) { + cur_method = cur_method->super(p); + } else { + return true; + } + } + } + + /* Look through the methods for the one whose name matches */ + while (true) { + for (; cur_method->name != NULL; cur_method++) { + if (strcmp(cur_method->name, args.method_name) == 0) { + (cur_method->method_caller)(p, &args, &r); + return true; + } + } + + if (cur_method->super != 0) { + cur_method = cur_method->super(p); + } else { + /* end of methods and no match */ + return false; + } + + } + } + + /* Then try a class */ + for (const rpc_class *q = _classes; q != NULL; q = q->next) { + if (strcmp(q->name, args.obj_name) == 0) { + /* Matched the class name, so get its functions */ + const rpc_function *cur_func = q->static_functions; + if (args.method_name == NULL) { + for (; cur_func->name != NULL; cur_func++) { + r.putData<const char*>(cur_func->name); + } + return true; + } else { + /* Otherwise call the appropriate function */ + for (; cur_func->name != NULL; cur_func++) { + if (strcmp(cur_func->name, args.method_name) == 0) { + (cur_func->function_caller)(&args, &r); + return true; + } + } + return false; + } + } + } + + return false; +} + +} // namespace mbed +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rpc/rpc.h Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,314 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef RPC_H +#define RPC_H + +#include "mbed.h" +#include "Arguments.h" + +namespace mbed { + +#define RPC_MAX_STRING 128 + +struct rpc_function { + const char *name; + void (*function_caller)(Arguments*, Reply*); +}; + +struct rpc_class { + const char *name; + const rpc_function *static_functions; + struct rpc_class *next; +}; + +/* Class RPC + * The RPC class for most things + */ +class RPC { + +public: + + RPC(const char *name = NULL); + + virtual ~RPC(); + + /* Function get_rpc_methods + * Returns a pointer to an array describing the rpc methods + * supported by this object, terminated by either + * RPC_METHOD_END or RPC_METHOD_SUPER(Superclass). + * + * Example + * > class Example : public RPC { + * > int foo(int a, int b) { return a + b; } + * > virtual const struct rpc_method *get_rpc_methods() { + * > static const rpc_method rpc_methods[] = { + * > { "foo", generic_caller<int, Example, int, int, &Example::foo> }, + * > RPC_METHOD_SUPER(RPC) + * > }; + * > return rpc_methods; + * > } + * > }; + */ + virtual const struct rpc_method *get_rpc_methods(); + + static bool call(const char *buf, char *result); + + /* Function lookup + * Lookup and return the object that has the given name. + * + * Variables + * name - the name to lookup. + */ + static RPC *lookup(const char *name); + +protected: + static RPC *_head; + RPC *_next; + char *_name; + bool _from_construct; + +private: + static rpc_class *_classes; + + static const rpc_function _RPC_funcs[]; + static rpc_class _RPC_class; + + void delete_self(); + static void list_objs(Arguments *args, Reply *result); + static void clear(Arguments *args, Reply *result); + +public: + /* Function add_rpc_class + * Add the class to the list of classes which can have static + * methods called via rpc (the static methods which can be called + * are defined by that class' get_rpc_class() static method). + */ + template<class C> + static void add_rpc_class() { + rpc_class *c = C::get_rpc_class(); + c->next = _classes; + _classes = c; + } + + template<class C> + static const char *construct() { + RPC *p = new C(); + p->_from_construct = true; + return p->_name; + } + + template<class C, typename A1> + static const char *construct(A1 arg1) { + RPC *p = new C(arg1); + p->_from_construct = true; + return p->_name; + } + + template<class C, typename A1, typename A2> + static const char *construct(A1 arg1, A2 arg2) { + RPC *p = new C(arg1, arg2); + p->_from_construct = true; + return p->_name; + } + + template<class C, typename A1, typename A2, typename A3> + static const char *construct(A1 arg1, A2 arg2, A3 arg3) { + RPC *p = new C(arg1, arg2, arg3); + p->_from_construct = true; + return p->_name; + } + + template<class C, typename A1, typename A2, typename A3, typename A4> + static const char *construct(A1 arg1, A2 arg2, A3 arg3, A4 arg4) { + RPC *p = new C(arg1, arg2, arg3, arg4); + p->_from_construct = true; + return p->_name; + } +}; + +/* Macro MBED_OBJECT_NAME_MAX + * The maximum size of object name (including terminating null byte) + * that will be recognised when using fopen to open a FileLike + * object, or when using the rpc function. + */ +#define MBED_OBJECT_NAME_MAX 32 + +/* Macro MBED_METHOD_NAME_MAX + * The maximum size of rpc method name (including terminating null + * byte) that will be recognised by the rpc function (in rpc.h). + */ +#define MBED_METHOD_NAME_MAX 32 + +/* Function rpc_method_caller + */ +template<class T, void(T::*member)(const char *, char *)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + (static_cast<T*>(this_ptr)->*member)(arguments, result); +} + +/* Function rpc_method_caller + */ +template<class T, void(T::*member)()> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + (static_cast<T*>(this_ptr)->*member)(); +} + +/* Function rpc_method_caller + */ +template<class T, typename A1, void(T::*member)(A1)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + + (static_cast<T*>(this_ptr)->*member)(arg1); +} + +/* Function rpc_method_caller + */ +template<class T, typename A1, typename A2, void(T::*member)(A1, A2)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + + (static_cast<T*>(this_ptr)->*member)(arg1, arg2); +} + +/* Function rpc_method_caller + */ +template<class T, typename A1, typename A2, typename A3, void(T::*member)(A1, A2, A3)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + A3 arg3 = arguments->getArg<A3>(); + + (static_cast<T*>(this_ptr)->*member)(arg1, arg2, arg3); +} + +/* Function rpc_method_caller + */ +template<typename R, class T, R(T::*member)()> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + R res = (static_cast<T*>(this_ptr)->*member)(); + result->putData<R>(res); +} + +/* Function rpc_method_caller + */ +template<typename R, class T, typename A1, R(T::*member)(A1)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + + R res = (static_cast<T*>(this_ptr)->*member)(arg1); + result->putData<R>(res); +} + +/* Function rpc_method_caller + */ +template<typename R, class T, typename A1, typename A2, R(T::*member)(A1, A2)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + + R res = (static_cast<T*>(this_ptr)->*member)(arg1, arg2); + result->putData<R>(res); +} + +/* Function rpc_method_caller + */ +template<typename R, class T, typename A1, typename A2, typename A3, R(T::*member)(A1, A2, A3)> +void rpc_method_caller(RPC *this_ptr, Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + A3 arg3 = arguments->getArg<A3>(); + + R res = (static_cast<T*>(this_ptr)->*member)(arg1, arg2, arg3); + result->putData<R>(res); +} + +/* Function rpc_function caller + */ +template<typename R, R(*func)()> +void rpc_function_caller(Arguments *arguments, Reply *result) { + R res = (*func)(); + result->putData<R>(res); +} + +/* Function rpc_function caller + */ +template<typename R, typename A1, R(*func)(A1)> +void rpc_function_caller(Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + R res = (*func)(arg1); + result->putData<R>(res); +} + +/* Function rpc_function caller + */ +template<typename R, typename A1, typename A2, R(*func)(A1, A2)> +void rpc_function_caller(Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + + R res = (*func)(arg1, arg2); + result->putData<R>(res); +} + +/* Function rpc_function caller + */ +template<typename R, typename A1, typename A2, typename A3, R(*func)(A1, A2, A3)> +void rpc_function_caller(Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + A3 arg3 = arguments->getArg<A3>(); + + R res = (*func)(arg1, arg2, arg3); + result->putData<R>(res); +} + +/* Function rpc_function caller + */ +template<typename R, typename A1, typename A2, typename A3, typename A4, R(*func)(A1, A2, A3, A4)> +void rpc_function_caller(Arguments *arguments, Reply *result) { + A1 arg1 = arguments->getArg<A1>(); + A2 arg2 = arguments->getArg<A2>(); + A3 arg3 = arguments->getArg<A3>(); + A4 arg4 = arguments->getArg<A4>(); + + R res = (*func)(arg1, arg2, arg3, arg4); + result->putData<R>(res); +} + +struct rpc_method { + const char *name; + typedef void (*method_caller_t)(RPC*, Arguments*, Reply*); + typedef const struct rpc_method *(*super_t)(RPC*); + union { + method_caller_t method_caller; + super_t super; + }; +}; + +template<class C> +const struct rpc_method *rpc_super(RPC *this_ptr) { + return static_cast<C*>(this_ptr)->C::get_rpc_methods(); +} + +#define RPC_METHOD_END { NULL, NULL } +#define RPC_METHOD_SUPER(C) { NULL, (rpc_method::method_caller_t)rpc_super<C> } + +} // namespace mbed + +#endif +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed_app.json Tue Dec 25 09:57:54 2018 +0000 @@ -0,0 +1,21 @@ +{ + "config": { + "camera":{ + "help": "0:disable 1:enable", + "value": "1" + }, + "lcd":{ + "help": "0:disable 1:enable", + "value": "0" + }, + "usb-host-ch":{ + "help": "(for GR-PEACH) 0:ch0 1:ch1", + "value": "1" + }, + "audio-camera-shield":{ + "help": "(for GR-PEACH) 0:not use 1:use", + "value": "1" + } + } +} +