Booster for WooCommerce - Version 1.0.6

Version Description

  • 15/07/2014 =
  • Feature - PDF Invoices.
Download this release

Release Info

Developer algoritmika
Plugin Icon 128x128 Booster for WooCommerce
Version 1.0.6
Comparing to
See all releases

Code changes from version 1.0.5 to 1.0.6

Files changed (41) hide show
  1. includes/admin/settings/class-wc-settings-jetpack.php +101 -101
  2. includes/class-wcj-add-to-cart.php +191 -191
  3. includes/class-wcj-call-for-price.php +157 -157
  4. includes/class-wcj-currencies.php +475 -475
  5. includes/class-wcj-old-slugs.php +163 -163
  6. includes/class-wcj-order-numbers.php +191 -191
  7. includes/class-wcj-pdf-invoices.php +416 -0
  8. includes/class-wcj-price-labels.php +276 -276
  9. includes/class-wcj-product-info.php +131 -131
  10. includes/class-wcj-sorting.php +277 -277
  11. includes/tcpdf_min/CHANGELOG.TXT +2823 -0
  12. includes/tcpdf_min/LICENSE.TXT +858 -0
  13. includes/tcpdf_min/README.TXT +111 -0
  14. includes/tcpdf_min/composer.json +40 -0
  15. includes/tcpdf_min/config/tcpdf_config.php +222 -0
  16. includes/tcpdf_min/fonts/courier.php +12 -0
  17. includes/tcpdf_min/fonts/courierb.php +12 -0
  18. includes/tcpdf_min/fonts/courierbi.php +12 -0
  19. includes/tcpdf_min/fonts/courieri.php +12 -0
  20. includes/tcpdf_min/fonts/dejavusans.ctg.z +0 -0
  21. includes/tcpdf_min/fonts/dejavusans.php +16 -0
  22. includes/tcpdf_min/fonts/dejavusans.z +0 -0
  23. includes/tcpdf_min/fonts/dejavusansb.ctg.z +0 -0
  24. includes/tcpdf_min/fonts/dejavusansb.php +16 -0
  25. includes/tcpdf_min/fonts/dejavusansb.z +0 -0
  26. includes/tcpdf_min/fonts/dejavusansbi.ctg.z +0 -0
  27. includes/tcpdf_min/fonts/dejavusansbi.php +16 -0
  28. includes/tcpdf_min/fonts/dejavusansbi.z +0 -0
  29. includes/tcpdf_min/fonts/helvetica.php +13 -0
  30. includes/tcpdf_min/fonts/helveticab.php +12 -0
  31. includes/tcpdf_min/fonts/helveticabi.php +12 -0
  32. includes/tcpdf_min/fonts/helveticai.php +12 -0
  33. includes/tcpdf_min/fonts/symbol.php +12 -0
  34. includes/tcpdf_min/fonts/times.php +12 -0
  35. includes/tcpdf_min/fonts/timesb.php +12 -0
  36. includes/tcpdf_min/fonts/timesbi.php +12 -0
  37. includes/tcpdf_min/fonts/timesi.php +12 -0
  38. includes/tcpdf_min/fonts/zapfdingbats.php +12 -0
  39. includes/tcpdf_min/include/barcodes/datamatrix.php +1176 -0
  40. includes/tcpdf_min/include/barcodes/pdf417.php +996 -0
  41. includes/tcpdf_min/include/barcodes/qrcode.php +100 -0
includes/admin/settings/class-wc-settings-jetpack.php CHANGED
@@ -1,101 +1,101 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Settings
4
- */
5
-
6
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
7
-
8
- if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
9
-
10
- /**
11
- * WC_Settings_Jetpack
12
- */
13
- class WC_Settings_Jetpack extends WC_Settings_Page {
14
-
15
- /**
16
- * Constructor.
17
- */
18
- public function __construct() {
19
- $this->id = 'jetpack';
20
- $this->label = __( 'Jetpack', 'woocommerce-jetpack' );
21
-
22
- add_filter( 'woocommerce_settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
23
- add_action( 'woocommerce_settings_' . $this->id, array( $this, 'output' ) );
24
- add_action( 'woocommerce_settings_save_' . $this->id, array( $this, 'save' ) );
25
- add_action( 'woocommerce_sections_' . $this->id, array( $this, 'output_sections' ) );
26
- }
27
-
28
- /**
29
- * Get sections
30
- *
31
- * @return array
32
- */
33
- public function get_sections() {
34
-
35
- return apply_filters( 'wcj_settings_sections', array(
36
- '' => __( 'Dashboard', 'woocommerce-jetpack' ),
37
- ) );
38
- }
39
-
40
- /**
41
- * Output the settings
42
- */
43
- public function output() {
44
-
45
- global $current_section;
46
-
47
- $settings = $this->get_settings( $current_section );
48
-
49
- WC_Admin_Settings::output_fields( $settings );
50
- }
51
-
52
- /**
53
- * Save settings
54
- */
55
- public function save() {
56
-
57
- global $current_section;
58
-
59
- $settings = $this->get_settings( $current_section );
60
- WC_Admin_Settings::save_fields( $settings );
61
-
62
- echo apply_filters('get_wc_jetpack_plus_message', '', 'global' );
63
- }
64
-
65
- /**
66
- * Get settings array
67
- *
68
- * @return array
69
- */
70
- public function get_settings( $current_section = '' ) {
71
-
72
- if ( $current_section != '' ) {
73
-
74
- return apply_filters('wcj_settings_' . $current_section, array() );
75
- }
76
- else {
77
-
78
- $settings[] = array( 'title' => __( 'Features', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => $desc, 'id' => 'wcj_options' );
79
-
80
- $settings = apply_filters( 'wcj_features_status', $settings );
81
-
82
- /*$statuses = array();
83
- $statuses[] = include_once( 'class-wcj-price-labels.php' );
84
- $statuses[] = include_once( 'includes/class-wcj-call-for-price.php' );
85
- $statuses[] = include_once( 'includes/class-wcj-currencies.php' );
86
- $statuses[] = include_once( 'includes/class-wcj-sorting.php' );
87
- $statuses[] = include_once( 'includes/class-wcj-old-slugs.php' );
88
- $statuses[] = include_once( 'includes/class-wcj-product-info.php' );
89
- foreach ( $statuses as $section )
90
- $settings[] = $section->get_statuses()[1];*/
91
-
92
- $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_options' );
93
-
94
- return $settings;//apply_filters('wcj_general_settings', $settings );
95
- }
96
- }
97
- }
98
-
99
- endif;
100
-
101
- return new WC_Settings_Jetpack();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Settings
4
+ */
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
7
+
8
+ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
9
+
10
+ /**
11
+ * WC_Settings_Jetpack
12
+ */
13
+ class WC_Settings_Jetpack extends WC_Settings_Page {
14
+
15
+ /**
16
+ * Constructor.
17
+ */
18
+ public function __construct() {
19
+ $this->id = 'jetpack';
20
+ $this->label = __( 'Jetpack', 'woocommerce-jetpack' );
21
+
22
+ add_filter( 'woocommerce_settings_tabs_array', array( $this, 'add_settings_page' ), 20 );
23
+ add_action( 'woocommerce_settings_' . $this->id, array( $this, 'output' ) );
24
+ add_action( 'woocommerce_settings_save_' . $this->id, array( $this, 'save' ) );
25
+ add_action( 'woocommerce_sections_' . $this->id, array( $this, 'output_sections' ) );
26
+ }
27
+
28
+ /**
29
+ * Get sections
30
+ *
31
+ * @return array
32
+ */
33
+ public function get_sections() {
34
+
35
+ return apply_filters( 'wcj_settings_sections', array(
36
+ '' => __( 'Dashboard', 'woocommerce-jetpack' ),
37
+ ) );
38
+ }
39
+
40
+ /**
41
+ * Output the settings
42
+ */
43
+ public function output() {
44
+
45
+ global $current_section;
46
+
47
+ $settings = $this->get_settings( $current_section );
48
+
49
+ WC_Admin_Settings::output_fields( $settings );
50
+ }
51
+
52
+ /**
53
+ * Save settings
54
+ */
55
+ public function save() {
56
+
57
+ global $current_section;
58
+
59
+ $settings = $this->get_settings( $current_section );
60
+ WC_Admin_Settings::save_fields( $settings );
61
+
62
+ echo apply_filters('get_wc_jetpack_plus_message', '', 'global' );
63
+ }
64
+
65
+ /**
66
+ * Get settings array
67
+ *
68
+ * @return array
69
+ */
70
+ public function get_settings( $current_section = '' ) {
71
+
72
+ if ( $current_section != '' ) {
73
+
74
+ return apply_filters('wcj_settings_' . $current_section, array() );
75
+ }
76
+ else {
77
+
78
+ $settings[] = array( 'title' => __( 'Features', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => $desc, 'id' => 'wcj_options' );
79
+
80
+ $settings = apply_filters( 'wcj_features_status', $settings );
81
+
82
+ /*$statuses = array();
83
+ $statuses[] = include_once( 'class-wcj-price-labels.php' );
84
+ $statuses[] = include_once( 'includes/class-wcj-call-for-price.php' );
85
+ $statuses[] = include_once( 'includes/class-wcj-currencies.php' );
86
+ $statuses[] = include_once( 'includes/class-wcj-sorting.php' );
87
+ $statuses[] = include_once( 'includes/class-wcj-old-slugs.php' );
88
+ $statuses[] = include_once( 'includes/class-wcj-product-info.php' );
89
+ foreach ( $statuses as $section )
90
+ $settings[] = $section->get_statuses()[1];*/
91
+
92
+ $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_options' );
93
+
94
+ return $settings;//apply_filters('wcj_general_settings', $settings );
95
+ }
96
+ }
97
+ }
98
+
99
+ endif;
100
+
101
+ return new WC_Settings_Jetpack();
includes/class-wcj-add-to-cart.php CHANGED
@@ -1,191 +1,191 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Add to cart
4
- *
5
- * The WooCommerce Jetpack Add to cart class.
6
- *
7
- * @class WCJ_Add_to_cart
8
- */
9
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
10
-
11
- if ( ! class_exists( 'WCJ_Add_to_cart' ) ) :
12
-
13
- class WCJ_Add_to_cart {
14
-
15
- /**
16
- * Constructor.
17
- */
18
- public function __construct() {
19
-
20
- // HOOKS
21
-
22
- // Main hooks
23
- if ( get_option( 'wcj_add_to_cart_enabled' ) == 'yes' ) {
24
-
25
- add_filter( 'woocommerce_product_single_add_to_cart_text', array( $this, 'custom_add_to_cart_button_text' ), 100 );
26
- add_filter( 'woocommerce_product_add_to_cart_text', array( $this, 'custom_add_to_cart_button_text' ), 100 );
27
-
28
- }
29
-
30
- // Settings hooks
31
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
32
- add_filter( 'wcj_settings_add_to_cart', array( $this, 'get_settings' ), 100 );
33
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
34
- }
35
-
36
- /**
37
- * add_enabled_option.
38
- */
39
- public function add_enabled_option( $settings ) {
40
-
41
- $all_settings = $this->get_settings();
42
- $settings[] = $all_settings[1];
43
-
44
- return $settings;
45
- }
46
-
47
- /**
48
- * custom_add_to_cart_button_text.
49
- */
50
- public function custom_add_to_cart_button_text( $add_to_cart_text) {
51
-
52
- global $product;
53
-
54
- $product_type = $product->product_type;
55
-
56
- if ( ! in_array( $product_type, array( 'external', 'grouped', 'simple', 'variable' ) ) )
57
- $product_type = 'other';
58
-
59
- if ( current_filter() == 'woocommerce_product_single_add_to_cart_text' ) {
60
-
61
- if ( get_option( 'wcj_add_to_cart_text_enabled_on_single_' . $product_type ) == 'yes' ) return get_option( 'wcj_add_to_cart_text_on_single_' . $product_type );
62
- else return $add_to_cart_text;
63
- }
64
- else if ( current_filter() == 'woocommerce_product_add_to_cart_text' ) {
65
-
66
- if ( get_option( 'wcj_add_to_cart_text_enabled_on_archives_' . $product_type ) == 'yes' ) return get_option( 'wcj_add_to_cart_text_on_archives_' . $product_type );
67
- else return $add_to_cart_text;
68
- }
69
-
70
- // Default
71
- return $add_to_cart_text;
72
- }
73
-
74
- /**
75
- * get_settings.
76
- */
77
- function get_settings() {
78
-
79
- $settings = array(
80
-
81
- array( 'title' => __( 'Add to Cart Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_add_to_cart_options' ),
82
-
83
- array(
84
- 'title' => __( 'Add to Cart', 'woocommerce-jetpack' ),
85
- 'desc' => __( 'Enable the Add to Cart feature', 'woocommerce-jetpack' ),
86
- 'desc_tip' => __( 'Change text for Add to cart button by product type.', 'woocommerce-jetpack' ),
87
- 'id' => 'wcj_add_to_cart_enabled',
88
- 'default' => 'yes',
89
- 'type' => 'checkbox',
90
- ),
91
-
92
- //array( 'type' => 'sectionend', 'id' => 'wcj_add_to_cart_options' ),
93
- );
94
-
95
- //ADD TO CART TEXT
96
- $groups_by_product_type = array(
97
-
98
- array(
99
- 'id' => 'simple',
100
- 'title' => __( 'Simple product', 'woocommerce-jetpack' ),
101
- 'default' => 'Add to cart',
102
- ),
103
- array(
104
- 'id' => 'variable',
105
- 'title' => __( 'Variable product', 'woocommerce-jetpack' ),
106
- 'default' => 'Select options',
107
- ),
108
- array(
109
- 'id' => 'external',
110
- 'title' => __( 'External product', 'woocommerce-jetpack' ),
111
- 'default' => 'Buy product',
112
- ),
113
- array(
114
- 'id' => 'grouped',
115
- 'title' => __( 'Grouped product', 'woocommerce-jetpack' ),
116
- 'default' => 'View products',
117
- ),
118
- array(
119
- 'id' => 'other',
120
- 'title' => __( 'Other product', 'woocommerce-jetpack' ),
121
- 'default' => 'Read more',
122
- ),
123
- );
124
-
125
- //$settings[] = array( 'title' => __( 'Add to Cart Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This sets the text on add to cart button by product types.', 'id' => 'wcj_add_to_cart_options' );
126
-
127
- foreach ( $groups_by_product_type as $group_by_product_type ) {
128
-
129
- $settings[] =
130
- array(
131
- 'title' => $group_by_product_type['title'],
132
- 'id' => 'wcj_add_to_cart_text_on_single_' . $group_by_product_type['id'],
133
- 'default' => $group_by_product_type['default'],
134
- 'type' => 'text',
135
- 'css' => 'width:30%;min-width:300px;',
136
- );
137
-
138
- $settings[] =
139
- array(
140
- 'title' => '',//$group_by_product_type['title'],
141
- 'desc' => __( 'Enable on single product pages', 'woocommerce-jetpack' ),
142
- 'id' => 'wcj_add_to_cart_text_enabled_on_single_' . $group_by_product_type['id'],
143
- 'default' => 'yes',
144
- 'type' => 'checkbox',
145
- );
146
-
147
- $settings[] =
148
- array(
149
- 'title' => '',//$group_by_product_type['title'],
150
- 'id' => 'wcj_add_to_cart_text_on_archives_' . $group_by_product_type['id'],
151
- 'default' => $group_by_product_type['default'],
152
- 'type' => 'text',
153
- 'css' => 'width:30%;min-width:300px;',
154
- //'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
155
- );
156
-
157
- $settings[] =
158
- array(
159
- 'title' => '',//$group_by_product_type['title'],
160
- 'desc' => __( 'Enable on product archives', 'woocommerce-jetpack' ),
161
- //'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
162
- 'id' => 'wcj_add_to_cart_text_enabled_on_archives_' . $group_by_product_type['id'],
163
- 'default' => 'yes',
164
- 'type' => 'checkbox',
165
- //'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
166
- );
167
- }
168
-
169
- //$settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_add_to_cart_options' );
170
- $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_add_to_cart_options' );
171
-
172
-
173
-
174
-
175
- return $settings;
176
- }
177
-
178
- /**
179
- * settings_section.
180
- */
181
- function settings_section( $sections ) {
182
-
183
- $sections['add_to_cart'] = 'Add to Cart';
184
-
185
- return $sections;
186
- }
187
- }
188
-
189
- endif;
190
-
191
- return new WCJ_Add_to_cart();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Add to cart
4
+ *
5
+ * The WooCommerce Jetpack Add to cart class.
6
+ *
7
+ * @class WCJ_Add_to_cart
8
+ */
9
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
10
+
11
+ if ( ! class_exists( 'WCJ_Add_to_cart' ) ) :
12
+
13
+ class WCJ_Add_to_cart {
14
+
15
+ /**
16
+ * Constructor.
17
+ */
18
+ public function __construct() {
19
+
20
+ // HOOKS
21
+
22
+ // Main hooks
23
+ if ( get_option( 'wcj_add_to_cart_enabled' ) == 'yes' ) {
24
+
25
+ add_filter( 'woocommerce_product_single_add_to_cart_text', array( $this, 'custom_add_to_cart_button_text' ), 100 );
26
+ add_filter( 'woocommerce_product_add_to_cart_text', array( $this, 'custom_add_to_cart_button_text' ), 100 );
27
+
28
+ }
29
+
30
+ // Settings hooks
31
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
32
+ add_filter( 'wcj_settings_add_to_cart', array( $this, 'get_settings' ), 100 );
33
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
34
+ }
35
+
36
+ /**
37
+ * add_enabled_option.
38
+ */
39
+ public function add_enabled_option( $settings ) {
40
+
41
+ $all_settings = $this->get_settings();
42
+ $settings[] = $all_settings[1];
43
+
44
+ return $settings;
45
+ }
46
+
47
+ /**
48
+ * custom_add_to_cart_button_text.
49
+ */
50
+ public function custom_add_to_cart_button_text( $add_to_cart_text) {
51
+
52
+ global $product;
53
+
54
+ $product_type = $product->product_type;
55
+
56
+ if ( ! in_array( $product_type, array( 'external', 'grouped', 'simple', 'variable' ) ) )
57
+ $product_type = 'other';
58
+
59
+ if ( current_filter() == 'woocommerce_product_single_add_to_cart_text' ) {
60
+
61
+ if ( get_option( 'wcj_add_to_cart_text_enabled_on_single_' . $product_type ) == 'yes' ) return get_option( 'wcj_add_to_cart_text_on_single_' . $product_type );
62
+ else return $add_to_cart_text;
63
+ }
64
+ else if ( current_filter() == 'woocommerce_product_add_to_cart_text' ) {
65
+
66
+ if ( get_option( 'wcj_add_to_cart_text_enabled_on_archives_' . $product_type ) == 'yes' ) return get_option( 'wcj_add_to_cart_text_on_archives_' . $product_type );
67
+ else return $add_to_cart_text;
68
+ }
69
+
70
+ // Default
71
+ return $add_to_cart_text;
72
+ }
73
+
74
+ /**
75
+ * get_settings.
76
+ */
77
+ function get_settings() {
78
+
79
+ $settings = array(
80
+
81
+ array( 'title' => __( 'Add to Cart Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_add_to_cart_options' ),
82
+
83
+ array(
84
+ 'title' => __( 'Add to Cart', 'woocommerce-jetpack' ),
85
+ 'desc' => __( 'Enable the Add to Cart feature', 'woocommerce-jetpack' ),
86
+ 'desc_tip' => __( 'Change text for Add to cart button by product type.', 'woocommerce-jetpack' ),
87
+ 'id' => 'wcj_add_to_cart_enabled',
88
+ 'default' => 'yes',
89
+ 'type' => 'checkbox',
90
+ ),
91
+
92
+ //array( 'type' => 'sectionend', 'id' => 'wcj_add_to_cart_options' ),
93
+ );
94
+
95
+ //ADD TO CART TEXT
96
+ $groups_by_product_type = array(
97
+
98
+ array(
99
+ 'id' => 'simple',
100
+ 'title' => __( 'Simple product', 'woocommerce-jetpack' ),
101
+ 'default' => 'Add to cart',
102
+ ),
103
+ array(
104
+ 'id' => 'variable',
105
+ 'title' => __( 'Variable product', 'woocommerce-jetpack' ),
106
+ 'default' => 'Select options',
107
+ ),
108
+ array(
109
+ 'id' => 'external',
110
+ 'title' => __( 'External product', 'woocommerce-jetpack' ),
111
+ 'default' => 'Buy product',
112
+ ),
113
+ array(
114
+ 'id' => 'grouped',
115
+ 'title' => __( 'Grouped product', 'woocommerce-jetpack' ),
116
+ 'default' => 'View products',
117
+ ),
118
+ array(
119
+ 'id' => 'other',
120
+ 'title' => __( 'Other product', 'woocommerce-jetpack' ),
121
+ 'default' => 'Read more',
122
+ ),
123
+ );
124
+
125
+ //$settings[] = array( 'title' => __( 'Add to Cart Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This sets the text on add to cart button by product types.', 'id' => 'wcj_add_to_cart_options' );
126
+
127
+ foreach ( $groups_by_product_type as $group_by_product_type ) {
128
+
129
+ $settings[] =
130
+ array(
131
+ 'title' => $group_by_product_type['title'],
132
+ 'id' => 'wcj_add_to_cart_text_on_single_' . $group_by_product_type['id'],
133
+ 'default' => $group_by_product_type['default'],
134
+ 'type' => 'text',
135
+ 'css' => 'width:30%;min-width:300px;',
136
+ );
137
+
138
+ $settings[] =
139
+ array(
140
+ 'title' => '',//$group_by_product_type['title'],
141
+ 'desc' => __( 'Enable on single product pages', 'woocommerce-jetpack' ),
142
+ 'id' => 'wcj_add_to_cart_text_enabled_on_single_' . $group_by_product_type['id'],
143
+ 'default' => 'yes',
144
+ 'type' => 'checkbox',
145
+ );
146
+
147
+ $settings[] =
148
+ array(
149
+ 'title' => '',//$group_by_product_type['title'],
150
+ 'id' => 'wcj_add_to_cart_text_on_archives_' . $group_by_product_type['id'],
151
+ 'default' => $group_by_product_type['default'],
152
+ 'type' => 'text',
153
+ 'css' => 'width:30%;min-width:300px;',
154
+ //'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
155
+ );
156
+
157
+ $settings[] =
158
+ array(
159
+ 'title' => '',//$group_by_product_type['title'],
160
+ 'desc' => __( 'Enable on product archives', 'woocommerce-jetpack' ),
161
+ //'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
162
+ 'id' => 'wcj_add_to_cart_text_enabled_on_archives_' . $group_by_product_type['id'],
163
+ 'default' => 'yes',
164
+ 'type' => 'checkbox',
165
+ //'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
166
+ );
167
+ }
168
+
169
+ //$settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_add_to_cart_options' );
170
+ $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_add_to_cart_options' );
171
+
172
+
173
+
174
+
175
+ return $settings;
176
+ }
177
+
178
+ /**
179
+ * settings_section.
180
+ */
181
+ function settings_section( $sections ) {
182
+
183
+ $sections['add_to_cart'] = 'Add to Cart';
184
+
185
+ return $sections;
186
+ }
187
+ }
188
+
189
+ endif;
190
+
191
+ return new WCJ_Add_to_cart();
includes/class-wcj-call-for-price.php CHANGED
@@ -1,157 +1,157 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Call for Price
4
- *
5
- * The WooCommerce Jetpack Call for Price class.
6
- *
7
- * @class WCJ_Call_For_Price
8
- * @category Class
9
- * @author Algoritmika Ltd.
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'WCJ_Call_For_Price' ) ) :
15
-
16
- class WCJ_Call_For_Price {
17
-
18
- public function __construct() {
19
-
20
- // Defaults
21
- $this->default_empty_price_text = '<strong>Call for price</strong>';
22
-
23
- // HOOKS
24
- // Main hooks
25
- // Empty Price hooks
26
- if ( get_option( 'wcj_call_for_price_enabled' ) == 'yes' ) {
27
-
28
- add_filter( 'woocommerce_empty_price_html', array( $this, 'on_empty_price' ), 100 );
29
- add_filter( 'woocommerce_sale_flash', array( $this, 'hide_sales_flash' ), 100, 2 );
30
- }
31
-
32
- // Settings hooks
33
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
34
- add_filter( 'wcj_settings_call_for_price', array( $this, 'get_settings' ), 100 );
35
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
36
- }
37
-
38
- /**
39
- * add_enabled_option.
40
- */
41
- public function add_enabled_option( $settings ) {
42
-
43
- $all_settings = $this->get_settings();
44
- $settings[] = $all_settings[1];
45
-
46
- return $settings;
47
- }
48
-
49
- /**
50
- * hide_sales_flash.
51
- */
52
- public function hide_sales_flash( $post, $product ) {
53
-
54
- if ( get_option('wcj_call_for_price_hide_sale_sign') === true ) {
55
-
56
- $current_product = get_product( $product->ID );
57
- if ( $current_product->get_price() == '' ) return false;
58
- }
59
-
60
- return '<span class="onsale">' . __( 'Sale!', 'woocommerce' ) . '</span>';
61
- }
62
-
63
- /**
64
- * on_empty_price.
65
- */
66
- public function on_empty_price( $price ) {
67
-
68
- if ( ( get_option('wcj_call_for_price_show_on_single') == 'yes' ) && is_single() ) return $this->default_empty_price_text;
69
- if ( ( get_option('wcj_call_for_price_show_on_archive') == 'yes' ) && is_archive() ) return $this->default_empty_price_text;
70
- if ( ( get_option('wcj_call_for_price_show_on_home') == 'yes' ) && is_front_page() ) return $this->default_empty_price_text;
71
-
72
- // No changes
73
- return $price;
74
- }
75
-
76
- /**
77
- * get_settings.
78
- */
79
- function get_settings() {
80
-
81
- $settings = array(
82
-
83
- array( 'title' => __( 'Call for Price Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'Leave price empty when adding or editing products. Then set the options here.', 'woocommerce-jetpack' ), 'id' => 'wcj_call_for_price_options' ),
84
-
85
- array(
86
- 'title' => __( 'Call for Price', 'woocommerce-jetpack' ),
87
- 'desc' => __( 'Enable the Call for Price feature', 'woocommerce-jetpack' ),
88
- 'desc_tip' => __( 'Create any custom price label for all products with empty price.', 'woocommerce-jetpack' ),
89
- 'id' => 'wcj_call_for_price_enabled',
90
- 'default' => 'yes',
91
- 'type' => 'checkbox',
92
- ),
93
-
94
- array(
95
- 'title' => __( 'Text to Show', 'woocommerce-jetpack' ),
96
- 'desc_tip' => __( 'This sets the html to output on empty price.', 'woocommerce-jetpack' ),
97
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
98
- 'id' => 'wcj_call_for_price_text',
99
- 'default' => $this->default_empty_price_text,
100
- 'type' => 'textarea',
101
- 'css' => 'width:50%;min-width:300px;',
102
- 'custom_attributes'
103
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
104
- ),
105
-
106
- array(
107
- 'title' => __( 'Show on Single Product', 'woocommerce-jetpack' ),
108
- 'desc' => __( 'Check to show on single products page', 'woocommerce-jetpack' ),
109
- 'id' => 'wcj_call_for_price_show_on_single',
110
- 'default' => 'yes',
111
- 'type' => 'checkbox',
112
- ),
113
-
114
- array(
115
- 'title' => __( 'Show on Products Archive', 'woocommerce-jetpack' ),
116
- 'desc' => __( 'Check to show on products archive page', 'woocommerce-jetpack' ),
117
- 'id' => 'wcj_call_for_price_show_on_archive',
118
- 'default' => 'yes',
119
- 'type' => 'checkbox',
120
- ),
121
-
122
- array(
123
- 'title' => __( 'Show on Home Page', 'woocommerce-jetpack' ),
124
- 'desc' => __( 'Check to show on home page', 'woocommerce-jetpack' ),
125
- 'id' => 'wcj_call_for_price_show_on_home',
126
- 'default' => 'yes',
127
- 'type' => 'checkbox',
128
- ),
129
-
130
- array(
131
- 'title' => __( 'Hide Sale! Tag', 'woocommerce-jetpack' ),
132
- 'desc' => __( 'Hide the tag', 'woocommerce-jetpack' ),
133
- 'id' => 'wcj_call_for_price_hide_sale_sign',
134
- 'default' => 'yes',
135
- 'type' => 'checkbox',
136
- ),
137
-
138
- array( 'type' => 'sectionend', 'id' => 'wcj_call_for_price_options' ),
139
- );
140
-
141
- return $settings;
142
- }
143
-
144
- /**
145
- * settings_section.
146
- */
147
- function settings_section( $sections ) {
148
-
149
- $sections['call_for_price'] = 'Call for Price';
150
-
151
- return $sections;
152
- }
153
- }
154
-
155
- endif;
156
-
157
- return new WCJ_Call_For_Price();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Call for Price
4
+ *
5
+ * The WooCommerce Jetpack Call for Price class.
6
+ *
7
+ * @class WCJ_Call_For_Price
8
+ * @category Class
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
13
+
14
+ if ( ! class_exists( 'WCJ_Call_For_Price' ) ) :
15
+
16
+ class WCJ_Call_For_Price {
17
+
18
+ public function __construct() {
19
+
20
+ // Defaults
21
+ $this->default_empty_price_text = '<strong>Call for price</strong>';
22
+
23
+ // HOOKS
24
+ // Main hooks
25
+ // Empty Price hooks
26
+ if ( get_option( 'wcj_call_for_price_enabled' ) == 'yes' ) {
27
+
28
+ add_filter( 'woocommerce_empty_price_html', array( $this, 'on_empty_price' ), 100 );
29
+ add_filter( 'woocommerce_sale_flash', array( $this, 'hide_sales_flash' ), 100, 2 );
30
+ }
31
+
32
+ // Settings hooks
33
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
34
+ add_filter( 'wcj_settings_call_for_price', array( $this, 'get_settings' ), 100 );
35
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
36
+ }
37
+
38
+ /**
39
+ * add_enabled_option.
40
+ */
41
+ public function add_enabled_option( $settings ) {
42
+
43
+ $all_settings = $this->get_settings();
44
+ $settings[] = $all_settings[1];
45
+
46
+ return $settings;
47
+ }
48
+
49
+ /**
50
+ * hide_sales_flash.
51
+ */
52
+ public function hide_sales_flash( $post, $product ) {
53
+
54
+ if ( get_option('wcj_call_for_price_hide_sale_sign') === true ) {
55
+
56
+ $current_product = get_product( $product->ID );
57
+ if ( $current_product->get_price() == '' ) return false;
58
+ }
59
+
60
+ return '<span class="onsale">' . __( 'Sale!', 'woocommerce' ) . '</span>';
61
+ }
62
+
63
+ /**
64
+ * on_empty_price.
65
+ */
66
+ public function on_empty_price( $price ) {
67
+
68
+ if ( ( get_option('wcj_call_for_price_show_on_single') == 'yes' ) && is_single() ) return $this->default_empty_price_text;
69
+ if ( ( get_option('wcj_call_for_price_show_on_archive') == 'yes' ) && is_archive() ) return $this->default_empty_price_text;
70
+ if ( ( get_option('wcj_call_for_price_show_on_home') == 'yes' ) && is_front_page() ) return $this->default_empty_price_text;
71
+
72
+ // No changes
73
+ return $price;
74
+ }
75
+
76
+ /**
77
+ * get_settings.
78
+ */
79
+ function get_settings() {
80
+
81
+ $settings = array(
82
+
83
+ array( 'title' => __( 'Call for Price Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'Leave price empty when adding or editing products. Then set the options here.', 'woocommerce-jetpack' ), 'id' => 'wcj_call_for_price_options' ),
84
+
85
+ array(
86
+ 'title' => __( 'Call for Price', 'woocommerce-jetpack' ),
87
+ 'desc' => __( 'Enable the Call for Price feature', 'woocommerce-jetpack' ),
88
+ 'desc_tip' => __( 'Create any custom price label for all products with empty price.', 'woocommerce-jetpack' ),
89
+ 'id' => 'wcj_call_for_price_enabled',
90
+ 'default' => 'yes',
91
+ 'type' => 'checkbox',
92
+ ),
93
+
94
+ array(
95
+ 'title' => __( 'Text to Show', 'woocommerce-jetpack' ),
96
+ 'desc_tip' => __( 'This sets the html to output on empty price.', 'woocommerce-jetpack' ),
97
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
98
+ 'id' => 'wcj_call_for_price_text',
99
+ 'default' => $this->default_empty_price_text,
100
+ 'type' => 'textarea',
101
+ 'css' => 'width:50%;min-width:300px;',
102
+ 'custom_attributes'
103
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
104
+ ),
105
+
106
+ array(
107
+ 'title' => __( 'Show on Single Product', 'woocommerce-jetpack' ),
108
+ 'desc' => __( 'Check to show on single products page', 'woocommerce-jetpack' ),
109
+ 'id' => 'wcj_call_for_price_show_on_single',
110
+ 'default' => 'yes',
111
+ 'type' => 'checkbox',
112
+ ),
113
+
114
+ array(
115
+ 'title' => __( 'Show on Products Archive', 'woocommerce-jetpack' ),
116
+ 'desc' => __( 'Check to show on products archive page', 'woocommerce-jetpack' ),
117
+ 'id' => 'wcj_call_for_price_show_on_archive',
118
+ 'default' => 'yes',
119
+ 'type' => 'checkbox',
120
+ ),
121
+
122
+ array(
123
+ 'title' => __( 'Show on Home Page', 'woocommerce-jetpack' ),
124
+ 'desc' => __( 'Check to show on home page', 'woocommerce-jetpack' ),
125
+ 'id' => 'wcj_call_for_price_show_on_home',
126
+ 'default' => 'yes',
127
+ 'type' => 'checkbox',
128
+ ),
129
+
130
+ array(
131
+ 'title' => __( 'Hide Sale! Tag', 'woocommerce-jetpack' ),
132
+ 'desc' => __( 'Hide the tag', 'woocommerce-jetpack' ),
133
+ 'id' => 'wcj_call_for_price_hide_sale_sign',
134
+ 'default' => 'yes',
135
+ 'type' => 'checkbox',
136
+ ),
137
+
138
+ array( 'type' => 'sectionend', 'id' => 'wcj_call_for_price_options' ),
139
+ );
140
+
141
+ return $settings;
142
+ }
143
+
144
+ /**
145
+ * settings_section.
146
+ */
147
+ function settings_section( $sections ) {
148
+
149
+ $sections['call_for_price'] = 'Call for Price';
150
+
151
+ return $sections;
152
+ }
153
+ }
154
+
155
+ endif;
156
+
157
+ return new WCJ_Call_For_Price();
includes/class-wcj-currencies.php CHANGED
@@ -1,475 +1,475 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack currencies
4
- *
5
- * The WooCommerce Jetpack currencies class stores currencies data.
6
- *
7
- * @class WCJ_Currencies
8
- * @package WC_Jetpack/Classes
9
- * @category Class
10
- * @author Algoritmika Ltd.
11
- */
12
-
13
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
-
15
- if ( ! class_exists( 'WCJ_Currencies' ) ) :
16
-
17
- class WCJ_Currencies {
18
-
19
- public function __construct() {
20
-
21
- $this->currencies_list = array(
22
- "AFN" => "Afghan afghani",
23
- "ALL" => "Albanian lek",
24
- "DZD" => "Algerian dinar",
25
- "AOA" => "Angolan kwanza",
26
- "ARS" => "Argentine peso",
27
- "AMD" => "Armenian dram",
28
- "AWG" => "Aruban florin",
29
- "AUD" => "Australian dollar",
30
- "AZN" => "Azerbaijani manat",
31
- "BSD" => "Bahamian dollar",
32
- "BHD" => "Bahraini dinar",
33
- "BDT" => "Bangladeshi taka",
34
- "BBD" => "Barbadian dollar",
35
- "BYR" => "Belarusian ruble",
36
- "BZD" => "Belize dollar",
37
- "BTN" => "Bhutanese ngultrum",
38
- "BOB" => "Bolivian boliviano",
39
- "BAM" => "Bosnia and Herzegovina konvertibilna marka",
40
- "BWP" => "Botswana pula",
41
- "BRL" => "Brazilian real",
42
- "GBP" => "British pound",
43
- "BND" => "Brunei dollar",
44
- "BGN" => "Bulgarian lev",
45
- "BIF" => "Burundi franc",
46
- "KYD" => "Cayman Islands dollar",
47
- "KHR" => "Cambodian riel",
48
- "CAD" => "Canadian dollar",
49
- "CVE" => "Cape Verdean escudo",
50
- "XAF" => "Central African CFA franc",
51
- "GQE" => "Central African CFA franc",
52
- "XPF" => "CFP franc",
53
- "CLP" => "Chilean peso",
54
- "CNY" => "Chinese renminbi",
55
- "COP" => "Colombian peso",
56
- "KMF" => "Comorian franc",
57
- "CDF" => "Congolese franc",
58
- "CRC" => "Costa Rican colon",
59
- "HRK" => "Croatian kuna",
60
- "CUC" => "Cuban peso",
61
- "CZK" => "Czech koruna",
62
- "DKK" => "Danish krone",
63
- "DJF" => "Djiboutian franc",
64
- "DOP" => "Dominican peso",
65
- "XCD" => "East Caribbean dollar",
66
- "EGP" => "Egyptian pound",
67
- "ERN" => "Eritrean nakfa",
68
- "EEK" => "Estonian kroon",
69
- "ETB" => "Ethiopian birr",
70
- "EUR" => "European euro",
71
- "FKP" => "Falkland Islands pound",
72
- "FJD" => "Fijian dollar",
73
- "GMD" => "Gambian dalasi",
74
- "GEL" => "Georgian lari",
75
- "GHS" => "Ghanaian cedi",
76
- "GIP" => "Gibraltar pound",
77
- "GTQ" => "Guatemalan quetzal",
78
- "GNF" => "Guinean franc",
79
- "GYD" => "Guyanese dollar",
80
- "HTG" => "Haitian gourde",
81
- "HNL" => "Honduran lempira",
82
- "HKD" => "Hong Kong dollar",
83
- "HUF" => "Hungarian forint",
84
- "ISK" => "Icelandic króna",
85
- "INR" => "Indian rupee",
86
- "IDR" => "Indonesian rupiah",
87
- "IRR" => "Iranian rial",
88
- "IQD" => "Iraqi dinar",
89
- "ILS" => "Israeli new sheqel",
90
- "YER" => "Yemeni rial",
91
- "JMD" => "Jamaican dollar",
92
- "JPY" => "Japanese yen",
93
- "JOD" => "Jordanian dinar",
94
- "KZT" => "Kazakhstani tenge",
95
- "KES" => "Kenyan shilling",
96
- "KGS" => "Kyrgyzstani som",
97
- "KWD" => "Kuwaiti dinar",
98
- "LAK" => "Lao kip",
99
- "LVL" => "Latvian lats",
100
- "LBP" => "Lebanese lira",
101
- "LSL" => "Lesotho loti",
102
- "LRD" => "Liberian dollar",
103
- "LYD" => "Libyan dinar",
104
- "LTL" => "Lithuanian litas",
105
- "MOP" => "Macanese pataca",
106
- "MKD" => "Macedonian denar",
107
- "MGA" => "Malagasy ariary",
108
- "MYR" => "Malaysian ringgit",
109
- "MWK" => "Malawian kwacha",
110
- "MVR" => "Maldivian rufiyaa",
111
- "MRO" => "Mauritanian ouguiya",
112
- "MUR" => "Mauritian rupee",
113
- "MXN" => "Mexican peso",
114
- "MMK" => "Myanma kyat",
115
- "MDL" => "Moldovan leu",
116
- "MNT" => "Mongolian tugrik",
117
- "MAD" => "Moroccan dirham",
118
- "MZM" => "Mozambican metical",
119
- "NAD" => "Namibian dollar",
120
- "NPR" => "Nepalese rupee",
121
- "ANG" => "Netherlands Antillean gulden",
122
- "TWD" => "New Taiwan dollar",
123
- "NZD" => "New Zealand dollar",
124
- "NIO" => "Nicaraguan cordoba",
125
- "NGN" => "Nigerian naira",
126
- "KPW" => "North Korean won",
127
- "NOK" => "Norwegian krone",
128
- "OMR" => "Omani rial",
129
- "TOP" => "Paanga",
130
- "PKR" => "Pakistani rupee",
131
- "PAB" => "Panamanian balboa",
132
- "PGK" => "Papua New Guinean kina",
133
- "PYG" => "Paraguayan guarani",
134
- "PEN" => "Peruvian nuevo sol",
135
- "PHP" => "Philippine peso",
136
- "PLN" => "Polish zloty",
137
- "QAR" => "Qatari riyal",
138
- "RON" => "Romanian leu",
139
- "RUB" => "Russian ruble",
140
- "RWF" => "Rwandan franc",
141
- "SHP" => "Saint Helena pound",
142
- "WST" => "Samoan tala",
143
- "STD" => "Sao Tome and Principe dobra",
144
- "SAR" => "Saudi riyal",
145
- "SCR" => "Seychellois rupee",
146
- "RSD" => "Serbian dinar",
147
- "SLL" => "Sierra Leonean leone",
148
- "SGD" => "Singapore dollar",
149
- "SYP" => "Syrian pound",
150
- "SKK" => "Slovak koruna",
151
- "SBD" => "Solomon Islands dollar",
152
- "SOS" => "Somali shilling",
153
- "ZAR" => "South African rand",
154
- "KRW" => "South Korean won",
155
- "XDR" => "Special Drawing Rights",
156
- "LKR" => "Sri Lankan rupee",
157
- "SDG" => "Sudanese pound",
158
- "SRD" => "Surinamese dollar",
159
- "SZL" => "Swazi lilangeni",
160
- "SEK" => "Swedish krona",
161
- "CHF" => "Swiss franc",
162
- "TJS" => "Tajikistani somoni",
163
- "TZS" => "Tanzanian shilling",
164
- "THB" => "Thai baht",
165
- "TTD" => "Trinidad and Tobago dollar",
166
- "TND" => "Tunisian dinar",
167
- "TRY" => "Turkish new lira",
168
- "TMM" => "Turkmen manat",
169
- "AED" => "UAE dirham",
170
- "UGX" => "Ugandan shilling",
171
- "UAH" => "Ukrainian hryvnia",
172
- "USD" => "United States dollar",
173
- "UYU" => "Uruguayan peso",
174
- "UZS" => "Uzbekistani som",
175
- "VUV" => "Vanuatu vatu",
176
- "VEB" => "Venezuelan bolivar",
177
- "VND" => "Vietnamese dong",
178
- "XOF" => "West African CFA franc",
179
- "ZMK" => "Zambian kwacha",
180
- "ZWD" => "Zimbabwean dollar",
181
-
182
- "RMB" => "Chinese Yuan",
183
- );
184
-
185
- $this->currencies_symbols_list = array(
186
- "AFN" => "AFN",
187
- "ALL" => "ALL",
188
- "DZD" => "DZD",
189
- "AOA" => "AOA",
190
- "ARS" => "ARS",
191
- "AMD" => "AMD",
192
- "AWG" => "AWG",
193
- "AUD" => "&#36;",
194
- "AZN" => "AZN",
195
- "BSD" => "BSD",
196
- "BHD" => "BHD",
197
- "BDT" => "BDT",
198
- "BBD" => "BBD",
199
- "BYR" => "BYR",
200
- "BZD" => "BZD",
201
- "BTN" => "BTN",
202
- "BOB" => "BOB",
203
- "BAM" => "BAM",
204
- "BWP" => "BWP",
205
- "BRL" => "&#82;&#36;",
206
- "GBP" => "&pound;",
207
- "BND" => "BND",
208
- "BGN" => "BGN",
209
- "BIF" => "BIF",
210
- "KYD" => "KYD",
211
- "KHR" => "KHR",
212
- "CAD" => "CAD",
213
- "CVE" => "CVE",
214
- "XAF" => "XAF",
215
- "GQE" => "GQE",
216
- "XPF" => "XPF",
217
- "CLP" => "CLP",
218
- "CNY" => "&yen;",
219
- "COP" => "COP",
220
- "KMF" => "KMF",
221
- "CDF" => "CDF",
222
- "CRC" => "CRC",
223
- "HRK" => "HRK",
224
- "CUC" => "CUC",
225
- "CZK" => "&#75;&#269;",
226
- "DKK" => "&#107;&#114;",
227
- "DJF" => "DJF",
228
- "DOP" => "DOP",
229
- "XCD" => "XCD",
230
- "EGP" => "EGP",
231
- "ERN" => "ERN",
232
- "EEK" => "EEK",
233
- "ETB" => "ETB",
234
- "EUR" => "&euro;",
235
- "FKP" => "FKP",
236
- "FJD" => "FJD",
237
- "GMD" => "GMD",
238
- "GEL" => "GEL",
239
- "GHS" => "GHS",
240
- "GIP" => "GIP",
241
- "GTQ" => "GTQ",
242
- "GNF" => "GNF",
243
- "GYD" => "GYD",
244
- "HTG" => "HTG",
245
- "HNL" => "HNL",
246
- "HKD" => "&#36;",
247
- "HUF" => "&#70;&#116;",
248
- "ISK" => "ISK",
249
- "INR" => "&#8377;",
250
- "IDR" => "Rp",
251
- "IRR" => "IRR",
252
- "IQD" => "IQD",
253
- "ILS" => "&#8362;",
254
- "YER" => "YER",
255
- "JMD" => "JMD",
256
- "JPY" => "&yen;",
257
- "JOD" => "JOD",
258
- "KZT" => "KZT",
259
- "KES" => "KES",
260
- "KGS" => "KGS",
261
- "KWD" => "KWD",
262
- "LAK" => "LAK",
263
- "LVL" => "LVL",
264
- "LBP" => "LBP",
265
- "LSL" => "LSL",
266
- "LRD" => "LRD",
267
- "LYD" => "LYD",
268
- "LTL" => "LTL",
269
- "MOP" => "MOP",
270
- "MKD" => "MKD",
271
- "MGA" => "MGA",
272
- "MYR" => "&#82;&#77;",
273
- "MWK" => "MWK",
274
- "MVR" => "MVR",
275
- "MRO" => "MRO",
276
- "MUR" => "MUR",
277
- "MXN" => "&#36;",
278
- "MMK" => "MMK",
279
- "MDL" => "MDL",
280
- "MNT" => "MNT",
281
- "MAD" => "MAD",
282
- "MZM" => "MZM",
283
- "NAD" => "NAD",
284
- "NPR" => "NPR",
285
- "ANG" => "ANG",
286
- "TWD" => "&#78;&#84;&#36;",
287
- "NZD" => "&#36;",
288
- "NIO" => "NIO",
289
- "NGN" => "NGN",
290
- "KPW" => "KPW",
291
- "NOK" => "&#107;&#114;",
292
- "OMR" => "OMR",
293
- "TOP" => "TOP",
294
- "PKR" => "PKR",
295
- "PAB" => "PAB",
296
- "PGK" => "PGK",
297
- "PYG" => "PYG",
298
- "PEN" => "PEN",
299
- "PHP" => "&#8369;",
300
- "PLN" => "&#122;&#322;",
301
- "QAR" => "QAR",
302
- "RON" => "lei",
303
- "RUB" => "RUB",
304
- "RWF" => "RWF",
305
- "SHP" => "SHP",
306
- "WST" => "WST",
307
- "STD" => "STD",
308
- "SAR" => "SAR",
309
- "SCR" => "SCR",
310
- "RSD" => "RSD",
311
- "SLL" => "SLL",
312
- "SGD" => "&#36;",
313
- "SYP" => "SYP",
314
- "SKK" => "SKK",
315
- "SBD" => "SBD",
316
- "SOS" => "SOS",
317
- "ZAR" => "&#82;",
318
- "KRW" => "&#8361;",
319
- "XDR" => "XDR",
320
- "LKR" => "LKR",
321
- "SDG" => "SDG",
322
- "SRD" => "SRD",
323
- "SZL" => "SZL",
324
- "SEK" => "&#107;&#114;",
325
- "CHF" => "&#67;&#72;&#70;",
326
- "TJS" => "TJS",
327
- "TZS" => "TZS",
328
- "THB" => "&#3647;",
329
- "TTD" => "TTD",
330
- "TND" => "TND",
331
- "TRY" => "&#84;&#76;",
332
- "TMM" => "TMM",
333
- "AED" => "AED",
334
- "UGX" => "UGX",
335
- "UAH" => "UAH",
336
- "USD" => "&#36;",
337
- "UYU" => "UYU",
338
- "UZS" => "UZS",
339
- "VUV" => "VUV",
340
- "VEB" => "VEB",
341
- "VND" => "VND",
342
- "XOF" => "XOF",
343
- "ZMK" => "ZMK",
344
- "ZWD" => "ZWD",
345
-
346
- "RMB" => "&yen;",
347
- );
348
-
349
- //$this->items = array();
350
-
351
- // Hooks
352
- if ( get_option( 'wcj_currency_enabled' ) == 'yes') {
353
-
354
- // Main hooks
355
- add_filter( 'woocommerce_currencies', array($this, 'add_all_currencies'), 100 );
356
- add_filter( 'woocommerce_currency_symbol', array($this, 'add_currency_symbol'), 100, 2 );
357
-
358
- // Settings
359
- add_filter( 'woocommerce_general_settings', array( $this, 'add_edit_currency_symbol_field' ), 100 );
360
- }
361
-
362
- // Settings
363
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
364
- add_filter( 'wcj_settings_currencies', array( $this, 'get_settings' ), 100 );
365
-
366
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
367
- }
368
-
369
- /**
370
- * add_enabled_option.
371
- */
372
- public function add_enabled_option( $settings ) {
373
-
374
- $all_settings = $this->get_settings();
375
- $settings[] = $all_settings[1];
376
-
377
- return $settings;
378
- }
379
-
380
- function add_edit_currency_symbol_field( $settings ) {
381
-
382
- $updated_settings = array();
383
-
384
- foreach ( $settings as $section ) {
385
-
386
- if ( isset( $section['id'] ) && 'woocommerce_currency_pos' == $section['id'] ) {
387
-
388
- $updated_settings[] = array(
389
- 'name' => __( 'Currency Symbol', 'woocommerce-jetpack' ), //TODO name or title?????
390
- 'desc_tip' => __( 'This sets the currency symbol.', 'woocommerce-jetpack' ),
391
- 'id' => 'wcj_currency_' . get_woocommerce_currency(),
392
- 'type' => 'text',
393
- 'default' => get_woocommerce_currency_symbol(),
394
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
395
- 'css' => 'width: 50px;',
396
- 'custom_attributes' => array( 'readonly' => 'readonly' ),
397
- );
398
- }
399
-
400
- $updated_settings[] = $section;
401
- }
402
-
403
- return $updated_settings;
404
- }
405
-
406
- function get_settings() {
407
-
408
- $settings = array(
409
-
410
- array( 'title' => __( 'Currencies Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_currency_options' ),
411
-
412
- array(
413
- 'title' => __( 'Currencies', 'woocommerce-jetpack' ),
414
- 'desc' => __( 'Enable the Currencies feature', 'woocommerce-jetpack' ),
415
- 'desc_tip' => __( 'Add all world currencies, change currency symbol.', 'woocommerce-jetpack' ),
416
- 'id' => 'wcj_currency_enabled',
417
- 'default' => 'yes',
418
- 'type' => 'checkbox'
419
- ),
420
-
421
- array( 'type' => 'sectionend', 'id' => 'wcj_currency_options' ),
422
-
423
- array( 'title' => __( 'Currency Symbol Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_all_currencies_list_options' ),
424
- );
425
-
426
- foreach ($this->currencies_list as $currency_id => $currency_name)
427
- $settings[] = array(
428
- 'title' => $currency_name,
429
- 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc_no_link' ),
430
- 'id' => 'wcj_currency_' . $currency_id,
431
- 'default' => $this->currencies_symbols_list[ $currency_id ],
432
- 'type' => 'text',
433
- 'custom_attributes'
434
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
435
- );
436
-
437
- $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_all_currencies_list_options' );
438
-
439
- return $settings;
440
- }
441
-
442
- function settings_section( $sections ) {
443
-
444
- $sections['currencies'] = 'Currencies';
445
-
446
- return $sections;
447
- }
448
-
449
- function add_all_currencies( $currencies ) {
450
-
451
- foreach ($this->currencies_list as $currency_id => $currency_name)
452
- $currencies[ $currency_id ] = $currency_name;
453
-
454
- asort ($currencies);
455
-
456
- return $currencies;
457
- }
458
-
459
- function add_currency_symbol( $currency_symbol, $currency ) {
460
-
461
- return $this->currencies_symbols_list[$currency]; //default value?
462
- }
463
-
464
- /*public function check_wooallcurpro_fields($input) {
465
-
466
- foreach ($this->currencies_list as $currency_id => $currency_name)
467
- $res[$currency_id] = str_replace('"', '\'', $input[$currency_id]);
468
-
469
- return $res;
470
- }*/
471
- }
472
-
473
- endif;
474
-
475
- return new WCJ_Currencies();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack currencies
4
+ *
5
+ * The WooCommerce Jetpack currencies class stores currencies data.
6
+ *
7
+ * @class WCJ_Currencies
8
+ * @package WC_Jetpack/Classes
9
+ * @category Class
10
+ * @author Algoritmika Ltd.
11
+ */
12
+
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+ if ( ! class_exists( 'WCJ_Currencies' ) ) :
16
+
17
+ class WCJ_Currencies {
18
+
19
+ public function __construct() {
20
+
21
+ $this->currencies_list = array(
22
+ "AFN" => "Afghan afghani",
23
+ "ALL" => "Albanian lek",
24
+ "DZD" => "Algerian dinar",
25
+ "AOA" => "Angolan kwanza",
26
+ "ARS" => "Argentine peso",
27
+ "AMD" => "Armenian dram",
28
+ "AWG" => "Aruban florin",
29
+ "AUD" => "Australian dollar",
30
+ "AZN" => "Azerbaijani manat",
31
+ "BSD" => "Bahamian dollar",
32
+ "BHD" => "Bahraini dinar",
33
+ "BDT" => "Bangladeshi taka",
34
+ "BBD" => "Barbadian dollar",
35
+ "BYR" => "Belarusian ruble",
36
+ "BZD" => "Belize dollar",
37
+ "BTN" => "Bhutanese ngultrum",
38
+ "BOB" => "Bolivian boliviano",
39
+ "BAM" => "Bosnia and Herzegovina konvertibilna marka",
40
+ "BWP" => "Botswana pula",
41
+ "BRL" => "Brazilian real",
42
+ "GBP" => "British pound",
43
+ "BND" => "Brunei dollar",
44
+ "BGN" => "Bulgarian lev",
45
+ "BIF" => "Burundi franc",
46
+ "KYD" => "Cayman Islands dollar",
47
+ "KHR" => "Cambodian riel",
48
+ "CAD" => "Canadian dollar",
49
+ "CVE" => "Cape Verdean escudo",
50
+ "XAF" => "Central African CFA franc",
51
+ "GQE" => "Central African CFA franc",
52
+ "XPF" => "CFP franc",
53
+ "CLP" => "Chilean peso",
54
+ "CNY" => "Chinese renminbi",
55
+ "COP" => "Colombian peso",
56
+ "KMF" => "Comorian franc",
57
+ "CDF" => "Congolese franc",
58
+ "CRC" => "Costa Rican colon",
59
+ "HRK" => "Croatian kuna",
60
+ "CUC" => "Cuban peso",
61
+ "CZK" => "Czech koruna",
62
+ "DKK" => "Danish krone",
63
+ "DJF" => "Djiboutian franc",
64
+ "DOP" => "Dominican peso",
65
+ "XCD" => "East Caribbean dollar",
66
+ "EGP" => "Egyptian pound",
67
+ "ERN" => "Eritrean nakfa",
68
+ "EEK" => "Estonian kroon",
69
+ "ETB" => "Ethiopian birr",
70
+ "EUR" => "European euro",
71
+ "FKP" => "Falkland Islands pound",
72
+ "FJD" => "Fijian dollar",
73
+ "GMD" => "Gambian dalasi",
74
+ "GEL" => "Georgian lari",
75
+ "GHS" => "Ghanaian cedi",
76
+ "GIP" => "Gibraltar pound",
77
+ "GTQ" => "Guatemalan quetzal",
78
+ "GNF" => "Guinean franc",
79
+ "GYD" => "Guyanese dollar",
80
+ "HTG" => "Haitian gourde",
81
+ "HNL" => "Honduran lempira",
82
+ "HKD" => "Hong Kong dollar",
83
+ "HUF" => "Hungarian forint",
84
+ "ISK" => "Icelandic króna",
85
+ "INR" => "Indian rupee",
86
+ "IDR" => "Indonesian rupiah",
87
+ "IRR" => "Iranian rial",
88
+ "IQD" => "Iraqi dinar",
89
+ "ILS" => "Israeli new sheqel",
90
+ "YER" => "Yemeni rial",
91
+ "JMD" => "Jamaican dollar",
92
+ "JPY" => "Japanese yen",
93
+ "JOD" => "Jordanian dinar",
94
+ "KZT" => "Kazakhstani tenge",
95
+ "KES" => "Kenyan shilling",
96
+ "KGS" => "Kyrgyzstani som",
97
+ "KWD" => "Kuwaiti dinar",
98
+ "LAK" => "Lao kip",
99
+ "LVL" => "Latvian lats",
100
+ "LBP" => "Lebanese lira",
101
+ "LSL" => "Lesotho loti",
102
+ "LRD" => "Liberian dollar",
103
+ "LYD" => "Libyan dinar",
104
+ "LTL" => "Lithuanian litas",
105
+ "MOP" => "Macanese pataca",
106
+ "MKD" => "Macedonian denar",
107
+ "MGA" => "Malagasy ariary",
108
+ "MYR" => "Malaysian ringgit",
109
+ "MWK" => "Malawian kwacha",
110
+ "MVR" => "Maldivian rufiyaa",
111
+ "MRO" => "Mauritanian ouguiya",
112
+ "MUR" => "Mauritian rupee",
113
+ "MXN" => "Mexican peso",
114
+ "MMK" => "Myanma kyat",
115
+ "MDL" => "Moldovan leu",
116
+ "MNT" => "Mongolian tugrik",
117
+ "MAD" => "Moroccan dirham",
118
+ "MZM" => "Mozambican metical",
119
+ "NAD" => "Namibian dollar",
120
+ "NPR" => "Nepalese rupee",
121
+ "ANG" => "Netherlands Antillean gulden",
122
+ "TWD" => "New Taiwan dollar",
123
+ "NZD" => "New Zealand dollar",
124
+ "NIO" => "Nicaraguan cordoba",
125
+ "NGN" => "Nigerian naira",
126
+ "KPW" => "North Korean won",
127
+ "NOK" => "Norwegian krone",
128
+ "OMR" => "Omani rial",
129
+ "TOP" => "Paanga",
130
+ "PKR" => "Pakistani rupee",
131
+ "PAB" => "Panamanian balboa",
132
+ "PGK" => "Papua New Guinean kina",
133
+ "PYG" => "Paraguayan guarani",
134
+ "PEN" => "Peruvian nuevo sol",
135
+ "PHP" => "Philippine peso",
136
+ "PLN" => "Polish zloty",
137
+ "QAR" => "Qatari riyal",
138
+ "RON" => "Romanian leu",
139
+ "RUB" => "Russian ruble",
140
+ "RWF" => "Rwandan franc",
141
+ "SHP" => "Saint Helena pound",
142
+ "WST" => "Samoan tala",
143
+ "STD" => "Sao Tome and Principe dobra",
144
+ "SAR" => "Saudi riyal",
145
+ "SCR" => "Seychellois rupee",
146
+ "RSD" => "Serbian dinar",
147
+ "SLL" => "Sierra Leonean leone",
148
+ "SGD" => "Singapore dollar",
149
+ "SYP" => "Syrian pound",
150
+ "SKK" => "Slovak koruna",
151
+ "SBD" => "Solomon Islands dollar",
152
+ "SOS" => "Somali shilling",
153
+ "ZAR" => "South African rand",
154
+ "KRW" => "South Korean won",
155
+ "XDR" => "Special Drawing Rights",
156
+ "LKR" => "Sri Lankan rupee",
157
+ "SDG" => "Sudanese pound",
158
+ "SRD" => "Surinamese dollar",
159
+ "SZL" => "Swazi lilangeni",
160
+ "SEK" => "Swedish krona",
161
+ "CHF" => "Swiss franc",
162
+ "TJS" => "Tajikistani somoni",
163
+ "TZS" => "Tanzanian shilling",
164
+ "THB" => "Thai baht",
165
+ "TTD" => "Trinidad and Tobago dollar",
166
+ "TND" => "Tunisian dinar",
167
+ "TRY" => "Turkish new lira",
168
+ "TMM" => "Turkmen manat",
169
+ "AED" => "UAE dirham",
170
+ "UGX" => "Ugandan shilling",
171
+ "UAH" => "Ukrainian hryvnia",
172
+ "USD" => "United States dollar",
173
+ "UYU" => "Uruguayan peso",
174
+ "UZS" => "Uzbekistani som",
175
+ "VUV" => "Vanuatu vatu",
176
+ "VEB" => "Venezuelan bolivar",
177
+ "VND" => "Vietnamese dong",
178
+ "XOF" => "West African CFA franc",
179
+ "ZMK" => "Zambian kwacha",
180
+ "ZWD" => "Zimbabwean dollar",
181
+
182
+ "RMB" => "Chinese Yuan",
183
+ );
184
+
185
+ $this->currencies_symbols_list = array(
186
+ "AFN" => "AFN",
187
+ "ALL" => "ALL",
188
+ "DZD" => "DZD",
189
+ "AOA" => "AOA",
190
+ "ARS" => "ARS",
191
+ "AMD" => "AMD",
192
+ "AWG" => "AWG",
193
+ "AUD" => "&#36;",
194
+ "AZN" => "AZN",
195
+ "BSD" => "BSD",
196
+ "BHD" => "BHD",
197
+ "BDT" => "BDT",
198
+ "BBD" => "BBD",
199
+ "BYR" => "BYR",
200
+ "BZD" => "BZD",
201
+ "BTN" => "BTN",
202
+ "BOB" => "BOB",
203
+ "BAM" => "BAM",
204
+ "BWP" => "BWP",
205
+ "BRL" => "&#82;&#36;",
206
+ "GBP" => "&pound;",
207
+ "BND" => "BND",
208
+ "BGN" => "BGN",
209
+ "BIF" => "BIF",
210
+ "KYD" => "KYD",
211
+ "KHR" => "KHR",
212
+ "CAD" => "CAD",
213
+ "CVE" => "CVE",
214
+ "XAF" => "XAF",
215
+ "GQE" => "GQE",
216
+ "XPF" => "XPF",
217
+ "CLP" => "CLP",
218
+ "CNY" => "&yen;",
219
+ "COP" => "COP",
220
+ "KMF" => "KMF",
221
+ "CDF" => "CDF",
222
+ "CRC" => "CRC",
223
+ "HRK" => "HRK",
224
+ "CUC" => "CUC",
225
+ "CZK" => "&#75;&#269;",
226
+ "DKK" => "&#107;&#114;",
227
+ "DJF" => "DJF",
228
+ "DOP" => "DOP",
229
+ "XCD" => "XCD",
230
+ "EGP" => "EGP",
231
+ "ERN" => "ERN",
232
+ "EEK" => "EEK",
233
+ "ETB" => "ETB",
234
+ "EUR" => "&euro;",
235
+ "FKP" => "FKP",
236
+ "FJD" => "FJD",
237
+ "GMD" => "GMD",
238
+ "GEL" => "GEL",
239
+ "GHS" => "GHS",
240
+ "GIP" => "GIP",
241
+ "GTQ" => "GTQ",
242
+ "GNF" => "GNF",
243
+ "GYD" => "GYD",
244
+ "HTG" => "HTG",
245
+ "HNL" => "HNL",
246
+ "HKD" => "&#36;",
247
+ "HUF" => "&#70;&#116;",
248
+ "ISK" => "ISK",
249
+ "INR" => "&#8377;",
250
+ "IDR" => "Rp",
251
+ "IRR" => "IRR",
252
+ "IQD" => "IQD",
253
+ "ILS" => "&#8362;",
254
+ "YER" => "YER",
255
+ "JMD" => "JMD",
256
+ "JPY" => "&yen;",
257
+ "JOD" => "JOD",
258
+ "KZT" => "KZT",
259
+ "KES" => "KES",
260
+ "KGS" => "KGS",
261
+ "KWD" => "KWD",
262
+ "LAK" => "LAK",
263
+ "LVL" => "LVL",
264
+ "LBP" => "LBP",
265
+ "LSL" => "LSL",
266
+ "LRD" => "LRD",
267
+ "LYD" => "LYD",
268
+ "LTL" => "LTL",
269
+ "MOP" => "MOP",
270
+ "MKD" => "MKD",
271
+ "MGA" => "MGA",
272
+ "MYR" => "&#82;&#77;",
273
+ "MWK" => "MWK",
274
+ "MVR" => "MVR",
275
+ "MRO" => "MRO",
276
+ "MUR" => "MUR",
277
+ "MXN" => "&#36;",
278
+ "MMK" => "MMK",
279
+ "MDL" => "MDL",
280
+ "MNT" => "MNT",
281
+ "MAD" => "MAD",
282
+ "MZM" => "MZM",
283
+ "NAD" => "NAD",
284
+ "NPR" => "NPR",
285
+ "ANG" => "ANG",
286
+ "TWD" => "&#78;&#84;&#36;",
287
+ "NZD" => "&#36;",
288
+ "NIO" => "NIO",
289
+ "NGN" => "NGN",
290
+ "KPW" => "KPW",
291
+ "NOK" => "&#107;&#114;",
292
+ "OMR" => "OMR",
293
+ "TOP" => "TOP",
294
+ "PKR" => "PKR",
295
+ "PAB" => "PAB",
296
+ "PGK" => "PGK",
297
+ "PYG" => "PYG",
298
+ "PEN" => "PEN",
299
+ "PHP" => "&#8369;",
300
+ "PLN" => "&#122;&#322;",
301
+ "QAR" => "QAR",
302
+ "RON" => "lei",
303
+ "RUB" => "RUB",
304
+ "RWF" => "RWF",
305
+ "SHP" => "SHP",
306
+ "WST" => "WST",
307
+ "STD" => "STD",
308
+ "SAR" => "SAR",
309
+ "SCR" => "SCR",
310
+ "RSD" => "RSD",
311
+ "SLL" => "SLL",
312
+ "SGD" => "&#36;",
313
+ "SYP" => "SYP",
314
+ "SKK" => "SKK",
315
+ "SBD" => "SBD",
316
+ "SOS" => "SOS",
317
+ "ZAR" => "&#82;",
318
+ "KRW" => "&#8361;",
319
+ "XDR" => "XDR",
320
+ "LKR" => "LKR",
321
+ "SDG" => "SDG",
322
+ "SRD" => "SRD",
323
+ "SZL" => "SZL",
324
+ "SEK" => "&#107;&#114;",
325
+ "CHF" => "&#67;&#72;&#70;",
326
+ "TJS" => "TJS",
327
+ "TZS" => "TZS",
328
+ "THB" => "&#3647;",
329
+ "TTD" => "TTD",
330
+ "TND" => "TND",
331
+ "TRY" => "&#84;&#76;",
332
+ "TMM" => "TMM",
333
+ "AED" => "AED",
334
+ "UGX" => "UGX",
335
+ "UAH" => "UAH",
336
+ "USD" => "&#36;",
337
+ "UYU" => "UYU",
338
+ "UZS" => "UZS",
339
+ "VUV" => "VUV",
340
+ "VEB" => "VEB",
341
+ "VND" => "VND",
342
+ "XOF" => "XOF",
343
+ "ZMK" => "ZMK",
344
+ "ZWD" => "ZWD",
345
+
346
+ "RMB" => "&yen;",
347
+ );
348
+
349
+ //$this->items = array();
350
+
351
+ // Hooks
352
+ if ( get_option( 'wcj_currency_enabled' ) == 'yes') {
353
+
354
+ // Main hooks
355
+ add_filter( 'woocommerce_currencies', array($this, 'add_all_currencies'), 100 );
356
+ add_filter( 'woocommerce_currency_symbol', array($this, 'add_currency_symbol'), 100, 2 );
357
+
358
+ // Settings
359
+ add_filter( 'woocommerce_general_settings', array( $this, 'add_edit_currency_symbol_field' ), 100 );
360
+ }
361
+
362
+ // Settings
363
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
364
+ add_filter( 'wcj_settings_currencies', array( $this, 'get_settings' ), 100 );
365
+
366
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
367
+ }
368
+
369
+ /**
370
+ * add_enabled_option.
371
+ */
372
+ public function add_enabled_option( $settings ) {
373
+
374
+ $all_settings = $this->get_settings();
375
+ $settings[] = $all_settings[1];
376
+
377
+ return $settings;
378
+ }
379
+
380
+ function add_edit_currency_symbol_field( $settings ) {
381
+
382
+ $updated_settings = array();
383
+
384
+ foreach ( $settings as $section ) {
385
+
386
+ if ( isset( $section['id'] ) && 'woocommerce_currency_pos' == $section['id'] ) {
387
+
388
+ $updated_settings[] = array(
389
+ 'name' => __( 'Currency Symbol', 'woocommerce-jetpack' ), //TODO name or title?????
390
+ 'desc_tip' => __( 'This sets the currency symbol.', 'woocommerce-jetpack' ),
391
+ 'id' => 'wcj_currency_' . get_woocommerce_currency(),
392
+ 'type' => 'text',
393
+ 'default' => get_woocommerce_currency_symbol(),
394
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
395
+ 'css' => 'width: 50px;',
396
+ 'custom_attributes' => array( 'readonly' => 'readonly' ),
397
+ );
398
+ }
399
+
400
+ $updated_settings[] = $section;
401
+ }
402
+
403
+ return $updated_settings;
404
+ }
405
+
406
+ function get_settings() {
407
+
408
+ $settings = array(
409
+
410
+ array( 'title' => __( 'Currencies Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_currency_options' ),
411
+
412
+ array(
413
+ 'title' => __( 'Currencies', 'woocommerce-jetpack' ),
414
+ 'desc' => __( 'Enable the Currencies feature', 'woocommerce-jetpack' ),
415
+ 'desc_tip' => __( 'Add all world currencies, change currency symbol.', 'woocommerce-jetpack' ),
416
+ 'id' => 'wcj_currency_enabled',
417
+ 'default' => 'yes',
418
+ 'type' => 'checkbox'
419
+ ),
420
+
421
+ array( 'type' => 'sectionend', 'id' => 'wcj_currency_options' ),
422
+
423
+ array( 'title' => __( 'Currency Symbol Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_all_currencies_list_options' ),
424
+ );
425
+
426
+ foreach ($this->currencies_list as $currency_id => $currency_name)
427
+ $settings[] = array(
428
+ 'title' => $currency_name,
429
+ 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc_no_link' ),
430
+ 'id' => 'wcj_currency_' . $currency_id,
431
+ 'default' => $this->currencies_symbols_list[ $currency_id ],
432
+ 'type' => 'text',
433
+ 'custom_attributes'
434
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
435
+ );
436
+
437
+ $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_all_currencies_list_options' );
438
+
439
+ return $settings;
440
+ }
441
+
442
+ function settings_section( $sections ) {
443
+
444
+ $sections['currencies'] = 'Currencies';
445
+
446
+ return $sections;
447
+ }
448
+
449
+ function add_all_currencies( $currencies ) {
450
+
451
+ foreach ($this->currencies_list as $currency_id => $currency_name)
452
+ $currencies[ $currency_id ] = $currency_name;
453
+
454
+ asort ($currencies);
455
+
456
+ return $currencies;
457
+ }
458
+
459
+ function add_currency_symbol( $currency_symbol, $currency ) {
460
+
461
+ return $this->currencies_symbols_list[$currency]; //default value?
462
+ }
463
+
464
+ /*public function check_wooallcurpro_fields($input) {
465
+
466
+ foreach ($this->currencies_list as $currency_id => $currency_name)
467
+ $res[$currency_id] = str_replace('"', '\'', $input[$currency_id]);
468
+
469
+ return $res;
470
+ }*/
471
+ }
472
+
473
+ endif;
474
+
475
+ return new WCJ_Currencies();
includes/class-wcj-old-slugs.php CHANGED
@@ -1,163 +1,163 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Old Product Slugs
4
- *
5
- * The WooCommerce Jetpack Old Product Slugs class.
6
- *
7
- * @class WCJ_Old_Slugs
8
- * @version 1.0.0
9
- * @package WC_Jetpack/Classes
10
- * @category Class
11
- * @author Algoritmika Ltd.
12
- */
13
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
-
15
- if ( ! class_exists( 'WCJ_Old_Slugs' ) ) :
16
-
17
- class WCJ_Old_Slugs {
18
-
19
- public function __construct() {
20
-
21
- // HOOKS
22
-
23
- // Main hooks
24
- if ( get_option( 'wcj_old_slugs_enabled' ) == 'yes' ) {
25
-
26
- if ( is_admin() ) {
27
-
28
- add_action( 'admin_menu', array($this, 'add_old_slugs_tool'), 999 ); // Add Remove Old Slugs tool to WooCommerce menu
29
- }
30
- }
31
-
32
- // Settings hooks
33
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) ); // Add section to WooCommerce > Settings > Jetpack
34
- add_filter( 'wcj_settings_old_slugs', array( $this, 'get_settings' ), 100 ); // Add the settings
35
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 ); // Add Enable option to Jetpack Settings Dashboard
36
- }
37
-
38
- /**
39
- * add_enabled_option.
40
- */
41
- public function add_enabled_option( $settings ) {
42
-
43
- $all_settings = $this->get_settings();
44
- $settings[] = $all_settings[1];
45
-
46
- return $settings;
47
- }
48
-
49
- /*
50
- * Add the settings.
51
- */
52
- function get_settings() {
53
-
54
- $settings = array(
55
- array( 'title' => __( 'Old Slugs Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_old_slugs_options' ),
56
-
57
- array(
58
- 'title' => __( 'Old Slugs', 'woocommerce-jetpack' ),
59
- 'desc' => __( 'Enable the Remove Old Product Slugs feature', 'woocommerce-jetpack' ),
60
- 'desc_tip' => __( 'Remove old product slugs. Tool is accessible through <a href="/wp-admin/admin.php?page=woocommerce-jetpack-old-slugs">WooCommerce > Remove Old Slugs</a>.', 'woocommerce-jetpack' ),
61
- 'id' => 'wcj_old_slugs_enabled',
62
- 'default' => 'yes',
63
- 'type' => 'checkbox'
64
- ),
65
-
66
- array( 'type' => 'sectionend', 'id' => 'wcj_old_slugs_options' ),
67
- );
68
-
69
- return $settings;
70
- }
71
-
72
- /*
73
- * Add settings section to WooCommerce > Settings > Jetpack.
74
- */
75
- function settings_section( $sections ) {
76
-
77
- $sections['old_slugs'] = 'Old Slugs';
78
-
79
- return $sections;
80
- }
81
-
82
- public function add_old_slugs_tool() {
83
-
84
- add_submenu_page( 'woocommerce', 'Jetpack - Remove Old Slugs', 'Remove Old Slugs', 'manage_options', 'woocommerce-jetpack-old-slugs', array( $this, 'create_old_slugs_tool' ) );
85
- }
86
-
87
- public function create_old_slugs_tool() {
88
-
89
- global $wpdb;
90
- $all_old_slugs = $wpdb->get_results( "SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug' ORDER BY post_id" );
91
- $num_old_slugs = count( $all_old_slugs );
92
- if ( $num_old_slugs > 0 ) {
93
-
94
- $posts_ids = array(
95
- 'products' => array(),
96
- 'none_products' => array(),
97
- );
98
- $old_slugs_list = '<ol>';
99
- $old_slugs_list_products = '<ol>';
100
- foreach ( $all_old_slugs as $old_slug_object ) {
101
- $slug_post_type = get_post_type( $old_slug_object->post_id );
102
- $current_slug = get_post( $old_slug_object->post_id )->post_name;
103
- if ( $slug_post_type == 'product' ) {
104
- $old_slugs_list_products .= '<li><strong>' . $old_slug_object->meta_value . '</strong> (<em>post title:</em> ' . get_the_title( $old_slug_object->post_id ) . ', <em>post id:</em> '. $old_slug_object->post_id . ', <em>current slug:</em> ' . $current_slug . ')</li>';
105
- $posts_ids['products'][] = $old_slug_object->post_id;
106
- }
107
- else {
108
- $old_slugs_list .= '<li><strong>' . $old_slug_object->meta_value . '</strong> (<em>post title:</em> ' . get_the_title( $old_slug_object->post_id ) . ', <em>post id:</em> '.$old_slug_object->post_id . ', <em>post type:</em> ' . $slug_post_type . ', <em>current slug:</em> ' . $current_slug . ' )</li>';
109
- $posts_ids['none_products'][] = $old_slug_object->post_id;
110
- }
111
- }
112
- $old_slugs_list .= '</ol>';
113
- $old_slugs_list_products .= '</ol>';
114
-
115
- if ( ( isset( $_POST['remove_old_products_slugs'] ) ) || ( isset( $_POST['remove_old_none_products_slugs'] ) ) ) {
116
-
117
- //print_r( $posts_ids );
118
- if ( isset( $_POST['remove_old_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['products'] );
119
- else if ( isset( $_POST['remove_old_none_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['none_products'] );
120
-
121
- $the_delete_query = "DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug' AND post_id IN ($post_ids_to_delete)";
122
-
123
- $delete_result = $wpdb->get_results( $the_delete_query );
124
- //echo "<pre>$the_delete_query</pre>";
125
-
126
- $recheck_result = $wpdb->get_results("SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug'");
127
- $recheck_result_count = count( $recheck_result );
128
- $remove_result_html = '<div class="updated"><p><strong>Removing old slugs from database finished! ' . ($num_old_slugs-$recheck_result_count) . ' old slug(s) deleted. Please <a href="">refresh</a> the page.</strong></p></div>';
129
- }
130
- }
131
- ?>
132
- <div>
133
- <h2>WooCommerce Jetpack - Remove Old Product Slugs</h2>
134
- <p>Tool removes old slugs/permalinks from database.</p>
135
- <?php echo $remove_result_html; ?>
136
- <?php
137
- $num_old_slugs_products = count( $posts_ids['products'] );
138
- if ( $num_old_slugs_products > 0 ) { ?>
139
- <h3>Old products slugs found: <?php echo $num_old_slugs_products; ?></h3>
140
- <p><?php echo $old_slugs_list_products; ?></p>
141
- <form method="post" action="">
142
- <input type="submit" name="remove_old_products_slugs" value="Remove All Old Product Slugs"/>
143
- </form>
144
- <?php }
145
- $num_old_slugs_none_products = count( $posts_ids['none_products'] );
146
- if ( $num_old_slugs_none_products > 0 ) { ?>
147
- <h3>None-products slugs found: <?php echo $num_old_slugs_none_products; ?></h3>
148
- <p><?php echo $old_slugs_list; ?></p>
149
- <form method="post" action="">
150
- <input type="submit" name="remove_old_none_products_slugs" value="Remove All Old None-Product Slugs"/>
151
- </form>
152
- <?php }
153
- if ( $num_old_slugs == 0 ) { ?>
154
- <div class="updated"><p><strong>No old slugs found.</strong></p></div>
155
- <?php } ?>
156
- </div>
157
- <?php
158
- }
159
- }
160
-
161
- endif;
162
-
163
- return new WCJ_Old_Slugs();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Old Product Slugs
4
+ *
5
+ * The WooCommerce Jetpack Old Product Slugs class.
6
+ *
7
+ * @class WCJ_Old_Slugs
8
+ * @version 1.0.0
9
+ * @package WC_Jetpack/Classes
10
+ * @category Class
11
+ * @author Algoritmika Ltd.
12
+ */
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+ if ( ! class_exists( 'WCJ_Old_Slugs' ) ) :
16
+
17
+ class WCJ_Old_Slugs {
18
+
19
+ public function __construct() {
20
+
21
+ // HOOKS
22
+
23
+ // Main hooks
24
+ if ( get_option( 'wcj_old_slugs_enabled' ) == 'yes' ) {
25
+
26
+ if ( is_admin() ) {
27
+
28
+ add_action( 'admin_menu', array($this, 'add_old_slugs_tool'), 999 ); // Add Remove Old Slugs tool to WooCommerce menu
29
+ }
30
+ }
31
+
32
+ // Settings hooks
33
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) ); // Add section to WooCommerce > Settings > Jetpack
34
+ add_filter( 'wcj_settings_old_slugs', array( $this, 'get_settings' ), 100 ); // Add the settings
35
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 ); // Add Enable option to Jetpack Settings Dashboard
36
+ }
37
+
38
+ /**
39
+ * add_enabled_option.
40
+ */
41
+ public function add_enabled_option( $settings ) {
42
+
43
+ $all_settings = $this->get_settings();
44
+ $settings[] = $all_settings[1];
45
+
46
+ return $settings;
47
+ }
48
+
49
+ /*
50
+ * Add the settings.
51
+ */
52
+ function get_settings() {
53
+
54
+ $settings = array(
55
+ array( 'title' => __( 'Old Slugs Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_old_slugs_options' ),
56
+
57
+ array(
58
+ 'title' => __( 'Old Slugs', 'woocommerce-jetpack' ),
59
+ 'desc' => __( 'Enable the Remove Old Product Slugs feature', 'woocommerce-jetpack' ),
60
+ 'desc_tip' => __( 'Remove old product slugs. Tool is accessible through <a href="/wp-admin/admin.php?page=woocommerce-jetpack-old-slugs">WooCommerce > Remove Old Slugs</a>.', 'woocommerce-jetpack' ),
61
+ 'id' => 'wcj_old_slugs_enabled',
62
+ 'default' => 'yes',
63
+ 'type' => 'checkbox'
64
+ ),
65
+
66
+ array( 'type' => 'sectionend', 'id' => 'wcj_old_slugs_options' ),
67
+ );
68
+
69
+ return $settings;
70
+ }
71
+
72
+ /*
73
+ * Add settings section to WooCommerce > Settings > Jetpack.
74
+ */
75
+ function settings_section( $sections ) {
76
+
77
+ $sections['old_slugs'] = 'Old Slugs';
78
+
79
+ return $sections;
80
+ }
81
+
82
+ public function add_old_slugs_tool() {
83
+
84
+ add_submenu_page( 'woocommerce', 'Jetpack - Remove Old Slugs', 'Remove Old Slugs', 'manage_options', 'woocommerce-jetpack-old-slugs', array( $this, 'create_old_slugs_tool' ) );
85
+ }
86
+
87
+ public function create_old_slugs_tool() {
88
+
89
+ global $wpdb;
90
+ $all_old_slugs = $wpdb->get_results( "SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug' ORDER BY post_id" );
91
+ $num_old_slugs = count( $all_old_slugs );
92
+ if ( $num_old_slugs > 0 ) {
93
+
94
+ $posts_ids = array(
95
+ 'products' => array(),
96
+ 'none_products' => array(),
97
+ );
98
+ $old_slugs_list = '<ol>';
99
+ $old_slugs_list_products = '<ol>';
100
+ foreach ( $all_old_slugs as $old_slug_object ) {
101
+ $slug_post_type = get_post_type( $old_slug_object->post_id );
102
+ $current_slug = get_post( $old_slug_object->post_id )->post_name;
103
+ if ( $slug_post_type == 'product' ) {
104
+ $old_slugs_list_products .= '<li><strong>' . $old_slug_object->meta_value . '</strong> (<em>post title:</em> ' . get_the_title( $old_slug_object->post_id ) . ', <em>post id:</em> '. $old_slug_object->post_id . ', <em>current slug:</em> ' . $current_slug . ')</li>';
105
+ $posts_ids['products'][] = $old_slug_object->post_id;
106
+ }
107
+ else {
108
+ $old_slugs_list .= '<li><strong>' . $old_slug_object->meta_value . '</strong> (<em>post title:</em> ' . get_the_title( $old_slug_object->post_id ) . ', <em>post id:</em> '.$old_slug_object->post_id . ', <em>post type:</em> ' . $slug_post_type . ', <em>current slug:</em> ' . $current_slug . ' )</li>';
109
+ $posts_ids['none_products'][] = $old_slug_object->post_id;
110
+ }
111
+ }
112
+ $old_slugs_list .= '</ol>';
113
+ $old_slugs_list_products .= '</ol>';
114
+
115
+ if ( ( isset( $_POST['remove_old_products_slugs'] ) ) || ( isset( $_POST['remove_old_none_products_slugs'] ) ) ) {
116
+
117
+ //print_r( $posts_ids );
118
+ if ( isset( $_POST['remove_old_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['products'] );
119
+ else if ( isset( $_POST['remove_old_none_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['none_products'] );
120
+
121
+ $the_delete_query = "DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug' AND post_id IN ($post_ids_to_delete)";
122
+
123
+ $delete_result = $wpdb->get_results( $the_delete_query );
124
+ //echo "<pre>$the_delete_query</pre>";
125
+
126
+ $recheck_result = $wpdb->get_results("SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug'");
127
+ $recheck_result_count = count( $recheck_result );
128
+ $remove_result_html = '<div class="updated"><p><strong>Removing old slugs from database finished! ' . ($num_old_slugs-$recheck_result_count) . ' old slug(s) deleted. Please <a href="">refresh</a> the page.</strong></p></div>';
129
+ }
130
+ }
131
+ ?>
132
+ <div>
133
+ <h2>WooCommerce Jetpack - Remove Old Product Slugs</h2>
134
+ <p>Tool removes old slugs/permalinks from database.</p>
135
+ <?php echo $remove_result_html; ?>
136
+ <?php
137
+ $num_old_slugs_products = count( $posts_ids['products'] );
138
+ if ( $num_old_slugs_products > 0 ) { ?>
139
+ <h3>Old products slugs found: <?php echo $num_old_slugs_products; ?></h3>
140
+ <p><?php echo $old_slugs_list_products; ?></p>
141
+ <form method="post" action="">
142
+ <input type="submit" name="remove_old_products_slugs" value="Remove All Old Product Slugs"/>
143
+ </form>
144
+ <?php }
145
+ $num_old_slugs_none_products = count( $posts_ids['none_products'] );
146
+ if ( $num_old_slugs_none_products > 0 ) { ?>
147
+ <h3>None-products slugs found: <?php echo $num_old_slugs_none_products; ?></h3>
148
+ <p><?php echo $old_slugs_list; ?></p>
149
+ <form method="post" action="">
150
+ <input type="submit" name="remove_old_none_products_slugs" value="Remove All Old None-Product Slugs"/>
151
+ </form>
152
+ <?php }
153
+ if ( $num_old_slugs == 0 ) { ?>
154
+ <div class="updated"><p><strong>No old slugs found.</strong></p></div>
155
+ <?php } ?>
156
+ </div>
157
+ <?php
158
+ }
159
+ }
160
+
161
+ endif;
162
+
163
+ return new WCJ_Old_Slugs();
includes/class-wcj-order-numbers.php CHANGED
@@ -1,191 +1,191 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Order Numbers
4
- *
5
- * The WooCommerce Jetpack Order Numbers class.
6
- *
7
- * @class WCJ_Order_Numbers
8
- */
9
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
10
-
11
- if ( ! class_exists( 'WCJ_Order_Numbers' ) ) :
12
-
13
- class WCJ_Order_Numbers {
14
-
15
- /**
16
- * Constructor.
17
- */
18
- public function __construct() {
19
-
20
- // Main hooks
21
- if ( get_option( 'wcj_order_numbers_enabled' ) == 'yes' ) {
22
-
23
- add_action( 'woocommerce_new_order', array( $this, 'add_order_number_meta' ), 100 );
24
- add_filter( 'woocommerce_order_number', array( $this, 'display_order_number' ), 100, 2 );
25
- }
26
- add_action( 'admin_menu', array($this, 'add_renumerate_orders_tool'), 100 );
27
-
28
- // Settings hooks
29
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
30
- add_filter( 'wcj_settings_order_numbers', array( $this, 'get_settings' ), 100 );
31
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
32
- }
33
-
34
- /**
35
- * Add Renumerate Orders tool to WooCommerce menu (menu link).
36
- */
37
- public function add_renumerate_orders_tool() {
38
-
39
- add_submenu_page( 'woocommerce', 'Jetpack - Renumerate Orders', 'Renumerate Orders', 'manage_options', 'woocommerce-jetpack--renumerate-orders', array( $this, 'create_renumerate_orders_tool' ) );
40
- }
41
-
42
- /**
43
- * Add Renumerate Orders tool to WooCommerce menu (the content).
44
- */
45
- public function create_renumerate_orders_tool() {
46
-
47
- $result_message = '';
48
- if ( isset( $_POST['renumerate_orders'] ) ) {
49
-
50
- $this->renumerate_orders();
51
- $result_message = '<div class="updated"><p><strong>Orders successfully renumerated!</p></div>';
52
- }
53
- ?>
54
-
55
- <?php echo $result_message; ?>
56
- <div>
57
- <h2>WooCommerce Jetpack - Renumerate Orders</h2>
58
- <p>The tool renumerates all orders. Press the button below to renumerate all existing orders starting from order counter settings in WooCommerce > Settings > Jetpack > Order Numbers.</p>
59
- <form method="post" action="">
60
- <input type="submit" name="renumerate_orders" value="Renumerate orders">
61
- </form>
62
- </div>
63
- <?php
64
- }
65
-
66
- /**
67
- * Add/update order_number meta to order.
68
- */
69
- public function add_order_number_meta( $order_id ) {
70
-
71
- $current_order_number = get_option( 'wcj_order_number_counter' );
72
- update_option( 'wcj_order_number_counter', ( $current_order_number + 1 ) );
73
- //add_post_meta( $order_id, '_wcj_order_number', $current_order_number );
74
- update_post_meta( $order_id, '_wcj_order_number', $current_order_number );
75
- }
76
-
77
- /**
78
- * Display order number.
79
- */
80
- public function display_order_number( $order_number, $order ) {
81
-
82
- $order_number_meta = get_post_meta( $order->id, '_wcj_order_number', true );
83
- if ( $order_number_meta != '' )
84
- $order_number = '#' . $order_number_meta;
85
-
86
- return $order_number;
87
- }
88
-
89
- /**
90
- * Renumerate orders function.
91
- */
92
- public function renumerate_orders() {
93
-
94
- $args = array(
95
- 'post_type' => 'shop_order',
96
- 'post_status' => 'publish',
97
- 'posts_per_page' => -1,
98
- 'orderby' => 'date',
99
- 'order' => 'ASC',
100
- );
101
-
102
- $loop = new WP_Query( $args );
103
-
104
- while ( $loop->have_posts() ) : $loop->the_post();
105
-
106
- $order_id = $loop->post->ID;
107
- $this->add_order_number_meta( $order_id );
108
-
109
- endwhile;
110
- }
111
-
112
- /**
113
- * Add Enabled option to Jetpack Dashboard.
114
- */
115
- public function add_enabled_option( $settings ) {
116
-
117
- $all_settings = $this->get_settings();
118
- $settings[] = $all_settings[1];
119
-
120
- return $settings;
121
- }
122
-
123
- /**
124
- * Add settings arrays to Jetpack Settings.
125
- */
126
- function get_settings() {
127
-
128
- $settings = array(
129
-
130
- array( 'title' => __( 'Order Numbers Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'Order Numbers.', 'woocommerce-jetpack' ), 'id' => 'wcj_order_numbers_options' ),
131
-
132
- array(
133
- 'title' => __( 'Order Numbers', 'woocommerce-jetpack' ),
134
- 'desc' => __( 'Enable the Order Numbers feature', 'woocommerce-jetpack' ),
135
- 'desc_tip' => __( 'Sequential order numbering. Custom order number prefix and number width.', 'woocommerce-jetpack' ),
136
- 'id' => 'wcj_order_numbers_enabled',
137
- 'default' => 'no',
138
- 'type' => 'checkbox',
139
- ),
140
-
141
- array(
142
- 'title' => __( 'Next Order Number', 'woocommerce-jetpack' ),
143
- 'desc' => __( 'Next new order will be given this number.', 'woocommerce-jetpack' ),
144
- //'desc_tip' => __( 'Order Numbers.', 'woocommerce-jetpack' ),
145
- 'id' => 'wcj_order_number_counter',
146
- 'default' => 1,
147
- 'type' => 'number',
148
- ),
149
-
150
- array(
151
- 'title' => __( 'Order Number Prefix', 'woocommerce-jetpack' ),
152
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
153
- 'desc_tip' => __( 'Prefix before order number (optional). This will change the prefixes for all existing orders.', 'woocommerce-jetpack' ),
154
- 'id' => 'wcj_order_number_prefix',
155
- 'default' => '#',
156
- 'type' => 'text',
157
- 'custom_attributes'
158
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
159
- ),
160
-
161
- array(
162
- 'title' => __( 'Order Number Width', 'woocommerce-jetpack' ),
163
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
164
- 'desc_tip' => __( 'Minimum width of number without prefix (zeros will be added to the left side). This will change the minimum width of order number for all existing orders. E.g. set to 5 to have order number displayed as 00001 instead of 1. Leave zero to disable.', 'woocommerce-jetpack' ),
165
- 'id' => 'wcj_order_number_min_width',
166
- 'default' => 0,
167
- 'type' => 'number',
168
- 'custom_attributes'
169
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
170
- ),
171
-
172
- array( 'type' => 'sectionend', 'id' => 'wcj_order_numbers_options' ),
173
- );
174
-
175
- return $settings;
176
- }
177
-
178
- /**
179
- * Add settings section to WooCommerce > Settings > Jetpack.
180
- */
181
- function settings_section( $sections ) {
182
-
183
- $sections['order_numbers'] = 'Order Numbers';
184
-
185
- return $sections;
186
- }
187
- }
188
-
189
- endif;
190
-
191
- return new WCJ_Order_Numbers();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Order Numbers
4
+ *
5
+ * The WooCommerce Jetpack Order Numbers class.
6
+ *
7
+ * @class WCJ_Order_Numbers
8
+ */
9
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
10
+
11
+ if ( ! class_exists( 'WCJ_Order_Numbers' ) ) :
12
+
13
+ class WCJ_Order_Numbers {
14
+
15
+ /**
16
+ * Constructor.
17
+ */
18
+ public function __construct() {
19
+
20
+ // Main hooks
21
+ if ( get_option( 'wcj_order_numbers_enabled' ) == 'yes' ) {
22
+
23
+ add_action( 'woocommerce_new_order', array( $this, 'add_order_number_meta' ), 100 );
24
+ add_filter( 'woocommerce_order_number', array( $this, 'display_order_number' ), 100, 2 );
25
+ }
26
+ add_action( 'admin_menu', array($this, 'add_renumerate_orders_tool'), 100 );
27
+
28
+ // Settings hooks
29
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
30
+ add_filter( 'wcj_settings_order_numbers', array( $this, 'get_settings' ), 100 );
31
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
32
+ }
33
+
34
+ /**
35
+ * Add Renumerate Orders tool to WooCommerce menu (menu link).
36
+ */
37
+ public function add_renumerate_orders_tool() {
38
+
39
+ add_submenu_page( 'woocommerce', 'Jetpack - Renumerate Orders', 'Renumerate Orders', 'manage_options', 'woocommerce-jetpack--renumerate-orders', array( $this, 'create_renumerate_orders_tool' ) );
40
+ }
41
+
42
+ /**
43
+ * Add Renumerate Orders tool to WooCommerce menu (the content).
44
+ */
45
+ public function create_renumerate_orders_tool() {
46
+
47
+ $result_message = '';
48
+ if ( isset( $_POST['renumerate_orders'] ) ) {
49
+
50
+ $this->renumerate_orders();
51
+ $result_message = '<div class="updated"><p><strong>Orders successfully renumerated!</p></div>';
52
+ }
53
+ ?>
54
+
55
+ <?php echo $result_message; ?>
56
+ <div>
57
+ <h2>WooCommerce Jetpack - Renumerate Orders</h2>
58
+ <p>The tool renumerates all orders. Press the button below to renumerate all existing orders starting from order counter settings in WooCommerce > Settings > Jetpack > Order Numbers.</p>
59
+ <form method="post" action="">
60
+ <input type="submit" name="renumerate_orders" value="Renumerate orders">
61
+ </form>
62
+ </div>
63
+ <?php
64
+ }
65
+
66
+ /**
67
+ * Add/update order_number meta to order.
68
+ */
69
+ public function add_order_number_meta( $order_id ) {
70
+
71
+ $current_order_number = get_option( 'wcj_order_number_counter' );
72
+ update_option( 'wcj_order_number_counter', ( $current_order_number + 1 ) );
73
+ //add_post_meta( $order_id, '_wcj_order_number', $current_order_number );
74
+ update_post_meta( $order_id, '_wcj_order_number', $current_order_number );
75
+ }
76
+
77
+ /**
78
+ * Display order number.
79
+ */
80
+ public function display_order_number( $order_number, $order ) {
81
+
82
+ $order_number_meta = get_post_meta( $order->id, '_wcj_order_number', true );
83
+ if ( $order_number_meta !== '' )
84
+ $order_number = '#' . $order_number_meta;
85
+
86
+ return $order_number;
87
+ }
88
+
89
+ /**
90
+ * Renumerate orders function.
91
+ */
92
+ public function renumerate_orders() {
93
+
94
+ $args = array(
95
+ 'post_type' => 'shop_order',
96
+ 'post_status' => 'publish',
97
+ 'posts_per_page' => -1,
98
+ 'orderby' => 'date',
99
+ 'order' => 'ASC',
100
+ );
101
+
102
+ $loop = new WP_Query( $args );
103
+
104
+ while ( $loop->have_posts() ) : $loop->the_post();
105
+
106
+ $order_id = $loop->post->ID;
107
+ $this->add_order_number_meta( $order_id );
108
+
109
+ endwhile;
110
+ }
111
+
112
+ /**
113
+ * Add Enabled option to Jetpack Dashboard.
114
+ */
115
+ public function add_enabled_option( $settings ) {
116
+
117
+ $all_settings = $this->get_settings();
118
+ $settings[] = $all_settings[1];
119
+
120
+ return $settings;
121
+ }
122
+
123
+ /**
124
+ * Add settings arrays to Jetpack Settings.
125
+ */
126
+ function get_settings() {
127
+
128
+ $settings = array(
129
+
130
+ array( 'title' => __( 'Order Numbers Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'Order Numbers.', 'woocommerce-jetpack' ), 'id' => 'wcj_order_numbers_options' ),
131
+
132
+ array(
133
+ 'title' => __( 'Order Numbers', 'woocommerce-jetpack' ),
134
+ 'desc' => __( 'Enable the Order Numbers feature', 'woocommerce-jetpack' ),
135
+ 'desc_tip' => __( 'Sequential order numbering. Custom order number prefix and number width.', 'woocommerce-jetpack' ),
136
+ 'id' => 'wcj_order_numbers_enabled',
137
+ 'default' => 'no',
138
+ 'type' => 'checkbox',
139
+ ),
140
+
141
+ array(
142
+ 'title' => __( 'Next Order Number', 'woocommerce-jetpack' ),
143
+ 'desc' => __( 'Next new order will be given this number.', 'woocommerce-jetpack' ),
144
+ //'desc_tip' => __( 'Order Numbers.', 'woocommerce-jetpack' ),
145
+ 'id' => 'wcj_order_number_counter',
146
+ 'default' => 1,
147
+ 'type' => 'number',
148
+ ),
149
+
150
+ array(
151
+ 'title' => __( 'Order Number Prefix', 'woocommerce-jetpack' ),
152
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
153
+ 'desc_tip' => __( 'Prefix before order number (optional). This will change the prefixes for all existing orders.', 'woocommerce-jetpack' ),
154
+ 'id' => 'wcj_order_number_prefix',
155
+ 'default' => '#',
156
+ 'type' => 'text',
157
+ 'custom_attributes'
158
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
159
+ ),
160
+
161
+ array(
162
+ 'title' => __( 'Order Number Width', 'woocommerce-jetpack' ),
163
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
164
+ 'desc_tip' => __( 'Minimum width of number without prefix (zeros will be added to the left side). This will change the minimum width of order number for all existing orders. E.g. set to 5 to have order number displayed as 00001 instead of 1. Leave zero to disable.', 'woocommerce-jetpack' ),
165
+ 'id' => 'wcj_order_number_min_width',
166
+ 'default' => 0,
167
+ 'type' => 'number',
168
+ 'custom_attributes'
169
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
170
+ ),
171
+
172
+ array( 'type' => 'sectionend', 'id' => 'wcj_order_numbers_options' ),
173
+ );
174
+
175
+ return $settings;
176
+ }
177
+
178
+ /**
179
+ * Add settings section to WooCommerce > Settings > Jetpack.
180
+ */
181
+ function settings_section( $sections ) {
182
+
183
+ $sections['order_numbers'] = 'Order Numbers';
184
+
185
+ return $sections;
186
+ }
187
+ }
188
+
189
+ endif;
190
+
191
+ return new WCJ_Order_Numbers();
includes/class-wcj-pdf-invoices.php ADDED
@@ -0,0 +1,416 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack PDF Invoices
4
+ *
5
+ * The WooCommerce Jetpack PDF Invoices class.
6
+ *
7
+ * @class WCJ_PDF_Invoices
8
+ */
9
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
10
+
11
+ if ( ! class_exists( 'WCJ_PDF_Invoices' ) ) :
12
+
13
+ class WCJ_PDF_Invoices {
14
+
15
+ /**
16
+ * Constructor.
17
+ */
18
+ public function __construct() {
19
+
20
+ // Main hooks
21
+ if ( get_option( 'wcj_pdf_invoices_enabled' ) == 'yes' ) {
22
+
23
+ add_filter( 'woocommerce_admin_order_actions', array( $this, 'add_pdf_invoices_link_to_order_list' ), 100, 2 );
24
+
25
+ add_action( 'init', array( $this, 'generate_pdf' ), 10 );
26
+ //wp_ajax_
27
+ }
28
+
29
+ //$this->generate_pdf();
30
+
31
+ // Settings hooks
32
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
33
+ add_filter( 'wcj_settings_pdf_invoices', array( $this, 'get_settings' ), 100 );
34
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
35
+ }
36
+
37
+ /**
38
+ * generate_pdf.
39
+ */
40
+ public function generate_pdf() {
41
+
42
+ if ( ! isset( $_GET['pdf_invoice'] ) ) return;
43
+
44
+ if ( ! is_user_logged_in() ) return;
45
+
46
+ $order_id = $_GET['pdf_invoice'];
47
+ $the_order = new WC_Order( $order_id );
48
+ $the_items = $the_order->get_items();
49
+
50
+ if ( ( ! current_user_can( 'administrator' ) ) && ( get_current_user_id() != intval( get_post_meta( $order_id, '_customer_user', true ) ) ) ) return;
51
+
52
+ // Include the main TCPDF library (search for installation path).
53
+ //require_once('tcpdf_include.php');
54
+ require_once( 'tcpdf_min/tcpdf.php' );
55
+
56
+ // create new PDF document
57
+ $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
58
+
59
+ // set document information
60
+ $pdf->SetCreator( PDF_CREATOR );
61
+ //$pdf->SetAuthor( 'Algoritmika Ltd.' );
62
+ $pdf->SetTitle( 'Invoice' );
63
+ $pdf->SetSubject( 'Invoice PDF' );
64
+ $pdf->SetKeywords( 'invoice, PDF' );
65
+
66
+ // set default header data
67
+ //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
68
+ //$pdf->SetHeaderData( get_option( 'wcj_pdf_invoices_seller_logo_url' ), 30, get_option( 'wcj_pdf_invoices_header_title' ), get_option( 'wcj_pdf_invoices_header_string' ), array(0,64,255), array(0,64,128));
69
+ $pdf->SetPrintHeader(false);
70
+ //$pdf->setFooterData(array(0,64,0), array(0,64,128));
71
+ $pdf->SetPrintFooter(false);
72
+
73
+ // set header and footer fonts
74
+ $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
75
+ $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
76
+
77
+ // set default monospaced font
78
+ $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
79
+
80
+ // set margins
81
+ $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
82
+ $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
83
+ $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
84
+
85
+ // set auto page breaks
86
+ $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
87
+
88
+ // set image scale factor
89
+ $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
90
+
91
+ /*
92
+ // set some language-dependent strings (optional)
93
+ if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
94
+ require_once(dirname(__FILE__).'/lang/eng.php');
95
+ $pdf->setLanguageArray($l);
96
+ }
97
+ */
98
+
99
+ // ---------------------------------------------------------
100
+
101
+ // set default font subsetting mode
102
+ $pdf->setFontSubsetting(true);
103
+
104
+ // Set font
105
+ // dejavusans is a UTF-8 Unicode font, if you only need to
106
+ // print standard ASCII chars, you can use core fonts like
107
+ // helvetica or times to reduce file size.
108
+ $pdf->SetFont('dejavusans', '', 14, '', true);
109
+
110
+ // Add a page
111
+ // This method has several options, check the source code documentation for more information.
112
+ $pdf->AddPage();
113
+
114
+ // set text shadow effect
115
+ $pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
116
+
117
+ $html = '<style>
118
+ .custom_table { font-size: smaller; padding: 10px; width: 100%; }
119
+ .custom_table td { border: 1px solid #F0F0F0; }
120
+ .custom_table th { border: 1px solid #F0F0F0; font-weight: bold; font-size: small; }
121
+ </style>';
122
+
123
+ //$html .= print_r( $the_order , true );
124
+
125
+ if ( get_option( 'wcj_pdf_invoices_seller_logo_url' ) !== '' )
126
+ //$html .= get_option( 'wcj_pdf_invoices_seller_logo_url' );
127
+ $html .= '<p><img src="' . get_option( 'wcj_pdf_invoices_seller_logo_url' ) . '"><div style="text-align:right;color:gray;font-weight:bold;">' . get_option( 'wcj_pdf_invoices_header_text' ) . '</div></p>';
128
+ else
129
+ $html .= '<div style="text-align:right;color:gray;font-weight:bold;">' . get_option( 'wcj_pdf_invoices_header_text' ) . '</div>';
130
+
131
+ $order_number = $the_order->get_order_number();
132
+
133
+ $html .= '<table><tbody>';
134
+ $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_number_text' ) . '</td><td>' . $order_number . '</td></tr>';
135
+ $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_date_text' ) . '</td><td>' . date( get_option('date_format') , strtotime( $the_order->order_date ) ) . '</td></tr>';
136
+ $html .= '</tbody></table>';
137
+
138
+ $html .= '<p><table><tbody>';
139
+ $html .= '<tr><td>';
140
+ $html .= '<h2>' . get_option( 'wcj_pdf_invoices_seller_text' ) . '</h2>';
141
+ $html .= str_replace( PHP_EOL, '<br>', get_option( 'wcj_pdf_invoices_seller_info' ) );
142
+ $html .= '</td><td>';
143
+ $html .= '<h2>' . get_option( 'wcj_pdf_invoices_buyer_text' ) . '</h2>';
144
+ $html .= $the_order->get_formatted_billing_address();
145
+ $html .= '</td></tr></tbody></table></p>';
146
+
147
+ $html .= '<h2>' . get_option( 'wcj_pdf_invoices_items_text' ) . '</h2>';
148
+ $html .= '<table class="custom_table"><tbody>';
149
+ $html .= '<tr>
150
+ <th style="width:10%;">' . get_option( 'wcj_pdf_invoices_column_nr_text' ) . '</th>
151
+ <th style="width:55%;">' . get_option( 'wcj_pdf_invoices_column_item_name_text' ) . '</th>
152
+ <th style="width:15%;">' . get_option( 'wcj_pdf_invoices_column_qty_text' ) . '</th>
153
+ <th style="width:20%;">' . get_option( 'wcj_pdf_invoices_column_price_text' ) . '</th>
154
+ </tr>';
155
+ $item_counter = 0;
156
+ foreach ( $the_items as $item ) {
157
+
158
+ $item_counter++;
159
+
160
+ //$html .= '<li>';
161
+ $html .= '<tr>';
162
+
163
+ $html .= '<td>' . $item_counter . '</td>';
164
+
165
+ $html .= '<td>' . $item['name'];
166
+
167
+ $product = $the_order->get_product_from_item( $item );
168
+
169
+ //$html .= print_r($product , true );
170
+
171
+ if ( isset ( $product->variation_data ) ) {
172
+
173
+ foreach ( $product->variation_data as $key => $value ) {
174
+
175
+ $taxonomy_name = str_replace( 'attribute_', '', $key );
176
+ $taxonomy = get_taxonomy( $taxonomy_name );
177
+ $term = get_term_by( 'slug', $value, $taxonomy_name );
178
+ if ( isset( $term->name ) ) $html .= '<div style="font-size:x-small;">' . $taxonomy->label . ': ' . $term->name . '</div>';
179
+ }
180
+ }
181
+ $html .= '</td>';
182
+
183
+ $html .= '<td>' . $item['qty'] . '</td>';
184
+ $html .= '<td>' . $the_order->get_formatted_line_subtotal( $item ) . '</td>';
185
+ //$html .= '</li>';
186
+ $html .= '</tr>';
187
+ }
188
+ //$html .= '</ol>';
189
+ $html .= '</tbody></table>';
190
+
191
+ //$html .= '<h3>Order total: ' . $the_order->get_formatted_order_total() . '</h3>';
192
+ $html .= '<p><table style="font-size: smaller; padding: 10px; width: 100%;"><tbody><tr><td colspan="3"></td><td style="border: 1px solid #F0F0F0;">' . get_option( 'wcj_pdf_invoices_order_total_text' ) . '</td><td style="border: 1px solid #F0F0F0;">' . $the_order->get_formatted_order_total() . '</td></tr></tbody></table></p>';
193
+
194
+ //$html .= print_r($the_order , true );
195
+
196
+ //$html .= '</pre>';
197
+
198
+
199
+ // Print text using writeHTMLCell()
200
+ $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
201
+
202
+ // ---------------------------------------------------------
203
+
204
+ // Close and output PDF document
205
+ // This method has several options, check the source code documentation for more information.
206
+ if ( isset( $_GET['save_pdf_invoice'] ) && ( $_GET['save_pdf_invoice'] == '1' ) )
207
+ $pdf->Output('invoice-' . $order_number . '.pdf', 'D');
208
+ else
209
+ $pdf->Output('invoice-' . $order_number . '.pdf', 'I');
210
+ }
211
+
212
+ /**
213
+ * add_pdf_invoices_link_to_order_list.
214
+ */
215
+ public function add_pdf_invoices_link_to_order_list( $actions, $the_order ) {
216
+
217
+ $actions['pdf_invoice'] = array(
218
+ 'url' => basename( $_SERVER['REQUEST_URI'] ) . '&pdf_invoice=' . $the_order->id,
219
+ 'name' => __( 'PDF', 'woocommerce-jetpack' ),
220
+ 'action' => "pdf_invoice"
221
+ );
222
+
223
+ $actions['save_pdf_invoice'] = array(
224
+ 'url' => basename( $_SERVER['REQUEST_URI'] ) . '&pdf_invoice=' . $the_order->id . '&save_pdf_invoice=1',
225
+ 'name' => __( 'Save PDF', 'woocommerce-jetpack' ),
226
+ 'action' => "save_pdf_invoice"
227
+ );
228
+
229
+ return $actions;
230
+ }
231
+
232
+ /**
233
+ * add_enabled_option.
234
+ */
235
+ public function add_enabled_option( $settings ) {
236
+
237
+ $all_settings = $this->get_settings();
238
+ $settings[] = $all_settings[1];
239
+
240
+ return $settings;
241
+ }
242
+
243
+ /**
244
+ * get_settings.
245
+ */
246
+ function get_settings() {
247
+
248
+ $settings = array(
249
+
250
+ array( 'title' => __( 'PDF Invoices Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'PDF Invoices.', 'woocommerce-jetpack' ), 'id' => 'wcj_pdf_invoices_options' ),
251
+
252
+ array(
253
+ 'title' => __( 'PDF Invoices', 'woocommerce-jetpack' ),
254
+ 'desc' => __( 'Enable the PDF Invoices feature', 'woocommerce-jetpack' ),
255
+ 'desc_tip' => __( 'PDF Invoices.', 'woocommerce-jetpack' ),
256
+ 'id' => 'wcj_pdf_invoices_enabled',
257
+ 'default' => 'yes',
258
+ 'type' => 'checkbox',
259
+ ),
260
+
261
+ array(
262
+ 'title' => __( 'Your Logo URL', 'woocommerce-jetpack' ),
263
+ 'desc' => __( 'Enter a URL to an image you want to show in the invoice\'s header. Upload your image using the <a href="/wp-admin/media-new.php">media uploader</a>.', 'woocommerce-jetpack' ),
264
+ 'desc_tip' => __( 'Header image', 'woocommerce-jetpack' ),
265
+ 'id' => 'wcj_pdf_invoices_seller_logo_url',
266
+ //'default' => 'yes',
267
+ 'type' => 'text',
268
+ 'css' => 'width:33%;min-width:300px;',
269
+ ),
270
+
271
+ array(
272
+ 'title' => __( 'Header Text', 'woocommerce-jetpack' ),
273
+ 'desc_tip' => __( 'Header text', 'woocommerce-jetpack' ),
274
+ 'id' => 'wcj_pdf_invoices_header_text',
275
+ 'default' => __( 'INVOICE' ),
276
+ 'type' => 'text',
277
+ 'css' => 'width:33%;min-width:300px;',
278
+ ),
279
+
280
+ array(
281
+ 'title' => __( 'Invoice Number Text', 'woocommerce-jetpack' ),
282
+ 'desc_tip' => __( 'Invoice number text', 'woocommerce-jetpack' ),
283
+ 'id' => 'wcj_pdf_invoices_invoice_number_text',
284
+ 'default' => __( 'Invoice number' ),
285
+ 'type' => 'text',
286
+ 'css' => 'width:33%;min-width:300px;',
287
+ ),
288
+
289
+ array(
290
+ 'title' => __( 'Invoice Date Text', 'woocommerce-jetpack' ),
291
+ 'desc_tip' => __( 'Invoice date text', 'woocommerce-jetpack' ),
292
+ 'id' => 'wcj_pdf_invoices_invoice_date_text',
293
+ 'default' => __( 'Invoice date' ),
294
+ 'type' => 'text',
295
+ 'css' => 'width:33%;min-width:300px;',
296
+ ),
297
+
298
+ array(
299
+ 'title' => __( 'Seller Text', 'woocommerce-jetpack' ),
300
+ 'desc_tip' => __( 'Seller text', 'woocommerce-jetpack' ),
301
+ 'id' => 'wcj_pdf_invoices_seller_text',
302
+ 'default' => __( 'Seller' ),
303
+ 'type' => 'text',
304
+ 'css' => 'width:33%;min-width:300px;',
305
+ ),
306
+
307
+ array(
308
+ 'title' => __( 'Your business information', 'woocommerce-jetpack' ),
309
+ 'desc_tip' => __( 'Seller information', 'woocommerce-jetpack' ),
310
+ 'id' => 'wcj_pdf_invoices_seller_info',
311
+ 'default' =>
312
+ '<strong>Company Name</strong>
313
+ Address
314
+ City
315
+ ZIP code
316
+ Country
317
+
318
+ Phone:
319
+ Email:',
320
+ 'type' => 'textarea',
321
+ 'css' => 'width:33%;min-width:300px;min-height:300px;',
322
+ ),
323
+
324
+ array(
325
+ 'title' => __( 'Buyer Text', 'woocommerce-jetpack' ),
326
+ 'desc_tip' => __( 'Buyer text', 'woocommerce-jetpack' ),
327
+ 'id' => 'wcj_pdf_invoices_buyer_text',
328
+ 'default' => __( 'Buyer' ),
329
+ 'type' => 'text',
330
+ 'css' => 'width:33%;min-width:300px;',
331
+ ),
332
+
333
+ array(
334
+ 'title' => __( 'Items Text', 'woocommerce-jetpack' ),
335
+ 'desc_tip' => __( 'Items text', 'woocommerce-jetpack' ),
336
+ 'id' => 'wcj_pdf_invoices_items_text',
337
+ 'default' => __( 'Items' ),
338
+ 'type' => 'text',
339
+ 'css' => 'width:33%;min-width:300px;',
340
+ ),
341
+
342
+ array(
343
+ 'title' => __( 'Column - Nr. Text', 'woocommerce-jetpack' ),
344
+ 'desc_tip' => __( 'Nr. text', 'woocommerce-jetpack' ),
345
+ 'id' => 'wcj_pdf_invoices_column_nr_text',
346
+ 'default' => __( 'Nr.' ),
347
+ 'type' => 'text',
348
+ 'css' => 'width:33%;min-width:300px;',
349
+ ),
350
+
351
+ array(
352
+ 'title' => __( 'Column - Item Name Text', 'woocommerce-jetpack' ),
353
+ 'desc_tip' => __( 'Item name text', 'woocommerce-jetpack' ),
354
+ 'id' => 'wcj_pdf_invoices_column_item_name_text',
355
+ 'default' => __( 'Item Name' ),
356
+ 'type' => 'text',
357
+ 'css' => 'width:33%;min-width:300px;',
358
+ ),
359
+
360
+ array(
361
+ 'title' => __( 'Column - Qty Text', 'woocommerce-jetpack' ),
362
+ 'desc_tip' => __( 'Qty text', 'woocommerce-jetpack' ),
363
+ 'id' => 'wcj_pdf_invoices_column_qty_text',
364
+ 'default' => __( 'Qty' ),
365
+ 'type' => 'text',
366
+ 'css' => 'width:33%;min-width:300px;',
367
+ ),
368
+
369
+ array(
370
+ 'title' => __( 'Column - Price Text', 'woocommerce-jetpack' ),
371
+ 'desc_tip' => __( 'Price text', 'woocommerce-jetpack' ),
372
+ 'id' => 'wcj_pdf_invoices_column_price_text',
373
+ 'default' => __( 'Price' ),
374
+ 'type' => 'text',
375
+ 'css' => 'width:33%;min-width:300px;',
376
+ ),
377
+
378
+ array(
379
+ 'title' => __( 'Order Total Text', 'woocommerce-jetpack' ),
380
+ 'desc_tip' => __( 'Order Total text', 'woocommerce-jetpack' ),
381
+ 'id' => 'wcj_pdf_invoices_order_total_text',
382
+ 'default' => __( 'Order Total' ),
383
+ 'type' => 'text',
384
+ 'css' => 'width:33%;min-width:300px;',
385
+ ),
386
+
387
+ array(
388
+ 'title' => __( 'PDF Invoices for Customers', 'woocommerce-jetpack' ),
389
+ 'desc' => __( 'Enable the PDF Invoices in customers account', 'woocommerce-jetpack' ),
390
+ 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
391
+ 'id' => 'wcj_pdf_invoices_enabled_for_customers',
392
+ 'default' => 'no',
393
+ 'type' => 'checkbox',
394
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
395
+ ),
396
+
397
+ array( 'type' => 'sectionend', 'id' => 'wcj_pdf_invoices_options' ),
398
+ );
399
+
400
+ return $settings;
401
+ }
402
+
403
+ /**
404
+ * settings_section.
405
+ */
406
+ function settings_section( $sections ) {
407
+
408
+ $sections['pdf_invoices'] = 'PDF Invoices';
409
+
410
+ return $sections;
411
+ }
412
+ }
413
+
414
+ endif;
415
+
416
+ return new WCJ_PDF_Invoices();
includes/class-wcj-price-labels.php CHANGED
@@ -1,276 +1,276 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Price Labels
4
- *
5
- * The WooCommerce Jetpack Price Labels class.
6
- *
7
- * @class WCJ_Price_Labels
8
- * @category Class
9
- * @author Algoritmika Ltd.
10
- */
11
-
12
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'WCJ_Price_Labels' ) ) :
15
-
16
- class WCJ_Price_Labels {
17
-
18
- /**
19
- * Constructor.
20
- */
21
- public function __construct() {
22
-
23
- // HOOKS
24
- // Main hooks
25
- // Custom Price Labels hooks
26
- add_action( 'add_meta_boxes', array( $this, 'add_price_label_meta_box' ) );
27
- // Custom Price Labels - cart item price hooks
28
- //add_filter( 'woocommerce_cart_item_price_html', array( $this, 'custom_price' ), 999, 2 ); // depreciated?
29
- //add_filter( 'woocommerce_cart_item_price', array( $this, 'custom_price' ), 999, 2 );
30
-
31
- // Custom Price Labels - price hooks
32
-
33
- //add_filter( 'woocommerce_get_price_html', array( $this, 'custom_price' ), 100, 2 );
34
-
35
- add_filter( 'woocommerce_empty_price_html', array( $this, 'custom_price' ), 100, 2 );
36
- add_filter( 'woocommerce_free_price_html', array( $this, 'custom_price' ), 100, 2 );
37
- add_filter( 'woocommerce_free_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
38
- add_filter( 'woocommerce_price_html', array( $this, 'custom_price' ), 100, 2 );
39
- add_filter( 'woocommerce_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
40
- // Custom Price Labels - price hooks
41
- add_filter( 'woocommerce_grouped_price_html', array( $this, 'custom_price' ), 100, 2 );
42
- // Custom Price Labels - price hooks
43
- add_filter( 'woocommerce_variable_empty_price_html', array( $this, 'custom_price' ), 100, 2 );
44
- add_filter( 'woocommerce_variable_free_price_html', array( $this, 'custom_price' ), 100, 2 );
45
- add_filter( 'woocommerce_variable_free_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
46
- add_filter( 'woocommerce_variable_price_html', array( $this, 'custom_price' ), 100, 2 );
47
- add_filter( 'woocommerce_variable_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
48
- // Custom Price Labels - price hooks
49
- add_filter( 'woocommerce_variation_empty_price_html', array( $this, 'custom_price' ), 100, 2 );
50
- add_filter( 'woocommerce_variation_free_price_html', array( $this, 'custom_price' ), 100, 2 );
51
- //woocommerce_variation_option_name
52
- add_filter( 'woocommerce_variation_price_html', array( $this, 'custom_price' ), 100, 2 );
53
- add_filter( 'woocommerce_variation_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
54
- // Custom Price Labels - save post hook
55
- add_action( 'save_post', array( $this, 'save_custom_price_labels' ), 999, 2 );
56
-
57
- // Settings hooks
58
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
59
- add_filter( 'wcj_settings_price_labels', array( $this, 'get_settings' ), 100 );
60
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
61
-
62
- // Custom Price Labels - fields array
63
- $this->custom_tab_group_name = 'wcj_price_labels';// for compatibility with Custom Price Label Pro plugin should use 'simple_is_custom_pricing_label'
64
- $this->custom_tab_sections = array ( '_instead', '_before', '_between', '_after', );
65
- $this->custom_tab_sections_titles = array (
66
- '_instead' => 'Instead of the price',// for compatibility with Custom Price Label Pro plugin should use ''
67
- '_before' => 'Before the price',
68
- '_between' => 'Between the regular and sale price',
69
- '_after' => 'After the price',
70
- );
71
- $this->custom_tab_section_variations = array ( '_text', '_enabled', '_home', '_products', '_single', );
72
- $this->custom_tab_section_variations_titles = array (
73
- '_text' => 'The label',
74
- '_enabled' => 'Enable',// for compatibility with Custom Price Label Pro plugin should use ''
75
- '_home' => 'Hide on home page',
76
- '_products' => 'Hide on products page',
77
- '_single' => 'Hide on single',
78
- );
79
- }
80
-
81
- /*public function custom_price1( $price, $product ) {
82
- echo '[' . $price . ']';
83
- return $price;
84
- }*/
85
-
86
- /**
87
- * add_enabled_option.
88
- */
89
- public function add_enabled_option( $settings ) {
90
-
91
- $all_settings = $this->get_settings();
92
- $settings[] = $all_settings[1];
93
-
94
- return $settings;
95
- }
96
-
97
- public function save_custom_price_labels( $post_id, $post ) {
98
-
99
- //$product = get_product( $post );TODO - do I need it?
100
-
101
- foreach ( $this->custom_tab_sections as $custom_tab_section ) {
102
-
103
- foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
104
-
105
- //$option_name = $this->custom_tab_group_name;
106
- $option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
107
-
108
- if ( $custom_tab_section_variation == '_text' ) {
109
- //$option_name .= $custom_tab_section_variation . $custom_tab_section;
110
- if ( isset( $_POST[ $option_name ] ) ) update_post_meta( $post_id, '_' . $option_name, $_POST[ $option_name ] );
111
- }
112
- else {
113
- //$option_name .= $custom_tab_section . $custom_tab_section_variation;
114
- if ( isset( $_POST[ $option_name ] ) ) update_post_meta( $post_id, '_' . $option_name, $_POST[ $option_name ] );
115
- else update_post_meta( $post_id, '_' . $option_name, 'off' );
116
- }
117
- }
118
- }
119
- }
120
-
121
- public function add_price_label_meta_box() {
122
-
123
- add_meta_box( 'wc-jetpack-price-labels', 'Custom Price Labels', array($this, 'wcj_price_label'), 'product', 'normal', 'high' );
124
- }
125
-
126
- /*
127
- * back end
128
- */
129
- public function wcj_price_label() {
130
-
131
- $current_post_id = get_the_ID();
132
-
133
- foreach ( $this->custom_tab_sections as $custom_tab_section ) {
134
-
135
- if ( $custom_tab_section == '_before' ) $disabled_if_no_plus = apply_filters( 'get_wc_jetpack_plus_message', '', 'desc_below' );
136
- else $disabled_if_no_plus = '';
137
-
138
- echo '<p>' . $disabled_if_no_plus . '<ul><strong>' . $this->custom_tab_sections_titles[ $custom_tab_section ] . '</strong>';
139
-
140
- foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
141
-
142
- //$option_name = $this->custom_tab_group_name;
143
- $option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
144
-
145
- if ( $custom_tab_section_variation == '_text' ) {
146
-
147
- //$option_name .= $custom_tab_section_variation . $custom_tab_section;
148
-
149
- if ( $custom_tab_section != '_instead' ) $disabled_if_no_plus = apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly_string' );
150
- else $disabled_if_no_plus = '';
151
- //if ( $disabled_if_no_plus != '' ) $disabled_if_no_plus = 'readonly';
152
-
153
- $label_text = get_post_meta($current_post_id, '_' . $option_name, true );
154
- $label_text = str_replace ( '"', '&quot;', $label_text );
155
-
156
- echo '<li>' . $this->custom_tab_section_variations_titles[ $custom_tab_section_variation ] . ' <input style="width:50%;min-width:300px;" type="text" ' . $disabled_if_no_plus . ' name="' . $option_name . '" id="' . $option_name . '" value="' . $label_text . '" /></li>';
157
-
158
- }
159
- else {
160
-
161
- //$option_name .= $custom_tab_section . $custom_tab_section_variation;
162
-
163
- if ( $custom_tab_section != '_instead' ) $disabled_if_no_plus = apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled_string' );
164
- else $disabled_if_no_plus = '';
165
- //if ( $disabled_if_no_plus != '' ) $disabled_if_no_plus = 'disabled';
166
-
167
- echo '<li><input class="checkbox" type="checkbox" ' . $disabled_if_no_plus . ' name="' . $option_name . '" id="' . $option_name . '" ' .
168
- checked( get_post_meta($current_post_id, '_' . $option_name, true), 'on', false ) . ' /> ' . $this->custom_tab_section_variations_titles[ $custom_tab_section_variation ] . '</li>';
169
- }
170
- }
171
-
172
- echo '</ul></p>';
173
- }
174
- }
175
-
176
- public function customize_price( $price, $custom_tab_section, $custom_label ) {
177
-
178
- switch ( $custom_tab_section ) {
179
-
180
- case '_instead':
181
- $price = $custom_label;
182
- break;
183
-
184
- case '_before':
185
- $price = apply_filters( 'wcjpc_filter', $price, $custom_label . $price );
186
- break;
187
-
188
- case '_between':
189
- $price = apply_filters( 'wcjpc_filter', $price, str_replace( '</del> <ins>', '</del>' . $custom_label . '<ins>', $price ) );
190
- break;
191
-
192
- case '_after':
193
- $price = apply_filters( 'wcjpc_filter', $price, $price . $custom_label );
194
- break;
195
- }
196
-
197
- return $price;
198
- }
199
-
200
- /*
201
- * front end
202
- */
203
- public function custom_price( $price, $product ) {
204
-
205
- foreach ( $this->custom_tab_sections as $custom_tab_section ) {
206
-
207
- $labels_array = array();
208
-
209
- foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
210
-
211
- //$option_name = $this->custom_tab_group_name;
212
- $option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
213
- $labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta($product->post->ID, '_' . $option_name, true );
214
-
215
- /*if ( $custom_tab_section_variation == '_text' ) {
216
-
217
- //$option_name .= $custom_tab_section_variation . $custom_tab_section;
218
- $labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta($product->post->ID, '_' . $option_name, true );
219
- }
220
- else {
221
-
222
- //$option_name .= $custom_tab_section . $custom_tab_section_variation;
223
- $labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta($product->post->ID, '_' . $option_name, true);
224
- }*/
225
-
226
- //$price .= print_r( $labels_array );
227
- }
228
-
229
-
230
-
231
- if ( $labels_array[ 'variation_enabled' ] == 'on' ) {
232
-
233
- if ( ( ( $labels_array['variation_home'] == 'off' ) && ( is_front_page() ) ) ||
234
- ( ( $labels_array['variation_products'] == 'off' ) && ( is_archive() ) ) ||
235
- ( ( $labels_array['variation_single'] == 'off' ) && ( is_single() ) ) )
236
- $price = $this->customize_price( $price, $custom_tab_section, $labels_array['variation_text'] );
237
- }
238
-
239
- //unset( $labels_array );
240
- }
241
-
242
- return $price;
243
- }
244
-
245
- function get_settings() {
246
-
247
- $settings = array(
248
-
249
- array( 'title' => __( 'Custom Price Labels Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_price_labels_options' ),
250
-
251
- array(
252
- 'title' => __( 'Custom Price Labels', 'woocommerce-jetpack' ),
253
- 'desc' => __( 'Enable the Custom Price Labels feature', 'woocommerce-jetpack' ),
254
- 'desc_tip' => __( 'Create any custom price label for any product.', 'woocommerce-jetpack' ),
255
- 'id' => 'wcj_price_labels_enabled',
256
- 'default' => 'yes',
257
- 'type' => 'checkbox',
258
- ),
259
-
260
- array( 'type' => 'sectionend', 'id' => 'wcj_price_labels_options' ),
261
- );
262
-
263
- return $settings;
264
- }
265
-
266
- function settings_section( $sections ) {
267
-
268
- $sections['price_labels'] = 'Custom Price Labels';
269
-
270
- return $sections;
271
- }
272
- }
273
-
274
- endif;
275
-
276
- return new WCJ_Price_Labels();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Price Labels
4
+ *
5
+ * The WooCommerce Jetpack Price Labels class.
6
+ *
7
+ * @class WCJ_Price_Labels
8
+ * @category Class
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
13
+
14
+ if ( ! class_exists( 'WCJ_Price_Labels' ) ) :
15
+
16
+ class WCJ_Price_Labels {
17
+
18
+ /**
19
+ * Constructor.
20
+ */
21
+ public function __construct() {
22
+
23
+ // HOOKS
24
+ // Main hooks
25
+ // Custom Price Labels hooks
26
+ add_action( 'add_meta_boxes', array( $this, 'add_price_label_meta_box' ) );
27
+ // Custom Price Labels - cart item price hooks
28
+ //add_filter( 'woocommerce_cart_item_price_html', array( $this, 'custom_price' ), 999, 2 ); // depreciated?
29
+ //add_filter( 'woocommerce_cart_item_price', array( $this, 'custom_price' ), 999, 2 );
30
+
31
+ // Custom Price Labels - price hooks
32
+
33
+ //add_filter( 'woocommerce_get_price_html', array( $this, 'custom_price' ), 100, 2 );
34
+
35
+ add_filter( 'woocommerce_empty_price_html', array( $this, 'custom_price' ), 100, 2 );
36
+ add_filter( 'woocommerce_free_price_html', array( $this, 'custom_price' ), 100, 2 );
37
+ add_filter( 'woocommerce_free_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
38
+ add_filter( 'woocommerce_price_html', array( $this, 'custom_price' ), 100, 2 );
39
+ add_filter( 'woocommerce_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
40
+ // Custom Price Labels - price hooks
41
+ add_filter( 'woocommerce_grouped_price_html', array( $this, 'custom_price' ), 100, 2 );
42
+ // Custom Price Labels - price hooks
43
+ add_filter( 'woocommerce_variable_empty_price_html', array( $this, 'custom_price' ), 100, 2 );
44
+ add_filter( 'woocommerce_variable_free_price_html', array( $this, 'custom_price' ), 100, 2 );
45
+ add_filter( 'woocommerce_variable_free_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
46
+ add_filter( 'woocommerce_variable_price_html', array( $this, 'custom_price' ), 100, 2 );
47
+ add_filter( 'woocommerce_variable_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
48
+ // Custom Price Labels - price hooks
49
+ add_filter( 'woocommerce_variation_empty_price_html', array( $this, 'custom_price' ), 100, 2 );
50
+ add_filter( 'woocommerce_variation_free_price_html', array( $this, 'custom_price' ), 100, 2 );
51
+ //woocommerce_variation_option_name
52
+ add_filter( 'woocommerce_variation_price_html', array( $this, 'custom_price' ), 100, 2 );
53
+ add_filter( 'woocommerce_variation_sale_price_html', array( $this, 'custom_price' ), 100, 2 );
54
+ // Custom Price Labels - save post hook
55
+ add_action( 'save_post', array( $this, 'save_custom_price_labels' ), 999, 2 );
56
+
57
+ // Settings hooks
58
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
59
+ add_filter( 'wcj_settings_price_labels', array( $this, 'get_settings' ), 100 );
60
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
61
+
62
+ // Custom Price Labels - fields array
63
+ $this->custom_tab_group_name = 'wcj_price_labels';// for compatibility with Custom Price Label Pro plugin should use 'simple_is_custom_pricing_label'
64
+ $this->custom_tab_sections = array ( '_instead', '_before', '_between', '_after', );
65
+ $this->custom_tab_sections_titles = array (
66
+ '_instead' => 'Instead of the price',// for compatibility with Custom Price Label Pro plugin should use ''
67
+ '_before' => 'Before the price',
68
+ '_between' => 'Between the regular and sale price',
69
+ '_after' => 'After the price',
70
+ );
71
+ $this->custom_tab_section_variations = array ( '_text', '_enabled', '_home', '_products', '_single', );
72
+ $this->custom_tab_section_variations_titles = array (
73
+ '_text' => 'The label',
74
+ '_enabled' => 'Enable',// for compatibility with Custom Price Label Pro plugin should use ''
75
+ '_home' => 'Hide on home page',
76
+ '_products' => 'Hide on products page',
77
+ '_single' => 'Hide on single',
78
+ );
79
+ }
80
+
81
+ /*public function custom_price1( $price, $product ) {
82
+ echo '[' . $price . ']';
83
+ return $price;
84
+ }*/
85
+
86
+ /**
87
+ * add_enabled_option.
88
+ */
89
+ public function add_enabled_option( $settings ) {
90
+
91
+ $all_settings = $this->get_settings();
92
+ $settings[] = $all_settings[1];
93
+
94
+ return $settings;
95
+ }
96
+
97
+ public function save_custom_price_labels( $post_id, $post ) {
98
+
99
+ //$product = get_product( $post );TODO - do I need it?
100
+
101
+ foreach ( $this->custom_tab_sections as $custom_tab_section ) {
102
+
103
+ foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
104
+
105
+ //$option_name = $this->custom_tab_group_name;
106
+ $option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
107
+
108
+ if ( $custom_tab_section_variation == '_text' ) {
109
+ //$option_name .= $custom_tab_section_variation . $custom_tab_section;
110
+ if ( isset( $_POST[ $option_name ] ) ) update_post_meta( $post_id, '_' . $option_name, $_POST[ $option_name ] );
111
+ }
112
+ else {
113
+ //$option_name .= $custom_tab_section . $custom_tab_section_variation;
114
+ if ( isset( $_POST[ $option_name ] ) ) update_post_meta( $post_id, '_' . $option_name, $_POST[ $option_name ] );
115
+ else update_post_meta( $post_id, '_' . $option_name, 'off' );
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ public function add_price_label_meta_box() {
122
+
123
+ add_meta_box( 'wc-jetpack-price-labels', 'Custom Price Labels', array($this, 'wcj_price_label'), 'product', 'normal', 'high' );
124
+ }
125
+
126
+ /*
127
+ * back end
128
+ */
129
+ public function wcj_price_label() {
130
+
131
+ $current_post_id = get_the_ID();
132
+
133
+ foreach ( $this->custom_tab_sections as $custom_tab_section ) {
134
+
135
+ if ( $custom_tab_section == '_before' ) $disabled_if_no_plus = apply_filters( 'get_wc_jetpack_plus_message', '', 'desc_below' );
136
+ else $disabled_if_no_plus = '';
137
+
138
+ echo '<p>' . $disabled_if_no_plus . '<ul><strong>' . $this->custom_tab_sections_titles[ $custom_tab_section ] . '</strong>';
139
+
140
+ foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
141
+
142
+ //$option_name = $this->custom_tab_group_name;
143
+ $option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
144
+
145
+ if ( $custom_tab_section_variation == '_text' ) {
146
+
147
+ //$option_name .= $custom_tab_section_variation . $custom_tab_section;
148
+
149
+ if ( $custom_tab_section != '_instead' ) $disabled_if_no_plus = apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly_string' );
150
+ else $disabled_if_no_plus = '';
151
+ //if ( $disabled_if_no_plus != '' ) $disabled_if_no_plus = 'readonly';
152
+
153
+ $label_text = get_post_meta($current_post_id, '_' . $option_name, true );
154
+ $label_text = str_replace ( '"', '&quot;', $label_text );
155
+
156
+ echo '<li>' . $this->custom_tab_section_variations_titles[ $custom_tab_section_variation ] . ' <input style="width:50%;min-width:300px;" type="text" ' . $disabled_if_no_plus . ' name="' . $option_name . '" id="' . $option_name . '" value="' . $label_text . '" /></li>';
157
+
158
+ }
159
+ else {
160
+
161
+ //$option_name .= $custom_tab_section . $custom_tab_section_variation;
162
+
163
+ if ( $custom_tab_section != '_instead' ) $disabled_if_no_plus = apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled_string' );
164
+ else $disabled_if_no_plus = '';
165
+ //if ( $disabled_if_no_plus != '' ) $disabled_if_no_plus = 'disabled';
166
+
167
+ echo '<li><input class="checkbox" type="checkbox" ' . $disabled_if_no_plus . ' name="' . $option_name . '" id="' . $option_name . '" ' .
168
+ checked( get_post_meta($current_post_id, '_' . $option_name, true), 'on', false ) . ' /> ' . $this->custom_tab_section_variations_titles[ $custom_tab_section_variation ] . '</li>';
169
+ }
170
+ }
171
+
172
+ echo '</ul></p>';
173
+ }
174
+ }
175
+
176
+ public function customize_price( $price, $custom_tab_section, $custom_label ) {
177
+
178
+ switch ( $custom_tab_section ) {
179
+
180
+ case '_instead':
181
+ $price = $custom_label;
182
+ break;
183
+
184
+ case '_before':
185
+ $price = apply_filters( 'wcjpc_filter', $price, $custom_label . $price );
186
+ break;
187
+
188
+ case '_between':
189
+ $price = apply_filters( 'wcjpc_filter', $price, str_replace( '</del> <ins>', '</del>' . $custom_label . '<ins>', $price ) );
190
+ break;
191
+
192
+ case '_after':
193
+ $price = apply_filters( 'wcjpc_filter', $price, $price . $custom_label );
194
+ break;
195
+ }
196
+
197
+ return $price;
198
+ }
199
+
200
+ /*
201
+ * front end
202
+ */
203
+ public function custom_price( $price, $product ) {
204
+
205
+ foreach ( $this->custom_tab_sections as $custom_tab_section ) {
206
+
207
+ $labels_array = array();
208
+
209
+ foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
210
+
211
+ //$option_name = $this->custom_tab_group_name;
212
+ $option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
213
+ $labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta($product->post->ID, '_' . $option_name, true );
214
+
215
+ /*if ( $custom_tab_section_variation == '_text' ) {
216
+
217
+ //$option_name .= $custom_tab_section_variation . $custom_tab_section;
218
+ $labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta($product->post->ID, '_' . $option_name, true );
219
+ }
220
+ else {
221
+
222
+ //$option_name .= $custom_tab_section . $custom_tab_section_variation;
223
+ $labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta($product->post->ID, '_' . $option_name, true);
224
+ }*/
225
+
226
+ //$price .= print_r( $labels_array );
227
+ }
228
+
229
+
230
+
231
+ if ( $labels_array[ 'variation_enabled' ] == 'on' ) {
232
+
233
+ if ( ( ( $labels_array['variation_home'] == 'off' ) && ( is_front_page() ) ) ||
234
+ ( ( $labels_array['variation_products'] == 'off' ) && ( is_archive() ) ) ||
235
+ ( ( $labels_array['variation_single'] == 'off' ) && ( is_single() ) ) )
236
+ $price = $this->customize_price( $price, $custom_tab_section, $labels_array['variation_text'] );
237
+ }
238
+
239
+ //unset( $labels_array );
240
+ }
241
+
242
+ return $price;
243
+ }
244
+
245
+ function get_settings() {
246
+
247
+ $settings = array(
248
+
249
+ array( 'title' => __( 'Custom Price Labels Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_price_labels_options' ),
250
+
251
+ array(
252
+ 'title' => __( 'Custom Price Labels', 'woocommerce-jetpack' ),
253
+ 'desc' => __( 'Enable the Custom Price Labels feature', 'woocommerce-jetpack' ),
254
+ 'desc_tip' => __( 'Create any custom price label for any product.', 'woocommerce-jetpack' ),
255
+ 'id' => 'wcj_price_labels_enabled',
256
+ 'default' => 'yes',
257
+ 'type' => 'checkbox',
258
+ ),
259
+
260
+ array( 'type' => 'sectionend', 'id' => 'wcj_price_labels_options' ),
261
+ );
262
+
263
+ return $settings;
264
+ }
265
+
266
+ function settings_section( $sections ) {
267
+
268
+ $sections['price_labels'] = 'Custom Price Labels';
269
+
270
+ return $sections;
271
+ }
272
+ }
273
+
274
+ endif;
275
+
276
+ return new WCJ_Price_Labels();
includes/class-wcj-product-info.php CHANGED
@@ -1,131 +1,131 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Product Info
4
- *
5
- * The WooCommerce Jetpack Product Info class.
6
- *
7
- * @class WCJ_Product_Info
8
- * @version 1.0.0
9
- * @package WC_Jetpack/Classes
10
- * @category Class
11
- * @author Algoritmika Ltd.
12
- */
13
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
-
15
- if ( ! class_exists( 'WCJ_Product_Info' ) ) :
16
-
17
- class WCJ_Product_Info {
18
-
19
- public function __construct() {
20
-
21
- //HOOKS
22
-
23
- // Main hooks
24
- if ( get_option( 'wcj_product_info_enabled' ) == 'yes' ) {
25
-
26
- add_action( 'woocommerce_single_product_summary', array( $this, 'print_total_sales' ), 999);
27
- //add_action( 'woocommerce_after_single_product', array( $this, 'print_total_sales' ) );
28
- }
29
-
30
- // Settings hooks
31
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
32
- add_filter( 'wcj_settings_product_info', array( $this, 'get_settings' ), 100 );
33
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
34
- }
35
-
36
- /**
37
- * add_enabled_option.
38
- */
39
- public function add_enabled_option( $settings ) {
40
-
41
- $all_settings = $this->get_settings();
42
- $settings[] = $all_settings[1];
43
-
44
- return $settings;
45
- }
46
-
47
- function print_total_sales() {
48
-
49
- echo str_replace( '[TOTALSALES]', get_post_custom( get_the_ID() )['total_sales'][0], get_option( 'wcj_product_info_total_sales_text' ) );
50
- }
51
-
52
- function get_settings() {
53
-
54
- $settings = array(
55
-
56
- array( 'title' => __( 'Product Info Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_product_info_options' ),
57
-
58
- array(
59
- 'title' => __( 'Product Info', 'woocommerce-jetpack' ),
60
- 'desc' => __( 'Enable the Product Info feature', 'woocommerce-jetpack' ),
61
- 'desc_tip' => __( 'Display total product sales etc.', 'woocommerce-jetpack' ),
62
- 'id' => 'wcj_product_info_enabled',
63
- 'default' => 'yes',
64
- 'type' => 'checkbox'
65
- ),
66
-
67
- array( 'type' => 'sectionend', 'id' => 'wcj_product_info_options' ),
68
-
69
-
70
- array( 'title' => __( 'Total Sales Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_product_info_total_sales_options' ),
71
-
72
- array(
73
- 'title' => __( 'Enable', 'woocommerce-jetpack' ),
74
- 'desc' => __( 'Enable Total Sales', 'woocommerce-jetpack' ),
75
- //'desc_tip'=> __( 'Display total product sales etc.', 'woocommerce-jetpack' ),
76
- 'id' => 'wcj_product_info_total_sales_enabled',
77
- 'default' => 'no',
78
- 'type' => 'checkbox'
79
- ),
80
-
81
- array(
82
- 'title' => __( 'Text to Show', 'woocommerce-jetpack' ),
83
- 'desc_tip' => __( 'This sets the text to output for total sales. Default is "Total Sales: [TOTALSALES]"', 'woocommerce-jetpack' ),
84
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
85
- 'id' => 'wcj_product_info_total_sales_text',
86
- 'default' => __( 'Total Sales: [TOTALSALES]', 'woocommerce-jetpack' ),
87
- 'type' => 'textarea',
88
- 'css' => 'width:50%;min-width:300px;',
89
- 'custom_attributes'
90
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
91
- ),
92
-
93
- array( 'type' => 'sectionend', 'id' => 'wcj_product_info_total_sales_options' ),
94
-
95
- /*array(
96
- 'title' => __( 'Show on Single Product', 'woocommerce-jetpack' ),
97
- //'desc_tip'=> __( 'Check to show single products page', 'woocommerce-jetpack' ),
98
- 'id' => 'wcj_product_info_show_on_single',
99
- 'default' => 'yes',
100
- 'type' => 'checkbox',
101
- ),
102
-
103
- array(
104
- 'title' => __( 'Show on Products Archive', 'woocommerce-jetpack' ),
105
- 'id' => 'wcj_product_info_show_on_archive',
106
- 'default' => 'yes',
107
- 'type' => 'checkbox',
108
- ),
109
-
110
- array(
111
- 'title' => __( 'Show on Home Page', 'woocommerce-jetpack' ),
112
- 'id' => 'wcj_product_info_show_on_home',
113
- 'default' => 'yes',
114
- 'type' => 'checkbox',
115
- ),*/
116
- );
117
-
118
- return $settings;
119
- }
120
-
121
- function settings_section( $sections ) {
122
-
123
- $sections['product_info'] = 'Product Info';
124
-
125
- return $sections;
126
- }
127
- }
128
-
129
- endif;
130
-
131
- return new WCJ_Product_Info();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Product Info
4
+ *
5
+ * The WooCommerce Jetpack Product Info class.
6
+ *
7
+ * @class WCJ_Product_Info
8
+ * @version 1.0.0
9
+ * @package WC_Jetpack/Classes
10
+ * @category Class
11
+ * @author Algoritmika Ltd.
12
+ */
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+ if ( ! class_exists( 'WCJ_Product_Info' ) ) :
16
+
17
+ class WCJ_Product_Info {
18
+
19
+ public function __construct() {
20
+
21
+ //HOOKS
22
+
23
+ // Main hooks
24
+ if ( get_option( 'wcj_product_info_enabled' ) == 'yes' ) {
25
+
26
+ add_action( 'woocommerce_single_product_summary', array( $this, 'print_total_sales' ), 999);
27
+ //add_action( 'woocommerce_after_single_product', array( $this, 'print_total_sales' ) );
28
+ }
29
+
30
+ // Settings hooks
31
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
32
+ add_filter( 'wcj_settings_product_info', array( $this, 'get_settings' ), 100 );
33
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
34
+ }
35
+
36
+ /**
37
+ * add_enabled_option.
38
+ */
39
+ public function add_enabled_option( $settings ) {
40
+
41
+ $all_settings = $this->get_settings();
42
+ $settings[] = $all_settings[1];
43
+
44
+ return $settings;
45
+ }
46
+
47
+ function print_total_sales() {
48
+
49
+ echo str_replace( '[TOTALSALES]', get_post_custom( get_the_ID() )['total_sales'][0], get_option( 'wcj_product_info_total_sales_text' ) );
50
+ }
51
+
52
+ function get_settings() {
53
+
54
+ $settings = array(
55
+
56
+ array( 'title' => __( 'Product Info Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_product_info_options' ),
57
+
58
+ array(
59
+ 'title' => __( 'Product Info', 'woocommerce-jetpack' ),
60
+ 'desc' => __( 'Enable the Product Info feature', 'woocommerce-jetpack' ),
61
+ 'desc_tip' => __( 'Display total product sales etc.', 'woocommerce-jetpack' ),
62
+ 'id' => 'wcj_product_info_enabled',
63
+ 'default' => 'yes',
64
+ 'type' => 'checkbox'
65
+ ),
66
+
67
+ array( 'type' => 'sectionend', 'id' => 'wcj_product_info_options' ),
68
+
69
+
70
+ array( 'title' => __( 'Total Sales Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_product_info_total_sales_options' ),
71
+
72
+ array(
73
+ 'title' => __( 'Enable', 'woocommerce-jetpack' ),
74
+ 'desc' => __( 'Enable Total Sales', 'woocommerce-jetpack' ),
75
+ //'desc_tip'=> __( 'Display total product sales etc.', 'woocommerce-jetpack' ),
76
+ 'id' => 'wcj_product_info_total_sales_enabled',
77
+ 'default' => 'no',
78
+ 'type' => 'checkbox'
79
+ ),
80
+
81
+ array(
82
+ 'title' => __( 'Text to Show', 'woocommerce-jetpack' ),
83
+ 'desc_tip' => __( 'This sets the text to output for total sales. Default is "Total Sales: [TOTALSALES]"', 'woocommerce-jetpack' ),
84
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
85
+ 'id' => 'wcj_product_info_total_sales_text',
86
+ 'default' => __( 'Total Sales: [TOTALSALES]', 'woocommerce-jetpack' ),
87
+ 'type' => 'textarea',
88
+ 'css' => 'width:50%;min-width:300px;',
89
+ 'custom_attributes'
90
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
91
+ ),
92
+
93
+ array( 'type' => 'sectionend', 'id' => 'wcj_product_info_total_sales_options' ),
94
+
95
+ /*array(
96
+ 'title' => __( 'Show on Single Product', 'woocommerce-jetpack' ),
97
+ //'desc_tip'=> __( 'Check to show single products page', 'woocommerce-jetpack' ),
98
+ 'id' => 'wcj_product_info_show_on_single',
99
+ 'default' => 'yes',
100
+ 'type' => 'checkbox',
101
+ ),
102
+
103
+ array(
104
+ 'title' => __( 'Show on Products Archive', 'woocommerce-jetpack' ),
105
+ 'id' => 'wcj_product_info_show_on_archive',
106
+ 'default' => 'yes',
107
+ 'type' => 'checkbox',
108
+ ),
109
+
110
+ array(
111
+ 'title' => __( 'Show on Home Page', 'woocommerce-jetpack' ),
112
+ 'id' => 'wcj_product_info_show_on_home',
113
+ 'default' => 'yes',
114
+ 'type' => 'checkbox',
115
+ ),*/
116
+ );
117
+
118
+ return $settings;
119
+ }
120
+
121
+ function settings_section( $sections ) {
122
+
123
+ $sections['product_info'] = 'Product Info';
124
+
125
+ return $sections;
126
+ }
127
+ }
128
+
129
+ endif;
130
+
131
+ return new WCJ_Product_Info();
includes/class-wcj-sorting.php CHANGED
@@ -1,277 +1,277 @@
1
- <?php
2
- /**
3
- * WooCommerce Jetpack Sorting
4
- *
5
- * The WooCommerce Jetpack Sorting class.
6
- *
7
- * @class WCJ_Sorting
8
- * @version 1.0.0
9
- * @category Class
10
- * @author Algoritmika Ltd.
11
- */
12
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'WCJ_Sorting' ) ) :
15
-
16
- class WCJ_Sorting {
17
-
18
- /**
19
- * WCJ_Sorting Constructor.
20
- * @access public
21
- */
22
- public function __construct() {
23
-
24
- // HOOKS
25
-
26
- // Main hooks
27
- if ( get_option( 'wcj_sorting_enabled' ) == 'yes' ) {
28
-
29
- add_filter( 'woocommerce_get_catalog_ordering_args', array( $this, 'custom_woocommerce_get_catalog_ordering_args' ), 100 ); // Sorting
30
- add_filter( 'woocommerce_catalog_orderby', array( $this, 'custom_woocommerce_catalog_orderby' ), 100 ); // Front end
31
- add_filter( 'woocommerce_default_catalog_orderby_options', array( $this, 'custom_woocommerce_catalog_orderby' ), 100 ); // Back end (default sorting)
32
- add_action( 'init', array( $this, 'custom_init' ), 100 ); // Remove sorting
33
- }
34
-
35
- // Settings hooks
36
- add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) ); // Add section to WooCommerce > Settings > Jetpack
37
- add_filter( 'wcj_settings_sorting', array( $this, 'get_settings' ), 100 ); // Add the settings
38
- if ( get_option( 'wcj_sorting_enabled' ) == 'yes' )
39
- add_filter( 'woocommerce_product_settings', array( $this, 'add_remove_sorting_checkbox' ), 100 ); // Add 'Remove All Sorting' checkbox to WooCommerce > Settings > Products
40
- add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 ); // Add Enable option to Jetpack Settings Dashboard
41
- }
42
-
43
- /**
44
- * add_enabled_option.
45
- */
46
- public function add_enabled_option( $settings ) {
47
-
48
- $all_settings = $this->get_settings();
49
- $settings[] = $all_settings[1];
50
-
51
- return $settings;
52
- }
53
-
54
- /*
55
- * Add Remove All Sorting checkbox to WooCommerce > Settings > Products.
56
- */
57
- function add_remove_sorting_checkbox( $settings ) {
58
-
59
- $updated_settings = array();
60
-
61
- foreach ( $settings as $section ) {
62
-
63
- if ( isset( $section['id'] ) && 'woocommerce_cart_redirect_after_add' == $section['id'] ) {
64
-
65
- $updated_settings[] = array(
66
- 'title' => __( 'Remove All Sorting', 'woocommerce-jetpack' ),
67
- 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
68
- 'id' => 'wcj_sorting_remove_all_enabled',
69
- 'type' => 'checkbox',
70
- 'default' => 'no',
71
- 'desc' => __( 'Completely remove sorting from the shop front end', 'woocommerce-jetpack' ),
72
- 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
73
- );
74
- }
75
-
76
- $updated_settings[] = $section;
77
- }
78
-
79
- return $updated_settings;
80
- }
81
-
82
- /*
83
- * Custom Init - remove all sorting action
84
- */
85
- function custom_init() {
86
-
87
- if ( get_option( 'wcj_sorting_remove_all_enabled' ) )
88
- do_action( 'wcj_sorting_remove_action' );
89
- }
90
-
91
- /*
92
- * Add new sorting options to Front End and to Back End (in WooCommerce > Settings > Products > Default Product Sorting).
93
- */
94
- function custom_woocommerce_catalog_orderby( $sortby ) {
95
-
96
- if ( get_option( 'wcj_sorting_by_name_asc_enabled' ) == 'yes' )
97
- $sortby['title_asc'] = get_option( 'wcj_sorting_by_name_asc_text' );
98
-
99
- if ( get_option( 'wcj_sorting_by_name_desc_enabled' ) == 'yes' )
100
- $sortby['title_desc'] = get_option( 'wcj_sorting_by_name_desc_text' );
101
-
102
- if ( get_option( 'wcj_sorting_by_sku_asc_enabled' ) == 'yes' )
103
- $sortby['sku_asc'] = get_option( 'wcj_sorting_by_sku_asc_text' );
104
-
105
- if ( 'yes' == get_option( 'wcj_sorting_by_sku_desc_enabled' ) )
106
- $sortby['sku_desc'] = get_option( 'wcj_sorting_by_sku_desc_text' );
107
-
108
- return $sortby;
109
- }
110
-
111
- /*
112
- * Add new sorting options to WooCommerce sorting.
113
- */
114
- function custom_woocommerce_get_catalog_ordering_args( $args ) {
115
-
116
- global $woocommerce;
117
- // Get ordering from query string unless defined
118
- $orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
119
- // Get order + orderby args from string
120
- $orderby_value = explode( '-', $orderby_value );
121
- $orderby = esc_attr( $orderby_value[0] );
122
-
123
- switch ( $orderby ) :
124
- case 'title_asc' :
125
- $args['orderby'] = 'title';
126
- $args['order'] = 'asc';
127
- $args['meta_key'] = '';
128
- break;
129
- case 'title_desc' :
130
- $args['orderby'] = 'title';
131
- $args['order'] = 'desc';
132
- $args['meta_key'] = '';
133
- break;
134
- case 'sku_asc' :
135
- $args['orderby'] = 'meta_value';
136
- $args['order'] = 'asc';
137
- $args['meta_key'] = '_sku';
138
- break;
139
- case 'sku_desc' :
140
- $args['orderby'] = 'meta_value';
141
- $args['order'] = 'desc';
142
- $args['meta_key'] = '_sku';
143
- break;
144
- endswitch;
145
-
146
- return $args;
147
- }
148
-
149
- /*
150
- * Add the settings.
151
- */
152
- function get_settings() {
153
-
154
- $settings = array(
155
-
156
- array( 'title' => __( 'Sorting Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_sorting_options' ),
157
-
158
- array(
159
- 'title' => __( 'Sorting', 'woocommerce-jetpack' ),
160
- 'desc' => __( 'Enable the Sorting feature', 'woocommerce-jetpack' ),
161
- 'desc_tip' => __( 'Add more sorting options or remove all sorting including default.', 'woocommerce-jetpack' ),
162
- 'id' => 'wcj_sorting_enabled',
163
- 'default' => 'yes',
164
- 'type' => 'checkbox'
165
- ),
166
-
167
- array( 'type' => 'sectionend', 'id' => 'wcj_sorting_options' ),
168
-
169
- array( 'title' => __( 'Remove All Sorting', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_remove_all_sorting_options' ),
170
-
171
- array(
172
- 'title' => __( 'Remove All Sorting', 'woocommerce-jetpack' ),
173
- 'desc' => __( 'Remove all sorting (including WooCommerce default)', 'woocommerce-jetpack' ),
174
- 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
175
- 'id' => 'wcj_sorting_remove_all_enabled',
176
- 'default' => 'no',
177
- 'type' => 'checkbox',
178
- 'custom_attributes'
179
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
180
- ),
181
-
182
- array( 'type' => 'sectionend', 'id' => 'wcj_remove_all_sorting_options' ),
183
-
184
- array( 'title' => __( 'Add More Sorting', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_more_sorting_options' ),
185
-
186
- array(
187
- 'title' => __( 'Sort by Name - Asc', 'woocommerce-jetpack' ),
188
- 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
189
- 'id' => 'wcj_sorting_by_name_asc_text',
190
- 'default' => 'Sort: A to Z',
191
- 'type' => 'text',
192
- 'css' => 'min-width:300px;',
193
- ),
194
-
195
- array(
196
- 'title' => __( 'Sort by Name - Asc', 'woocommerce-jetpack' ),
197
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
198
- 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
199
- 'id' => 'wcj_sorting_by_name_asc_enabled',
200
- 'default' => 'yes',
201
- 'type' => 'checkbox',
202
- ),
203
-
204
- array(
205
- 'title' => __( 'Sort by Name - Desc', 'woocommerce-jetpack' ),
206
- 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
207
- 'id' => 'wcj_sorting_by_name_desc_text',
208
- 'default' => 'Sort: Z to A',
209
- 'type' => 'text',
210
- 'css' => 'min-width:300px;',
211
- ),
212
-
213
- array(
214
- 'title' => __( 'Sort by Name - Desc', 'woocommerce-jetpack' ),
215
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
216
- 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
217
- 'id' => 'wcj_sorting_by_name_desc_enabled',
218
- 'default' => 'yes',
219
- 'type' => 'checkbox',
220
- ),
221
-
222
- array(
223
- 'title' => __( 'Sort by SKU - Asc', 'woocommerce-jetpack' ),
224
- 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
225
- 'id' => 'wcj_sorting_by_sku_asc_text',
226
- 'default' => 'Sort: SKU (asc)',
227
- 'type' => 'text',
228
- 'css' => 'min-width:300px;',
229
- ),
230
-
231
- array(
232
- 'title' => __( 'Sort by SKU - Asc', 'woocommerce-jetpack' ),
233
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
234
- 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
235
- 'id' => 'wcj_sorting_by_sku_asc_enabled',
236
- 'default' => 'yes',
237
- 'type' => 'checkbox',
238
- ),
239
-
240
- array(
241
- 'title' => __( 'Sort by SKU - Desc', 'woocommerce-jetpack' ),
242
- 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
243
- 'id' => 'wcj_sorting_by_sku_desc_text',
244
- 'default' => 'Sort: SKU (desc)',
245
- 'type' => 'text',
246
- 'css' => 'min-width:300px;',
247
- ),
248
-
249
- array(
250
- 'title' => __( 'Sort by SKU - Desc', 'woocommerce-jetpack' ),
251
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
252
- 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
253
- 'id' => 'wcj_sorting_by_sku_desc_enabled',
254
- 'default' => 'yes',
255
- 'type' => 'checkbox',
256
- ),
257
-
258
- array( 'type' => 'sectionend', 'id' => 'wcj_more_sorting_options' ),
259
- );
260
-
261
- return $settings;
262
- }
263
-
264
- /*
265
- * Add settings section to WooCommerce > Settings > Jetpack.
266
- */
267
- function settings_section( $sections ) {
268
-
269
- $sections['sorting'] = 'Sorting';
270
-
271
- return $sections;
272
- }
273
- }
274
-
275
- endif;
276
-
277
- return new WCJ_Sorting();
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Sorting
4
+ *
5
+ * The WooCommerce Jetpack Sorting class.
6
+ *
7
+ * @class WCJ_Sorting
8
+ * @version 1.0.0
9
+ * @category Class
10
+ * @author Algoritmika Ltd.
11
+ */
12
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
13
+
14
+ if ( ! class_exists( 'WCJ_Sorting' ) ) :
15
+
16
+ class WCJ_Sorting {
17
+
18
+ /**
19
+ * WCJ_Sorting Constructor.
20
+ * @access public
21
+ */
22
+ public function __construct() {
23
+
24
+ // HOOKS
25
+
26
+ // Main hooks
27
+ if ( get_option( 'wcj_sorting_enabled' ) == 'yes' ) {
28
+
29
+ add_filter( 'woocommerce_get_catalog_ordering_args', array( $this, 'custom_woocommerce_get_catalog_ordering_args' ), 100 ); // Sorting
30
+ add_filter( 'woocommerce_catalog_orderby', array( $this, 'custom_woocommerce_catalog_orderby' ), 100 ); // Front end
31
+ add_filter( 'woocommerce_default_catalog_orderby_options', array( $this, 'custom_woocommerce_catalog_orderby' ), 100 ); // Back end (default sorting)
32
+ add_action( 'init', array( $this, 'custom_init' ), 100 ); // Remove sorting
33
+ }
34
+
35
+ // Settings hooks
36
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) ); // Add section to WooCommerce > Settings > Jetpack
37
+ add_filter( 'wcj_settings_sorting', array( $this, 'get_settings' ), 100 ); // Add the settings
38
+ if ( get_option( 'wcj_sorting_enabled' ) == 'yes' )
39
+ add_filter( 'woocommerce_product_settings', array( $this, 'add_remove_sorting_checkbox' ), 100 ); // Add 'Remove All Sorting' checkbox to WooCommerce > Settings > Products
40
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 ); // Add Enable option to Jetpack Settings Dashboard
41
+ }
42
+
43
+ /**
44
+ * add_enabled_option.
45
+ */
46
+ public function add_enabled_option( $settings ) {
47
+
48
+ $all_settings = $this->get_settings();
49
+ $settings[] = $all_settings[1];
50
+
51
+ return $settings;
52
+ }
53
+
54
+ /*
55
+ * Add Remove All Sorting checkbox to WooCommerce > Settings > Products.
56
+ */
57
+ function add_remove_sorting_checkbox( $settings ) {
58
+
59
+ $updated_settings = array();
60
+
61
+ foreach ( $settings as $section ) {
62
+
63
+ if ( isset( $section['id'] ) && 'woocommerce_cart_redirect_after_add' == $section['id'] ) {
64
+
65
+ $updated_settings[] = array(
66
+ 'title' => __( 'Remove All Sorting', 'woocommerce-jetpack' ),
67
+ 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
68
+ 'id' => 'wcj_sorting_remove_all_enabled',
69
+ 'type' => 'checkbox',
70
+ 'default' => 'no',
71
+ 'desc' => __( 'Completely remove sorting from the shop front end', 'woocommerce-jetpack' ),
72
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
73
+ );
74
+ }
75
+
76
+ $updated_settings[] = $section;
77
+ }
78
+
79
+ return $updated_settings;
80
+ }
81
+
82
+ /*
83
+ * Custom Init - remove all sorting action
84
+ */
85
+ function custom_init() {
86
+
87
+ if ( get_option( 'wcj_sorting_remove_all_enabled' ) )
88
+ do_action( 'wcj_sorting_remove_action' );
89
+ }
90
+
91
+ /*
92
+ * Add new sorting options to Front End and to Back End (in WooCommerce > Settings > Products > Default Product Sorting).
93
+ */
94
+ function custom_woocommerce_catalog_orderby( $sortby ) {
95
+
96
+ if ( get_option( 'wcj_sorting_by_name_asc_enabled' ) == 'yes' )
97
+ $sortby['title_asc'] = get_option( 'wcj_sorting_by_name_asc_text' );
98
+
99
+ if ( get_option( 'wcj_sorting_by_name_desc_enabled' ) == 'yes' )
100
+ $sortby['title_desc'] = get_option( 'wcj_sorting_by_name_desc_text' );
101
+
102
+ if ( get_option( 'wcj_sorting_by_sku_asc_enabled' ) == 'yes' )
103
+ $sortby['sku_asc'] = get_option( 'wcj_sorting_by_sku_asc_text' );
104
+
105
+ if ( 'yes' == get_option( 'wcj_sorting_by_sku_desc_enabled' ) )
106
+ $sortby['sku_desc'] = get_option( 'wcj_sorting_by_sku_desc_text' );
107
+
108
+ return $sortby;
109
+ }
110
+
111
+ /*
112
+ * Add new sorting options to WooCommerce sorting.
113
+ */
114
+ function custom_woocommerce_get_catalog_ordering_args( $args ) {
115
+
116
+ global $woocommerce;
117
+ // Get ordering from query string unless defined
118
+ $orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
119
+ // Get order + orderby args from string
120
+ $orderby_value = explode( '-', $orderby_value );
121
+ $orderby = esc_attr( $orderby_value[0] );
122
+
123
+ switch ( $orderby ) :
124
+ case 'title_asc' :
125
+ $args['orderby'] = 'title';
126
+ $args['order'] = 'asc';
127
+ $args['meta_key'] = '';
128
+ break;
129
+ case 'title_desc' :
130
+ $args['orderby'] = 'title';
131
+ $args['order'] = 'desc';
132
+ $args['meta_key'] = '';
133
+ break;
134
+ case 'sku_asc' :
135
+ $args['orderby'] = 'meta_value';
136
+ $args['order'] = 'asc';
137
+ $args['meta_key'] = '_sku';
138
+ break;
139
+ case 'sku_desc' :
140
+ $args['orderby'] = 'meta_value';
141
+ $args['order'] = 'desc';
142
+ $args['meta_key'] = '_sku';
143
+ break;
144
+ endswitch;
145
+
146
+ return $args;
147
+ }
148
+
149
+ /*
150
+ * Add the settings.
151
+ */
152
+ function get_settings() {
153
+
154
+ $settings = array(
155
+
156
+ array( 'title' => __( 'Sorting Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_sorting_options' ),
157
+
158
+ array(
159
+ 'title' => __( 'Sorting', 'woocommerce-jetpack' ),
160
+ 'desc' => __( 'Enable the Sorting feature', 'woocommerce-jetpack' ),
161
+ 'desc_tip' => __( 'Add more sorting options or remove all sorting including default.', 'woocommerce-jetpack' ),
162
+ 'id' => 'wcj_sorting_enabled',
163
+ 'default' => 'yes',
164
+ 'type' => 'checkbox'
165
+ ),
166
+
167
+ array( 'type' => 'sectionend', 'id' => 'wcj_sorting_options' ),
168
+
169
+ array( 'title' => __( 'Remove All Sorting', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_remove_all_sorting_options' ),
170
+
171
+ array(
172
+ 'title' => __( 'Remove All Sorting', 'woocommerce-jetpack' ),
173
+ 'desc' => __( 'Remove all sorting (including WooCommerce default)', 'woocommerce-jetpack' ),
174
+ 'desc_tip' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
175
+ 'id' => 'wcj_sorting_remove_all_enabled',
176
+ 'default' => 'no',
177
+ 'type' => 'checkbox',
178
+ 'custom_attributes'
179
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
180
+ ),
181
+
182
+ array( 'type' => 'sectionend', 'id' => 'wcj_remove_all_sorting_options' ),
183
+
184
+ array( 'title' => __( 'Add More Sorting', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_more_sorting_options' ),
185
+
186
+ array(
187
+ 'title' => __( 'Sort by Name - Asc', 'woocommerce-jetpack' ),
188
+ 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
189
+ 'id' => 'wcj_sorting_by_name_asc_text',
190
+ 'default' => 'Sort: A to Z',
191
+ 'type' => 'text',
192
+ 'css' => 'min-width:300px;',
193
+ ),
194
+
195
+ array(
196
+ 'title' => __( 'Sort by Name - Asc', 'woocommerce-jetpack' ),
197
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
198
+ 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
199
+ 'id' => 'wcj_sorting_by_name_asc_enabled',
200
+ 'default' => 'yes',
201
+ 'type' => 'checkbox',
202
+ ),
203
+
204
+ array(
205
+ 'title' => __( 'Sort by Name - Desc', 'woocommerce-jetpack' ),
206
+ 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
207
+ 'id' => 'wcj_sorting_by_name_desc_text',
208
+ 'default' => 'Sort: Z to A',
209
+ 'type' => 'text',
210
+ 'css' => 'min-width:300px;',
211
+ ),
212
+
213
+ array(
214
+ 'title' => __( 'Sort by Name - Desc', 'woocommerce-jetpack' ),
215
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
216
+ 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
217
+ 'id' => 'wcj_sorting_by_name_desc_enabled',
218
+ 'default' => 'yes',
219
+ 'type' => 'checkbox',
220
+ ),
221
+
222
+ array(
223
+ 'title' => __( 'Sort by SKU - Asc', 'woocommerce-jetpack' ),
224
+ 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
225
+ 'id' => 'wcj_sorting_by_sku_asc_text',
226
+ 'default' => 'Sort: SKU (asc)',
227
+ 'type' => 'text',
228
+ 'css' => 'min-width:300px;',
229
+ ),
230
+
231
+ array(
232
+ 'title' => __( 'Sort by SKU - Asc', 'woocommerce-jetpack' ),
233
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
234
+ 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
235
+ 'id' => 'wcj_sorting_by_sku_asc_enabled',
236
+ 'default' => 'yes',
237
+ 'type' => 'checkbox',
238
+ ),
239
+
240
+ array(
241
+ 'title' => __( 'Sort by SKU - Desc', 'woocommerce-jetpack' ),
242
+ 'desc' => __( 'Text visible at front end', 'woocommerce-jetpack' ),
243
+ 'id' => 'wcj_sorting_by_sku_desc_text',
244
+ 'default' => 'Sort: SKU (desc)',
245
+ 'type' => 'text',
246
+ 'css' => 'min-width:300px;',
247
+ ),
248
+
249
+ array(
250
+ 'title' => __( 'Sort by SKU - Desc', 'woocommerce-jetpack' ),
251
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
252
+ 'desc_tip' => __( 'Check to enable.', 'woocommerce-jetpack' ),
253
+ 'id' => 'wcj_sorting_by_sku_desc_enabled',
254
+ 'default' => 'yes',
255
+ 'type' => 'checkbox',
256
+ ),
257
+
258
+ array( 'type' => 'sectionend', 'id' => 'wcj_more_sorting_options' ),
259
+ );
260
+
261
+ return $settings;
262
+ }
263
+
264
+ /*
265
+ * Add settings section to WooCommerce > Settings > Jetpack.
266
+ */
267
+ function settings_section( $sections ) {
268
+
269
+ $sections['sorting'] = 'Sorting';
270
+
271
+ return $sections;
272
+ }
273
+ }
274
+
275
+ endif;
276
+
277
+ return new WCJ_Sorting();
includes/tcpdf_min/CHANGELOG.TXT ADDED
@@ -0,0 +1,2823 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 6.0.084 (2014-06-13)
2
+ - A bug related to MultiCell fitcell feature was fixed.
3
+ - Bug item #931 "Documentation error for setPageFormat()" was fixed.
4
+
5
+ 6.0.083 (2014-05-29)
6
+ - Bug item #928 "setHtmlVSpace with HR element" was fixed.
7
+
8
+ 6.0.082 (2014-05-23)
9
+ - Bug item #926 "test statement instead of assignment used in tcpdf_fonts.php" was fixed.
10
+ - Bug item #925 "924 transparent images bug" was fixed.
11
+
12
+ 6.0.081 (2014-05-22)
13
+ - Bug item #922 "writehtml tables thead repeating" was fixed.
14
+ - Patch #71 "External and internal links, local and remote" wa applied.
15
+
16
+ 6.0.080 (2014-05-20)
17
+ - Bug item #921 "Fatal error in hyphenateText() function" was fixed.
18
+ - Bug item #923 "Automatic Hyphenation error" was fixed.
19
+ - Patch #70 "Augument TCPDFBarcode classes with ability to return raw png image data" was applied.
20
+
21
+ 6.0.079 (2014-05-19)
22
+ - Patch item #69 "Named destinations, HTML internal and external links" was merged.
23
+ - Bug item #920 "hyphenateText() should not hyphenate the content of style-tags in HTML mode" was fixed.
24
+ - Image method now trigs an error in case the cache is now writeable.
25
+ - Fixed issue with layer default status.
26
+
27
+ 6.0.078 (2014-05-12)
28
+ - A warning issue in addTTFfont() method was fixed.
29
+ - Fonts were updated to include cbbox metrics.
30
+
31
+ 6.0.077 (2014-05-06)
32
+ - A Datamatrix barcode bug was fixed.
33
+
34
+ 6.0.076 (2014-05-06)
35
+ - A bug in Datamatrix Base256 encoding was fixed.
36
+ - Merged fix for SVG use/clip-gradient.
37
+ - Now it is possible to prefix a page number in Link methods with the * character to avoid been changed when adding/deleting/moving pages (see example_045.php).
38
+
39
+ 6.0.075 (2014-05-05)
40
+ - Bug #917 "Using realtive Units like ex or em for images distort output in HTML mode" was fixed.
41
+
42
+ 6.0.074 (2014-05-03)
43
+ - Part of Bug #917 "Using realtive Units like ex or em for images distort output in HTML mode" was fixed.
44
+ - Bug #915 "Problem with SVG Image using Radial Gradients" was fixed.
45
+
46
+ 6.0.073 (2014-04-29)
47
+ - Bug #913 "Possible bug with line-height" was fixed.
48
+ - Bug #914 "MultiCell and FitCell" was fixed.
49
+ - Bug #915 "Problem with SVG Image using Radial Gradients" was fixed.
50
+
51
+ 6.0.072 (2014-04-27)
52
+ - Deprecated curly braces substring syntax was replaced with square braces.
53
+
54
+ 6.0.071 (2014-04-25)
55
+ - Bug #911 "error with buffered png pics" was fixed.
56
+
57
+ 6.0.070 (2014-04-24)
58
+ - Bug #910 "An SVG image is being cut off (with clipping mask) when you use align options" was fixed.
59
+
60
+ 6.0.069 (2014-04-24)
61
+ - Datamatrix Base256 encoding was fixed.
62
+
63
+ 6.0.068 (2014-04-22)
64
+ - Some Datamatrix barcode bugs were fixed.
65
+
66
+ 6.0.067 (2014-04-21)
67
+ - startLayer() method signature was changed to include a new "lock" parameter.
68
+
69
+ 6.0.066 (2014-04-20)
70
+ - Bug #908 "Linebreak is not considered when getting length of the next string" was fixed.
71
+
72
+ 6.0.065 (2014-04-10)
73
+ - Bug #905 "RGB percentage color bug in convertHTMLColorToDec()" was fixed.
74
+
75
+ 6.0.064 (2014-04-07)
76
+ - Header and Footer fonts are now set by default.
77
+ - Bug #904 "PDF corrupted" was fixed.
78
+
79
+ 6.0.063 (2014-04-03)
80
+ - Method TCPDF_IMAGES::_parsepng() was fixed to support transparency in Indexed images.
81
+
82
+ 6.0.062 (2014-03-02)
83
+ - The method startLayer() now accepts the NULL value for the $print parameter to not set the print layer option.
84
+
85
+ 6.0.061 (2014-02-18)
86
+ - Bug #893 "Parsing error on streamed xref for secured pdf" was fixed.
87
+
88
+ 6.0.060 (2014-02-16)
89
+ - Bug #891 "Error on parsing hexa fields" was fixed.
90
+ - Bug #892 "Parsing pdf with trailing space at start" was fixed.
91
+
92
+ 6.0.059 (2014-02-03)
93
+ - SVG 'use' support was imporved.
94
+
95
+ 6.0.058 (2014-01-31)
96
+ - Bug #886 "Bugs with SVG using <defs> and <use>" was fixed.
97
+
98
+ 6.0.057 (2014-01-26)
99
+ - Bug #883 "Parsing error" was fixed.
100
+
101
+ 6.0.056 (2014-01-25)
102
+ - The automatic cache folder selection now works also with some restricted hosting environments.
103
+ - CSS text-transform property is now supported (requires the multibyte string library for php) - see examle n. 061 (Thanks to Walter Ferraz).
104
+ - Bug #884 "Parsing error prev tag looking for" was fixed.
105
+
106
+ 6.0.055 (2014-01-15)
107
+ - Bug #880 "Error detecting hX tags (h1,h2..)" was fixed
108
+ - Bug #879 "Thead on the second page inherits style of previous tr" was fixed
109
+
110
+ 6.0.054 (2014-01-13)
111
+ - Bug #877 "Parenteses causing corrupt text" was fixed.
112
+
113
+ 6.0.053 (2014-01-03)
114
+ - Bug #876 "Cell padding should not be multiplied with number of lines in getStringHeight" was fixed.
115
+ - Patch #68 "Empty img src attribute leads to access of uninitialized string offset" was applied.
116
+
117
+ 6.0.052 (2013-12-12)
118
+ - Bug #871 "Datamatrix coding" was fixed.
119
+
120
+ 6.0.051 (2013-12-02)
121
+ - cbbox array values in addTTFfont() were converted to integers.
122
+
123
+ 6.0.050 (2013-12-01)
124
+ - The method getNumLines() was extended to support hyphenation.
125
+ - The CSS property line-height now supports non percentage values.
126
+
127
+ 6.0.050 (2013-11-27)
128
+ - A bug related to PNG images was fixed.
129
+
130
+ 6.0.048 (2013-11-24)
131
+ - SVG vars are now reset in ImageSVG() method.
132
+
133
+ 6.0.047 (2013-11-19)
134
+ - SVG support was extended to support some nested defs.
135
+
136
+ 6.0.046 (2013-11-17)
137
+ - preg_replace_callback functions were replaced to improve memory performances.
138
+
139
+ 6.0.045 (2013-11-17)
140
+ - Bug #862 "Parsing error on flate filter" was fixed.
141
+
142
+ 6.0.044 (2013-11-10)
143
+ - Bug #857 "Undefined offset error" was fixed.
144
+ - The uniord method now uses a static cache to improve performances (thanks to Mathieu Masseboeuf for the sugegstion).
145
+ - Two bugs in the TCPDF_FONTS class were fixed.
146
+
147
+ 6.0.043 (2013-10-29)
148
+ - Bug #854 "CSS instruction display" was fixed.
149
+
150
+ 6.0.042 (2013-10-25)
151
+ - Bug #852 "CMYK Colors Bug" was fixed.
152
+
153
+ 6.0.041 (2013-10-21)
154
+ - Bug #851 "Problem with images in PDF. PHP timing out" was fixed.
155
+
156
+ 6.0.040 (2013-10-20)
157
+ - Bug #849 "SVG import bug" was fixed.
158
+
159
+ 6.0.039 (2013-10-13)
160
+ - Bug #843 "Wrong call in parser" was fixed.
161
+ - Bug #844 "Wrong object type named" was fixed.
162
+ - Bug #845 "Parsing error on obj ref prefixed by '000000'" was fixed.
163
+
164
+ 6.0.038 (2013-10-06)
165
+ - Bug #841 "Division by zero warning at writeHTML a <li> tag" was fixed.
166
+
167
+ 6.0.037 (2013-09-30)
168
+ - Method getAllSpotColors() was added to return all spot colors.
169
+ - Method colorRegistrationBar() was extended to automatically print all spot colors and support individual spot colors.
170
+ - The method registrationMarkCMYK() was added to print a registration mark for CMYK colors.
171
+ - A bug related to page groups was fixed.
172
+ - Gradient() method now supports CMYK equivalents of spot colors.
173
+ - Example n. 56 was updated.
174
+
175
+ 6.0.036 (2013-09-29)
176
+ - Methods for registration bars and crop marks were extended to support registration color (see example n. 56).
177
+ - New default spot colors were added to tcpdf_colors.php, including the 'All' and 'None' special registration colors.
178
+
179
+ 6.0.035 (2013-09-25)
180
+ - TCPDF_PARSER class was improved.
181
+
182
+ 6.0.034 (2013-09-24)
183
+ - Bug #839 "Error in xref parsing in mixed newline chars" was fixed.
184
+
185
+ 6.0.033 (2013-09-23)
186
+ - Bug fix related to PNG image transparency using GD library.
187
+
188
+ 6.0.032 (2013-09-23)
189
+ - Bug #838 "Fatal error when imagick cannot handle the image, even though GD is available and can" was fixed.
190
+
191
+ 6.0.031 (2013-09-18)
192
+ - Bug #836 "Optional EOL marker before endstream" was fixed.
193
+ - Some additional controls were added to avoid "division by zero" error with badly formatted input.
194
+
195
+ 6.0.030 (2013-09-17)
196
+ - Bug #835 "PDF417 and Cyrilic simbols" was fixed.
197
+
198
+ 6.0.029 (2013-09-15)
199
+ - Constants K_TCPDF_PARSER_THROW_EXCEPTION_ERROR and K_TCPDF_PARSER_IGNORE_DECODING_ERRORS where removed in favor of a new configuration array in the TCPDF_PARSER class.
200
+ - The TCPDF_PARSER class can now be configured using the new $cfg parameter.
201
+
202
+ 6.0.028 (2013-09-15)
203
+ - A debug print_r was removed form tcpdf_parser.php.
204
+ - TCPDF_FILTERS class now throws an exception in case of error.
205
+ - TCPDF_PARSER class now throws an exception in case of error unless you define the constant K_TCPDF_PARSER_THROW_EXCEPTION_ERROR to false.
206
+ - The constant K_TCPDF_PARSER_IGNORE_DECODING_ERRORS can be set to tru eto ignore decoding errors on TCPDF_PARSER.
207
+
208
+ 6.0.027 (2013-09-14)
209
+ - A bug in tcpdf_parser wen parsing hexadecimal strings was fixed.
210
+ - A bug in tcpdf_parser wen looking for statxref was fixed.
211
+ - A bug on RC4 encryption was fixed.
212
+
213
+ 6.0.026 (2013-09-14)
214
+ - A bug in tcpdf_parser wen decoding streams was fixed.
215
+
216
+ 6.0.025 (2013-09-04)
217
+ - A pregSplit() bug was fixed.
218
+ - Improved content loading from URLs.
219
+ - Improved font path loading.
220
+
221
+ 6.0.024 (2013-09-02)
222
+ - Bug #826 "addEmptySignatureAppearance issue" was fixed.
223
+
224
+ 6.0.023 (2013-08-05)
225
+ - GNU Freefont fonts were updated.
226
+ - Licensing and copyright information about fonts were improved.
227
+ - PNG image support was improved.
228
+
229
+ 6.0.022 (2013-08-02)
230
+ - fixing initialization problem for signature_appearance property.
231
+
232
+ 6.0.021 (2013-07-18)
233
+ - The bug caused by the preg_split function on some PHP 5.2.x versions was fixed.
234
+
235
+ 6.0.020 (2013-06-04)
236
+ - The method addTTFfont() was fixed (Bug item #813 Undefined offset).
237
+
238
+ 6.0.019 (2013-06-04)
239
+ - The magic constant __DIR__ was replaced with dirname(__FILE__) for php 5.2 compatibility.
240
+ - The exceptions raised by file_exists() function were suppressed.
241
+
242
+ 6.0.018 (2013-05-19)
243
+ - The barcode examples were changed to automatically search for the barcode class path (in case the examples directory is not installed under the TCPDF root).
244
+
245
+ 6.0.017 (2013-05-16)
246
+ - The command line tool tcpdf_addfont.php was improved.
247
+ - The php logic was removed from configuration files that now contains only constant defines.
248
+ - The tcpdf_autoconfig.php file was added to automatically set missing configuration values.
249
+
250
+ 6.0.016 (2013-05-15)
251
+ - The tcpdf_addfont.php tool was improved (thanks to Remi Collet).
252
+ - Constant K_PATH_IMAGES is now automatically set in configuration file.
253
+
254
+ 6.0.015 (2013-05-14)
255
+ - Some unused vars were removed from AddFont() method.
256
+ - Some directories were moved inside the examples directory.
257
+ - All examples were updated to reflect the new default structure.
258
+ - Source code were clean-up up to be more compatible with system packaging.
259
+ - Files encodings and permissions were reset.
260
+ - The command line tool tcpdf_addfont.php was added on the tools directory.
261
+
262
+ 6.0.014 (2013-04-13)
263
+ - The signature of addTTFfont() method includes a new parameter to link existing fonts instead of copying and compressing them.
264
+
265
+ 6.0.013 (2013-04-10)
266
+ - Add support for SVG dx and dy text/tspan attributes.
267
+ - replace require() with require_once().
268
+ - fix some minor typos on documentation.
269
+ - fix a problem when deleting all pages.
270
+
271
+ 6.0.012 (2013-04-24)
272
+ - An error condition in addHtmlLink() method was fixed (bug #799).
273
+
274
+ 6.0.011 (2013-04-22)
275
+ - Minor documentation changes.
276
+
277
+ 6.0.010 (2013-04-03)
278
+ - The method Rect() was fixed to print borders correctly.
279
+
280
+ 6.0.009 (2013-04-02)
281
+ - Adding back some files that were not properly committed on the latest release.
282
+
283
+ 6.0.008 (2013-04-01)
284
+ - Duplicated encoding maps was removed from tcpdf_font_data.php.
285
+ - Fixing bug on AddTTFFont().
286
+
287
+ 6.0.007 (2013-03-29)
288
+ - HTML/CSS font size conversion were improved.
289
+
290
+ 6.0.006 (2013-03-27)
291
+ - Bug related to SVG and EPS files on xobjects were fixed.
292
+
293
+ 6.0.005 (2013-03-26)
294
+ - Default font path was fixed.
295
+
296
+ 6.0.004 (2013-03-21)
297
+ - Return value of addTTFfont() method was fixed.
298
+
299
+ 6.0.003 (2013-03-20)
300
+ - A bug related to non-unicode mode was fixed.
301
+
302
+ 6.0.002 (2013-03-18)
303
+ - _getFIXED call on tcpdf_fonts.php was fixed.
304
+
305
+ 6.0.001 (2013-03-18)
306
+ - Fixed $uni_type call on tcpdf.php.
307
+
308
+ 6.0.000 (2013-03-17)
309
+ - IMPORTANT: PHP4 support has been removed starting from this version.
310
+ - Several TCPDF methods and vars were moved to new class files: tcpdf_static.php, tcpdf_colors.php, tcpdf_images.php, tcpdf_font_data.php, tcpdf_fonts.php.
311
+ - Files htmlcolors.php, spotcolors.php, unicode_data.php and ecodings_maps.php were removed.
312
+ - Barcode classes were renamed and new barcode examples were added.
313
+ - Class TCPDF_PARSER was improved.
314
+
315
+ ********************************************************************************
316
+
317
+ 5.9.209 (2013-03-15)
318
+ - Image method was improved.
319
+
320
+ 5.9.208 (2013-03-15)
321
+ - objclone fuction was patched to support old imagick extensions.
322
+ - tcpdf_parser was improved to support Cross-Reference Streams and large streams.
323
+
324
+ 5.9.207 (2013-03-04)
325
+ - Datamatrix class was fixed (a debug echo was removed).
326
+
327
+ 5.9.206 (2013-02-22)
328
+ - Bug item #754 "PNG with alpha channel becomes gray scale" was fixed.
329
+ - Minor documentation fixes.
330
+
331
+ 5.9.205 (2013-02-06)
332
+ - The constant K_TCPDF_THROW_EXCEPTION_ERROR was added on configuration file to change the behavior of Error() method.
333
+ - PDF417 barcode bug was fixed.
334
+
335
+ 5.9.204 (2013-01-23)
336
+ - The method Bookmark() was extended to include named destinations, URLs, internal links or embedded files (see example n. 15).
337
+ - automatic path calculation on configuration file was fixed.
338
+ - Error() method was extended to throw new Exception if PHP > 5.
339
+
340
+ 5.9.203 (2013-01-22)
341
+ - Horizontal position of radiobuttons and checkboxes was adjusted.
342
+
343
+ 5.9.202 (2012-12-16)
344
+ - Vertical space problem after table was fixed.
345
+
346
+ 5.9.201 (2012-12-10)
347
+ - First 256 chars are now always included on font subset to overcome a problem reported on the forum.
348
+
349
+ 5.9.200 (2012-12-05)
350
+ - Bug item #768 "Rowspan with Pagebreak error" was fixed.
351
+ - Page regions now works also with limited MultiCell() cells.
352
+
353
+ 5.9.199 (2012-11-29)
354
+ - Internal setImageBuffer() method was improved.
355
+
356
+ 5.9.198 (2012-11-19)
357
+ - Datamatrix EDIFACT mode was fixed.
358
+
359
+ 5.9.197 (2012-11-06)
360
+ - Bug item #756 "TCPDF 5.9.196 shows line on top of all PDFs" was fixed.
361
+
362
+ 5.9.196 (2012-11-02)
363
+ - Several methods were improved to avoid output when the context is out of page.
364
+ - Bug item #755 "remove cached files before unsetting" was fixed.
365
+
366
+ 5.9.195 (2012-10-24)
367
+ - Method _putfonts() was improved.
368
+
369
+ 5.9.194 (2012-10-23)
370
+ - Text alignment on TextField() method was fixed.
371
+
372
+ 5.9.193 (2012-09-25)
373
+ - Support for named destinations on HTML links was added (i.e.: <a href="#destinationname">link to named destination</a>).
374
+
375
+ 5.9.192 (2012-09-24)
376
+ - A problem on the releasing process was fixed.
377
+
378
+ 5.9.191 (2012-09-24)
379
+ - SVG image naow support svg and eps images.
380
+
381
+ 5.9.190 (2012-09-23)
382
+ - "page" word translation is now set to empty if not defined.
383
+ - Tooltip feature was added on the radiobutton annotation.
384
+
385
+ 5.9.189 (2012-09-18)
386
+ - Bug item #3568969 "ini_get safe_mode error" was fixed.
387
+
388
+ 5.9.188 (2012-09-15)
389
+ - A datamatrix barcode bug was fixed.
390
+
391
+ 5.9.187 (2012-09-14)
392
+ - Subset feature was extended to include the first 256 characters.
393
+
394
+ 5.9.186 (2012-09-13)
395
+ - barcodes.php file was resynced.
396
+ - Methods SetAbsX, SetAbsY, SetAbsXY where added to set the absolute pointer coordinates.
397
+ - Method getCharBBox were added to get single character bounding box.
398
+ - Signature of addTTFfont method was changed ($addcbbox paramter was added).
399
+
400
+ 5.9.185 (2012-09-12)
401
+ - Method _putfontwidths() was fixed.
402
+
403
+ 5.9.184 (2012-09-11)
404
+ - A problem with EAN barcodes was fixed.
405
+
406
+ 5.9.183 (2012-09-07)
407
+ - A problem with font names normalization was fixed.
408
+
409
+ 5.9.182 (2012-09-05)
410
+ - Bug item #3564982 "Infinite loop in Write() method" was fixed.
411
+
412
+ 5.9.181 (2012-08-31)
413
+ - composer.json file was added.
414
+ - Bug item #3563369 "Cached images are not unlinked some time" was fixed.
415
+
416
+ 5.9.180 (2012-08-22)
417
+ - Bug item #3560493 "Problems with nested cells in HTML" was fixed.
418
+
419
+ 5.9.179 (2012-08-04)
420
+ - SVG 'use' tag was fixed for 'circle' and 'ellipse' shift problem.
421
+ - Alpha status is now correctly stored and restored by getGraphicVars() and SetGraphicVars() methods.
422
+
423
+ 5.9.178 (2012-08-02)
424
+ - SVG 'use' tag was fixed for 'circle' and 'ellipse'.
425
+
426
+ 5.9.177 (2012-08-02)
427
+ - An additional control on annotations was fixed.
428
+
429
+ 5.9.176 (2012-07-25)
430
+ - A bug related to stroke width was fixed.
431
+ - A problem related to font spacing in HTML was fixed.
432
+
433
+ 5.9.175 (2012-07-25)
434
+ - The problem of missing letter on hyphen break was fixed.
435
+
436
+ 5.9.174 (2012-07-25)
437
+ - The problem of wrong filename when downloading PDF from an Android device was fixed.
438
+ - The method setHeaderData() was extended to set text and line color for header (see example n. 1).
439
+ - The method setFooterData() was added to set text and line color for footer (see example n. 1).
440
+ - The methods setTextShadow() and getTextShadow() were added to set text shadows (see example n. 1).
441
+ - The GetCharWidth() method was fixed for negative character spacing.
442
+ - A 'none' border mode is now correctly recognized.
443
+ - Break on hyphen problem was fixed.
444
+
445
+ 5.9.173 (2012-07-23)
446
+ - Some additional control wher added on barcode methods.
447
+ - The option CURLOPT_FOLLOWLOCATION on Image method is now disabled if PHP safe_mode is on or open_basedir is set.
448
+ - Method Bookmark() was extended to include X parameter.
449
+ - Method setDestination() was extended to include X parameter.
450
+ - A problem with Thai language was fixed.
451
+
452
+ 5.9.172 (2012-07-02)
453
+ - A PNG color profile issue was fixed.
454
+
455
+ 5.9.171 (2012-07-01)
456
+ - Some SVG rendering problems were fixed.
457
+
458
+ 5.9.170 (2012-06-27)
459
+ - Bug #3538227 "Numerous errors inserting shared images" was fixed.
460
+
461
+ 5.9.169 (2012-06-25)
462
+ - Some SVG rendering problems were fixed.
463
+
464
+ 5.9.168 (2012-06-22)
465
+ - Thai language rendering was fixed.
466
+
467
+ 5.9.167 (2012-06-22)
468
+ - Thai language rendering was fixed and improved.
469
+ - Method isCharDefined() was improved.
470
+ - Protected method replaceChar() was added.
471
+ - Font "kerning" word was corrected to "tracking".
472
+
473
+ 5.9.166 (2012-06-21)
474
+ - Array to string conversion on file_id creation was fixed.
475
+ - Thai language rendering was fixed (thanks to Atsawin Chaowanakritsanakul).
476
+
477
+ 5.9.165 (2012-06-07)
478
+ - Some HTML form related bugs were fixed.
479
+
480
+ 5.9.164 (2012-06-06)
481
+ - A bug introduced on the latest release was fixed.
482
+
483
+ 5.9.163 (2012-06-05)
484
+ - Method getGDgamma() was changed.
485
+ - Rendering performances of PNG images with alpha channel were improved.
486
+
487
+ 5.9.162 (2012-05-11)
488
+ - A bug related to long text on TD cells was fixed.
489
+
490
+ 5.9.161 (2012-05-09)
491
+ - A bug on XREF table was fixed (Bug ID: 3525051).
492
+ - Deprecated Imagick:clone was replaced.
493
+ - Method objclone() was fixed for PHP4.
494
+
495
+ 5.9.160 (2012-05-03)
496
+ - A bug on tcpdf_parser.php was fixed.
497
+
498
+ 5.9.159 (2012-04-30)
499
+ - Barcode classes were updated to fix PNG export Bug (ID: 3522291).
500
+
501
+ 5.9.158 (2012-04-22)
502
+ - Some SVG-related bugs were fixed.
503
+
504
+ 5.9.157 (2012-04-16)
505
+ - Some SVG-related bugs were fixed.
506
+
507
+ 5.9.156 (2012-04-10)
508
+ - Bug item #3515885 "TOC and booklet: left and right page exchanged".
509
+ - SetAutoPageBreak(false) now works also in multicolumn mode.
510
+
511
+ 5.9.155 (2012-04-02)
512
+ - Bug item #3512596 "font import problems" was fixed.
513
+ - Method addTTFfont() was modified to extract only specified Platform ID and Encoding ID (check the source code documentation).
514
+ - All fonts were updated.
515
+ - Bug item #3513867 "booklet and setHeaderTemplateAutoreset: header shifted left" was fixed.
516
+ - Bug item #3513749 "TCPDF Superscript/Subscript" was fixed.
517
+
518
+ 5.9.154 (2012-03-29)
519
+ - A debug echo was removed.
520
+
521
+ 5.9.153 (2012-03-28)
522
+ - A bug on font conversion was fixed.
523
+ - All fonts were updated.
524
+ - Method isCharDefined() was added to find if a character is defined on the selected font.
525
+ - Method replaceMissingChars() was added to automatically replace missing chars on selected font.
526
+ - SetFont() method was fixed.
527
+
528
+ 5.9.152 (2012-03-23)
529
+ - The following overprint methods were added: setOverprint(), getOverprint().
530
+ - Signature of setAlpha() method was changed and method getAlpha() was added.
531
+ - stroke-opacity support was added on SVG.
532
+ - The following date methods were added: setDocCreationTimestamp(), setDocModificationTimestamp(), getDocCreationTimestamp(), getDocModificationTimestamp(), getFormattedDate(), getTimestamp().
533
+ - Signature of _datestring() method was changed.
534
+ - Method getFontBBox() was added.
535
+ - Method setPageBoxTypes() was aded.
536
+
537
+ 5.9.151 (2012-03-22)
538
+ - Bug item #3509889 "Transform() distorts PDF" was fixed.
539
+ - Precision of real number were extended.
540
+ - ComboBox and ListBox methods were fixed.
541
+ - Bulgarian language file was added.
542
+ - addTOC() method was improved to include bookmark color and font style.
543
+
544
+ 5.9.150 (2012-03-16)
545
+ - A bug related to form fields in PDF/A mode was fixed.
546
+
547
+ 5.9.149 (2012-02-21)
548
+ - Bug item #3489933 "SVG Parser treats tspan like text" was fixed.
549
+
550
+ 5.9.148 (2012-02-17)
551
+ - Bug item #3488600 "Multiple radiobutton sets get first set value" was fixed.
552
+
553
+ 5.9.147 (2012-02-14)
554
+ - A problem with SVG gradients has been fixed.
555
+
556
+ 5.9.146 (2012-02-12)
557
+ - Bug item #3486880 "$filehash undefine error" was fixed.
558
+ - The default font is now the one specified at PDF_FONT_NAME_MAIN constant.
559
+
560
+ 5.9.145 (2012-01-28)
561
+ - Japanese language file was added.
562
+ - TCPDF license and README.TXT files were updated.
563
+
564
+ 5.9.144 (2012-01-12)
565
+ - HTML output on barcode classes was improved.
566
+
567
+ 5.9.143 (2012-01-08)
568
+ - Bug item #3471057 "setCreator() has no effect" was fixed.
569
+
570
+ 5.9.142 (2011-12-23)
571
+ - Source code documentation was updated.
572
+
573
+ 5.9.141 (2011-12-14)
574
+ - Some minor bugs were fixed.
575
+
576
+ 5.9.140 (2011-12-13)
577
+ - SVG now supports embedded images encoded as base64.
578
+
579
+ 5.9.139 (2011-12-11)
580
+ - Spot color methods were fixed.
581
+
582
+ 5.9.138 (2011-12-10)
583
+ - cropMark() method was improved (check source code documentation).
584
+ - Example n. 56 was updated.
585
+ - Bug item #3452390 "Check Box still not ticked when set to true" was fixed.
586
+
587
+ 5.9.137 (2011-12-01)
588
+ - Bug item #3447005 "Background color and border of Form Elements is printed" was fixed.
589
+ - Color support for Form elements was improved.
590
+
591
+ 5.9.136 (2011-11-27)
592
+ - Bug item #3443387 "SetMargins with keep option does not work for top margin" was fixed.
593
+
594
+ 5.9.135 (2011-11-04)
595
+ - Bug item #3433406 "Double keywords in description" was fixed.
596
+
597
+ 5.9.134 (2011-10-29)
598
+ - The default value for $defcol parameter on convertHTMLColorToDec() method was fixed.
599
+ - Deafult HTTP headers were changed to avoid browser caching.
600
+ - Some deprecated syntax were replaced.
601
+
602
+ 5.9.133 (2011-10-26)
603
+ - Bug item #3428446 "copyPage method not working when diskcache enabled" was fixed.
604
+
605
+ 5.9.132 (2011-10-20)
606
+ - Bug item #3426167 "bug in function convertHTMLColorToDec()" was fixed.
607
+
608
+ 5.9.131 (2011-10-13)
609
+ - An error message was added to ImagePngAlpha() method.
610
+
611
+ 5.9.130 (2011-10-12)
612
+ - Now you can set image data strings on HTML img tag by encoding the image binary data in this way: $imgsrc = '@'.base64_encode($imgdata);
613
+
614
+ 5.9.129 (2011-10-07)
615
+ - Core fonts metrics was fixed (replace all helvetica and times php files on fonts folder).
616
+ - Form fields support was improved and some problems were fixed (check the example n. 14).
617
+ - Bug item #3420249 "Issue with booklet and MultiCell" was fixed.
618
+
619
+ 5.9.128 (2011-10-06)
620
+ - Method addTTFfont() was improved (check the source code documentation).
621
+ - Method setExtraXMP() to set custom XMP data was added.
622
+
623
+ 5.9.127 (2011-10-04)
624
+ - Readonly mode option was activated for radiobuttons.
625
+
626
+ 5.9.126 (2011-10-03)
627
+ - Bug item #3417989 "Graphics State operator in form XObject fails to render" was fixed.
628
+ - Xobjects problems with transparency, gradients and spot colors were fixed.
629
+
630
+ 5.9.125 (2011-10-03)
631
+ - Support for 8-digit CMYK hexadecimal color representation was added (to be used with XHTML and SVG).
632
+ - Spot colors support was improved (check example n. 37).
633
+ - Color methods were improved.
634
+
635
+ 5.9.124 (2011-10-02)
636
+ - Core fonts were updated.
637
+
638
+ 5.9.123 (2011-10-02)
639
+ - The method addTTFfont() wad added to automatically convert TTF fonts (check the new fonts guide at http://www.tcpdf.org).
640
+ - Old font utils were removed.
641
+ - All fonts were updated and new arabic fonts were added (almohanad were removed and replaced by aefurat and aealarabiya).
642
+ - The file unicode_data.php was updated.
643
+ - The file encodings_maps.php was added.
644
+ - PDF/A files are now compressed to save space.
645
+ - XHTML input form fields now support text-alignment attribute.
646
+
647
+ 5.9.122 (2011-09-29)
648
+ - PDF/A-1b compliance was improved to pass some online testing.
649
+
650
+ 5.9.121 (2011-09-28)
651
+ - This version includes support for PDF/A-1b format (the class constructor signature was changed - see example n. 65).
652
+ - Method setSRGBmode() was added to force sRGB_IEC61966-2.1 black scaled ICC color profile for the whole document (file sRGB.icc was added).
653
+ - 14 new fonts were added to allow embedding core fonts (for PDF/A compliance).
654
+ - Font utils were fixed.
655
+
656
+ 5.9.120 (2011-09-22)
657
+ - This version includes a fix for _getTrueTypeFontSubset() method.
658
+
659
+ 5.9.119 (2011-09-19)
660
+ - This version includes a fix for extra page numbering on TOC.
661
+
662
+ 5.9.118 (2011-09-17)
663
+ - This version includes some changes that allows you to add a bookmark for a page that do not exist.
664
+
665
+ 5.9.117 (2011-09-15)
666
+ - TCPDFBarcode and TCPDF2DBarcode classes were extended to include a method for exporting barcodes as PNG images.
667
+
668
+ 5.9.116 (2011-09-14)
669
+ - Datamatrix class was improved and documentation was fixed.
670
+
671
+ 5.9.115 (2011-09-13)
672
+ - Datamatrix ECC200 barcode support was added (a new datamatrix.php file was added) - check example n. 50.
673
+ - getBarcodeHTML() method was added on TCPDFBarcode and TCPDF2DBarcode classes to return an HTML representation of the barcode.
674
+ - cURL options on Image() method were improved.
675
+ - A bug on write2DBarcode() was fixed.
676
+
677
+ 5.9.114 (2011-09-04)
678
+ - A bug related to column position was fixed.
679
+
680
+ 5.9.113 (2011-08-24)
681
+ - This release include two new experimental files for parsing an existing PDF document (the integration with TCPDF is under development).
682
+
683
+ 5.9.112 (2011-08-18)
684
+ - A newline character was added after the 'trailer' keyword for compatibility with some parsers.
685
+ - Support for layers was improved.
686
+
687
+ 5.9.111 (2011-08-17)
688
+ - Barcode CODE 39 default gap was restored at 1.
689
+
690
+ 5.9.110 (2011-08-17)
691
+ - Barcode CODE 39 was fixed.
692
+
693
+ 5.9.109 (2011-08-12)
694
+ - Method getNumLines() was fixed.
695
+ - A bug related to page break in multi-column mode was fixed.
696
+
697
+ 5.9.108 (2011-08-09)
698
+ - A bug on PHP4 version was fixed.
699
+
700
+ 5.9.107 (2011-08-08)
701
+ - This version includes a minor bugfix.
702
+
703
+ 5.9.106 (2011-08-04)
704
+ - This version includes transparency groups: check the new parameter on startTemplate() method and example 62.
705
+
706
+ 5.9.105 (2011-08-04)
707
+ - Bug item #3386153 "Check Box not ticked when set to true" was fixed.
708
+
709
+ 5.9.104 (2011-08-01)
710
+ - Bug item #3383698 "imagemagick, resize and dpi" was fixed.
711
+
712
+ 5.9.103 (2011-07-16)
713
+ - Alignment of XHTML lines was improved.
714
+ - Spell of the "length" word was fixed.
715
+
716
+ 5.9.102 (2011-07-13)
717
+ - Methods startLayer() and endLayer() were added to support arbitrary PDF layers.
718
+ - Some improvements/fixes for images were added (thanks to Brendan Abbott).
719
+
720
+ 5.9.101 (2011-07-07)
721
+ - Support for JPEG and PNG ICC Color Profiles was added.
722
+ - Method addEmptySignatureAppearance() was added to add empty signature fields (see example n. 52).
723
+ - Bug item #3354332 "Strange line spacing with reduced font-size in writeHTML" was fixed.
724
+
725
+ 5.9.100 (2011-06-29)
726
+ - An SVG bug has been fixed.
727
+
728
+ 5.9.099 (2011-06-27)
729
+ - Bug item #3335045 "Font freesans seems somehow corrupted in footer" was fixed.
730
+
731
+ 5.9.098 (2011-06-23)
732
+ - The Named Destination feature was fixed.
733
+
734
+ 5.9.097 (2011-06-23)
735
+ - The method setHtmlVSpace() now can be used also for tags: div, li, br, dt and dd.
736
+ - The Named Destination feature was added (check the example n. 15) - thanks to Christian Deligant.
737
+
738
+ 5.9.096 (2011-06-19)
739
+ - Bug item #3322234 "Surrogate pairs codes in arrUTF8ToUTF16BE" was fixed.
740
+
741
+ 5.9.095 (2011-06-18)
742
+ - Numbers alignment for Table-Of-Content methods was improved and fixed.
743
+ - Font subsetting was fixed to include all parts of composite fonts.
744
+
745
+ 5.9.094 (2011-06-17)
746
+ - Bug item #3317898 "Page Group numbering broken in 5.9.093" was fixed.
747
+
748
+ 5.9.093 (2011-06-16)
749
+ - Method setStartingPageNumber() was added to set starting page number (for automatic page numbering).
750
+
751
+ 5.9.092 (2011-06-15)
752
+ - Method _putpages() was improved.
753
+ - Bug item #3316678 "Memory overflow when use Rotate and SetAutoPageBreak" was fixed.
754
+ - Right alignment of page numbers was improved.
755
+
756
+ 5.9.090 (2011-06-14)
757
+ - Methods AliasNbPages() and AliasNumPage() were re-added as deprecated for backward compatibility.
758
+
759
+ 5.9.089 (2011-06-13)
760
+ - Example n. 8 was updated.
761
+ - Method sendOutputData() was changed to remove default compression (it was incompatible with some server settings).
762
+ - Bugs related to page group numbers were fixed.
763
+ - Method copyPage() was fixed.
764
+ - Method Image() was improved to include support for alternative and external images.
765
+
766
+ 5.9.088 (2011-06-01)
767
+ - Method getAutoPageBreak() was added (see example n. 51).
768
+ - Example n. 51 (full page background) was updated.
769
+
770
+ 5.9.087 (2011-06-01)
771
+ - Method sendOutputData() was improved to include deflate encoding.
772
+ - Barcode classes on PHP 4 version were fixed.
773
+
774
+ 5.9.086 (2011-05-31)
775
+ - Font files were updated (the ones on the previous release were broken).
776
+ - The script fonts/utils/makeallttffonts.php was updated and fixed.
777
+ - Output() method was improved to use compression when available.
778
+
779
+ 5.9.085 (2011-05-31)
780
+ - TCPDFBarcode class (barcodes.php) now includes getBarcodeSVG() and getBarcodeSVGcode() methods to get SVG image representation of the barcode.
781
+ - TCPDF2DBarcode class (2dbarcodes.php) now includes getBarcodeSVG() and getBarcodeSVGcode() methods to get SVG image representation of the barcode.
782
+
783
+ 5.9.084 (2011-05-29)
784
+ - Font files were updated.
785
+ - The file fonts/utils/makeallttffonts.php was updated.
786
+ - Bug item# 3308774 "Problems with font subsetting" was fixed.
787
+
788
+ 5.9.083 (2011-05-24)
789
+ - Bug item #3308387 "line height & SetCellHeightRatio" was fixed.
790
+
791
+ 5.9.082 (2011-05-22)
792
+ - Bug item #3305592 "Setting fill color <> text color breaks text clipping" was fixed.
793
+
794
+ 5.9.081 (2011-05-18)
795
+ - Method resetHeaderTemplate() was added to reset the xobject template used by Header() method.
796
+ - Method setHeaderTemplateAutoreset() was added to automatically reset the xobject template used by Header() method at each page.
797
+
798
+ 5.9.080 (2011-05-17)
799
+ - A problem related to file path calculation for images was fixed.
800
+ - A problem related to unsupressed getimagesize() error was fixed.
801
+
802
+ 5.9.079 (2011-05-16)
803
+ - Footer() method was changed to use C128 barcode as default (instead of the previous C128B).
804
+
805
+ 5.9.078 (2011-05-12)
806
+ - Bug item #3300878 "wrong rendering for html bullet list in some case" was fixed.
807
+ - Bug item #3301017 "Emphasized vs. font-weight" was fixed.
808
+ - Barcode Code 128 was improved to include AUTO mode (automatically switch between A, B and C modes).
809
+ - Examples n. 27 and 49 were updated.
810
+
811
+ 5.9.077 (2011-05-07)
812
+ - Bug item #3298591 "error code93" was fixed.
813
+ - SetLineStyle() function was improved.
814
+
815
+ 5.9.076 (2011-05-06)
816
+ - Bug item #3298264 "codebar 93 error" was fixed.
817
+
818
+ 5.9.075 (2011-05-02)
819
+ - Table header alignment when using WriteHTMLCell() or MultiCell() was fixed.
820
+
821
+ 5.9.074 (2011-04-28)
822
+ - Bug item #3294306 "CSS classes not work in <thead> table section" was fixed.
823
+
824
+ 5.9.073 (2011-04-27)
825
+ - A bug related to character entities on HTML cells was fixed.
826
+
827
+ 5.9.072 (2011-04-26)
828
+ - Method resetColumns() was added to remove multiple columns and reset page margins (example n. 10 was updated).
829
+
830
+ 5.9.071 (2011-04-19)
831
+ - Bug #3288574 "<br/> trouble" was fixed.
832
+
833
+ 5.9.069 (2011-04-19)
834
+ - Bug #3288763 "HTML-Table: non-breaking table rows: Bug" was fixed.
835
+
836
+ 5.9.068 (2011-04-15)
837
+ - Bookmark, addTOC and addHTMLTOC methods were improved to include font style and color (Examples 15, 49 and 59 were updated).
838
+ - Default $_SERVER['DOCUMENT_ROOT'] value on tcpdf_config.php file was changed.
839
+
840
+ 5.9.067 (2011-04-10)
841
+ - Performances were drastically improved (PDF documents are now created more quickly).
842
+
843
+ 5.9.066 (2011-04-09)
844
+ - A bug related to digital signature + encryption was fixed.
845
+ - A bug related to encryption + xobject templates was fixed.
846
+
847
+ 5.9.065 (2011-04-08)
848
+ - Bug item #3280512 "Text encoding iso-8859-2 crashes" was fixed.
849
+
850
+ 5.9.064 (2011-04-05)
851
+ - A bug related to character entities on HTML cells was fixed.
852
+
853
+ 5.9.063 (2011-04-01)
854
+ - Bug item #3267235 "WriteHTML() and image that doesn't fit on the page" was fixed.
855
+
856
+ 5.9.062 (2011-03-23)
857
+ - Bug item #3232650 "Using Write if there are pageRegions active creates error" was fixed.
858
+ - Bug item #3221891 "text input borders" was fixed.
859
+ - Bug item #3228958 "Adobe Reader 9.4.2 crash" was fixed.
860
+
861
+ 5.9.061 (2011-03-15)
862
+ - Bug item #3213488 "wrong function call in function Write" was fixed.
863
+ - Bug item #3203007 "list element with black background" was fixed.
864
+
865
+ 5.9.060 (2011-03-08)
866
+ - addTOC() method was fixed for text alignment problems.
867
+
868
+ 5.9.059 (2011-02-27)
869
+ - Default Header() method was improved to reduce document size.
870
+
871
+ 5.9.058 (2011-02-25)
872
+ - Image() method was improved to cache images with transparency layers (thanks to Korneliusz Jarzębski for reporting this problem).
873
+
874
+ 5.9.057 (2011-02-24)
875
+ - A problem with image caching system was fixed (thanks to Korneliusz Jarzębski for reporting this problem).
876
+
877
+ 5.9.056 (2011-02-22)
878
+ - A bug on fixHTMLCode() method was fixed.
879
+ - Automatic line break for HTML was fixed.
880
+
881
+ 5.9.055 (2011-02-17)
882
+ - Another bug related to HTML table page break was fixed.
883
+
884
+ 5.9.054 (2011-02-16)
885
+ - A bug related to HTML table page break was fixed.
886
+
887
+ 5.9.053 (2011-02-16)
888
+ - Support for HTML attribute display="none" was added.
889
+
890
+ 5.9.052 (2011-02-15)
891
+ - A bug related to HTML automatic newlines was fixed.
892
+
893
+ 5.9.051 (2011-02-12)
894
+ - "Commas at beginning of new lines" problem was fixed.
895
+
896
+ 5.9.050 (2011-02-11)
897
+ - Bug #3177606 "SVG Bar chart error" was fixed.
898
+
899
+ 5.9.049 (2011-02-03)
900
+ - Bug #3170777 "TCPDF creates a new page after a single line in writeHTML" was fixed.
901
+
902
+ 5.9.048 (2011-02-02)
903
+ - No changes. Just released to override previous release that was not uploaded correctly.
904
+
905
+ 5.9.047 (2011-01-28)
906
+ - Bug #3167115 "PDF error in <table> (example 48)" was fixed (was introduced in 5.8.046).
907
+
908
+ 5.9.046 (2011-01-18)
909
+ - PDF view/print layers are now automatically turned off if not used (see setVisibility() method).
910
+
911
+ 5.9.045 (2011-01-17)
912
+ - HTML list support were improved.
913
+
914
+ 5.9.044 (2011-01-15)
915
+ - Bug #3158422 "writeHTMLCell Loop" was fixed.
916
+ - Some HTML image alignment problems were fixed.
917
+
918
+ 5.9.043 (2011-01-14)
919
+ - Bug #3158178 "PHP Notice" was fixed.
920
+ - Bug #3158193 "Endless loop in writeHTML" was fixed.
921
+ - Bug #3157764 "SVG Pie chart incorrectly rendered2".
922
+
923
+ 5.9.042 (2011-01-14)
924
+ - Some problems of the PHP4 version were fixed.
925
+
926
+ 5.9.041 (2011-01-13)
927
+ - A problem with SVG elliptical arc path was fixed (ref. bug #3156574).
928
+ - A problem related to font weight on HTML table headers was fixed.
929
+
930
+ 5.9.040 (2011-01-12)
931
+ - A bug related to empty pages after table was fixed.
932
+
933
+ 5.9.039 (2011-01-12)
934
+ - Bug item #3155759 "openssl_random_pseudo_bytes() slow under Windows" was fixed.
935
+
936
+ 5.9.038 (2011-01-11)
937
+ - Minor bugs were fixed.
938
+
939
+ 5.9.037 (2011-01-09)
940
+ - An alignment problem for HTML texts was fixed.
941
+
942
+ 5.9.036 (2011-01-07)
943
+ - A bug related to HTML tables on header was fixed.
944
+
945
+ 5.9.035 (2011-01-03)
946
+ - A problem related to HTML table border alignment was fixed.
947
+ - Bug #2996366 "FastCGI and Header Problems" was fixed.
948
+
949
+ 5.9.034 (2010-12-19)
950
+ - DejaVu and GNU Free fonts were updated.
951
+
952
+ 5.9.033 (2010-12-18)
953
+ - Source code documetnation was improved.
954
+
955
+ 5.9.032 (2010-12-18)
956
+ - Default font stretching and spacing values are now inherited by HTML methods.
957
+
958
+ 5.9.031 (2010-12-16)
959
+ - Source code documentation errors were fixed.
960
+
961
+ 5.9.030 (2010-12-16)
962
+ - Several source code documentation errors were fixed.
963
+ - Source code style was changed for Doxygen.
964
+ - Source code documentation was moved online to http://www.tcpdf.org
965
+
966
+ 5.9.029 (2010-12-04)
967
+ - The $fitbox parameter on Image() method was extended to specify image alignment inside the box (check the example n. 9).
968
+
969
+ 5.9.028 (2010-12-03)
970
+ - Font utils makefont.php and makeallttffonts.php were updated.
971
+
972
+ 5.9.027 (2010-12-01)
973
+ - Spot Colors are now better integrated with HTML mode.
974
+ - Method SetDocInfoUnicode() was added to turn on/off Unicode mode for document information dictionary (meta tags) - check the example n. 19.
975
+
976
+ 5.9.026 (2010-12-01)
977
+ - A problem with mixed text directions on HTML was fixed.
978
+
979
+ 5.9.025 (2010-12-01)
980
+ - The AddSpotColor() now automatically fills the spotcolor array (defined on spotcolors.php file).
981
+
982
+ 5.9.024 (2010-11-30)
983
+ - Bug item #3123612 "SVG not use gradientTransform in percentage mode" was fixed.
984
+
985
+ 5.9.023 (2010-11-25)
986
+ - A potential bug on SVG transcoder was fixed.
987
+
988
+ 5.9.022 (2010-11-21)
989
+ - Method ImageEPS includes support for EPS/AI Spot colors.
990
+ - Method ImageEPS includes a new parameter $fixoutvals to remove values outside the bounding box.
991
+
992
+ 5.9.021 (2010-11-20)
993
+ - Support for custom bullet points images was added (check the example n.6)
994
+ - Examples n. 6 and 61 were update (check the comments inside).
995
+
996
+ 5.9.020 (2010-11-19)
997
+ - A problem related to additional page when using multicolumn mode was fixed.
998
+
999
+ 5.9.019 (2010-11-19)
1000
+ - An SVG bug was fixed.
1001
+ - ImageSVG() and ImageEPS() methods now accepts image data streams (put the string on the $file parameter preceded by '@' character).
1002
+ - Option 'E' was added to the $dest parameter of Output() method to return the document as base64 mime multi-part email attachment (RFC 2045).
1003
+
1004
+ 5.9.018 (2010-11-19)
1005
+ - An SVG bug was fixed.
1006
+
1007
+ 5.9.017 (2010-11-16)
1008
+ - Tagline color was set to transparent.
1009
+ - The method fixHTMLCode() was added to automatically clean up HTML code (requires HTML Tidy).
1010
+
1011
+ 5.9.016 (2010-11-16)
1012
+ - Bug item #3109705 "list item page break hanging bullet" was fixed.
1013
+
1014
+ 5.9.015 (2010-11-16)
1015
+ - Bug item affecting QRCode was fixed.
1016
+ - Some bugs affecting HTML lists were fixed.
1017
+ - ImageSVG() and fitBlock() methods were improved to handle some SVG problems.
1018
+ - Some problems with PHP4 compatibility were fixed.
1019
+
1020
+ 5.9.014 (2010-11-15)
1021
+ - Bug item #3109464 "QRCode error" was fixed.
1022
+
1023
+ 5.9.013 (2010-11-15)
1024
+ - Bug item #3109257 "Problem with interlaced GIFs and PNGs" was fixed.
1025
+ - Image function now accepts image data streams (check example n. 9).
1026
+
1027
+ 5.9.012 (2010-11-12)
1028
+ - Method getTCPDFVersion() was added.
1029
+ - PDF_PRODUCER constant was removed.
1030
+ - Method convertHTMLColorToDec() was improved.
1031
+ - HTML colors now support spot color names defined on the new spotcolors.php file.
1032
+ - The default method Header() was improved to support SVG and EPS/AI images.
1033
+ - A bug on SVG importer was fixed.
1034
+
1035
+ 5.9.011 (2010-11-02)
1036
+ - Bug item #3101486 "Bug Fix for image loading" was fixed.
1037
+
1038
+ 5.9.010 (2010-10-27)
1039
+ - Support for CSS properties 'border-spacing' and 'padding' for tables were added.
1040
+ - Several language files were added.
1041
+
1042
+ 5.9.009 (2010-10-21)
1043
+ - HTML text alignment was improved to include the case of RTL text on LTR direction and LTR text on RTL direction.
1044
+
1045
+ 5.9.008 (2010-10-21)
1046
+ - Bug item #3091502 "Bookmark oddity" was fixed.
1047
+ - HTML internal links now accepts page number and Y position.
1048
+ - The method write1DBarcode() was improved to accept separate horizontal and vertical padding (see example n. 27).
1049
+
1050
+ 5.9.007 (2010-10-20)
1051
+ - Method adjustCellPadding() was fixed to handle bad input.
1052
+
1053
+ 5.9.006 (2010-10-19)
1054
+ - Support for AES 256 bit encryption was added (see example n. 16).
1055
+ - Method getNumLines() was fixed for the empty string case.
1056
+
1057
+ 5.9.005 (2010-10-18)
1058
+ - Method addPageRegion() was changed to accept regions starting exactly from the top of the page.
1059
+
1060
+ 5.9.004 (2010-10-18)
1061
+ - A bug related to annotations was fixed.
1062
+ - The file unicode_data.php was canged to encapsulate all data in a class.
1063
+ - The file htmlcolors.php was changed to remove the global variable.
1064
+
1065
+ 5.9.003 (2010-10-15)
1066
+ - Support for no-write page regions was added. Check the example n. 64 and new methods setPageRegions(), addPageRegion(), getPageRegions(), removePageRegion().
1067
+ - A bug on Right-To-Left alignment was fixed.
1068
+
1069
+ 5.9.002 (2010-10-08)
1070
+ - Cell method was improved to preserve the font stretching and spacing values when using the $stretch parameter (see example n. 4).
1071
+
1072
+ 5.9.001 (2010-10-07)
1073
+ - The problem of blank page for nobr table higher than a single page was fixed.
1074
+
1075
+ 5.9.000 (2010-10-06)
1076
+ - Support for text stretching and spacing (tracking) was added, see example n. 63 and methods setFontStretching(), getFontStretching(), setFontSpacing(), getFontSpacing().
1077
+ - Support for CSS properties 'font-stretch' and 'letter-spacing' was added (see example n. 63).
1078
+ - The cMargin state was replaced by cell_padding array that can be set/get using setCellPadding() and getCellPadding() methods.
1079
+ - Methods getCellPaddings() and setCellPaddings() were added to fine tune cell paddings (see example n. 5).
1080
+ - Methods getCellMargins() and setCellMargins() were added to fine tune cell margins (see example n. 5).
1081
+ - Method write1DBarcode() was improved to permit custom labels (see example n. 27).
1082
+ - Method ImagePngAlpha() now includes support for ImageMagick to improve performances.
1083
+ - XObject Template support was extended to support Multicell(), writeHTML() and writeHTMLCell() methods.
1084
+ - The signature of getNumLines() and getStringHeight() methods is changed.
1085
+ - Example n. 57 was updated.
1086
+
1087
+ // -------------------------------------------------------------------
1088
+
1089
+ 5.8.034 (2010-09-27)
1090
+ - A bug related to SetFont on XObject templates was fixed.
1091
+
1092
+ 5.8.033 (2010-09-25)
1093
+ - A problem with Footer() and multiple columns was fixed.
1094
+
1095
+ 5.8.032 (2010-09-22)
1096
+ - Bug #3073165 "Issues with changes to addHTMLVertSpace()" was fixed.
1097
+
1098
+ 5.8.031 (2010-09-20)
1099
+ - Bug #3071961 "Spaces in HTML" was fixed.
1100
+
1101
+ 5.8.030 (2010-09-17)
1102
+ - SVG support was improved and some bugs were fixed.
1103
+
1104
+ 5.8.029 (2010-09-16)
1105
+ - A problem with HTML borders was fixed.
1106
+
1107
+ 5.8.028 (2010-09-13)
1108
+ - Bug #3065224 "mcrypt_create_iv error on TCPDF 5.8.027 on PHP 5.3.2" was fixed.
1109
+
1110
+ 5.8.027 (2010-09-13)
1111
+ - Bug #3065118 "mcrypt_decrypt error on TCPDF 5.8.026 on PHP 5.3.2" was fixed.
1112
+
1113
+ 5.8.026 (2010-09-13)
1114
+ - A bug on addHTMLTOC() method was fixed. Note: be sure that the #TOC_PAGE_NUMBER# template has enough width to be printed correctly.
1115
+
1116
+ 5.8.025 (2010-09-09)
1117
+ - Bug #3062692 "Textarea inside a table" was fixed.
1118
+
1119
+ 5.8.024 (2010-09-08)
1120
+ - Bug #3062005 "Undefined variable: ann_obj_id" was fixed.
1121
+
1122
+ 5.8.023 (2010-08-31)
1123
+ - Forms bug added on version 5.8.019 was fixed.
1124
+
1125
+ 5.8.022 (2010-08-31)
1126
+ - Bug #3056632 "SVG rendered vertically flipped" was fixed.
1127
+
1128
+ 5.8.021 (2010-08-30)
1129
+ - A new CID-0 'chinese' font was added for traditional Chinese.
1130
+ - Bug #3054287 'Inner tags are ignored due to "align" attribute' was fixed.
1131
+
1132
+ 5.8.020 (2010-08-26)
1133
+ - CSS "catch-all" class selector is now supported.
1134
+
1135
+ 5.8.019 (2010-08-26)
1136
+ - XObject Templates now includes support for links and annotations.
1137
+ - A problem related to link alignment on cell was fixed.
1138
+ - A problem related to SVG styles was fixed.
1139
+
1140
+ 5.8.018 (2010-08-25)
1141
+ - Method getNumberOfColumns() was added.
1142
+ - A problem related to table header was fixed.
1143
+ - Method getSVGTransformMatrix() was fixed to apply SVG transformations in the correct order.
1144
+ - SVG support was improved and several bugs were fixed.
1145
+
1146
+ 5.8.017 (2010-08-25)
1147
+ - This version includes support for XObject Templates (see the new example n. 62).
1148
+ - Methods starttemplate(), endTemplate() and printTemplate() were added (see the new example n. 62).
1149
+
1150
+ 5.8.016 (2010-08-24)
1151
+ - Alignment problem on write2DBarcode was fixed.
1152
+
1153
+ 5.8.015 (2010-08-24)
1154
+ - A problem arised with the latest bugfix was fixed.
1155
+
1156
+ 5.8.014 (2010-08-23)
1157
+ - Method _getxobjectdict() was added for better compatibility with external extensions.
1158
+ - A bug related to radiobuttons was fixed.
1159
+ - Bug #3051509 "new line after punctuation marks" was fixed (partially).
1160
+
1161
+ 5.8.013 (2010-08-23)
1162
+ - SVG support for 'direction' property was added.
1163
+ - A problem on default width calculation for linear barcodes was fixed.
1164
+ - New option was added to write1DBarcode() method to improve alignments (see example n. 27).
1165
+ - Bug #3050896 "Nested HTML tables: styles are not applied" was fixed.
1166
+ - Method _putresourcedict() was improved to include external XObject templates.
1167
+
1168
+ 5.8.012 (2010-08-22)
1169
+ - Support for SVG 'text-anchor' property was added.
1170
+
1171
+ 5.8.011 (2010-08-21)
1172
+ - Method write1DBarcode() was improved to be backward compatible (check the new example n. 27).
1173
+ - Support for CSS width and height properties on images were added.
1174
+
1175
+ 5.8.010 (2010-08-20)
1176
+ - Documentation of unhtmlentities() was fixed.
1177
+ - The 'fitwidth' option was added and border color problem was fixed on write1DBarcode() method (check the example n. 27).
1178
+
1179
+ 5.8.009 (2010-08-20)
1180
+ - Internal object numbering was improved.
1181
+ - Some errors in object encryption were fixed.
1182
+
1183
+ 5.8.008 (2010-08-19)
1184
+ - Method write1DBarcode() was changed, check the example n. 27.
1185
+ - Method Footer() was changed to account for barcode changes.
1186
+ - Automatic calculation of K_PATH_URL constant was fixed on configuration file.
1187
+ - Method setEqualColumns() was fixed for $width=0 case.
1188
+ - Method AddTOC() was fixed for multipage and multicolumn modes.
1189
+ - Better support for SVG "font-family" property.
1190
+ - A problem on default Page Zoom mode was fixed.
1191
+ - Several Annotation bugs were fixed.
1192
+
1193
+ 5.8.007 (2010-08-18)
1194
+ - A bug affecting HTML tables was fixed.
1195
+ - Bug #3047500 "SVG not rendering paths properly" was fixed.
1196
+
1197
+ 5.8.006 (2010-08-17)
1198
+ - A bug affecting HTML table nesting was fixed.
1199
+
1200
+ 5.8.005 (2010-08-17)
1201
+ - A bug affecting the HTML 'select' tag in certain conditions was fixed.
1202
+
1203
+ 5.8.004 (2010-08-17)
1204
+ - Better support for HTML "font-family" property.
1205
+ - A bug related to HTML multicolumn was fixed.
1206
+
1207
+ 5.8.003 (2010-08-16)
1208
+ - Better support for HTML "font-family" property.
1209
+
1210
+ 5.8.002 (2010-08-14)
1211
+ - HTML alignments were improved
1212
+ - IMPORTANT: Default regular expression to find spaces has been changed to exclude the non-breaking-space (160 DEC- A0 HEX). If you are using setSpacesRE() method, please read the new documentation.
1213
+ - Example n. 1 was updated.
1214
+
1215
+ 5.8.001 (2010-08-12)
1216
+ - Bug #3043650 "subsetchars incorrectly cached" was fixed.
1217
+
1218
+ 5.8.000 (2010-08-11)
1219
+ - A control to avoid bookmarking page 0 was added.
1220
+ - addTOC() method now includes support for multicolumn mode.
1221
+ - Support for tables in multicolumn mode was improved.
1222
+ - Example n.10 was updated.
1223
+ - All trimming functions were replaced with stringLeftTrim(), stringRightTrim() and stringTrim().
1224
+ - HTML alignments were improved.
1225
+
1226
+ ------------------------------------------------------------
1227
+
1228
+ 5.7.003 (2010-08-08)
1229
+ - Bug #3041263 "php source ending is bad" was fixed (all PHP files were updated, including fonts).
1230
+
1231
+ 5.7.002 (2010-08-06)
1232
+ - Methods copyPage(), movePage() and deletePage() were changed to account for internal markings.
1233
+
1234
+ 5.7.001 (2010-08-05)
1235
+ - Bug #3040105 "Broken PDF when using TOC (example 45)" was fixed.
1236
+
1237
+ 5.7.000 (2010-08-03)
1238
+ - CSS borders are now supported for HTML tables and other block tags (see example n. 61);
1239
+ - Cell borders were improved (see example n. 57);
1240
+ - Minor bugs were fixed.
1241
+
1242
+ ------------------------------------------------------------
1243
+
1244
+ 5.6.000 (2010-07-31)
1245
+ - A bug with object IDs was fixes.
1246
+ - Performances were improved.
1247
+
1248
+ ------------------------------------------------------------
1249
+
1250
+ 5.5.015 (2010-07-29)
1251
+ - Automatic fix for unclosed self-closing tag.
1252
+ - Support for deprecated 's' and 'strike' tags was added.
1253
+ - Empty list items problem was fixed.
1254
+
1255
+ 5.5.014 (2010-07-15)
1256
+ - Support for external images was improved.
1257
+
1258
+ 5.5.013 (2010-07-14)
1259
+ - Bug #3029338 "FI and FO output destination filename bug" was fixed (previous fix was wrong).
1260
+
1261
+ 5.5.012 (2010-07-14)
1262
+ - Bug #3029310 "Font baseline inconsistencies with line-height and font-size" was fixed.
1263
+ - Bug #3029338 "FI and FO output destination filename bug" was fixed.
1264
+
1265
+ 5.5.011 (2010-07-09)
1266
+ - Support for multiple CSS classes was added.
1267
+ - The method getColumn() was added to return the current column number.
1268
+ - Some regular Expressions were fixed to be more compatible with UTF-8.
1269
+
1270
+ 5.5.010 (2010-07-06)
1271
+ - Bug item #3025772 "Borders in all image functions are still flawed" was fixed.
1272
+
1273
+ 5.5.009 (2010-07-05)
1274
+ - A problem related to last page footer was fixed.
1275
+ - Image alignments and fit-on-page features were improved.
1276
+
1277
+ 5.5.008 (2010-07-02)
1278
+ - A problem on table header alignment in booklet mode was fixed.
1279
+ - Default graphic vars are now applied for setHeader();
1280
+
1281
+ 5.5.007 (2010-07-02)
1282
+ - Attribute "readonly" was added to input and textarea form fields.
1283
+ - Vertical alignment feature was added on MultiCell() method only for simple text mode (see example n. 5).
1284
+ - Text-Fit feature was added on MultiCell() method only for simple text mode (see example n. 5).
1285
+
1286
+ 5.5.006 (2010-06-29)
1287
+ - getStringHeight() and getNumLines() methods were fixed.
1288
+
1289
+ 5.5.005 (2010-06-28)
1290
+ - Bug #3022170 "getFontDescent() does not return correct descent value" was fixed.
1291
+ - Some problems with multicolumn mode were fixed.
1292
+
1293
+ 5.5.004 (2010-06-27)
1294
+ - Bug #3021803 "SVG Border" was fixed.
1295
+
1296
+ 5.5.003 (2010-06-26)
1297
+ - On Write() method, blank lines at the beginning of a page or column are now automatically removed.
1298
+
1299
+ 5.5.002 (2010-06-24)
1300
+ - ToUnicode Identity-H name was replaced with a full CMap (to avoid preflight syntax error).
1301
+ - Bug #3020638 "str_split() not available in php4" was fixed.
1302
+ - Bug #3020665 "file_get_contents() too many parameters for php4" was fixed.
1303
+
1304
+ 5.5.001 (2010-06-23)
1305
+ - A problem on image streams was fixed.
1306
+
1307
+ 5.5.000 (2010-06-22)
1308
+ - Several PDF syntax errors (and related bugs) were fixed.
1309
+ - Bug #3019090 "/Length values are wrong if AES encryption is used" was fixed.
1310
+
1311
+ ------------------------------------------------------------
1312
+
1313
+ 5.4.003 (2010-06-19)
1314
+ - A problem related to page boxes was fixed.
1315
+ - Bug #3016920 "Font subsetting issues when editing pdf" was partially fixed (Note that flattening transparency layers is currently incompatible with TrueTypeUnicode fonts).
1316
+
1317
+ 5.4.002 (2010-06-18)
1318
+ - A problem related with setProtection() method was fixed.
1319
+
1320
+ 5.4.001 (2010-06-18)
1321
+ - A problem related with setProtection() method was fixed.
1322
+
1323
+ 5.4.000 (2010-06-18)
1324
+ - The method setSignatureAppearance() was added, check the example n. 52.
1325
+ - Several problems related to font subsetting were fixed.
1326
+
1327
+ ------------------------------------------------------------
1328
+
1329
+ 5.3.010 (2010-06-15)
1330
+ - Previous release was corrupted.
1331
+
1332
+ 5.3.009 (2010-06-15)
1333
+ - Bug #3015934 "Bullets don't display correctly" was fixed.
1334
+
1335
+ 5.3.008 (2010-06-13)
1336
+ - This version fixes some problems of SVG rasterization.
1337
+
1338
+ 5.3.007 (2010-06-13)
1339
+ - This version improves SVG support.
1340
+
1341
+ 5.3.006 (2010-06-10)
1342
+ - This version includes a change in uniqid calls for backward compatibility with PHP4.
1343
+
1344
+ 5.3.005 (2010-06-09)
1345
+ - The method getPageSizeFromFormat() was changed to include all standard page formats (includes 281 page formats + variation).
1346
+
1347
+ 5.3.004 (2010-06-08)
1348
+ - Bug #3013291 "HTML table cell width" was fixed.
1349
+ - Bug #3013294 "HTML table cell alignment" was fixed.
1350
+ - The columns widths of HTML tables are now inherited from the first row.
1351
+
1352
+ 5.3.003 (2010-06-08)
1353
+ - Bug #3013102 "HTML table header misaligned after page break" was fixed.
1354
+
1355
+ 5.3.002 (2010-06-07)
1356
+ - The methods setFontSubsetting() and setFontSubsetting() were added to control the default font subsetting mode (see example n. 1).
1357
+ - Bug #3012596 "Whitespace should not appeared after use Thai top characters" was fixed.
1358
+ - Examples n. 1, 14, and 54 were updated.
1359
+
1360
+ 5.3.001 (2010-06-06)
1361
+ - Barcode PDF417 was improved to support Macro Code Blocks (see example n. 50).
1362
+
1363
+ 5.3.000 (2010-06-05)
1364
+ - License was changed to GNU-LGPLv3 (see the updated LICENSE.TXT file).
1365
+ - PDF417 barcode support was added (check the example n. 50).
1366
+ - The method write2DBarcode() was improved (some parameters were added and other changed - check example n. 50).
1367
+
1368
+ ------------------------------------------------------------
1369
+
1370
+ 5.2.000 (2010-06-02)
1371
+ - IMPORTANT: Support for font subsetting was added by default to reduce the size of documents using large unicode font files.
1372
+ If you embed the whole font in the PDF, the person on the other end can make changes to it even if he didn't have your font.
1373
+ If you subset the font, file size of the PDF will be smaller but the person who receives your PDF would need to have your same font in order to make changes to your PDF.
1374
+ - The signature of the SetFont() and AddFont() methods were changed to include the font subsetting option (subsetting is applied by default).
1375
+ - Examples 14 and 54 were updated.
1376
+
1377
+ ------------------------------------------------------------
1378
+
1379
+ 5.1.002 (2010-05-27)
1380
+ - Bug #3007818 "SetAutoPageBreak fails with MultiCell" was fixed.
1381
+ - A bug related to MultiCell() minimun height was fixed.
1382
+
1383
+ 5.1.001 (2010-05-26)
1384
+ - The problem of blank page after table was fixed.
1385
+
1386
+ 5.1.000 (2010-05-25)
1387
+ - This version includes support for CSS (Cascading Style Sheets) (see example n. 61).
1388
+ - The convertHTMLColorToDec() method was improved.
1389
+
1390
+ ------------------------------------------------------------
1391
+
1392
+ 5.0.014 (2010-05-21)
1393
+ - A problem on color and style of HTML links was fixed.
1394
+ - A bug relative to gradients was fixed.
1395
+ - The getStringHeight() method was added and getNumLines() method was improved.
1396
+ - All examples were updated.
1397
+
1398
+ 5.0.013 (2010-05-19)
1399
+ - A bug related to page-breaks and table cells was fixed.
1400
+
1401
+ 5.0.012 (2010-05-19)
1402
+ - Page orientation bug was fixed.
1403
+ - The access to method setPageFormat() was changed to 'protected' because it is not intended to be directly called.
1404
+
1405
+ 5.0.011 (2010-05-19)
1406
+ - Page orientation bug was fixed.
1407
+ - Bug #3003966 "Multiple columns and nested lists" was fixed.
1408
+
1409
+ 5.0.010 (2010-05-17)
1410
+ - The methods setPageFormat(), setPageOrientation() and related methods were extended to include page boxes, page rotations and page transitions.
1411
+ - The method setPageBoxes() was added to set page boundaries (MediaBox, CropBox, BleedBox, TrimBox, ArtBox);
1412
+ - A bug relative to underline, overline and linethrough was fixed.
1413
+
1414
+ 5.0.009 (2010-05-16)
1415
+ - Bug #3002381 "Multiple columns and nested lists" was fixed.
1416
+
1417
+ 5.0.008 (2010-05-15)
1418
+ - Bug "Columns WriteHTML and Justification" was fixed.
1419
+
1420
+ 5.0.007 (2010-05-14)
1421
+ - Bug #3001347 "Bug when using WriteHTML with setEqualColumns()" was fixed.
1422
+ - Bug #3001505 "problem with sup and sub tags at the beginning of a line" was fixed.
1423
+
1424
+ 5.0.006 (2010-05-13)
1425
+ - Length of hr tag was fixed.
1426
+ - An error on 2d barcode method was fixed.
1427
+
1428
+ 5.0.005 (2010-05-12)
1429
+ - WARNING: The logic of permissions on the SetProtection() method has been inverted and extended (see example 16). Now you have to specify the features you want to block.
1430
+ - SetProtection() method was extended to support RSA and AES 128 encryption and public-keys (see example 16).
1431
+ - Bug #2999489 "setEqualColumns() and TOC uses wrong columns" was fixed (see the example 10).
1432
+
1433
+ 5.0.004 (2010-05-10)
1434
+ - HTML line alignment when using sub and sup tags was fixed.
1435
+
1436
+ 5.0.003 (2010-05-07)
1437
+ - Horizontal alignment was fixed for images and barcodes. Now the X coordinate is always relative to the left margin. Use GetAbsX() instead of GetX() to get the X relative to left margin.
1438
+ - Header() method was changed to account for new image alignment rules.
1439
+
1440
+ 5.0.002 (2010-05-06)
1441
+ - Bookmark() and related methods were fixed to accept HTML code.
1442
+ - A problem on HTML links was fixed.
1443
+
1444
+ 5.0.001 (2010-05-06)
1445
+ - Protected method _putstream was re-added for backward compatibility.
1446
+ - The following method were added to display HTML Table Of Content (see example n. 59):
1447
+ addTOCPage(), endTOCPage(), addHTMLTOC().
1448
+
1449
+ 5.0.000 (2010-05-05)
1450
+ - Method ImageSVG() was added to embedd SVG images (see example n. 58). Note that not all SVG images are supported.
1451
+ - Method setRasterizeVectorImages() was added to enable/disable rasterization for vector images via ImageMagick library.
1452
+ - Method RoundedRectXY() was added.
1453
+ - Method PieSectorXY() was added.
1454
+ - Gradient() method is now public and support new features.
1455
+ - Shading to transparency is now supported.
1456
+ - Image alignments were fixed.
1457
+ - Support for dynamic images were improved.
1458
+ - PDF_IMAGE_SCALE_RATIO has been changed to 1.25 for better compatibility with SVG.
1459
+ - RAW and RAW2 modes were added to 2D Barcodes (see example n. 50).
1460
+ - Automatic padding feature was added on barcodes (see examples n. 27 and 50).
1461
+ - Bug #2995003 "Reproduced thead bug" was fixed.
1462
+ - The Output() method now accepts FI and FD destinations to save the document on server before sending it to the client.
1463
+ - Ellipse() method was improved and fixed (see page 2 of example n. 12).
1464
+
1465
+ ------------------------------------------------------------
1466
+
1467
+ 4.9.018 (2010-04-21)
1468
+ - Bug item #2990356 "Current font size not respected with more than two HTML <p>" was fixed.
1469
+
1470
+ 4.9.017 (2010-04-21)
1471
+ - Bug item #2990224 "Different behaviour for equivalent HTML strings" was fixed.
1472
+ - Bug item #2990314 "Dash is not appearing with SHY character" was fixed.
1473
+
1474
+ 4.9.016 (2010-04-20)
1475
+ - An error on htmlcolors.php was fixed.
1476
+ - getImageFileType() method was improved.
1477
+ - GIF images with transparency are now better supported.
1478
+ - Automatic page orientation was improved.
1479
+
1480
+ 4.9.015 (2010-04-20)
1481
+ - A new method copyPage() was added to clone pages (see example n. 44).
1482
+ - Support for text overline was added.
1483
+ - Underline and linethrough methods were fixed.
1484
+ - Bug #2989058 "SHY character causes unnecessary word-wrapping" was fixed.
1485
+
1486
+ 4.9.014 (2010-04-18)
1487
+ - Bug item #2988845 was fixed.
1488
+
1489
+ 4.9.013 (2010-04-15)
1490
+ - Image() and ImageEPS() methods were fixed and improved; $fitonpage parameter was added.
1491
+
1492
+ 4.9.012 (2010-04-12)
1493
+ - The hyphenateText() method was added to automatically hyphenate text (see example n. 46).
1494
+
1495
+ 4.9.011 (2010-04-07)
1496
+ - Vertical alignments for Cell() method were improved (see example n. 57).
1497
+
1498
+ 4.9.010 (2010-04-06)
1499
+ - Signature of Cell() method now includes new parameters for vertical alignment (see example n. 57).
1500
+ - Text() method was extended to include all Cell() parameters.
1501
+ - HTML line alignment procedure was changed to fix some bugs.
1502
+
1503
+ 4.9.009 (2010-04-05)
1504
+ - Text() method was fixed for backward compatibility.
1505
+
1506
+ 4.9.008 (2010-04-03)
1507
+ - Additional line space after table header was removed.
1508
+ - Support for HTML lists in multicolumn mode was added.
1509
+ - The method setTextRenderingMode() was added to set text rendering modes (see the example n. 26).
1510
+ - The following HTML attributes were added to set text rendering modes (see the example n. 26): stroke, strokecolor, fill.
1511
+
1512
+ 4.9.007 (2010-04-03)
1513
+ - Font Descent computation was fixed (patch #2981441).
1514
+
1515
+ 4.9.006 (2010-04-02)
1516
+ - The constant K_TCPDF_CALLS_IN_HTML was added on configuration file to enable/disable the ability to call TCPDF methods in HTML.
1517
+ - The usage of tcpdf tag in HTML mode was changed to remove the possible security flaw offered by the eval() function (thanks to Matthias Hecker for spotting this security problem). See the new example n. 49 for further information.
1518
+
1519
+ 4.9.005 (2010-04-01)
1520
+ - Bug# 2980354 "Wrong File attachment description with security" was fixed.
1521
+ - Several problems with HTML line alignment were fixed.
1522
+ - The constant K_THAI_TOPCHAR was added on configuration file to enable/disable the special procedure used to avoid the overlappind of symbols on Thai language.
1523
+ - A problem with font name directory was fixed.
1524
+ - A bug on _destroy() method was fixed.
1525
+
1526
+ 4.9.004 (2010-03-31)
1527
+ - Patch #979681 "GetCharWidth - default character width" was applied (bugfix).
1528
+
1529
+ 4.9.003 (2010-03-30)
1530
+ - Problem of first <br /> on multiple columns was fixed.
1531
+ - HTML line alignment was fixed.
1532
+ - A QR-code bug was fixed.
1533
+
1534
+ 4.9.002 (2010-03-29)
1535
+ - Patch #2978349 "$ignore_min_height is ignored in function Cell()" was applied.
1536
+ - Bug #2978607 "2D Barcodes are wrong" was fixed.
1537
+ - A problem with HTML block tags was fixed.
1538
+ - Artificial italic for CID-0 fonts was added.
1539
+ - Several multicolumn bugs were fixed.
1540
+ - Support for HTML tables on multicolumn was added.
1541
+
1542
+ 4.9.001 (2010-03-28)
1543
+ - QR Code minor bug was fixed.
1544
+ - Multicolumn mode was added (see the new example n. 10).
1545
+ - The following methods were added: setEqualColumns(), setColumnsArray(), selectColumn().
1546
+ - Thai diacritics support were changed (note that this is incompatible with html justification).
1547
+
1548
+ 4.9.000 (2010-03-27)
1549
+ - QR Code (2D barcode) support was added (see example n. 50).
1550
+ - The following methods were added to print crop and registration marks (see example n. 56): colorRegistrationBar(), cropMark(), registrationMark().
1551
+ - Limited support for CSS line-height property was added.
1552
+ - Gradient method now supports Gray, RGB and CMYK space color.
1553
+ - Example n. 51 was updated.
1554
+ - Vertical alignment of font inside cell was fixed.
1555
+ - Support for multiple Thai diacritics was added.
1556
+ - Bug item #2974929 "Duplicate case values" was fixed.
1557
+ - Bug item #2976729 "File attachment not working with security" was fixed.
1558
+
1559
+ ------------------------------------------------------------
1560
+
1561
+ 4.8.039 (2010-03-20)
1562
+ - Problems related to custom locale settings were fixed.
1563
+ - Problems related to HTML on Header and Footer were fixed.
1564
+
1565
+ 4.8.038 (2010-03-13)
1566
+ - Various bugs related to page-break in HTML mode were fixed.
1567
+ - Bug item #2968974 "Another <thead> pagebreak problem" was fixed.
1568
+ - Bug item #2969276 "justification problem" was fixed.
1569
+ - Bug item #2969289 "bug when using justified text and custom headers" was fixed.
1570
+ - Images are now automatically resized to be contained on the page.
1571
+ - Some HTML line alignments were fixed.
1572
+ - Signature of AddPage() and SetMargins() methods were changed to include an option to set default page margins.
1573
+
1574
+ 4.8.037 (2010-03-03)
1575
+ - Bug item #2962068 was fixed.
1576
+ - Bug item #2967017 "Problems with <thead> and pagebreaks" was fixed.
1577
+ - Bug item #2967023 "table header lost with pagebreak" was fixed.
1578
+ - Bug item #2967032 "Header lost with nested tables" was fixed.
1579
+
1580
+ 4.8.036 (2010-02-24)
1581
+ - Automatic page break for HTML images was improved.
1582
+ - Example 10 was updated.
1583
+ - Japanese was removed from example 8 because the freeserif font doesn't contain japanese (you can display it using arialunicid0 font).
1584
+
1585
+ 4.8.035 (2010-02-23)
1586
+ - Automatic page break for HTML images was added.
1587
+ - Support for multicolumn HTML was added (example 10 was updated).
1588
+
1589
+ 4.8.034 (2010-02-17)
1590
+ - Language files were updated.
1591
+
1592
+ 4.8.033 (2010-02-12)
1593
+ - A bug related to protection mode with links was fixed.
1594
+
1595
+ 4.8.032 (2010-02-04)
1596
+ - A bug related to $maxh parameter on Write() and MultiCell() was fixed.
1597
+ - Support for body tag was added.
1598
+
1599
+ 4.8.031 (2010-01-30)
1600
+ - Bug item #2941589 "paragraph justify not working on some non-C locales" was fixed.
1601
+
1602
+ 4.8.030 (2010-01-27)
1603
+ - Some text alignment cases were fixed.
1604
+
1605
+ 4.8.029 (2010-01-27)
1606
+ - Bug item #2941057 "TOC Error in PDF File Output" was fixed.
1607
+ - Some text alignment cases were fixed.
1608
+
1609
+ 4.8.028 (2010-01-26)
1610
+ - Text alignment for RTL mode was fixed.
1611
+
1612
+ 4.8.027 (2010-01-25)
1613
+ - Bug item #2938412 "Table related problems - thead, nobr, table width" was fixed.
1614
+
1615
+ 4.8.026 (2010-01-19)
1616
+ - The misspelled word "lenght" was replaced with "length" in some variables and comments.
1617
+
1618
+ 4.8.025 (2010-01-18)
1619
+ - addExtGState() method was improved to reuse existing ExtGState objects.
1620
+
1621
+ 4.8.024 (2010-01-15)
1622
+ - Justification mode for HTML was fixed (Bug item #2932470).
1623
+
1624
+ 4.8.023 (2010-01-15)
1625
+ - Bug item #2932470 "Some HTML entities breaks justification" was fixed.
1626
+
1627
+ 4.8.022 (2010-01-14)
1628
+ - Source code documentation was fixed.
1629
+
1630
+ 4.8.021 (2010-01-03)
1631
+ - A Bug relative to Table Of Content index was fixed.
1632
+
1633
+ 4.8.020 (2009-12-21)
1634
+ - Bug item #2918545 "Display problem of the first row of a table with larger font" was fixed.
1635
+ - A Bug relative to table rowspan mode was fixed.
1636
+
1637
+ 4.8.019 (2009-12-16)
1638
+ - Bug item #2915684 "Image size" was fixed.
1639
+ - Bug item #2914995 "Image jpeg quality" was fixed.
1640
+ - The signature of the Image() method was changed (check the documentation for the $resize parameter).
1641
+
1642
+ 4.8.018 (2009-12-15)
1643
+ - Bug item #2914352 "write error" was fixed.
1644
+
1645
+ 4.8.017 (2009-11-27)
1646
+ - THEAD problem when table is used on header/footer was fixed.
1647
+ - A first line alignment on HTML justification was fixed.
1648
+ - Method getImageFileType() was added.
1649
+ - Images with unknown extension and type are now supported via ImageMagick PHP extension.
1650
+
1651
+ 4.8.016 (2009-11-21)
1652
+ - Document Information Dictionary was fixed.
1653
+ - CSS attributes 'page-break-before', 'page-break-after' and 'page-break-inside' are now supported.
1654
+ - Problem of unclosed last page was fixed.
1655
+ - Problem of 'thead' unnecessarily repeated on the next page was fixed.
1656
+
1657
+ 4.8.015 (2009-11-20)
1658
+ - A problem with some PNG transparency images was fixed.
1659
+ - Bug #2900762 "Sort issues in Bookmarks" was fixed.
1660
+ - Text justification was fixed for various modes: underline, strikeout and background.
1661
+
1662
+ 4.8.014 (2009-11-04)
1663
+ - Bug item #2891316 "writeHTML, underlining replacing spaces" was fixed.
1664
+ - The handling of temporary RTL text direction mode was fixed.
1665
+
1666
+ 4.8.013 (2009-10-26)
1667
+ - Bug item #2884729 "Problem with word-wrap and hyphen" was fixed.
1668
+
1669
+ 4.8.012 (2009-10-23)
1670
+ - Table cell alignments for RTL booklet mode were fixed.
1671
+ - Images and barcode alignments for booklet mode were fixed.
1672
+
1673
+ 4.8.011 (2009-10-22)
1674
+ - DejaVu fonts were updated to latest version.
1675
+
1676
+ 4.8.010 (2009-10-21)
1677
+ - Bookmark for TOC page was added.
1678
+ - Signature of addTOC() method is changed.
1679
+ - Bookmarks are now automatically sorted by page and Y position.
1680
+ - Example n. 45 was updated.
1681
+ - Example n. 55 was added to display all charactes available on core fonts.
1682
+
1683
+ 4.8.009 (2009-09-30)
1684
+ - Compatibility with PHP 5.3 was improved.
1685
+ - All examples were updated.
1686
+ - Index file for examples was added.
1687
+
1688
+ 4.8.008 (2009-09-29)
1689
+ - Example 49 was updated.
1690
+ - Underline and linethrough now works with cell stretching mode.
1691
+
1692
+ 4.8.007 (2009-09-23)
1693
+ - Infinite loop problem caused by nobr attribute was fixed.
1694
+
1695
+ 4.8.006 (2009-09-23)
1696
+ - Bug item #2864522 "No images if DOCUMENT_ROOT=='/'" was fixed.
1697
+ - Support for text-indent CSS attribute was added.
1698
+ - Method rollbackTransaction() was changed to support self-reassigment of previous object (check source code documentation).
1699
+ - Support for the HTML "nobr" attribute was added to avoid splitting a table or a table row on two pages (i.e.: <tr nobr="true">...</tr>).
1700
+
1701
+ 4.8.005 (2009-09-17)
1702
+ - A bug relative to multiple transformations and annotations was fixed.
1703
+
1704
+ 4.8.004 (2009-09-16)
1705
+ - A bug on _putannotsrefs() method was fixed.
1706
+
1707
+ 4.8.003 (2009-09-15)
1708
+ - Bug item #2858754 "Division by zero" was fixed.
1709
+ - A bug relative to HTML list items was fixed.
1710
+ - A bug relative to form fields on multiple pages was fixed.
1711
+ - PolyLine() method was added (see example n. 12).
1712
+ - Signature of Polygon() method was changed.
1713
+
1714
+ 4.8.002 (2009-09-12)
1715
+ - A problem related to CID-0 fonts offset was fixed: if the $cw[1] entry on the CID-0 font file is not defined, then a CID keys offset is introduced.
1716
+
1717
+ 4.8.001 (2009-09-09)
1718
+ - The appearance streams (AP) for anotations form fields was fixed (see examples n. 14 and 54).
1719
+ - Radiobuttons were fixed.
1720
+
1721
+ 4.8.000 (2009-09-07)
1722
+ - This version includes some support for Forms fields (see example n. 14) and XHTML forms (see example n. 54).
1723
+ - The following methods were changed to work without JavaScript: TextField(), RadioButton(), ListBox(), ComboBox(), CheckBox(), Button().
1724
+ - Support for Widget annotations was improved.
1725
+ - Alignment of annotation objects was fixed (examples 36 and 41 were updated).
1726
+ - addJavascriptObject() method was added.
1727
+ - Signature of Image() method was changed.
1728
+ - htmlcolors.php file was updated.
1729
+
1730
+ ------------------------------------------------------------
1731
+
1732
+ 4.7.003 (2009-09-03)
1733
+ - Support for TCPDF methods on HTML was improved (see example n. 49).
1734
+
1735
+ 4.7.002 (2009-09-02)
1736
+ - Bug item #2848892 "writeHTML + table: Gaps between rows" was fixed.
1737
+ - JavaScript support was fixed (see example n. 53).
1738
+
1739
+ 4.7.001 (2009-08-30)
1740
+ - The Polygon() and Arrow() methods were fixed and improved (see example n. 12).
1741
+
1742
+ 4.7.000 (2009-08-29)
1743
+ - This is a major release.
1744
+ - Some procedures were internally optimized.
1745
+ - The problem of mixed signature and annotations was fixed (example n. 52).
1746
+
1747
+ 4.6.030 (2009-08-29)
1748
+ - IMPORTANT: percentages on table cell widths are now relative to the full table width (as in standard HTML).
1749
+ - Various minor bugs were fixed.
1750
+ - Example n. 52 (digital signature) was updated.
1751
+
1752
+ 4.6.029 (2009-08-26)
1753
+ - PHP4 version was fixed.
1754
+
1755
+ 4.6.028 (2009-08-25)
1756
+ - Signature algorithm was finally fixed (see example n. 52).
1757
+
1758
+ 4.6.027 (2009-08-24)
1759
+ - TCPDF now supports unembedded TrueTypeUnicode Fonts (just comment the $file entry on the fonts' php file.
1760
+
1761
+ 4.6.026 (2009-08-21)
1762
+ - Bug #2841693 "Problem with MultiCell and ishtml and justification" was fixed.
1763
+ - Signature functions were improved but not yet fixed (tcpdf.crt and example n. 52 were updated).
1764
+
1765
+ 4.6.025 (2009-08-17)
1766
+ - Carriage returns (\r) were removed from source code.
1767
+ - Problem related to set_magic_quotes_runtime() depracated was fixed.
1768
+
1769
+ 4.6.024 (2009-08-07)
1770
+ - Bug item #2833556 "justification using other units than mm" was fixed.
1771
+ - Documentation was fixed/updated.
1772
+
1773
+ 4.6.023 (2009-08-02)
1774
+ - Bug item #2830537 "MirrorH can show mask for transparent PNGs" was fixed.
1775
+
1776
+ 4.6.022 (2009-07-24)
1777
+ - A bug relative to single line printing when using WriteHTMLCell() was fixed.
1778
+ - Signature support were improved but is still experimental.
1779
+ - Fonts Free and Dejavu were updated to latest versions.
1780
+
1781
+ 4.6.021 (2009-07-20)
1782
+ - Bug item #2824015 "XHTML Ampersand &amp; in hyperlink bug" was fixed.
1783
+ - Bug item #2824036 "Image as hyperlink in table, text displaced at page break" was fixed.
1784
+ - Links alignment on justified text was fixed.
1785
+ - Unicode "\u" modifier was added to re_spaces variable by default.
1786
+
1787
+ 4.6.020 (2009-07-16)
1788
+ - Bug item #2821921 "issue in example 18" was fixed.
1789
+ - Signature of SetRTL() method was changed.
1790
+
1791
+ 4.6.019 (2009-07-13)
1792
+ - Bug item #2820703 "xref table broken" was fixed.
1793
+
1794
+ 4.6.018 (2009-07-10)
1795
+ - Bug item #2819319 "Text over text" was fixed.
1796
+ - Method Arrow() was added to print graphic arrows (example 12 was updated).
1797
+
1798
+ 4.6.017 (2009-07-05)
1799
+ - Bug item #2816079 "Example 48 not working" was fixed.
1800
+ - The signature of the checkPageBreak() was changed. The parameter $addpage was added to turn off the automatic page creation.
1801
+
1802
+ 4.6.016 (2009-06-16)
1803
+ - Method setSpacesRE() was added to set the regular expression used for detecting withespaces or word separators. If you are using chinese, try: setSpacesRE('/[\s\p{Z}\p{Lo}]/');, otherwise you can use setSpacesRE('/[\s\p{Z}]/');
1804
+ - The method _putinfo() now automatically fills the metadata with '?' in case of empty string.
1805
+
1806
+ 4.6.015 (2009-06-11)
1807
+ - Bug #2804667 "word wrap bug" was fixed.
1808
+
1809
+ 4.6.014 (2009-06-04)
1810
+ - Bug #2800931 "Table thead tag bug" was fixed.
1811
+ - A bug related to <pre> tag was fixed.
1812
+
1813
+ 4.6.013 (2009-05-28)
1814
+ - List bullets position was fixed for RTL languages.
1815
+
1816
+ 4.6.012 (2009-05-23)
1817
+ - setUserRights() method doesn't work anymore unless you call the setSignature() method with the Adobe private key!
1818
+
1819
+ 4.6.011 (2009-05-18)
1820
+ - Signature of the Image() method was changed to include the new $fitbox parameter (see source code documentation).
1821
+
1822
+ 4.6.010 (2009-05-17)
1823
+ - Image() method was improved: now is possible to specify the maximum dimensions for a constraint box defined by $w and $h parameters, and setting the $resize parameter to null.
1824
+ - <tcpdf> tag indent problem was fixed.
1825
+ - $y parameter was added to checkPageBreak() method.
1826
+ - Bug n. 2791773 "writeHTML" was fixed.
1827
+
1828
+ 4.6.009 (2009-05-13)
1829
+ - xref table for embedded files was fixed.
1830
+
1831
+ 4.6.008 (2009-05-07)
1832
+ - setSignature() method was improved (but is still experimental).
1833
+ - Example n. 52 was added.
1834
+
1835
+ 4.6.007 (2009-05-05)
1836
+ - Bug #2786685 "writeHtmlCell and <br /> in custom footer" was fixed.
1837
+ - Table header repeating bug was fixed.
1838
+ - Some newlines and tabs are now automatically removed from HTML strings.
1839
+
1840
+ 4.6.006 (2009-04-28)
1841
+ - Support for "<a name="...">...</a>" was added.
1842
+ - By default TCPDF requires PCRE Unicode support turned on but now works also without it (with limited ability to detect some Unicode blank spaces).
1843
+
1844
+ 4.6.005 (2009-04-25)
1845
+ - Points (pt) conversion in getHTMLUnitToUnits() was fixed.
1846
+ - Default tcpdf.pem certificate file was added.
1847
+ - Experimental support for signing document was added but it is not yet completed (some help is needed - I think that the calculation of the ByteRange is OK and the problem is on the signature calculation).
1848
+
1849
+ 4.6.004 (2009-04-23)
1850
+ - Method deletePage() was added to delete pages (see example n. 44).
1851
+
1852
+ 4.6.003 (2009-04-21)
1853
+ - The caching mechanism of the UTF8StringToArray() method was fixed.
1854
+
1855
+ 4.6.002 (2009-04-20)
1856
+ - Documentation of rollbackTransaction() method was fixed.
1857
+ - The setImageScale() and getImageScale() methods now set and get the adjusting parameter used by pixelsToUnits() method.
1858
+ - HTML images now support other units of measure than pixels (getHTMLUnitToUnits() is now used instead of pixelsToUnits()).
1859
+ - WARNING: PDF_IMAGE_SCALE_RATIO has been changed by default to 1.
1860
+
1861
+ 4.6.001 (2009-04-17)
1862
+ - Spaces between HTML block tags are now automatically removed.
1863
+ - The bug related to cMargin changes between tables was fixed.
1864
+
1865
+ 4.6.000 (2009-04-16)
1866
+ - WARNING: THIS VERSION CHANGES THE BEHAVIOUR OF $x and $y parameters for several TCPDF methods:
1867
+ zero coordinates for $x and $y are now valid coordinates;
1868
+ set $x and $y as empty strings to get the current value.
1869
+ - Some error caused by 'empty' funtion were fixed.
1870
+ - Default color for convertHTMLColorToDec() method was changed to white and the return value for invalid color is false.
1871
+ - HTML on footer bug was fixed.
1872
+ - The following examples were fixed: 5,7,10,17,19,20,21,33,42,43.
1873
+
1874
+ 4.5.043 (2009-04-15)
1875
+ - Barcode class (barcode.php) was extended to include new linear barcode types (see example n. 27):
1876
+ C39 : CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9
1877
+ C39+ : CODE 39 with checksum
1878
+ C39E : CODE 39 EXTENDED
1879
+ C39E+ : CODE 39 EXTENDED + CHECKSUM
1880
+ C93 : CODE 93 - USS-93
1881
+ S25 : Standard 2 of 5
1882
+ S25+ : Standard 2 of 5 + CHECKSUM
1883
+ I25 : Interleaved 2 of 5
1884
+ I25+ : Interleaved 2 of 5 + CHECKSUM
1885
+ C128A : CODE 128 A
1886
+ C128B : CODE 128 B
1887
+ C128C : CODE 128 C
1888
+ EAN2 : 2-Digits UPC-Based Extention
1889
+ EAN5 : 5-Digits UPC-Based Extention
1890
+ EAN8 : EAN 8
1891
+ EAN13 : EAN 13
1892
+ UPCA : UPC-A
1893
+ UPCE : UPC-E
1894
+ MSI : MSI (Variation of Plessey code)
1895
+ MSI+ : MSI + CHECKSUM (modulo 11)
1896
+ POSTNET : POSTNET
1897
+ PLANET : PLANET
1898
+ RMS4CC : RMS4CC (Royal Mail 4-state Customer Code) - CBC (Customer Bar Code)
1899
+ KIX : KIX (Klant index - Customer index)
1900
+ IMB: Intelligent Mail Barcode - Onecode - USPS-B-3200 (NOTE: requires BCMath PHP extension)
1901
+ CODABAR : CODABAR
1902
+ CODE11 : CODE 11
1903
+ PHARMA : PHARMACODE
1904
+ PHARMA2T : PHARMACODE TWO-TRACKS
1905
+
1906
+ 4.5.042 (2009-04-15)
1907
+ - Method Write() was fixed for the strings containing only zero value.
1908
+
1909
+ 4.5.041 (2009-04-14)
1910
+ - Barcode methods were fixed.
1911
+
1912
+ 4.5.040 (2009-04-14)
1913
+ - Method Write() was fixed to handle empty strings.
1914
+
1915
+ 4.5.039 (2009-04-11)
1916
+ - Support for linear barcodes was extended (see example n. 27 and barcodes.php documentation).
1917
+
1918
+ 4.5.038 (2009-04-10)
1919
+ - Write() method was improved to support separators for Japanese, Korean, Chinese Traditional and Chinese Simplified.
1920
+
1921
+ 4.5.037 (2009-04-09)
1922
+ - General performances were improved.
1923
+ - The signature of the method utf8Bidi() was changed.
1924
+ - The method UniArrSubString() was added.
1925
+ - Experimental support for 2D barcodes were added (see example n. 50 and 2dbarcodes.php class).
1926
+
1927
+ 4.5.036 (2009-04-03)
1928
+ - TCPDF methods can be called inside the HTML code (see example n. 49).
1929
+ - All tag attributes, such as <p align="center"> must be enclosed within double quotes.
1930
+
1931
+ 4.5.035 (2009-03-28)
1932
+ - Bug #2717436 "writeHTML rowspan problem (continued)" was fixed.
1933
+ - Bug #2719090 "writeHTML fix follow up" was fixed.
1934
+ - The method _putuserrights() was changed to avoid Adobe Reader 9.1 crash. This broken the 'trick' that was used to display forms in Acrobat Reader.
1935
+
1936
+ 4.5.034 (2009-03-27)
1937
+ - Bug #2716914 "Bug writeHTML of a table in body and footer related with pb" was fixed.
1938
+ - Bug #2717056 ] "writeHTML problem when setting tr style" was fixed.
1939
+ - The signature of the Cell() method was changed.
1940
+
1941
+ 4.5.033 (2009-03-27)
1942
+ - The support for rowspan/colspan on HTML tables was improved (see example n. 48).
1943
+
1944
+ 4.5.032 (2009-03-23)
1945
+ - setPrintFooter(false) bug was fixed.
1946
+
1947
+ 4.5.031 (2009-03-20)
1948
+ - Table header support was extended to multiple pages.
1949
+
1950
+ 4.5.030 (2009-03-20)
1951
+ - thead tag is now supported on HTML tables (header rows are repeated after page breaks).
1952
+ - The startTransaction() was improved to autocommit.
1953
+ - List bullets now uses the foreground color (putHtmlListBullet()).
1954
+
1955
+ 4.5.029 (2009-03-19)
1956
+ - The following methods were added to UNDO commands (see example 47): startTransaction(), commitTransaction(), rollbackTransaction().
1957
+ - All examples were updated.
1958
+
1959
+ 4.5.028 (2009-03-18)
1960
+ - Bug #2690945 "List Bugs" was fixed.
1961
+ - HTML text alignment on lists was fixed.
1962
+ - The constant PDF_FONT_MONOSPACED was added to the configuration file to define the default monospaced font.
1963
+ - The following methods were fixed: getPageWidth(), getPageHeight(), getBreakMargin().
1964
+ - All examples were updated.
1965
+
1966
+ 4.5.027 (2009-03-16)
1967
+ - Method getPageDimensions() was added to get page dimensions.
1968
+ - The signature of the following methos were changed: getPageWidth(), getPageHeight(), getBreakMargin().
1969
+ - _parsepng() method was fixed for PNG URL images (fread bug).
1970
+
1971
+ 4.5.026 (2009-03-11)
1972
+ - Bug #2681793 affecting URL images with spaces was fixed.
1973
+
1974
+ 4.5.025 (2009-03-10)
1975
+ - A small bug affecting hyphenation support was fixed.
1976
+ - The method SetDefaultMonospacedFont() was added to define the default monospaced font.
1977
+
1978
+ 4.5.024 (2009-03-07)
1979
+ - The bug #2666493 was fixed "Footer corrupts document".
1980
+
1981
+ 4.5.023 (2009-03-06)
1982
+ - The bug #2666688 was fixed "Rowspan in tables".
1983
+
1984
+ 4.5.022 (2009-03-05)
1985
+ - The bug #2659676 was fixed "refer to #2157099 test 4 < BR > problem still not fixed".
1986
+ - addTOC() function bug was fixed.
1987
+
1988
+ 4.5.020 (2009-03-03)
1989
+ - The following bug was fixed: "function removeSHY corrupts unicode".
1990
+
1991
+ 4.5.019 (2009-02-28)
1992
+ - The problem of decimal separator using different locale was fixed.
1993
+ - The text hyphenation is now supported (see example n. 46).
1994
+
1995
+ 4.5.018 (2009-02-26)
1996
+ - The _destroy() method was added to unset all class variables and frees memory.
1997
+ - Now it's possible to call Output() method multiple times.
1998
+
1999
+ 4.5.017 (2009-02-24)
2000
+ - A minor bug that raises a PHP warning was fixed.
2001
+
2002
+ 4.5.016 (2009-02-24)
2003
+ - Bug item #2631200 "getNumLines() counts wrong" was fixed.
2004
+ - Multiple attachments bug was fixed.
2005
+ - All class variables are now cleared on Output() for memory otpimization.
2006
+
2007
+ 4.5.015 (2009-02-18)
2008
+ - Bug item #2612553 "function Write() must not break a line on &nbsp; character" was fixed.
2009
+
2010
+ 4.5.014 (2009-02-13)
2011
+ - Bug item #2595015 "POSTNET Barcode Checksum Error" was fixed (on barcode.php).
2012
+ - Pagebreak bug for barcode was fixed.
2013
+
2014
+ 4.5.013 (2009-02-12)
2015
+ - border attribute is now supported on HTML images (only accepts the same values accepted by Cell()).
2016
+
2017
+ 4.5.012 (2009-02-12)
2018
+ - An error on image border feature was fixed.
2019
+
2020
+ 4.5.011 (2009-02-12)
2021
+ - HTML links for images are now supported.
2022
+ - height attribute is now supported on HTML cells.
2023
+ - $border parameter was added to Image() and ImageEps() methods.
2024
+ - The method getNumLines() was added to estimate the number of lines required for the specified text.
2025
+
2026
+ 4.5.010 (2009-01-29)
2027
+ - Bug n. 2546108 "BarCode Y position" was fixed.
2028
+
2029
+ 4.5.009 (2009-01-26)
2030
+ - Bug n. 2538094 "Empty pdf file created" was fixed.
2031
+
2032
+ 4.5.008 (2009-01-26)
2033
+ - setPage() method was fixed to correctly restore graphic states.
2034
+ - Source code was cleaned up for performances.
2035
+
2036
+ 4.5.007 (2009-01-24)
2037
+ - checkPageBreak() and write1DBarcode() methods were fixed.
2038
+ - Source code was cleaned up for performances.
2039
+ - barcodes.php was updated.
2040
+
2041
+ 4.5.006 (2009-01-23)
2042
+ - getHTMLUnitToPoints() method was replaced by getHTMLUnitToUnits() to fix HTML units bugs.
2043
+
2044
+ 4.5.005 (2009-01-23)
2045
+ - Page closing bug was fixed.
2046
+
2047
+ 4.5.004 (2009-01-21)
2048
+ - The access of convertHTMLColorToDec() method was changed to public
2049
+ - Fixed bug on UL tag.
2050
+
2051
+ 4.5.003 (2009-01-19)
2052
+ - Fonts on different folders are now supported.
2053
+
2054
+ 4.5.002 (2009-01-07)
2055
+ - addTOC() function was improved (see example n. 45).
2056
+
2057
+ 4.5.001 (2009-01-04)
2058
+ - The signature of startPageGroup() function was changed.
2059
+ - Method Footer() was improved to automatically print page or page-group number (see example n. 23).
2060
+ - Protected method formatTOCPageNumber() was added to customize the format of page numbers on the Table Of Content.
2061
+ - The signature of addTOC() was changed to include the font used for page numbers.
2062
+
2063
+ 4.5.000 (2009-01-03)
2064
+ - A new $diskcache parameter was added to class constructor to enable disk caching and reduce RAM memory usage (see example n. 43).
2065
+ - The method movePageTo() was added to move pages to previous positions (see example n. 44).
2066
+ - The methods getAliasNumPage() and getPageNumGroupAlias() were added to get the alias for page number (needed when using movepageTo()).
2067
+ - The methods addTOC() was added to print a Table Of Content (see example n. 45).
2068
+ - Imagick class constant was removed for better compatibility with PHP4.
2069
+ - All existing examples were updated and new examples were added.
2070
+
2071
+ 4.4.009 (2008-12-29)
2072
+ - Examples 1 and 35 were fixed.
2073
+
2074
+ 4.4.008 (2008-12-28)
2075
+ - Bug #2472169 "Unordered bullet size not adjusted for unit type" was fixed.
2076
+
2077
+ 4.4.007 (2008-12-23)
2078
+ - Bug #2459935 "no unit conversion for header line" was fixed.
2079
+ - Example n. 42 for image alpha channel was added.
2080
+ - All examples were updated.
2081
+
2082
+ 4.4.006 (2008-12-11)
2083
+ - Method setLIsymbol() was changed to reflect latest changes in HTML list handling.
2084
+
2085
+ 4.4.005 (2008-12-10)
2086
+ - Bug item #2413870 "ordered list override value" was fixed.
2087
+
2088
+ 4.4.004 (2008-12-10)
2089
+ - The protected method getHTMLUnitToPoints() was added to accept various HTML units of measure (em, ex, px, in, cm, mm, pt, pc, %).
2090
+ - The method intToRoman() was added to convert integer number to Roman representation.
2091
+ - Support fot HTML lists was improved: the CSS property list-style-type is now supported.
2092
+
2093
+ 4.4.003 (2008-12-09)
2094
+ - Bug item #2412147 "Warning on line 3367" was fixed.
2095
+ - Method setHtmlLinksStyle() was added to set default HTML link colors and font style.
2096
+ - Method addHtmlLink() was changed to use color and style defined on the inline CSS.
2097
+
2098
+ 4.4.002 (2008-12-09)
2099
+ - Borders on Multicell() were fixed.
2100
+ - Problem of Multicell() on Header function (Bug item #2407579) was fixed.
2101
+ - Problem on graphics tranformations applied to Multicell() was fixed.
2102
+ - Support for ImageMagick was added.
2103
+ - Width calculation for nested tables was fixed.
2104
+
2105
+ 4.4.001 (2008-12-08)
2106
+ - Some missing core fonts were added on fonts directory.
2107
+ - CID0 fonts rendering was fixed.
2108
+ - HTML support was improved (<pre> and <tt> tags are now supported).
2109
+ - Bug item #2406022 "Left padding bug in MultiCell with maxh" was fixed.
2110
+
2111
+ 4.4.000 (2008-12-07)
2112
+ - File attachments are now supported (see example n. 41).
2113
+ - Font functions were optimized to reduce document size.
2114
+ - makefont.php was updated.
2115
+ - Linux binaries were added on /fonts/utils
2116
+ - All fonts were updated.
2117
+ - $autopadding parameter was added to Multicell() to disable automatic padding features.
2118
+ - $maxh parameter was added to Multicell() and Write() to set a maximum height.
2119
+
2120
+ 4.3.009 (2008-12-05)
2121
+ - Bug item #2392989 (Custom header + setlinewidth + cell border bug) was fixed.
2122
+
2123
+ 4.3.008 (2008-12-05)
2124
+ - Bug item #2390566 "rect bug" was fixed.
2125
+ - File path was fixed for font embedded files.
2126
+ - SetFont() method signature was changed to include the font filename.
2127
+ - Some font-related methods were improved.
2128
+ - Methods getFontFamily() and getFontStyle() were added.
2129
+
2130
+ 4.3.007 (2008-12-03)
2131
+ - PNG alpha channel is now supported (GD library is required).
2132
+ - AddFont() function now support custom font file path on $file parameter.
2133
+ - The default width variable ($dw) is now always defined for any font.
2134
+ - The 'Style' attribute on CID-0 fonts was removed because of protection bug.
2135
+
2136
+ 4.3.006 (2008-12-01)
2137
+ - A regular expression on getHtmlDomArray() to find HTML tags was fixed.
2138
+
2139
+ 4.3.005 (2008-11-25)
2140
+ - makefont.php was fixed.
2141
+ - Bug item #2339877 was fixed (false loop condition detected on WriteHTML()).
2142
+ - Bug item #2336733 was fixed (lasth value update on Multicell() when border and fill are disabled).
2143
+ - Bug item #2342303 was fixed (automatic page-break on Image() and ImageEPS()).
2144
+
2145
+ 4.3.004 (2008-11-19)
2146
+ - Function _textstring() was fixed (bug 2309051).
2147
+ - All examples were updated.
2148
+
2149
+ 4.3.003 (2008-11-18)
2150
+ - CID-0 font bug was fixed.
2151
+ - Some functions were optimized.
2152
+ - Function getGroupPageNoFormatted() was added.
2153
+ - Example n. 23 was updated.
2154
+
2155
+ 4.3.002 (2008-11-17)
2156
+ - Bug item #2305518 "CID-0 font don't work with encryption" was fixed.
2157
+
2158
+ 4.3.001 (2008-11-17)
2159
+ - Bug item #2300007 "download mimetype pdf" was fixed.
2160
+ - Double quotes were replaced by single quotes to improve PHP performances.
2161
+ - A bug relative to HTML cell borders was fixed.
2162
+
2163
+ 4.3.000 (2008-11-14)
2164
+ - The function setOpenCell() was added to set the top/bottom cell sides to be open or closed when the cell cross the page.
2165
+ - A bug relative to list items indentation was fixed.
2166
+ - A bug relative to borders on HTML tables and Multicell was fixed.
2167
+ - A bug relative to rowspanned cells was fixed.
2168
+ - A bug relative to html images across pages was fixed.
2169
+
2170
+ 4.2.009 (2008-11-13)
2171
+ - Spaces between li tags are now automatically removed.
2172
+
2173
+ 4.2.008 (2008-11-12)
2174
+ - A bug relative to fill color on next page was fixed.
2175
+
2176
+ 4.2.007 (2008-11-12)
2177
+ - The function setListIndentWidth() was added to set custom indentation widht for HTML lists.
2178
+
2179
+ 4.2.006 (2008-11-06)
2180
+ - A bug relative to HTML justification was fixed.
2181
+
2182
+ 4.2.005 (2008-11-06)
2183
+ - A bug relative to HTML justification was fixed.
2184
+ - The methods formatPageNumber() and PageNoFormatted() were added to format page numbers.
2185
+ - Default Footer() method was changed to use PageNoFormatted() instead of PageNo().
2186
+ - Example 6 was updated.
2187
+
2188
+ 4.2.004 (2008-11-04)
2189
+ - Bug item n. 2217039 "filename handling improvement" was fixed.
2190
+
2191
+ 4.2.003 (2008-10-31)
2192
+ - Font style bug was fixed.
2193
+
2194
+ 4.2.002 (2008-10-31)
2195
+ - Bug item #2210922 (htm element br not work) was fixed.
2196
+ - Write() function was improved to support margin changes.
2197
+
2198
+ 4.2.001 (2008-10-30)
2199
+ - setHtmlVSpace($tagvs) function was added to set custom vertical spaces for HTML tags.
2200
+ - writeHTML() function now support margin changes during execution.
2201
+ - Signature of addHTMLVertSpace() function is changed.
2202
+
2203
+ 4.2.000 (2008-10-29)
2204
+ - htmlcolors.php was changed to support class-loaders.
2205
+ - ImageEps() function was improved in performances.
2206
+ - Signature of Link() And Annotation() functions were changed.
2207
+ - (Bug item #2198926) Links and Annotations alignment were fixed (support for geometric tranformations was added).
2208
+ - rowspan mode for HTML table cells was improved and fixed.
2209
+ - Booklet mode for double-sided pages was added; see SetBooklet() function and example n. 40.
2210
+ - lastPage() signature is changed.
2211
+ - Signature of Write() function is changed.
2212
+ - Some HTML justification problems were fixed.
2213
+ - Some functions were fixed to better support RTL mode.
2214
+ - Example n. 10 was changed to support RTL mode.
2215
+ - All examples were updated.
2216
+
2217
+ 4.1.004 (2008-10-23)
2218
+ - unicode_data.php was changed to support class-loaders.
2219
+ - Bug item #2186040/2 (writeHTML margin problem) was fixed.
2220
+
2221
+ 4.1.003 (2008-10-22)
2222
+ - Bug item #2185399 was fixed (rowspan and page break).
2223
+ - Bugs item #2186040 was fixed (writeHTML margin problem).
2224
+ - Newline after table was removed.
2225
+
2226
+ 4.1.002 (2008-10-21)
2227
+ - Bug item #2184525 was fixed (rowspan on HTML cell).
2228
+
2229
+ 4.1.001 (2008-10-21)
2230
+ - Support for "start" attribute was added to HTML ordered list.
2231
+ - unicode_data.php file was changed to include UTF-8 to ASCII table.
2232
+ - Some functions were modified to better support UTF-8 extensions to core fonts.
2233
+ - Support for images on HTML lists was improved.
2234
+ - Examples n. 1 and 6 were updated.
2235
+
2236
+ 4.1.000 (2008-10-18)
2237
+ - Page-break bug using HTML content was fixed.
2238
+ - The "false" parameter was reintroduced to class_exists function on PHP5 version to avoid autoload.
2239
+ - addHtmlLink() function was improved to support internal links (i.e.: <a href="#23">link to page 23</a>).
2240
+ - Justification alignment is now supported on HTML (see example n. 39).
2241
+ - example_006.php was updated.
2242
+
2243
+ 4.0.033 (2008-10-13)
2244
+ - Bug n. 2157099 was fixed.
2245
+ - SetX() and SetY() functions were improved.
2246
+ - SetY() includes a new parameter to avoid the X reset.
2247
+
2248
+ 4.0.032 (2008-10-10)
2249
+ - Bug n. 2156926 was fixed (bold, italic, underlined, linethrough).
2250
+ - setStyle() method was removed.
2251
+ - Configuration file was changed to use helvetica (non-unicode) font by default.
2252
+ - The use of mixed font types was improved.
2253
+ - All examples were updated.
2254
+
2255
+ 4.0.031 (2008-10-09)
2256
+ - _putannots() and _putbookmarks() links alignments were fixed.
2257
+
2258
+ 4.0.030 (2008-10-07)
2259
+ - _putbookmarks() function was fixed.
2260
+ - _putannots() was fixed to include internal links.
2261
+
2262
+ 4.0.029 (2008-09-27)
2263
+ - Infinite loop bug was fixed [Bug item #130309].
2264
+ - Multicell() problem on Header() was fixed.
2265
+
2266
+ 4.0.028 (2008-09-26)
2267
+ - setLIsymbol() was added to set the LI symbol used on UL lists.
2268
+ - Missing $padding and $encryption_key variables declarations were added [Bug item #2129058].
2269
+
2270
+ 4.0.027 (2008-09-19)
2271
+ - Bug #2118588 "Undefined offset in tcpdf.php on line 9581" was fixed.
2272
+ - arailunicid0.php font was updated.
2273
+ - The problem of javascript form fields duplication after saving was fixed.
2274
+
2275
+ 4.0.026 (2008-09-17)
2276
+ - convertHTMLColorToDec() function was improved to support rgb(RR,GG,BB) notation.
2277
+ - The following inline CSS attributes are now supported: text-decoration, color, background-color and font-size names: xx-small, x-small, small, medium, large, x-large, xx-large
2278
+ - Example n. 6 was updated.
2279
+
2280
+ 4.0.025 (2008-09-15)
2281
+ - _putcidfont0 function was improved to include CJK fonts (Chinese, Japanese, Korean, CJK, Asian fonts) without embedding.
2282
+ - arialunicid0 font was added (see the new example n. 38).
2283
+ - The following Unicode to CID-0 tables were added on fonts folder: uni2cid_ak12.php, uni2cid_aj16.php, uni2cid_ag15.php, uni2cid_ac15.php.
2284
+
2285
+ 4.0.024 (2008-09-12)
2286
+ - "stripos" function was replaced with "strpos + strtolower" for backward compatibility with PHP4.
2287
+ - support for Spot Colors were added. Check the new example n. 37 and the following new functions:
2288
+ AddSpotColor()
2289
+ SetDrawSpotColor()
2290
+ SetFillSpotColor()
2291
+ SetTextSpotColor()
2292
+ _putspotcolors()
2293
+ - Bookmark() function was improved to fix wrong levels.
2294
+ - $lasth changes after header/footer calls were fixed.
2295
+
2296
+ 4.0.023 (2008-09-05)
2297
+ - Some HTML related problems were fixed.
2298
+ - Image alignment on HTML was changed, now it always defaults to the normal mode (see example_006.php).
2299
+
2300
+ 4.0.022 (2008-08-28)
2301
+ - Line height on HTML was fixed.
2302
+ - Image inside an HTML cell problem was fixed.
2303
+ - A new "zarbold" persian font was added.
2304
+
2305
+ 4.0.021 (2008-08-24)
2306
+ - HTTP headers were fixed on Output function().
2307
+ - getAliasNbPages() and getPageGroupAlias() functions were changed to support non-unicode fonts on unicode documents.
2308
+ - Function Write() was fixed.
2309
+ - The problem of additional vertical spaces on HTML was fixed.
2310
+ - The problem of frame around HTML links was fixed.
2311
+
2312
+ 4.0.020 (2008-08-15)
2313
+ - "[2052259] WriteHTML <u> & <b>" bug was fixed.
2314
+
2315
+ 4.0.019 (2008-08-13)
2316
+ - "Rowspan on first cell" bug was fixed.
2317
+
2318
+ 4.0.018 (2008-08-08)
2319
+ - Default cellpadding for HTML tables was fixed.
2320
+ - Annotation() function was added to support some PDF annotations (see example_036.php and section 8.4 of PDF reference 1.7).
2321
+ - HTML links are now correclty shifted during line alignments.
2322
+ - function getAliasNbPages() was added and Footer() was updated.
2323
+ - RowSpan mode for HTML tables was fixed.
2324
+ - Bugs item #2043610 "Multiple sizes vertical align wrong" was fixed.
2325
+ - ImageEPS() function was improved and RTL alignment was fixed (see example_032.php).
2326
+
2327
+ 4.0.017 (2008-08-05)
2328
+ - Missing CNZ and CEO style modes were added to Rect() function.
2329
+ - Fonts utils were updated to include support for OpenType fonts.
2330
+ - getLastH() function was added.
2331
+
2332
+ 4.0.016 (2008-07-30)
2333
+ - setPageMark() function was added. This function must be called after calling Image() function for a background image.
2334
+
2335
+ 4.0.015 (2008-07-29)
2336
+ - Some functions were changed to support different page formats (see example_028.php).
2337
+ - The signature of setPage() function is changed.
2338
+
2339
+ 4.0.014 (2008-07-29)
2340
+ - K_PATH_MAIN calculation on tcpdf_config.php was fixed.
2341
+ - HTML support for EPS/AI images was added (see example_006.php).
2342
+ - Bugs item #2030807 "Truncated text on multipage html fields" was fixed.
2343
+ - PDF header bug was fixed.
2344
+ - helvetica was added as default font family.
2345
+ - Stroke mode was fixed on Text function.
2346
+ - several minor bugs were fixed.
2347
+
2348
+ 4.0.013 (2008-07-27)
2349
+ - Bugs item #2027799 " Big spaces between lines after page break" was fixed.
2350
+ - K_PATH_MAIN calculation on tcpdf_config.php was changed.
2351
+ - Function setVisibility() was fixed to avoid the "Incorrect PDEObject type" error message.
2352
+
2353
+ 4.0.012 (2008-07-24)
2354
+ - Addpage(), Header() and Footer() functions were changed to simplify the implementation of external header/footer functions.
2355
+ - The following functions were added:
2356
+ setHeader()
2357
+ setFooter()
2358
+ getImageRBX()
2359
+ getImageRBY()
2360
+ getCellHeightRatio()
2361
+ getHeaderFont()
2362
+ getFooterFont()
2363
+ getRTL()
2364
+ getBarcode()
2365
+ getHeaderData()
2366
+ getHeaderMargin()
2367
+ getFooterMargin()
2368
+
2369
+ 4.0.011 (2008-07-23)
2370
+ - Font support was improved.
2371
+ - The folder /fonts/utils contains new utilities and instructions for embedd font files.
2372
+ - Documentation was updated.
2373
+
2374
+ 4.0.010 (2008-07-22)
2375
+ - HTML tables were fixed to work across pages.
2376
+ - Header() and Footer() functions were updated to preserve previous settings.
2377
+ - example_035.php was added.
2378
+
2379
+ 4.0.009 (2008-07-21)
2380
+ - UTF8StringToArray() function was fixed for non-unicode mode.
2381
+
2382
+ 4.0.008 (2008-07-21)
2383
+ - Barcodes alignment was fixed (see example_027.php).
2384
+ - unicode_data.php was updated.
2385
+ - Arabic shaping for "Zero-Width Non-Joiner" character (U+200C) was fixed.
2386
+
2387
+ 4.0.007 (2008-07-18)
2388
+ - str_split was replaced by preg_split for compatibility with PHP4 version.
2389
+ - Clipping mode was added to all graphic functions by using parameter $style = "CNZ" or "CEO" (see example_034.php).
2390
+
2391
+ 4.0.006 (2008-07-16)
2392
+ - HTML rowspan bug was fixed.
2393
+ - Line style for MultiCell() was fixed.
2394
+ - WriteHTML() function was improved.
2395
+ - CODE128C barcode was fixed (barcodes.php).
2396
+
2397
+ 4.0.005 (2008-07-11)
2398
+ - Bug [2015715] "PHP Error/Warning" was fixed.
2399
+
2400
+ 4.0.004 (2008-07-09)
2401
+ - HTML cell internal padding was fixed.
2402
+
2403
+ 4.0.003 (2008-07-08)
2404
+ - Removed URL encoding when F option is selected on Output() function.
2405
+ - fixed some minor bugs in html tables.
2406
+
2407
+ 4.0.002 (2008-07-07)
2408
+ - Bug [2000861] was still unfixed and has been fixed.
2409
+
2410
+ 4.0.001 (2008-07-05)
2411
+ - Bug [2000861] was fixed.
2412
+
2413
+ 4.0.000 (2008-07-03)
2414
+ - THIS IS A MAIN RELEASE THAT INCLUDES SEVERAL NEW FEATURES AND BUGFIXES
2415
+ - Signature fo SetTextColor() and SetFillColor() functions was changed (parameter $storeprev was removed).
2416
+ - HTML support was completely rewritten and improved (see example 6).
2417
+ - Alignments parameters were fixed.
2418
+ - Functions GetArrStringWidth() and GetStringWidth() now include font parameters.
2419
+ - Fonts support was improved.
2420
+ - All core fonts were replaced and moved to fonts/ directory.
2421
+ - The following functions were added: getMargins(), getFontSize(), getFontSizePt().
2422
+ - File config/tcpdf_config_old.php was renamed tcpdf_config_alt.php and updated.
2423
+ - Multicell and WriteHTMLCell fill function was fixed.
2424
+ - Several minor bugs were fixed.
2425
+ - barcodes.php was updated.
2426
+ - All examples were updated.
2427
+
2428
+ ------------------------------------------------------------
2429
+
2430
+ 3.1.001 (2008-06-13)
2431
+ - Bug [1992515] "K_PATH_FONTS default value wrong" was fixed.
2432
+ - Vera font was removed, DejaVu font and Free fonts were updated.
2433
+ - Image handling was improved.
2434
+ - All examples were updated.
2435
+
2436
+ 3.1.000 (2008-06-11)
2437
+ - setPDFVersion() was added to change the default PDF version (currently 1.7).
2438
+ - setViewerPreferences() was added to control the way the document is to be presented on the screen or printed (see example 29).
2439
+ - SetDisplayMode() signature was changed (new options were added).
2440
+ - LinearGradient(), RadialGradient(), CoonsPatchMesh() functions were added to print various color gradients (see example 30).
2441
+ - PieSector() function was added to render render pie charts (see example 31).
2442
+ - ImageEps() was added to display EPS and AI images with limited support (see example 32).
2443
+ - writeBarcode() function is now depracated, a new write1DBarcode() function was added. The barcode directory was removed and a new barcodes.php file was added.
2444
+ - The new write1DBarcode() function support more barcodes and do not need the GD library (see example 027). All barcodes are directly written to PDF using graphic functions.
2445
+ - HTML lists were improved and could be nested (you may now represent trees).
2446
+ - AddFont() bug was fixed.
2447
+ - _putfonts() bug was fixed.
2448
+ - graphics functions were fixed.
2449
+ - unicode_data.php file was updated (fixed).
2450
+ - almohanad font was updated.
2451
+ - example 18 was updated (Farsi and Arabic languages).
2452
+ - source code cleanup.
2453
+ - All examples were updated and new examples were added.
2454
+
2455
+ 3.0.015 (2008-06-06)
2456
+ - AddPage() function signature is changed to include page format.
2457
+ - example 28 was added to show page format changes.
2458
+ - setPageUnit() function was added to change the page units of measure.
2459
+ - setPageFormat() function was added to change the page format and orientation between pages.
2460
+ - setPageOrientation() function was added to change the page orientation.
2461
+ - Arabic font shaping was fixed for laa letter and square boxes (see the example 18).
2462
+
2463
+ 3.0.014 (2008-06-04)
2464
+ - Arabic font shaping was fixed.
2465
+ - setDefaultTableColumns() function was added.
2466
+ - $cell_height_ratio variable was added.
2467
+ - setCellHeightRatio() function was added to define the default height of cell repect font height.
2468
+
2469
+ 3.0.013 (2008-06-03)
2470
+ - Multicell height parameter was fixed.
2471
+ - Arabic font shaping was improved.
2472
+ - unicode_data.php was updated.
2473
+
2474
+ 3.0.012 (2008-05-30)
2475
+ - K_PATH_MAIN and K_PATH_URL constants are now automatically set on config file.
2476
+ - DOCUMENT_ROOT constant was fixed for IIS Webserver (config file was updated).
2477
+ - Arabic font shaping was improved.
2478
+ - TranslateY() function was fixed (bug [1977962]).
2479
+ - setVisibility() function was fixed.
2480
+ - writeBarcode() function was fixed to scale using $xref parameter.
2481
+ - All examples were updated.
2482
+
2483
+ 3.0.011 (2008-05-23)
2484
+ - CMYK color support was added to all graphic functions.
2485
+ - HTML table support was improved:
2486
+ -- now it's possible to include additional html tags inside a cell;
2487
+ -- colspan attribute was added.
2488
+ - example 006 was updated.
2489
+
2490
+ 3.0.010 (2008-05-21)
2491
+ - fixed $laa_array inclusion on utf8Bidi() function.
2492
+
2493
+ 3.0.009 (2008-05-20)
2494
+ - unicode_data.php was updated.
2495
+ - Arabic laa letter problem was fixed.
2496
+
2497
+ 3.0.008 (2008-05-12)
2498
+ - Arabic support was fixed and improved (unicode_data.php was updated).
2499
+ - Polycurve() function was added to draw a poly-Bezier curve.
2500
+ - list items alignment was fixed.
2501
+ - example 6 was updated.
2502
+
2503
+ 3.0.007 (2008-05-06)
2504
+ - Arabic support was fixed and improved.
2505
+ - AlMohanad (arabic) font was added.
2506
+ - C128 barcode bugs were fixed.
2507
+
2508
+ 3.0.006 (2008-04-21)
2509
+ - Condition to check negative width values was added.
2510
+
2511
+ 3.0.005 (2008-04-18)
2512
+ - back-Slash character escape was fixed on writeHTML() function.
2513
+ - Exampe 6 was updated.
2514
+
2515
+ 3.0.004 (2008-04-11)
2516
+ - Bug [1939304] (Right to Left Issue) was fixed.
2517
+
2518
+ 3.0.003 (2008-04-07)
2519
+ - Bug [1934523](Words between HTML tags in cell not kept on one line) was fixed.
2520
+ - "face" attribute of "font" tag is now fully supported.
2521
+
2522
+ 3.0.002 (2008-04-01)
2523
+ - Write() functions now return the number of cells and not the number of lines.
2524
+ - TCPDF is released under LGPL 2.1, or any later version.
2525
+
2526
+ 3.0.001 (2008-05-28)
2527
+ - _legacyparsejpeg() and _legacyparsepng() were renamed _parsejpeg() and _parsepng().
2528
+ - function writeBarcode() was fixed.
2529
+ - all examples were updated.
2530
+ - example 27 was added to show various barcodes.
2531
+
2532
+ 3.0.000 (2008-03-27)
2533
+ - private function pixelsToMillimeters() was changed to public function pixelsToUnits() to fix html image size bug.
2534
+ - Image-related functions were rewritten.
2535
+ - resize parameter was added to Image() signature to reduce the image size and fit width and height (see example 9).
2536
+ - TCPDF now supports all images supported by GD library: GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM.
2537
+ - CMYK support was added to SetDrawColor(), SetFillColor(), SetTextColor() (see example 22).
2538
+ - Page Groups were added (see example 23).
2539
+ - setVisibility() function was added to restrict the rendering of some elements to screen or printout (see example 24).
2540
+ - All private variables and functions were changed to protected.
2541
+ - setAlpha() function was added to give transparency support for all objects (see example 25).
2542
+ - Clipping and stroke modes were added to Text() function (see example 26).
2543
+ - All examples were moved to "examples" directory.
2544
+ - function setJPEGQuality() was added to set the JPEG image comrpession (see example 9).
2545
+
2546
+ 2.9.000 (2008-03-26)
2547
+ - htmlcolors.php file was added to include html colors.
2548
+ - Support for HTML color names and three-digit hexadecimal color codes was added.
2549
+ - private function convertColorHexToDec() was renamed convertHTMLColorToDec().
2550
+ - color and bgcolor attributes are now supported on all HTML tags (color nesting is also supported).
2551
+ - Write() function were fixed.
2552
+ - example_006.php was updated.
2553
+ - private function setUserRights() was added to release user rights on Acrobat Reader (this allows to display forms, see example 14)
2554
+
2555
+ 2.8.000 (2008-03-20)
2556
+ - Private variables were changed to protected.
2557
+ - Function Write() was fixed and improved.
2558
+ - Support for dl, dt, dd, del HTML tags was introduced.
2559
+ - Line-trought mode was added for HTML and text.
2560
+ - Text vertical alignment on cells were fixed.
2561
+ - Examples were updated to reflect changes.
2562
+
2563
+ 2.7.002 (2008-03-13)
2564
+ - Bug "[1912142] Encrypted PDF created/modified date" was fixed.
2565
+
2566
+ 2.7.001 (2008-03-10)
2567
+ - Cell justification was fixed for non-unicode mode.
2568
+
2569
+ 2.7.000 (2008-03-09)
2570
+ - Cell() stretching mode 4 (forced character spacing) was fixed.
2571
+ - writeHTMLCell() now uses Multicell() to write.
2572
+ - Multicell() has a new parameter $ishtml to act as writeHTMLCell().
2573
+ - Write() speed was improved for non-arabic strings.
2574
+ - Example n. 20 was changed.
2575
+
2576
+ 2.6.000 (2008-03-07)
2577
+ - various alignments bugs were fixed.
2578
+
2579
+ 2.5.000 (2008-03-07)
2580
+ - Several bugs were fixed.
2581
+ - example_019.php was added to test non-unicode mode using old fonts.
2582
+
2583
+ 2.4.000 (2008-03-06)
2584
+ - RTL support was deeply improved.
2585
+ - GetStringWidth() was fixed to support RTL languages.
2586
+ - Text() RTL alignment was fixed.
2587
+ - Some functions were added: GetArrStringWidth(), GetCharWidth(), uniord(), utf8Bidi().
2588
+ - example_018.php was added and test_unicode.php was removed.
2589
+
2590
+ 2.3.000 (2008-03-05)
2591
+ - MultiCell() signature is changed. Now support multiple columns across pages (see example_017).
2592
+ - Write() signature is changed. Now support the cell mode to be used with MultiCell.
2593
+ - Header() and Footer() were changed.
2594
+ - The following functions were added: UTF8ArrSubString() and unichr().
2595
+ - Examples were updated to reflect last changes.
2596
+
2597
+ 2.2.004 (2008-03-04)
2598
+ - Several examples were added.
2599
+ - AddPage() Header() and Footer() were fixed.
2600
+ - Documentation is now available on http://www.tcpdf.org
2601
+
2602
+ 2.2.003 (2008-03-03)
2603
+ - [1894853] Performance of MultiCell() was improved.
2604
+ - RadioButton and ListBox functions were added.
2605
+ - javascript form functions were rewritten and properties names are changed. The properties function supported by form fields are listed on Possible values are listed on http://www.adobe.com/devnet/acrobat/pdfs/js_developer_guide.pdf.
2606
+
2607
+ 2.2.002 (2008-02-28)
2608
+ - [1900495] html images path was fixed.
2609
+ - Legacy image functions were reintroduced to allow PNG and JPEG support without GD library.
2610
+
2611
+ 2.2.001 (2008-02-16)
2612
+ - The bug "[1894700] bug with replace relative path" was fixed
2613
+ - Justification was fixed
2614
+
2615
+ 2.2.000 (2008-02-12)
2616
+ - fixed javascript bug introduced with latest release
2617
+
2618
+ 2.1.002 (2008-02-12)
2619
+ - Justify function was fixed on PHP4 version.
2620
+ - Bookmank function was added ([1578250] Table of contents).
2621
+ - Javascript and Form fields support was added ([1796359] Form fields).
2622
+
2623
+ 2.1.001 (2008-02-10)
2624
+ - The bug "[1885776] Race Condition in function justitfy" was fixed.
2625
+ - The bug "[1890217] xpdf complains that pdf is incorrect" was fixed.
2626
+
2627
+ 2.1.000 (2008-01-07)
2628
+ - FPDF_FONTPATH constant was changed to K_PATH_FONTS on config file
2629
+ - Bidirectional Algorithm to correctly reverse bidirectional languages was added.
2630
+ - SetLeftMargin, SetTopMargin, SetRightMargin functions were fixed.
2631
+ - SetCellPadding function was added.
2632
+ - writeHTML was updated with new parameters.
2633
+ - Text function was fixed.
2634
+ - MultiCell function was fixed, now works also across multiple pages.
2635
+ - Line width was fixed on Header and Footer functions and <hr> tag.
2636
+ - "GetImageSize" was renamed "getimagesize".
2637
+ - Document version was changed from 1.3 to 1.5.
2638
+ - _begindoc() function was fixed.
2639
+ - ChangeDate was fixed and ModDate was added.
2640
+ - The following functions were added:
2641
+ setPage() : Move pointer to the specified document page.
2642
+ getPage() : Get current document page number.
2643
+ lastpage() : Reset pointer to the last document page.
2644
+ getNumPages() : Get the total number of inserted pages.
2645
+ GetNumChars() : count the number of (UTF-8) characters in a string.
2646
+ - $stretch parameter was added to Cell() function to fit text on cell:
2647
+ 0 = disabled
2648
+ 1 = horizontal scaling only if necessary
2649
+ 2 = forced horizontal scaling
2650
+ 3 = character spacing only if necessary
2651
+ 4 = forced character spacing
2652
+ - Line function was fixed for RTL.
2653
+ - Graphic transformation functions were added [1811158]:
2654
+ StartTransform()
2655
+ StopTransform()
2656
+ ScaleX()
2657
+ ScaleY()
2658
+ ScaleXY()
2659
+ Scale()
2660
+ MirrorH()
2661
+ MirrorV()
2662
+ MirrorP()
2663
+ MirrorL()
2664
+ TranslateX()
2665
+ TranslateY()
2666
+ Translate()
2667
+ Rotate()
2668
+ SkewX()
2669
+ SkewY()
2670
+ Skew()
2671
+ - Graphic function were added/updated [1688549]:
2672
+ SetLineStyle()
2673
+ _outPoint()
2674
+ _outLine()
2675
+ _outRect()
2676
+ _outCurve()
2677
+ Line()
2678
+ Rect()
2679
+ Curve
2680
+ Ellipse
2681
+ Circle
2682
+ Polygon
2683
+ RegularPolygon
2684
+
2685
+ 2.0.000 (2008-01-04)
2686
+ - RTL (Right-To-Left) languages support was added. Language direction is set using the $l['a_meta_dir'] setting on /configure/language/xxx.php language files.
2687
+ - setRTL($enable) method was added to manually enable/disable the RTL text direction.
2688
+ - The attribute "dir" was added to support custom text direction on HTML tags. Possible values are: ltr - for Left-To-Right and RTL for Right-To-Left.
2689
+ - RC4 40bit encryption was added. Check the SetProtection method.
2690
+ - [1815213] Improved image support for GIF, JPEG, PNG formats.
2691
+ - [1800094] Attribute "value" was added to ordered list items <li>.
2692
+ - Image function now has a new "align" parameter that indicates the alignment of the pointer next to image insertion and relative to image height. The value can be:
2693
+ T: top-right for LTR or top-left for RTL
2694
+ M: middle-right for LTR or middle-left for RTL
2695
+ B: bottom-right for LTR or bottom-left for RTL
2696
+ N: next line
2697
+ - Attribute "align" was added to <img> html tag to set the above image "align" parameter. Possible values are:
2698
+ top: top-right for LTR or top-left for RTL
2699
+ middle: middle-right for LTR or middle-left for RTL
2700
+ bottom: bottom-right for LTR or bottom-left for RTL
2701
+ - [1798103] newline was added after </ul>, </ol> and </p> tages.
2702
+ - [1816393] Documentation was updated.
2703
+ - 'ln' parameter was fixed on writeHTMLCell. Now it's possible to print two or more columns across several pages;
2704
+ - The method lastPage() was added to move the pointer on the last page;
2705
+
2706
+ ------------------------------------------------------------
2707
+
2708
+ 1.53.0.TC034 (2007-07-30)
2709
+ - fixed htmlentities conversion.
2710
+ - MultiCell() function returns the number of cells.
2711
+
2712
+ 1.53.0.TC033 (2007-07-30)
2713
+ - fixed bug 1762550: case sensitive for font files
2714
+ - NOTE: all fonts files names must be in lowercase!
2715
+
2716
+ 1.53.0.TC032 (2007-07-27)
2717
+ - setLastH method was added to resolve bug 1689071.
2718
+ - all fonts names were converted in lowercase (bug 1713005).
2719
+ - bug 1740954 was fixed.
2720
+ - justification was added as Cell option.
2721
+
2722
+ 1.53.0.TC031 (2007-03-20)
2723
+ - ToUnicode CMap were added on _puttruetypeunicode function. Now you may search and copy unicode text.
2724
+
2725
+ 1.53.0.TC030 (2007-03-06)
2726
+ - fixed bug on PHP4 version.
2727
+
2728
+ 1.53.0.TC029 (2007-03-06)
2729
+ - DejaVu Fonts were added.
2730
+
2731
+ 1.53.0.TC028 (2007-03-03)
2732
+ - MultiCell function signature were changed: the $ln parameter were added. Check documentation for further information.
2733
+ - Greek language were added on example sentences.
2734
+ - setPrintHeader() and setPrintFooter() functions were added to enable or disable page header and footer.
2735
+
2736
+ 1.53.0.TC027 (2006-12-14)
2737
+ - $attr['face'] bug were fixed.
2738
+ - K_TCPDF_EXTERNAL_CONFIG control where introduced on /config/tcpdf_config.php to use external configuration files.
2739
+
2740
+ 1.53.0.TC026 (2006-10-28)
2741
+ - writeHTML function call were fixed on examples.
2742
+
2743
+ 1.53.0.TC025 (2006-10-27)
2744
+ - Bugs item #1421290 were fixed (0D - 0A substitution in some characters)
2745
+ - Bugs item #1573174 were fixed (MultiCell documentation)
2746
+
2747
+ 1.53.0.TC024 (2006-09-26)
2748
+ - getPageHeight() function were fixed (bug 1543476).
2749
+ - fixed missing breaks on closedHTMLTagHandler function (bug 1535263).
2750
+ - fixed extra spaces on Write function (bug 1535262).
2751
+
2752
+ 1.53.0.TC023 (2006-08-04)
2753
+ - paths to barcode directory were fixed.
2754
+ - documentation were updated.
2755
+
2756
+ 1.53.0.TC022 (2006-07-16)
2757
+ - fixed bug: [ 1516858 ] Probs with PHP autoloader and class_exists()
2758
+
2759
+ 1.53.0.TC021 (2006-07-01)
2760
+ - HTML attributes with whitespaces are now supported (thanks to Nelson Benitez for his support)
2761
+
2762
+ 1.53.0.TC020 (2006-06-23)
2763
+ - code cleanup
2764
+
2765
+ 1.53.0.TC019 (2006-05-21)
2766
+ - fixed <strong> and <em> closing tags
2767
+
2768
+ 1.53.0.TC018 (2006-05-18)
2769
+ - fixed font names bug
2770
+
2771
+ 1.53.0.TC017 (2006-05-18)
2772
+ - the TTF2UFM utility to convert True Type fonts for TCPDF were included on fonts folder.
2773
+ - new free unicode fonts were included on /fonts/freefont.
2774
+ - test_unicode.php example were exended.
2775
+ - parameter $fill were added on Write, writeHTML and writeHTMLCell functions.
2776
+ - documentation were updated.
2777
+
2778
+ 1.53.0.TC016 (2006-03-09)
2779
+ - fixed closing <strong> tag on html parser.
2780
+
2781
+ 1.53.0.TC016 (2005-08-28)
2782
+ - fpdf.php and tcpdf.php files were joined in one single class (you can still extend TCPDF with your own class).
2783
+ - fixed problem when mb_internal_encoding is set.
2784
+
2785
+ 1.53.0.TC014 (2005-05-29)
2786
+ - fixed WriteHTMLCell new page issue.
2787
+
2788
+ 1.53.0.TC013 (2005-05-29)
2789
+ - fixed WriteHTMLCell across pages.
2790
+
2791
+ 1.53.0.TC012 (2005-05-29)
2792
+ - font color attribute bug were fixed.
2793
+
2794
+ 1.53.0.TC011 (2005-03-31)
2795
+ - SetFont function were fixed (thank Sjaak Lauwers for bug notice).
2796
+
2797
+ 1.53.0.TC010 (2005-03-22)
2798
+ - the html functions were improved (thanks to Manfred Vervuert for bug reporting).
2799
+
2800
+ 1.53.0.TC009 (2005-03-19)
2801
+ - a wrong reference to convertColorHexToDec were fixed.
2802
+
2803
+ 1.53.0.TC008 (2005-02-07)
2804
+ - removed some extra bytes from PHP files.
2805
+
2806
+ 1.53.0.TC007 (2005-01-08)
2807
+ - fill attribute were removed from writeHTMLCell method.
2808
+
2809
+ 1.53.0.TC006 (2005-01-08)
2810
+ - the documentation were updated.
2811
+
2812
+ 1.53.0.TC005 (2005-01-05)
2813
+ - Steven Wittens's unicode methods were removed.
2814
+ - All unicode methods were rewritten from scratch.
2815
+ - TCPDF is now licensed as LGPL.
2816
+
2817
+ 1.53.0.TC004 (2005-01-04)
2818
+ - this changelog were added.
2819
+ - removed commercial fonts for licensing issue.
2820
+ - Bitstream Vera Fonts were added (http://www.bitstream.com/font_rendering/products/dev_fonts/vera.html).
2821
+ - Now the AddFont and SetFont functions returns the basic font if the styled version do not exist.
2822
+
2823
+ EOF --------------------------------------------------------
includes/tcpdf_min/LICENSE.TXT ADDED
@@ -0,0 +1,858 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ **********************************************************************
2
+ * TCPDF LICENSE
3
+ **********************************************************************
4
+
5
+ TCPDF is free software: you can redistribute it and/or modify it
6
+ under the terms of the GNU Lesser General Public License as
7
+ published by the Free Software Foundation, either version 3 of the
8
+ License, or (at your option) any later version.
9
+
10
+ **********************************************************************
11
+ **********************************************************************
12
+
13
+ GNU LESSER GENERAL PUBLIC LICENSE
14
+ Version 3, 29 June 2007
15
+
16
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
17
+ Everyone is permitted to copy and distribute verbatim copies
18
+ of this license document, but changing it is not allowed.
19
+
20
+
21
+ This version of the GNU Lesser General Public License incorporates
22
+ the terms and conditions of version 3 of the GNU General Public
23
+ License, supplemented by the additional permissions listed below.
24
+
25
+ 0. Additional Definitions.
26
+
27
+ As used herein, "this License" refers to version 3 of the GNU Lesser
28
+ General Public License, and the "GNU GPL" refers to version 3 of the GNU
29
+ General Public License.
30
+
31
+ "The Library" refers to a covered work governed by this License,
32
+ other than an Application or a Combined Work as defined below.
33
+
34
+ An "Application" is any work that makes use of an interface provided
35
+ by the Library, but which is not otherwise based on the Library.
36
+ Defining a subclass of a class defined by the Library is deemed a mode
37
+ of using an interface provided by the Library.
38
+
39
+ A "Combined Work" is a work produced by combining or linking an
40
+ Application with the Library. The particular version of the Library
41
+ with which the Combined Work was made is also called the "Linked
42
+ Version".
43
+
44
+ The "Minimal Corresponding Source" for a Combined Work means the
45
+ Corresponding Source for the Combined Work, excluding any source code
46
+ for portions of the Combined Work that, considered in isolation, are
47
+ based on the Application, and not on the Linked Version.
48
+
49
+ The "Corresponding Application Code" for a Combined Work means the
50
+ object code and/or source code for the Application, including any data
51
+ and utility programs needed for reproducing the Combined Work from the
52
+ Application, but excluding the System Libraries of the Combined Work.
53
+
54
+ 1. Exception to Section 3 of the GNU GPL.
55
+
56
+ You may convey a covered work under sections 3 and 4 of this License
57
+ without being bound by section 3 of the GNU GPL.
58
+
59
+ 2. Conveying Modified Versions.
60
+
61
+ If you modify a copy of the Library, and, in your modifications, a
62
+ facility refers to a function or data to be supplied by an Application
63
+ that uses the facility (other than as an argument passed when the
64
+ facility is invoked), then you may convey a copy of the modified
65
+ version:
66
+
67
+ a) under this License, provided that you make a good faith effort to
68
+ ensure that, in the event an Application does not supply the
69
+ function or data, the facility still operates, and performs
70
+ whatever part of its purpose remains meaningful, or
71
+
72
+ b) under the GNU GPL, with none of the additional permissions of
73
+ this License applicable to that copy.
74
+
75
+ 3. Object Code Incorporating Material from Library Header Files.
76
+
77
+ The object code form of an Application may incorporate material from
78
+ a header file that is part of the Library. You may convey such object
79
+ code under terms of your choice, provided that, if the incorporated
80
+ material is not limited to numerical parameters, data structure
81
+ layouts and accessors, or small macros, inline functions and templates
82
+ (ten or fewer lines in length), you do both of the following:
83
+
84
+ a) Give prominent notice with each copy of the object code that the
85
+ Library is used in it and that the Library and its use are
86
+ covered by this License.
87
+
88
+ b) Accompany the object code with a copy of the GNU GPL and this license
89
+ document.
90
+
91
+ 4. Combined Works.
92
+
93
+ You may convey a Combined Work under terms of your choice that,
94
+ taken together, effectively do not restrict modification of the
95
+ portions of the Library contained in the Combined Work and reverse
96
+ engineering for debugging such modifications, if you also do each of
97
+ the following:
98
+
99
+ a) Give prominent notice with each copy of the Combined Work that
100
+ the Library is used in it and that the Library and its use are
101
+ covered by this License.
102
+
103
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
104
+ document.
105
+
106
+ c) For a Combined Work that displays copyright notices during
107
+ execution, include the copyright notice for the Library among
108
+ these notices, as well as a reference directing the user to the
109
+ copies of the GNU GPL and this license document.
110
+
111
+ d) Do one of the following:
112
+
113
+ 0) Convey the Minimal Corresponding Source under the terms of this
114
+ License, and the Corresponding Application Code in a form
115
+ suitable for, and under terms that permit, the user to
116
+ recombine or relink the Application with a modified version of
117
+ the Linked Version to produce a modified Combined Work, in the
118
+ manner specified by section 6 of the GNU GPL for conveying
119
+ Corresponding Source.
120
+
121
+ 1) Use a suitable shared library mechanism for linking with the
122
+ Library. A suitable mechanism is one that (a) uses at run time
123
+ a copy of the Library already present on the user's computer
124
+ system, and (b) will operate properly with a modified version
125
+ of the Library that is interface-compatible with the Linked
126
+ Version.
127
+
128
+ e) Provide Installation Information, but only if you would otherwise
129
+ be required to provide such information under section 6 of the
130
+ GNU GPL, and only to the extent that such information is
131
+ necessary to install and execute a modified version of the
132
+ Combined Work produced by recombining or relinking the
133
+ Application with a modified version of the Linked Version. (If
134
+ you use option 4d0, the Installation Information must accompany
135
+ the Minimal Corresponding Source and Corresponding Application
136
+ Code. If you use option 4d1, you must provide the Installation
137
+ Information in the manner specified by section 6 of the GNU GPL
138
+ for conveying Corresponding Source.)
139
+
140
+ 5. Combined Libraries.
141
+
142
+ You may place library facilities that are a work based on the
143
+ Library side by side in a single library together with other library
144
+ facilities that are not Applications and are not covered by this
145
+ License, and convey such a combined library under terms of your
146
+ choice, if you do both of the following:
147
+
148
+ a) Accompany the combined library with a copy of the same work based
149
+ on the Library, uncombined with any other library facilities,
150
+ conveyed under the terms of this License.
151
+
152
+ b) Give prominent notice with the combined library that part of it
153
+ is a work based on the Library, and explaining where to find the
154
+ accompanying uncombined form of the same work.
155
+
156
+ 6. Revised Versions of the GNU Lesser General Public License.
157
+
158
+ The Free Software Foundation may publish revised and/or new versions
159
+ of the GNU Lesser General Public License from time to time. Such new
160
+ versions will be similar in spirit to the present version, but may
161
+ differ in detail to address new problems or concerns.
162
+
163
+ Each version is given a distinguishing version number. If the
164
+ Library as you received it specifies that a certain numbered version
165
+ of the GNU Lesser General Public License "or any later version"
166
+ applies to it, you have the option of following the terms and
167
+ conditions either of that published version or of any later version
168
+ published by the Free Software Foundation. If the Library as you
169
+ received it does not specify a version number of the GNU Lesser
170
+ General Public License, you may choose any version of the GNU Lesser
171
+ General Public License ever published by the Free Software Foundation.
172
+
173
+ If the Library as you received it specifies that a proxy can decide
174
+ whether future versions of the GNU Lesser General Public License shall
175
+ apply, that proxy's public statement of acceptance of any version is
176
+ permanent authorization for you to choose that version for the
177
+ Library.
178
+
179
+ **********************************************************************
180
+ **********************************************************************
181
+
182
+ GNU GENERAL PUBLIC LICENSE
183
+ Version 3, 29 June 2007
184
+
185
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
186
+ Everyone is permitted to copy and distribute verbatim copies
187
+ of this license document, but changing it is not allowed.
188
+
189
+ Preamble
190
+
191
+ The GNU General Public License is a free, copyleft license for
192
+ software and other kinds of works.
193
+
194
+ The licenses for most software and other practical works are designed
195
+ to take away your freedom to share and change the works. By contrast,
196
+ the GNU General Public License is intended to guarantee your freedom to
197
+ share and change all versions of a program--to make sure it remains free
198
+ software for all its users. We, the Free Software Foundation, use the
199
+ GNU General Public License for most of our software; it applies also to
200
+ any other work released this way by its authors. You can apply it to
201
+ your programs, too.
202
+
203
+ When we speak of free software, we are referring to freedom, not
204
+ price. Our General Public Licenses are designed to make sure that you
205
+ have the freedom to distribute copies of free software (and charge for
206
+ them if you wish), that you receive source code or can get it if you
207
+ want it, that you can change the software or use pieces of it in new
208
+ free programs, and that you know you can do these things.
209
+
210
+ To protect your rights, we need to prevent others from denying you
211
+ these rights or asking you to surrender the rights. Therefore, you have
212
+ certain responsibilities if you distribute copies of the software, or if
213
+ you modify it: responsibilities to respect the freedom of others.
214
+
215
+ For example, if you distribute copies of such a program, whether
216
+ gratis or for a fee, you must pass on to the recipients the same
217
+ freedoms that you received. You must make sure that they, too, receive
218
+ or can get the source code. And you must show them these terms so they
219
+ know their rights.
220
+
221
+ Developers that use the GNU GPL protect your rights with two steps:
222
+ (1) assert copyright on the software, and (2) offer you this License
223
+ giving you legal permission to copy, distribute and/or modify it.
224
+
225
+ For the developers' and authors' protection, the GPL clearly explains
226
+ that there is no warranty for this free software. For both users' and
227
+ authors' sake, the GPL requires that modified versions be marked as
228
+ changed, so that their problems will not be attributed erroneously to
229
+ authors of previous versions.
230
+
231
+ Some devices are designed to deny users access to install or run
232
+ modified versions of the software inside them, although the manufacturer
233
+ can do so. This is fundamentally incompatible with the aim of
234
+ protecting users' freedom to change the software. The systematic
235
+ pattern of such abuse occurs in the area of products for individuals to
236
+ use, which is precisely where it is most unacceptable. Therefore, we
237
+ have designed this version of the GPL to prohibit the practice for those
238
+ products. If such problems arise substantially in other domains, we
239
+ stand ready to extend this provision to those domains in future versions
240
+ of the GPL, as needed to protect the freedom of users.
241
+
242
+ Finally, every program is threatened constantly by software patents.
243
+ States should not allow patents to restrict development and use of
244
+ software on general-purpose computers, but in those that do, we wish to
245
+ avoid the special danger that patents applied to a free program could
246
+ make it effectively proprietary. To prevent this, the GPL assures that
247
+ patents cannot be used to render the program non-free.
248
+
249
+ The precise terms and conditions for copying, distribution and
250
+ modification follow.
251
+
252
+ TERMS AND CONDITIONS
253
+
254
+ 0. Definitions.
255
+
256
+ "This License" refers to version 3 of the GNU General Public License.
257
+
258
+ "Copyright" also means copyright-like laws that apply to other kinds of
259
+ works, such as semiconductor masks.
260
+
261
+ "The Program" refers to any copyrightable work licensed under this
262
+ License. Each licensee is addressed as "you". "Licensees" and
263
+ "recipients" may be individuals or organizations.
264
+
265
+ To "modify" a work means to copy from or adapt all or part of the work
266
+ in a fashion requiring copyright permission, other than the making of an
267
+ exact copy. The resulting work is called a "modified version" of the
268
+ earlier work or a work "based on" the earlier work.
269
+
270
+ A "covered work" means either the unmodified Program or a work based
271
+ on the Program.
272
+
273
+ To "propagate" a work means to do anything with it that, without
274
+ permission, would make you directly or secondarily liable for
275
+ infringement under applicable copyright law, except executing it on a
276
+ computer or modifying a private copy. Propagation includes copying,
277
+ distribution (with or without modification), making available to the
278
+ public, and in some countries other activities as well.
279
+
280
+ To "convey" a work means any kind of propagation that enables other
281
+ parties to make or receive copies. Mere interaction with a user through
282
+ a computer network, with no transfer of a copy, is not conveying.
283
+
284
+ An interactive user interface displays "Appropriate Legal Notices"
285
+ to the extent that it includes a convenient and prominently visible
286
+ feature that (1) displays an appropriate copyright notice, and (2)
287
+ tells the user that there is no warranty for the work (except to the
288
+ extent that warranties are provided), that licensees may convey the
289
+ work under this License, and how to view a copy of this License. If
290
+ the interface presents a list of user commands or options, such as a
291
+ menu, a prominent item in the list meets this criterion.
292
+
293
+ 1. Source Code.
294
+
295
+ The "source code" for a work means the preferred form of the work
296
+ for making modifications to it. "Object code" means any non-source
297
+ form of a work.
298
+
299
+ A "Standard Interface" means an interface that either is an official
300
+ standard defined by a recognized standards body, or, in the case of
301
+ interfaces specified for a particular programming language, one that
302
+ is widely used among developers working in that language.
303
+
304
+ The "System Libraries" of an executable work include anything, other
305
+ than the work as a whole, that (a) is included in the normal form of
306
+ packaging a Major Component, but which is not part of that Major
307
+ Component, and (b) serves only to enable use of the work with that
308
+ Major Component, or to implement a Standard Interface for which an
309
+ implementation is available to the public in source code form. A
310
+ "Major Component", in this context, means a major essential component
311
+ (kernel, window system, and so on) of the specific operating system
312
+ (if any) on which the executable work runs, or a compiler used to
313
+ produce the work, or an object code interpreter used to run it.
314
+
315
+ The "Corresponding Source" for a work in object code form means all
316
+ the source code needed to generate, install, and (for an executable
317
+ work) run the object code and to modify the work, including scripts to
318
+ control those activities. However, it does not include the work's
319
+ System Libraries, or general-purpose tools or generally available free
320
+ programs which are used unmodified in performing those activities but
321
+ which are not part of the work. For example, Corresponding Source
322
+ includes interface definition files associated with source files for
323
+ the work, and the source code for shared libraries and dynamically
324
+ linked subprograms that the work is specifically designed to require,
325
+ such as by intimate data communication or control flow between those
326
+ subprograms and other parts of the work.
327
+
328
+ The Corresponding Source need not include anything that users
329
+ can regenerate automatically from other parts of the Corresponding
330
+ Source.
331
+
332
+ The Corresponding Source for a work in source code form is that
333
+ same work.
334
+
335
+ 2. Basic Permissions.
336
+
337
+ All rights granted under this License are granted for the term of
338
+ copyright on the Program, and are irrevocable provided the stated
339
+ conditions are met. This License explicitly affirms your unlimited
340
+ permission to run the unmodified Program. The output from running a
341
+ covered work is covered by this License only if the output, given its
342
+ content, constitutes a covered work. This License acknowledges your
343
+ rights of fair use or other equivalent, as provided by copyright law.
344
+
345
+ You may make, run and propagate covered works that you do not
346
+ convey, without conditions so long as your license otherwise remains
347
+ in force. You may convey covered works to others for the sole purpose
348
+ of having them make modifications exclusively for you, or provide you
349
+ with facilities for running those works, provided that you comply with
350
+ the terms of this License in conveying all material for which you do
351
+ not control copyright. Those thus making or running the covered works
352
+ for you must do so exclusively on your behalf, under your direction
353
+ and control, on terms that prohibit them from making any copies of
354
+ your copyrighted material outside their relationship with you.
355
+
356
+ Conveying under any other circumstances is permitted solely under
357
+ the conditions stated below. Sublicensing is not allowed; section 10
358
+ makes it unnecessary.
359
+
360
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
361
+
362
+ No covered work shall be deemed part of an effective technological
363
+ measure under any applicable law fulfilling obligations under article
364
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
365
+ similar laws prohibiting or restricting circumvention of such
366
+ measures.
367
+
368
+ When you convey a covered work, you waive any legal power to forbid
369
+ circumvention of technological measures to the extent such circumvention
370
+ is effected by exercising rights under this License with respect to
371
+ the covered work, and you disclaim any intention to limit operation or
372
+ modification of the work as a means of enforcing, against the work's
373
+ users, your or third parties' legal rights to forbid circumvention of
374
+ technological measures.
375
+
376
+ 4. Conveying Verbatim Copies.
377
+
378
+ You may convey verbatim copies of the Program's source code as you
379
+ receive it, in any medium, provided that you conspicuously and
380
+ appropriately publish on each copy an appropriate copyright notice;
381
+ keep intact all notices stating that this License and any
382
+ non-permissive terms added in accord with section 7 apply to the code;
383
+ keep intact all notices of the absence of any warranty; and give all
384
+ recipients a copy of this License along with the Program.
385
+
386
+ You may charge any price or no price for each copy that you convey,
387
+ and you may offer support or warranty protection for a fee.
388
+
389
+ 5. Conveying Modified Source Versions.
390
+
391
+ You may convey a work based on the Program, or the modifications to
392
+ produce it from the Program, in the form of source code under the
393
+ terms of section 4, provided that you also meet all of these conditions:
394
+
395
+ a) The work must carry prominent notices stating that you modified
396
+ it, and giving a relevant date.
397
+
398
+ b) The work must carry prominent notices stating that it is
399
+ released under this License and any conditions added under section
400
+ 7. This requirement modifies the requirement in section 4 to
401
+ "keep intact all notices".
402
+
403
+ c) You must license the entire work, as a whole, under this
404
+ License to anyone who comes into possession of a copy. This
405
+ License will therefore apply, along with any applicable section 7
406
+ additional terms, to the whole of the work, and all its parts,
407
+ regardless of how they are packaged. This License gives no
408
+ permission to license the work in any other way, but it does not
409
+ invalidate such permission if you have separately received it.
410
+
411
+ d) If the work has interactive user interfaces, each must display
412
+ Appropriate Legal Notices; however, if the Program has interactive
413
+ interfaces that do not display Appropriate Legal Notices, your
414
+ work need not make them do so.
415
+
416
+ A compilation of a covered work with other separate and independent
417
+ works, which are not by their nature extensions of the covered work,
418
+ and which are not combined with it such as to form a larger program,
419
+ in or on a volume of a storage or distribution medium, is called an
420
+ "aggregate" if the compilation and its resulting copyright are not
421
+ used to limit the access or legal rights of the compilation's users
422
+ beyond what the individual works permit. Inclusion of a covered work
423
+ in an aggregate does not cause this License to apply to the other
424
+ parts of the aggregate.
425
+
426
+ 6. Conveying Non-Source Forms.
427
+
428
+ You may convey a covered work in object code form under the terms
429
+ of sections 4 and 5, provided that you also convey the
430
+ machine-readable Corresponding Source under the terms of this License,
431
+ in one of these ways:
432
+
433
+ a) Convey the object code in, or embodied in, a physical product
434
+ (including a physical distribution medium), accompanied by the
435
+ Corresponding Source fixed on a durable physical medium
436
+ customarily used for software interchange.
437
+
438
+ b) Convey the object code in, or embodied in, a physical product
439
+ (including a physical distribution medium), accompanied by a
440
+ written offer, valid for at least three years and valid for as
441
+ long as you offer spare parts or customer support for that product
442
+ model, to give anyone who possesses the object code either (1) a
443
+ copy of the Corresponding Source for all the software in the
444
+ product that is covered by this License, on a durable physical
445
+ medium customarily used for software interchange, for a price no
446
+ more than your reasonable cost of physically performing this
447
+ conveying of source, or (2) access to copy the
448
+ Corresponding Source from a network server at no charge.
449
+
450
+ c) Convey individual copies of the object code with a copy of the
451
+ written offer to provide the Corresponding Source. This
452
+ alternative is allowed only occasionally and noncommercially, and
453
+ only if you received the object code with such an offer, in accord
454
+ with subsection 6b.
455
+
456
+ d) Convey the object code by offering access from a designated
457
+ place (gratis or for a charge), and offer equivalent access to the
458
+ Corresponding Source in the same way through the same place at no
459
+ further charge. You need not require recipients to copy the
460
+ Corresponding Source along with the object code. If the place to
461
+ copy the object code is a network server, the Corresponding Source
462
+ may be on a different server (operated by you or a third party)
463
+ that supports equivalent copying facilities, provided you maintain
464
+ clear directions next to the object code saying where to find the
465
+ Corresponding Source. Regardless of what server hosts the
466
+ Corresponding Source, you remain obligated to ensure that it is
467
+ available for as long as needed to satisfy these requirements.
468
+
469
+ e) Convey the object code using peer-to-peer transmission, provided
470
+ you inform other peers where the object code and Corresponding
471
+ Source of the work are being offered to the general public at no
472
+ charge under subsection 6d.
473
+
474
+ A separable portion of the object code, whose source code is excluded
475
+ from the Corresponding Source as a System Library, need not be
476
+ included in conveying the object code work.
477
+
478
+ A "User Product" is either (1) a "consumer product", which means any
479
+ tangible personal property which is normally used for personal, family,
480
+ or household purposes, or (2) anything designed or sold for incorporation
481
+ into a dwelling. In determining whether a product is a consumer product,
482
+ doubtful cases shall be resolved in favor of coverage. For a particular
483
+ product received by a particular user, "normally used" refers to a
484
+ typical or common use of that class of product, regardless of the status
485
+ of the particular user or of the way in which the particular user
486
+ actually uses, or expects or is expected to use, the product. A product
487
+ is a consumer product regardless of whether the product has substantial
488
+ commercial, industrial or non-consumer uses, unless such uses represent
489
+ the only significant mode of use of the product.
490
+
491
+ "Installation Information" for a User Product means any methods,
492
+ procedures, authorization keys, or other information required to install
493
+ and execute modified versions of a covered work in that User Product from
494
+ a modified version of its Corresponding Source. The information must
495
+ suffice to ensure that the continued functioning of the modified object
496
+ code is in no case prevented or interfered with solely because
497
+ modification has been made.
498
+
499
+ If you convey an object code work under this section in, or with, or
500
+ specifically for use in, a User Product, and the conveying occurs as
501
+ part of a transaction in which the right of possession and use of the
502
+ User Product is transferred to the recipient in perpetuity or for a
503
+ fixed term (regardless of how the transaction is characterized), the
504
+ Corresponding Source conveyed under this section must be accompanied
505
+ by the Installation Information. But this requirement does not apply
506
+ if neither you nor any third party retains the ability to install
507
+ modified object code on the User Product (for example, the work has
508
+ been installed in ROM).
509
+
510
+ The requirement to provide Installation Information does not include a
511
+ requirement to continue to provide support service, warranty, or updates
512
+ for a work that has been modified or installed by the recipient, or for
513
+ the User Product in which it has been modified or installed. Access to a
514
+ network may be denied when the modification itself materially and
515
+ adversely affects the operation of the network or violates the rules and
516
+ protocols for communication across the network.
517
+
518
+ Corresponding Source conveyed, and Installation Information provided,
519
+ in accord with this section must be in a format that is publicly
520
+ documented (and with an implementation available to the public in
521
+ source code form), and must require no special password or key for
522
+ unpacking, reading or copying.
523
+
524
+ 7. Additional Terms.
525
+
526
+ "Additional permissions" are terms that supplement the terms of this
527
+ License by making exceptions from one or more of its conditions.
528
+ Additional permissions that are applicable to the entire Program shall
529
+ be treated as though they were included in this License, to the extent
530
+ that they are valid under applicable law. If additional permissions
531
+ apply only to part of the Program, that part may be used separately
532
+ under those permissions, but the entire Program remains governed by
533
+ this License without regard to the additional permissions.
534
+
535
+ When you convey a copy of a covered work, you may at your option
536
+ remove any additional permissions from that copy, or from any part of
537
+ it. (Additional permissions may be written to require their own
538
+ removal in certain cases when you modify the work.) You may place
539
+ additional permissions on material, added by you to a covered work,
540
+ for which you have or can give appropriate copyright permission.
541
+
542
+ Notwithstanding any other provision of this License, for material you
543
+ add to a covered work, you may (if authorized by the copyright holders of
544
+ that material) supplement the terms of this License with terms:
545
+
546
+ a) Disclaiming warranty or limiting liability differently from the
547
+ terms of sections 15 and 16 of this License; or
548
+
549
+ b) Requiring preservation of specified reasonable legal notices or
550
+ author attributions in that material or in the Appropriate Legal
551
+ Notices displayed by works containing it; or
552
+
553
+ c) Prohibiting misrepresentation of the origin of that material, or
554
+ requiring that modified versions of such material be marked in
555
+ reasonable ways as different from the original version; or
556
+
557
+ d) Limiting the use for publicity purposes of names of licensors or
558
+ authors of the material; or
559
+
560
+ e) Declining to grant rights under trademark law for use of some
561
+ trade names, trademarks, or service marks; or
562
+
563
+ f) Requiring indemnification of licensors and authors of that
564
+ material by anyone who conveys the material (or modified versions of
565
+ it) with contractual assumptions of liability to the recipient, for
566
+ any liability that these contractual assumptions directly impose on
567
+ those licensors and authors.
568
+
569
+ All other non-permissive additional terms are considered "further
570
+ restrictions" within the meaning of section 10. If the Program as you
571
+ received it, or any part of it, contains a notice stating that it is
572
+ governed by this License along with a term that is a further
573
+ restriction, you may remove that term. If a license document contains
574
+ a further restriction but permits relicensing or conveying under this
575
+ License, you may add to a covered work material governed by the terms
576
+ of that license document, provided that the further restriction does
577
+ not survive such relicensing or conveying.
578
+
579
+ If you add terms to a covered work in accord with this section, you
580
+ must place, in the relevant source files, a statement of the
581
+ additional terms that apply to those files, or a notice indicating
582
+ where to find the applicable terms.
583
+
584
+ Additional terms, permissive or non-permissive, may be stated in the
585
+ form of a separately written license, or stated as exceptions;
586
+ the above requirements apply either way.
587
+
588
+ 8. Termination.
589
+
590
+ You may not propagate or modify a covered work except as expressly
591
+ provided under this License. Any attempt otherwise to propagate or
592
+ modify it is void, and will automatically terminate your rights under
593
+ this License (including any patent licenses granted under the third
594
+ paragraph of section 11).
595
+
596
+ However, if you cease all violation of this License, then your
597
+ license from a particular copyright holder is reinstated (a)
598
+ provisionally, unless and until the copyright holder explicitly and
599
+ finally terminates your license, and (b) permanently, if the copyright
600
+ holder fails to notify you of the violation by some reasonable means
601
+ prior to 60 days after the cessation.
602
+
603
+ Moreover, your license from a particular copyright holder is
604
+ reinstated permanently if the copyright holder notifies you of the
605
+ violation by some reasonable means, this is the first time you have
606
+ received notice of violation of this License (for any work) from that
607
+ copyright holder, and you cure the violation prior to 30 days after
608
+ your receipt of the notice.
609
+
610
+ Termination of your rights under this section does not terminate the
611
+ licenses of parties who have received copies or rights from you under
612
+ this License. If your rights have been terminated and not permanently
613
+ reinstated, you do not qualify to receive new licenses for the same
614
+ material under section 10.
615
+
616
+ 9. Acceptance Not Required for Having Copies.
617
+
618
+ You are not required to accept this License in order to receive or
619
+ run a copy of the Program. Ancillary propagation of a covered work
620
+ occurring solely as a consequence of using peer-to-peer transmission
621
+ to receive a copy likewise does not require acceptance. However,
622
+ nothing other than this License grants you permission to propagate or
623
+ modify any covered work. These actions infringe copyright if you do
624
+ not accept this License. Therefore, by modifying or propagating a
625
+ covered work, you indicate your acceptance of this License to do so.
626
+
627
+ 10. Automatic Licensing of Downstream Recipients.
628
+
629
+ Each time you convey a covered work, the recipient automatically
630
+ receives a license from the original licensors, to run, modify and
631
+ propagate that work, subject to this License. You are not responsible
632
+ for enforcing compliance by third parties with this License.
633
+
634
+ An "entity transaction" is a transaction transferring control of an
635
+ organization, or substantially all assets of one, or subdividing an
636
+ organization, or merging organizations. If propagation of a covered
637
+ work results from an entity transaction, each party to that
638
+ transaction who receives a copy of the work also receives whatever
639
+ licenses to the work the party's predecessor in interest had or could
640
+ give under the previous paragraph, plus a right to possession of the
641
+ Corresponding Source of the work from the predecessor in interest, if
642
+ the predecessor has it or can get it with reasonable efforts.
643
+
644
+ You may not impose any further restrictions on the exercise of the
645
+ rights granted or affirmed under this License. For example, you may
646
+ not impose a license fee, royalty, or other charge for exercise of
647
+ rights granted under this License, and you may not initiate litigation
648
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
649
+ any patent claim is infringed by making, using, selling, offering for
650
+ sale, or importing the Program or any portion of it.
651
+
652
+ 11. Patents.
653
+
654
+ A "contributor" is a copyright holder who authorizes use under this
655
+ License of the Program or a work on which the Program is based. The
656
+ work thus licensed is called the contributor's "contributor version".
657
+
658
+ A contributor's "essential patent claims" are all patent claims
659
+ owned or controlled by the contributor, whether already acquired or
660
+ hereafter acquired, that would be infringed by some manner, permitted
661
+ by this License, of making, using, or selling its contributor version,
662
+ but do not include claims that would be infringed only as a
663
+ consequence of further modification of the contributor version. For
664
+ purposes of this definition, "control" includes the right to grant
665
+ patent sublicenses in a manner consistent with the requirements of
666
+ this License.
667
+
668
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
669
+ patent license under the contributor's essential patent claims, to
670
+ make, use, sell, offer for sale, import and otherwise run, modify and
671
+ propagate the contents of its contributor version.
672
+
673
+ In the following three paragraphs, a "patent license" is any express
674
+ agreement or commitment, however denominated, not to enforce a patent
675
+ (such as an express permission to practice a patent or covenant not to
676
+ sue for patent infringement). To "grant" such a patent license to a
677
+ party means to make such an agreement or commitment not to enforce a
678
+ patent against the party.
679
+
680
+ If you convey a covered work, knowingly relying on a patent license,
681
+ and the Corresponding Source of the work is not available for anyone
682
+ to copy, free of charge and under the terms of this License, through a
683
+ publicly available network server or other readily accessible means,
684
+ then you must either (1) cause the Corresponding Source to be so
685
+ available, or (2) arrange to deprive yourself of the benefit of the
686
+ patent license for this particular work, or (3) arrange, in a manner
687
+ consistent with the requirements of this License, to extend the patent
688
+ license to downstream recipients. "Knowingly relying" means you have
689
+ actual knowledge that, but for the patent license, your conveying the
690
+ covered work in a country, or your recipient's use of the covered work
691
+ in a country, would infringe one or more identifiable patents in that
692
+ country that you have reason to believe are valid.
693
+
694
+ If, pursuant to or in connection with a single transaction or
695
+ arrangement, you convey, or propagate by procuring conveyance of, a
696
+ covered work, and grant a patent license to some of the parties
697
+ receiving the covered work authorizing them to use, propagate, modify
698
+ or convey a specific copy of the covered work, then the patent license
699
+ you grant is automatically extended to all recipients of the covered
700
+ work and works based on it.
701
+
702
+ A patent license is "discriminatory" if it does not include within
703
+ the scope of its coverage, prohibits the exercise of, or is
704
+ conditioned on the non-exercise of one or more of the rights that are
705
+ specifically granted under this License. You may not convey a covered
706
+ work if you are a party to an arrangement with a third party that is
707
+ in the business of distributing software, under which you make payment
708
+ to the third party based on the extent of your activity of conveying
709
+ the work, and under which the third party grants, to any of the
710
+ parties who would receive the covered work from you, a discriminatory
711
+ patent license (a) in connection with copies of the covered work
712
+ conveyed by you (or copies made from those copies), or (b) primarily
713
+ for and in connection with specific products or compilations that
714
+ contain the covered work, unless you entered into that arrangement,
715
+ or that patent license was granted, prior to 28 March 2007.
716
+
717
+ Nothing in this License shall be construed as excluding or limiting
718
+ any implied license or other defenses to infringement that may
719
+ otherwise be available to you under applicable patent law.
720
+
721
+ 12. No Surrender of Others' Freedom.
722
+
723
+ If conditions are imposed on you (whether by court order, agreement or
724
+ otherwise) that contradict the conditions of this License, they do not
725
+ excuse you from the conditions of this License. If you cannot convey a
726
+ covered work so as to satisfy simultaneously your obligations under this
727
+ License and any other pertinent obligations, then as a consequence you may
728
+ not convey it at all. For example, if you agree to terms that obligate you
729
+ to collect a royalty for further conveying from those to whom you convey
730
+ the Program, the only way you could satisfy both those terms and this
731
+ License would be to refrain entirely from conveying the Program.
732
+
733
+ 13. Use with the GNU Affero General Public License.
734
+
735
+ Notwithstanding any other provision of this License, you have
736
+ permission to link or combine any covered work with a work licensed
737
+ under version 3 of the GNU Affero General Public License into a single
738
+ combined work, and to convey the resulting work. The terms of this
739
+ License will continue to apply to the part which is the covered work,
740
+ but the special requirements of the GNU Affero General Public License,
741
+ section 13, concerning interaction through a network will apply to the
742
+ combination as such.
743
+
744
+ 14. Revised Versions of this License.
745
+
746
+ The Free Software Foundation may publish revised and/or new versions of
747
+ the GNU General Public License from time to time. Such new versions will
748
+ be similar in spirit to the present version, but may differ in detail to
749
+ address new problems or concerns.
750
+
751
+ Each version is given a distinguishing version number. If the
752
+ Program specifies that a certain numbered version of the GNU General
753
+ Public License "or any later version" applies to it, you have the
754
+ option of following the terms and conditions either of that numbered
755
+ version or of any later version published by the Free Software
756
+ Foundation. If the Program does not specify a version number of the
757
+ GNU General Public License, you may choose any version ever published
758
+ by the Free Software Foundation.
759
+
760
+ If the Program specifies that a proxy can decide which future
761
+ versions of the GNU General Public License can be used, that proxy's
762
+ public statement of acceptance of a version permanently authorizes you
763
+ to choose that version for the Program.
764
+
765
+ Later license versions may give you additional or different
766
+ permissions. However, no additional obligations are imposed on any
767
+ author or copyright holder as a result of your choosing to follow a
768
+ later version.
769
+
770
+ 15. Disclaimer of Warranty.
771
+
772
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
773
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
774
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
775
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
776
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
777
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
778
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
779
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
780
+
781
+ 16. Limitation of Liability.
782
+
783
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
784
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
785
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
786
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
787
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
788
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
789
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
790
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
791
+ SUCH DAMAGES.
792
+
793
+ 17. Interpretation of Sections 15 and 16.
794
+
795
+ If the disclaimer of warranty and limitation of liability provided
796
+ above cannot be given local legal effect according to their terms,
797
+ reviewing courts shall apply local law that most closely approximates
798
+ an absolute waiver of all civil liability in connection with the
799
+ Program, unless a warranty or assumption of liability accompanies a
800
+ copy of the Program in return for a fee.
801
+
802
+ END OF TERMS AND CONDITIONS
803
+
804
+ How to Apply These Terms to Your New Programs
805
+
806
+ If you develop a new program, and you want it to be of the greatest
807
+ possible use to the public, the best way to achieve this is to make it
808
+ free software which everyone can redistribute and change under these terms.
809
+
810
+ To do so, attach the following notices to the program. It is safest
811
+ to attach them to the start of each source file to most effectively
812
+ state the exclusion of warranty; and each file should have at least
813
+ the "copyright" line and a pointer to where the full notice is found.
814
+
815
+ <one line to give the program's name and a brief idea of what it does.>
816
+ Copyright (C) <year> <name of author>
817
+
818
+ This program is free software: you can redistribute it and/or modify
819
+ it under the terms of the GNU General Public License as published by
820
+ the Free Software Foundation, either version 3 of the License, or
821
+ (at your option) any later version.
822
+
823
+ This program is distributed in the hope that it will be useful,
824
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
825
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
826
+ GNU General Public License for more details.
827
+
828
+ You should have received a copy of the GNU General Public License
829
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
830
+
831
+ Also add information on how to contact you by electronic and paper mail.
832
+
833
+ If the program does terminal interaction, make it output a short
834
+ notice like this when it starts in an interactive mode:
835
+
836
+ <program> Copyright (C) <year> <name of author>
837
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
838
+ This is free software, and you are welcome to redistribute it
839
+ under certain conditions; type `show c' for details.
840
+
841
+ The hypothetical commands `show w' and `show c' should show the appropriate
842
+ parts of the General Public License. Of course, your program's commands
843
+ might be different; for a GUI interface, you would use an "about box".
844
+
845
+ You should also get your employer (if you work as a programmer) or school,
846
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
847
+ For more information on this, and how to apply and follow the GNU GPL, see
848
+ <http://www.gnu.org/licenses/>.
849
+
850
+ The GNU General Public License does not permit incorporating your program
851
+ into proprietary programs. If your program is a subroutine library, you
852
+ may consider it more useful to permit linking proprietary applications with
853
+ the library. If this is what you want to do, use the GNU Lesser General
854
+ Public License instead of this License. But first, please read
855
+ <http://www.gnu.org/philosophy/why-not-lgpl.html>.
856
+
857
+ **********************************************************************
858
+ **********************************************************************
includes/tcpdf_min/README.TXT ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ TCPDF - README
2
+ ============================================================
3
+
4
+ I WISH TO IMPROVE AND EXPAND TCPDF BUT I NEED YOUR SUPPORT.
5
+ PLEASE MAKE A DONATION:
6
+ http://sourceforge.net/donate/index.php?group_id=128076
7
+
8
+ ------------------------------------------------------------
9
+
10
+ Name: TCPDF
11
+ Version: 6.0.084
12
+ Release date: 2014-06-13
13
+ Author: Nicola Asuni
14
+
15
+ Copyright (c) 2002-2014:
16
+ Nicola Asuni
17
+ Tecnick.com LTD
18
+ www.tecnick.com
19
+
20
+ URLs:
21
+ http://www.tcpdf.org
22
+ http://www.sourceforge.net/projects/tcpdf
23
+
24
+ Description:
25
+ TCPDF is a PHP class for generating PDF files on-the-fly without requiring external extensions.
26
+ This library includes also a class to extract data from existing PDF documents and
27
+ classes to generate 1D and 2D barcodes in various formats.
28
+
29
+ Main Features:
30
+ * no external libraries are required for the basic functions;
31
+ * all standard page formats, custom page formats, custom margins and units of measure;
32
+ * UTF-8 Unicode and Right-To-Left languages;
33
+ * TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts;
34
+ * font subsetting;
35
+ * methods to publish some XHTML + CSS code, Javascript and Forms;
36
+ * images, graphic (geometric figures) and transformation methods;
37
+ * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http: www.imagemagick.org/www/formats.html)
38
+ * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
39
+ * JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
40
+ * automatic page header and footer management;
41
+ * document encryption up to 256 bit and digital signature certifications;
42
+ * transactions to UNDO commands;
43
+ * PDF annotations, including links, text and file attachments;
44
+ * text rendering modes (fill, stroke and clipping);
45
+ * multiple columns mode;
46
+ * no-write page regions;
47
+ * bookmarks, named destinations and table of content;
48
+ * text hyphenation;
49
+ * text stretching and spacing (tracking);
50
+ * automatic page break, line break and text alignments including justification;
51
+ * automatic page numbering and page groups;
52
+ * move and delete pages;
53
+ * page compression (requires php-zlib extension);
54
+ * XOBject Templates;
55
+ * Layers and object visibility.
56
+ * PDF/A-1b support.
57
+
58
+ Installation (full instructions on http: www.tcpdf.org):
59
+ 1. copy the folder on your Web server
60
+ 2. set your installation path and other parameters on the config/tcpdf_config.php
61
+ 3. call the examples/example_001.php page with your browser to see an example
62
+
63
+ Source Code Documentation:
64
+ http://www.tcpdf.org
65
+
66
+ Additional Documentation:
67
+ http://www.tcpdf.org
68
+
69
+ License:
70
+ Copyright (C) 2002-2014 Nicola Asuni - Tecnick.com LTD
71
+
72
+ TCPDF is free software: you can redistribute it and/or modify it
73
+ under the terms of the GNU Lesser General Public License as
74
+ published by the Free Software Foundation, either version 3 of the
75
+ License, or (at your option) any later version.
76
+
77
+ TCPDF is distributed in the hope that it will be useful, but
78
+ WITHOUT ANY WARRANTY; without even the implied warranty of
79
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
80
+ See the GNU Lesser General Public License for more details.
81
+
82
+ You should have received a copy of the License
83
+ along with TCPDF. If not, see
84
+ <http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT>.
85
+
86
+ See LICENSE.TXT file for more information.
87
+
88
+ Third party fonts:
89
+
90
+ This library may include third party font files released with different licenses.
91
+
92
+ All the PHP files on the fonts directory are subject to the general TCPDF license (GNU-LGPLv3),
93
+ they do not contain any binary data but just a description of the general properties of a particular font.
94
+ These files can be also generated on the fly using the font utilities and TCPDF methods.
95
+
96
+ All the original binary TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files).
97
+
98
+ The binary files (.z) that begins with the prefix "free" have been extracted from the GNU FreeFont collection (GNU-GPLv3).
99
+ The binary files (.z) that begins with the prefix "pdfa" have been derived from the GNU FreeFont, so they are subject to the same license.
100
+ For the details of Copyright, License and other information, please check the files inside the directory fonts/freefont-20120503
101
+ Link : http://www.gnu.org/software/freefont/
102
+
103
+ The binary files (.z) that begins with the prefix "dejavu" have been extracted from the DejaVu fonts 2.33 (Bitstream) collection.
104
+ For the details of Copyright, License and other information, please check the files inside the directory fonts/dejavu-fonts-ttf-2.33
105
+ Link : http://dejavu-fonts.org
106
+
107
+ The binary files (.z) that begins with the prefix "ae" have been extracted from the Arabeyes.org collection (GNU-GPLv2).
108
+ Link : http://projects.arabeyes.org/
109
+
110
+
111
+ ============================================================
includes/tcpdf_min/composer.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "tecnick.com/tcpdf",
3
+ "version": "6.0.084",
4
+ "homepage": "http://www.tcpdf.org/",
5
+ "type": "library",
6
+ "description": "TCPDF is a PHP class for generating PDF documents.",
7
+ "keywords": ["PDF","tcpdf","PDFD32000-2008","qrcode","datamatrix","pdf417","barcodes"],
8
+ "license": "LGPLv3",
9
+ "authors": [
10
+ {
11
+ "name": "Nicola Asuni",
12
+ "email": "info@tecnick.com",
13
+ "homepage": "http://nicolaasuni.tecnick.com"
14
+ }
15
+ ],
16
+ "require": {
17
+ "php": ">=5.3.0"
18
+ },
19
+ "autoload": {
20
+ "classmap": [
21
+ "fonts",
22
+ "config",
23
+ "include",
24
+ "tcpdf.php",
25
+ "tcpdf_parser.php",
26
+ "tcpdf_import.php",
27
+ "tcpdf_barcodes_1d.php",
28
+ "tcpdf_barcodes_2d.php",
29
+ "include/tcpdf_colors.php",
30
+ "include/tcpdf_filters.php",
31
+ "include/tcpdf_font_data.php",
32
+ "include/tcpdf_fonts.php",
33
+ "include/tcpdf_images.php",
34
+ "include/tcpdf_static.php",
35
+ "include/barcodes/datamatrix.php",
36
+ "include/barcodes/pdf417.php",
37
+ "include/barcodes/qrcode.php"
38
+ ]
39
+ }
40
+ }
includes/tcpdf_min/config/tcpdf_config.php ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //============================================================+
3
+ // File name : tcpdf_config.php
4
+ // Begin : 2004-06-11
5
+ // Last Update : 2014-01-25
6
+ //
7
+ // Description : Configuration file for TCPDF.
8
+ // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
9
+ // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
10
+ // -------------------------------------------------------------------
11
+ // Copyright (C) 2004-2014 Nicola Asuni - Tecnick.com LTD
12
+ //
13
+ // This file is part of TCPDF software library.
14
+ //
15
+ // TCPDF is free software: you can redistribute it and/or modify it
16
+ // under the terms of the GNU Lesser General Public License as
17
+ // published by the Free Software Foundation, either version 3 of the
18
+ // License, or (at your option) any later version.
19
+ //
20
+ // TCPDF is distributed in the hope that it will be useful, but
21
+ // WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23
+ // See the GNU Lesser General Public License for more details.
24
+ //
25
+ // You should have received a copy of the GNU Lesser General Public License
26
+ // along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
27
+ //
28
+ // See LICENSE.TXT file for more information.
29
+ //============================================================+
30
+
31
+ /**
32
+ * Configuration file for TCPDF.
33
+ * @author Nicola Asuni
34
+ * @package com.tecnick.tcpdf
35
+ * @version 4.9.005
36
+ * @since 2004-10-27
37
+ */
38
+
39
+ // IMPORTANT:
40
+ // If you define the constant K_TCPDF_EXTERNAL_CONFIG, all the following settings will be ignored.
41
+ // If you use the tcpdf_autoconfig.php, then you can overwrite some values here.
42
+
43
+
44
+ /**
45
+ * Installation path (/var/www/tcpdf/).
46
+ * By default it is automatically calculated but you can also set it as a fixed string to improve performances.
47
+ */
48
+ //define ('K_PATH_MAIN', '');
49
+
50
+ /**
51
+ * URL path to tcpdf installation folder (http://localhost/tcpdf/).
52
+ * By default it is automatically set but you can also set it as a fixed string to improve performances.
53
+ */
54
+ //define ('K_PATH_URL', '');
55
+
56
+ /**
57
+ * Path for PDF fonts.
58
+ * By default it is automatically set but you can also set it as a fixed string to improve performances.
59
+ */
60
+ //define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
61
+
62
+ /**
63
+ * Default images directory.
64
+ * By default it is automatically set but you can also set it as a fixed string to improve performances.
65
+ */
66
+ //define ('K_PATH_IMAGES', '');
67
+
68
+ /**
69
+ * Deafult image logo used be the default Header() method.
70
+ * Please set here your own logo or an empty string to disable it.
71
+ */
72
+ //define ('PDF_HEADER_LOGO', '');
73
+
74
+ /**
75
+ * Header logo image width in user units.
76
+ */
77
+ //define ('PDF_HEADER_LOGO_WIDTH', 0);
78
+
79
+ /**
80
+ * Cache directory for temporary files (full path).
81
+ */
82
+ //define ('K_PATH_CACHE', '/tmp/');
83
+
84
+ /**
85
+ * Generic name for a blank image.
86
+ */
87
+ define ('K_BLANK_IMAGE', '_blank.png');
88
+
89
+ /**
90
+ * Page format.
91
+ */
92
+ define ('PDF_PAGE_FORMAT', 'A4');
93
+
94
+ /**
95
+ * Page orientation (P=portrait, L=landscape).
96
+ */
97
+ define ('PDF_PAGE_ORIENTATION', 'P');
98
+
99
+ /**
100
+ * Document creator.
101
+ */
102
+ define ('PDF_CREATOR', 'TCPDF');
103
+
104
+ /**
105
+ * Document author.
106
+ */
107
+ define ('PDF_AUTHOR', 'TCPDF');
108
+
109
+ /**
110
+ * Header title.
111
+ */
112
+ define ('PDF_HEADER_TITLE', 'TCPDF Example');
113
+
114
+ /**
115
+ * Header description string.
116
+ */
117
+ define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org");
118
+
119
+ /**
120
+ * Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch].
121
+ */
122
+ define ('PDF_UNIT', 'mm');
123
+
124
+ /**
125
+ * Header margin.
126
+ */
127
+ define ('PDF_MARGIN_HEADER', 5);
128
+
129
+ /**
130
+ * Footer margin.
131
+ */
132
+ define ('PDF_MARGIN_FOOTER', 10);
133
+
134
+ /**
135
+ * Top margin.
136
+ */
137
+ define ('PDF_MARGIN_TOP', 27);
138
+
139
+ /**
140
+ * Bottom margin.
141
+ */
142
+ define ('PDF_MARGIN_BOTTOM', 25);
143
+
144
+ /**
145
+ * Left margin.
146
+ */
147
+ define ('PDF_MARGIN_LEFT', 15);
148
+
149
+ /**
150
+ * Right margin.
151
+ */
152
+ define ('PDF_MARGIN_RIGHT', 15);
153
+
154
+ /**
155
+ * Default main font name.
156
+ */
157
+ define ('PDF_FONT_NAME_MAIN', 'helvetica');
158
+
159
+ /**
160
+ * Default main font size.
161
+ */
162
+ define ('PDF_FONT_SIZE_MAIN', 10);
163
+
164
+ /**
165
+ * Default data font name.
166
+ */
167
+ define ('PDF_FONT_NAME_DATA', 'helvetica');
168
+
169
+ /**
170
+ * Default data font size.
171
+ */
172
+ define ('PDF_FONT_SIZE_DATA', 8);
173
+
174
+ /**
175
+ * Default monospaced font name.
176
+ */
177
+ define ('PDF_FONT_MONOSPACED', 'courier');
178
+
179
+ /**
180
+ * Ratio used to adjust the conversion of pixels to user units.
181
+ */
182
+ define ('PDF_IMAGE_SCALE_RATIO', 1.25);
183
+
184
+ /**
185
+ * Magnification factor for titles.
186
+ */
187
+ define('HEAD_MAGNIFICATION', 1.1);
188
+
189
+ /**
190
+ * Height of cell respect font height.
191
+ */
192
+ define('K_CELL_HEIGHT_RATIO', 1.25);
193
+
194
+ /**
195
+ * Title magnification respect main font size.
196
+ */
197
+ define('K_TITLE_MAGNIFICATION', 1.3);
198
+
199
+ /**
200
+ * Reduction factor for small font.
201
+ */
202
+ define('K_SMALL_RATIO', 2/3);
203
+
204
+ /**
205
+ * Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language.
206
+ */
207
+ define('K_THAI_TOPCHARS', true);
208
+
209
+ /**
210
+ * If true allows to call TCPDF methods using HTML syntax
211
+ * IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
212
+ */
213
+ define('K_TCPDF_CALLS_IN_HTML', true);
214
+
215
+ /**
216
+ * If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution.
217
+ */
218
+ define('K_TCPDF_THROW_EXCEPTION_ERROR', false);
219
+
220
+ //============================================================+
221
+ // END OF FILE
222
+ //============================================================+
includes/tcpdf_min/fonts/courier.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Courier';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=600;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>33,'FontBBox'=>'[-23 -250 715 805]','ItalicAngle'=>0,'Ascent'=>805,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>426,'StemV'=>51,'StemH'=>51,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
11
+ $cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/courierb.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Courier-Bold';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=600;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>33,'FontBBox'=>'[-113 -250 749 801]','ItalicAngle'=>0,'Ascent'=>801,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>439,'StemV'=>106,'StemH'=>84,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
11
+ $cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/courierbi.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Courier-BoldOblique';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=600;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>97,'FontBBox'=>'[-57 -250 869 801]','ItalicAngle'=>-12,'Ascent'=>801,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>439,'StemV'=>106,'StemH'=>84,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
11
+ $cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/courieri.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Courier-Oblique';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=600;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>97,'FontBBox'=>'[-27 -250 849 805]','ItalicAngle'=>-12,'Ascent'=>805,'Descent'=>-250,'Leading'=>0,'CapHeight'=>562,'XHeight'=>426,'StemV'=>51,'StemH'=>51,'AvgWidth'=>600,'MaxWidth'=>600,'MissingWidth'=>600);
11
+ $cw=array(0=>600,1=>600,2=>600,3=>600,4=>600,5=>600,6=>600,7=>600,8=>600,9=>600,10=>600,11=>600,12=>600,13=>600,14=>600,15=>600,16=>600,17=>600,18=>600,19=>600,20=>600,21=>600,22=>600,23=>600,24=>600,25=>600,26=>600,27=>600,28=>600,29=>600,30=>600,31=>600,32=>600,33=>600,34=>600,35=>600,36=>600,37=>600,38=>600,39=>600,40=>600,41=>600,42=>600,43=>600,44=>600,45=>600,46=>600,47=>600,48=>600,49=>600,50=>600,51=>600,52=>600,53=>600,54=>600,55=>600,56=>600,57=>600,58=>600,59=>600,60=>600,61=>600,62=>600,63=>600,64=>600,65=>600,66=>600,67=>600,68=>600,69=>600,70=>600,71=>600,72=>600,73=>600,74=>600,75=>600,76=>600,77=>600,78=>600,79=>600,80=>600,81=>600,82=>600,83=>600,84=>600,85=>600,86=>600,87=>600,88=>600,89=>600,90=>600,91=>600,92=>600,93=>600,94=>600,95=>600,96=>600,97=>600,98=>600,99=>600,100=>600,101=>600,102=>600,103=>600,104=>600,105=>600,106=>600,107=>600,108=>600,109=>600,110=>600,111=>600,112=>600,113=>600,114=>600,115=>600,116=>600,117=>600,118=>600,119=>600,120=>600,121=>600,122=>600,123=>600,124=>600,125=>600,126=>600,127=>600,128=>600,129=>600,130=>600,131=>600,132=>600,133=>600,134=>600,135=>600,136=>600,137=>600,138=>600,139=>600,140=>600,141=>600,142=>600,143=>600,144=>600,145=>600,146=>600,147=>600,148=>600,149=>600,150=>600,151=>600,152=>600,153=>600,154=>600,155=>600,156=>600,157=>600,158=>600,159=>600,160=>600,161=>600,162=>600,163=>600,164=>600,165=>600,166=>600,167=>600,168=>600,169=>600,170=>600,171=>600,172=>600,173=>600,174=>600,175=>600,176=>600,177=>600,178=>600,179=>600,180=>600,181=>600,182=>600,183=>600,184=>600,185=>600,186=>600,187=>600,188=>600,189=>600,190=>600,191=>600,192=>600,193=>600,194=>600,195=>600,196=>600,197=>600,198=>600,199=>600,200=>600,201=>600,202=>600,203=>600,204=>600,205=>600,206=>600,207=>600,208=>600,209=>600,210=>600,211=>600,212=>600,213=>600,214=>600,215=>600,216=>600,217=>600,218=>600,219=>600,220=>600,221=>600,222=>600,223=>600,224=>600,225=>600,226=>600,227=>600,228=>600,229=>600,230=>600,231=>600,232=>600,233=>600,234=>600,235=>600,236=>600,237=>600,238=>600,239=>600,240=>600,241=>600,242=>600,243=>600,244=>600,245=>600,246=>600,247=>600,248=>600,249=>600,250=>600,251=>600,252=>600,253=>600,254=>600,255=>600);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/dejavusans.ctg.z ADDED
Binary file
includes/tcpdf_min/fonts/dejavusans.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='TrueTypeUnicode';
4
+ $name='DejaVuSans';
5
+ $up=-63;
6
+ $ut=44;
7
+ $dw=600;
8
+ $diff='';
9
+ $originalsize=741536;
10
+ $enc='';
11
+ $file='dejavusans.z';
12
+ $ctg='dejavusans.ctg.z';
13
+ $desc=array('Flags'=>32,'FontBBox'=>'[-1021 -415 1681 1167]','ItalicAngle'=>0,'Ascent'=>928,'Descent'=>-236,'Leading'=>0,'CapHeight'=>729,'XHeight'=>547,'StemV'=>34,'StemH'=>15,'AvgWidth'=>507,'MaxWidth'=>1735,'MissingWidth'=>600);
14
+ $cbbox=array(0=>array(50,-177,550,705),32=>array(151,0,250,729),33=>array(151,0,250,729),34=>array(96,458,364,729),35=>array(77,0,761,718),36=>array(83,-147,553,760),37=>array(55,-14,895,742),38=>array(63,-14,749,742),39=>array(96,458,179,729),40=>array(86,-132,310,759),41=>array(80,-132,304,759),42=>array(30,286,470,742),43=>array(106,0,732,627),44=>array(77,-116,220,124),45=>array(49,234,312,314),46=>array(107,0,210,124),47=>array(0,-93,337,729),48=>array(66,-14,570,742),49=>array(110,0,544,729),50=>array(73,0,536,742),51=>array(76,-14,556,742),52=>array(49,0,580,729),53=>array(77,-14,549,729),54=>array(70,-14,573,742),55=>array(82,0,551,729),56=>array(68,-14,568,742),57=>array(63,-14,566,742),58=>array(117,0,220,517),59=>array(77,-116,220,517),60=>array(106,46,732,581),61=>array(106,172,732,454),62=>array(106,46,732,581),63=>array(72,0,461,742),64=>array(66,-174,930,704),65=>array(8,0,676,729),66=>array(98,0,615,729),67=>array(56,-14,644,742),68=>array(98,0,711,729),69=>array(98,0,568,729),70=>array(98,0,517,729),71=>array(56,-14,693,742),72=>array(98,0,654,729),73=>array(98,0,197,729),74=>array(-52,-200,197,729),75=>array(98,0,677,729),76=>array(98,0,552,729),77=>array(98,0,765,729),78=>array(98,0,650,729),79=>array(56,-14,731,742),80=>array(98,0,569,729),81=>array(56,-129,731,742),82=>array(98,0,666,729),83=>array(66,-14,579,742),84=>array(-3,0,614,729),85=>array(87,-14,645,729),86=>array(8,0,676,729),87=>array(33,0,956,729),88=>array(30,0,654,729),89=>array(-2,0,613,729),90=>array(45,0,640,729),91=>array(86,-132,293,760),92=>array(0,-93,337,729),93=>array(97,-132,304,760),94=>array(106,457,732,729),95=>array(-10,-236,510,-166),96=>array(83,617,317,800),97=>array(60,-14,522,560),98=>array(91,-14,580,760),99=>array(55,-14,488,560),100=>array(55,-14,544,760),101=>array(55,-14,562,560),102=>array(23,0,371,760),103=>array(55,-208,544,560),104=>array(91,0,549,760),105=>array(94,0,184,760),106=>array(-18,-208,184,760),107=>array(91,0,576,760),108=>array(94,0,184,760),109=>array(91,0,889,560),110=>array(91,0,549,560),111=>array(55,-14,557,560),112=>array(91,-208,580,560),113=>array(55,-208,544,560),114=>array(91,0,411,560),115=>array(54,-14,472,560),116=>array(27,0,368,702),117=>array(85,-14,543,560),118=>array(30,0,562,547),119=>array(42,0,776,547),120=>array(29,0,559,547),121=>array(30,-208,562,547),122=>array(43,0,482,547),123=>array(125,-163,511,760),124=>array(127,-236,210,764),125=>array(125,-163,511,760),126=>array(106,228,732,399),160=>array(151,0,250,729),161=>array(151,0,250,729),162=>array(84,-153,517,699),163=>array(63,0,548,742),164=>array(46,40,592,587),165=>array(40,0,595,729),166=>array(127,-171,210,699),167=>array(45,-95,454,742),168=>array(105,659,395,758),169=>array(138,0,862,725),170=>array(56,229,404,742),171=>array(77,69,518,517),172=>array(106,140,732,421),173=>array(49,234,312,314),174=>array(138,0,862,725),175=>array(104,673,396,745),176=>array(95,432,405,742),177=>array(106,0,732,627),178=>array(46,326,338,742),179=>array(48,319,350,742),180=>array(181,616,415,800),181=>array(85,-208,612,547),182=>array(77,-96,528,729),183=>array(107,285,210,409),184=>array(142,-193,344,0),185=>array(67,326,346,734),186=>array(47,229,424,742),187=>array(94,69,535,517),188=>array(67,-14,937,742),189=>array(67,-14,906,742),190=>array(48,-14,937,742),191=>array(70,-14,459,729),192=>array(8,0,676,927),193=>array(8,0,676,927),194=>array(8,0,676,928),195=>array(8,0,676,921),196=>array(8,0,676,913),197=>array(8,0,676,928),198=>array(4,0,910,729),199=>array(56,-193,644,742),200=>array(98,0,568,927),201=>array(98,0,568,927),202=>array(98,0,568,928),203=>array(98,0,568,913),204=>array(29,0,216,927),205=>array(79,0,265,927),206=>array(-1,0,297,928),207=>array(3,0,293,913),208=>array(5,0,716,729),209=>array(98,0,650,921),210=>array(56,-14,731,927),211=>array(56,-14,731,927),212=>array(56,-14,731,928),213=>array(56,-14,731,921),214=>array(56,-14,731,913),215=>array(137,31,701,596),216=>array(50,-34,737,761),217=>array(87,-14,645,927),218=>array(87,-14,645,927),219=>array(87,-14,645,928),220=>array(87,-14,645,913),221=>array(-2,0,613,927),222=>array(98,0,569,729),223=>array(91,-14,584,760),224=>array(60,-14,522,800),225=>array(60,-14,522,800),226=>array(60,-14,522,800),227=>array(60,-14,522,777),228=>array(60,-14,522,758),229=>array(60,-14,522,878),230=>array(60,-14,929,560),231=>array(55,-193,488,560),232=>array(55,-14,562,800),233=>array(55,-14,562,800),234=>array(55,-14,562,800),235=>array(55,-14,562,758),236=>array(-28,0,206,800),237=>array(70,0,304,800),238=>array(-17,0,295,800),239=>array(-6,0,284,758),240=>array(55,-14,557,760),241=>array(91,0,549,777),242=>array(55,-14,557,800),243=>array(55,-14,557,800),244=>array(55,-14,557,800),245=>array(55,-14,557,777),246=>array(55,-14,557,758),247=>array(106,73,732,554),248=>array(35,-46,576,592),249=>array(85,-14,543,800),250=>array(85,-14,543,800),251=>array(85,-14,543,800),252=>array(85,-14,543,758),253=>array(30,-208,562,800),254=>array(91,-208,580,760),255=>array(30,-208,562,758),256=>array(8,0,676,899),257=>array(60,-14,522,745),258=>array(8,0,676,946),259=>array(60,-14,522,765),260=>array(8,-193,706,729),261=>array(60,-193,563,560),262=>array(56,-14,644,927),263=>array(55,-14,488,800),264=>array(56,-14,644,928),265=>array(55,-14,488,800),266=>array(56,-14,644,914),267=>array(55,-14,488,760),268=>array(56,-14,644,928),269=>array(55,-14,488,800),270=>array(98,0,711,928),271=>array(55,-14,732,760),272=>array(5,0,716,729),273=>array(55,-14,619,760),274=>array(98,0,568,900),275=>array(55,-14,562,745),276=>array(98,0,568,928),277=>array(55,-14,562,785),278=>array(98,0,568,914),279=>array(55,-14,562,760),280=>array(98,-193,569,729),281=>array(55,-193,562,560),282=>array(98,0,568,925),283=>array(55,-14,562,797),284=>array(56,-14,693,928),285=>array(55,-208,544,800),286=>array(56,-14,693,928),287=>array(55,-208,544,785),288=>array(56,-14,693,914),289=>array(55,-208,544,760),290=>array(56,-250,693,742),291=>array(55,-208,544,775),292=>array(98,0,654,928),293=>array(-13,0,549,928),294=>array(98,0,818,729),295=>array(59,0,578,760),296=>array(-14,0,309,921),297=>array(-22,0,300,777),298=>array(1,0,293,899),299=>array(-7,0,285,745),300=>array(-5,0,300,928),301=>array(-14,0,292,785),302=>array(86,-193,268,729),303=>array(73,-193,255,760),304=>array(98,0,198,914),305=>array(94,0,184,560),306=>array(98,-200,492,729),307=>array(94,-208,461,760),308=>array(-52,-200,296,928),309=>array(-18,-208,295,800),310=>array(98,-235,677,729),311=>array(91,-235,576,760),312=>array(91,0,576,547),313=>array(98,0,552,928),314=>array(94,0,286,928),315=>array(98,-235,552,729),316=>array(66,-235,209,760),317=>array(98,0,552,729),318=>array(94,0,375,760),319=>array(98,0,552,729),320=>array(94,0,314,760),321=>array(-7,0,557,729),322=>array(1,0,285,760),323=>array(98,0,650,928),324=>array(91,0,549,803),325=>array(98,-235,650,729),326=>array(91,-235,549,560),327=>array(98,0,650,921),328=>array(91,0,549,800),329=>array(100,0,715,729),330=>array(98,-208,637,742),331=>array(91,-208,549,560),332=>array(56,-14,731,899),333=>array(55,-14,557,745),334=>array(56,-14,731,928),335=>array(55,-14,557,785),336=>array(56,-14,731,927),337=>array(55,-14,557,800),338=>array(56,0,1006,729),339=>array(55,-14,970,560),340=>array(98,0,666,928),341=>array(91,0,447,803),342=>array(98,-235,666,729),343=>array(63,-235,411,560),344=>array(98,0,666,921),345=>array(91,0,419,800),346=>array(66,-14,579,928),347=>array(54,-14,472,803),348=>array(66,-14,579,928),349=>array(54,-14,472,800),350=>array(66,-193,579,742),351=>array(54,-193,472,560),352=>array(66,-14,579,928),353=>array(54,-14,472,800),354=>array(-3,-193,614,729),355=>array(27,-193,368,702),356=>array(-3,0,614,921),357=>array(27,0,374,813),358=>array(-3,0,614,729),359=>array(27,0,368,702),360=>array(87,-14,645,921),361=>array(85,-14,543,777),362=>array(87,-14,645,899),363=>array(85,-14,543,745),364=>array(87,-14,645,928),365=>array(85,-14,543,785),366=>array(87,-14,645,929),367=>array(85,-14,543,849),368=>array(87,-14,645,927),369=>array(85,-14,546,800),370=>array(87,-193,645,729),371=>array(85,-193,613,560),372=>array(33,0,956,932),373=>array(42,0,776,803),374=>array(-2,0,613,932),375=>array(30,-208,562,803),376=>array(-2,0,613,913),377=>array(45,0,640,928),378=>array(43,0,482,803),379=>array(45,0,640,914),380=>array(43,0,482,760),381=>array(45,0,640,928),382=>array(43,0,482,800),383=>array(23,0,371,760),384=>array(16,-14,580,760),385=>array(-51,0,664,729),386=>array(98,0,615,729),387=>array(91,-14,580,760),388=>array(0,0,615,729),389=>array(0,-14,580,760),390=>array(56,-14,644,742),391=>array(56,-14,794,924),392=>array(55,-14,600,760),393=>array(5,0,716,729),394=>array(-51,0,760,729),395=>array(98,0,615,729),396=>array(55,-14,544,760),397=>array(55,-208,557,548),398=>array(64,0,534,729),399=>array(57,-14,731,742),400=>array(80,-14,560,742),401=>array(-52,-200,517,729),402=>array(-63,-208,371,760),403=>array(56,-14,824,924),404=>array(4,-210,683,729),405=>array(91,0,910,760),406=>array(98,0,347,729),407=>array(5,0,290,729),408=>array(98,0,746,742),409=>array(90,0,576,760),410=>array(5,0,271,760),411=>array(30,0,562,760),412=>array(87,-14,894,729),413=>array(-52,-200,650,729),414=>array(91,-208,549,560),415=>array(56,-14,731,742),416=>array(50,-14,764,760),417=>array(58,-14,603,615),418=>array(56,-14,851,742),419=>array(55,-208,668,560),420=>array(-51,0,618,729),421=>array(90,-208,580,760),422=>array(98,-129,666,729),423=>array(56,-14,569,742),424=>array(49,-14,467,560),425=>array(98,0,568,729),426=>array(-132,-208,355,760),427=>array(27,-208,368,702),428=>array(12,0,614,729),429=>array(27,0,368,760),430=>array(-3,-200,614,729),431=>array(84,-4,796,760),432=>array(86,-14,676,615),433=>array(38,-14,726,724),434=>array(98,-15,683,729),435=>array(-2,0,742,742),436=>array(30,-208,730,560),437=>array(45,0,640,729),438=>array(43,0,482,547),439=>array(78,-31,621,729),440=>array(45,-31,588,729),441=>array(51,-213,531,547),442=>array(55,-208,488,547),443=>array(73,0,536,742),444=>array(45,-31,622,729),445=>array(51,-213,531,547),446=>array(43,-14,456,702),447=>array(91,-208,580,560),448=>array(98,-208,197,729),449=>array(98,-208,394,729),450=>array(10,-208,451,729),451=>array(98,0,197,729),452=>array(98,0,1352,928),453=>array(98,0,1211,800),454=>array(55,-14,1071,800),455=>array(98,-200,768,729),456=>array(98,-208,733,760),457=>array(94,-208,367,760),458=>array(98,-200,868,729),459=>array(98,-208,839,760),460=>array(91,-208,733,760),461=>array(8,0,676,928),462=>array(60,-14,522,800),463=>array(-1,0,297,928),464=>array(-16,0,296,800),465=>array(56,-14,731,928),466=>array(55,-14,557,800),467=>array(87,-14,645,928),468=>array(85,-14,543,800),469=>array(87,-14,645,1025),470=>array(85,-14,543,899),471=>array(87,-14,645,1044),472=>array(85,-14,543,892),473=>array(87,-14,645,1044),474=>array(85,-14,543,892),475=>array(87,-14,645,1047),476=>array(85,-14,543,892),477=>array(55,-14,562,560),478=>array(8,0,676,1025),479=>array(60,-14,522,899),480=>array(8,0,676,1025),481=>array(60,-14,522,869),482=>array(4,0,910,900),483=>array(60,-14,929,743),484=>array(56,-14,752,742),485=>array(55,-208,622,560),486=>array(56,-14,693,928),487=>array(55,-208,544,798),488=>array(98,0,677,928),489=>array(-11,0,576,928),490=>array(56,-193,731,742),491=>array(55,-193,557,560),492=>array(56,-193,731,899),493=>array(55,-193,557,745),494=>array(78,-31,621,928),495=>array(43,-213,523,800),496=>array(-18,-208,299,800),497=>array(98,0,1352,729),498=>array(98,0,1211,729),499=>array(55,-14,1071,760),500=>array(56,-14,693,928),501=>array(55,-208,544,798),502=>array(98,-14,1022,729),503=>array(98,-208,626,742),504=>array(98,0,650,927),505=>array(91,0,549,799),506=>array(8,0,676,931),507=>array(60,-14,607,931),508=>array(4,0,910,928),509=>array(60,-14,929,798),510=>array(50,-34,737,928),511=>array(35,-46,576,798),512=>array(8,0,676,930),513=>array(60,-14,522,799),514=>array(8,0,676,901),515=>array(60,-14,522,785),516=>array(98,0,568,930),517=>array(55,-14,562,798),518=>array(98,0,568,901),519=>array(55,-14,562,785),520=>array(-43,0,306,930),521=>array(-30,0,313,798),522=>array(2,0,308,901),523=>array(-14,0,292,785),524=>array(56,-14,731,930),525=>array(55,-14,557,799),526=>array(56,-14,731,901),527=>array(55,-14,557,785),528=>array(97,0,666,930),529=>array(63,0,411,798),530=>array(98,0,666,901),531=>array(91,0,421,785),532=>array(87,-14,645,930),533=>array(85,-14,543,799),534=>array(87,-14,645,901),535=>array(85,-14,543,785),536=>array(66,-240,579,742),537=>array(54,-240,472,560),538=>array(-3,-240,614,729),539=>array(27,-240,368,702),540=>array(76,-210,556,742),541=>array(35,-211,467,560),542=>array(98,0,654,928),543=>array(-8,0,549,928),544=>array(98,-208,637,742),545=>array(55,-70,783,760),546=>array(55,-14,643,742),547=>array(55,-14,555,632),548=>array(45,-208,640,729),549=>array(43,-208,482,547),550=>array(8,0,676,914),551=>array(60,-14,522,760),552=>array(98,-193,568,729),553=>array(55,-193,562,560),554=>array(56,-14,731,1025),555=>array(55,-14,557,899),556=>array(56,-14,731,1025),557=>array(55,-14,557,864),558=>array(56,-14,731,914),559=>array(55,-14,557,760),560=>array(56,-14,731,1025),561=>array(55,-14,557,899),562=>array(-2,0,613,899),563=>array(30,-208,562,745),564=>array(67,-70,420,757),565=>array(91,-70,788,560),566=>array(27,-70,422,702),567=>array(-18,-208,184,547),568=>array(55,-14,943,760),569=>array(55,-208,943,560),570=>array(-1,-34,686,761),571=>array(6,-34,692,761),572=>array(4,-46,545,592),573=>array(5,0,552,729),574=>array(-38,-34,649,761),575=>array(54,-242,512,560),576=>array(43,-242,525,547),577=>array(39,0,569,729),578=>array(39,0,445,560),579=>array(5,0,615,729),580=>array(6,-14,726,729),581=>array(8,0,676,729),582=>array(98,-93,568,822),583=>array(55,-93,562,640),584=>array(-52,-200,290,729),585=>array(-18,-208,264,760),586=>array(56,-200,836,743),587=>array(55,-208,656,560),588=>array(5,0,666,729),589=>array(7,0,411,560),590=>array(-5,0,615,729),591=>array(5,-208,588,547),592=>array(85,-14,547,560),593=>array(55,-14,544,560),594=>array(91,-14,580,560),595=>array(91,-14,580,760),596=>array(62,-14,495,560),597=>array(55,-69,488,560),598=>array(55,-208,656,760),599=>array(55,-14,715,760),600=>array(55,-14,562,560),601=>array(55,-14,562,560),602=>array(61,-14,814,560),603=>array(65,-14,473,561),604=>array(65,-14,473,561),605=>array(65,-14,771,561),606=>array(55,-14,596,561),607=>array(-18,-208,264,547),608=>array(55,-208,715,760),609=>array(55,-208,544,547),610=>array(55,-14,539,560),611=>array(47,-210,549,547),612=>array(47,-14,549,547),613=>array(85,-208,543,547),614=>array(91,0,549,760),615=>array(91,-208,549,760),616=>array(7,0,265,760),617=>array(81,0,304,547),618=>array(57,0,314,547),619=>array(37,0,359,760),620=>array(38,0,416,760),621=>array(94,-208,296,760),622=>array(94,-213,651,760),623=>array(91,-13,889,548),624=>array(91,-208,889,548),625=>array(91,-208,889,560),626=>array(-18,-208,552,560),627=>array(91,-208,661,560),628=>array(87,0,549,547),629=>array(55,-14,557,560),630=>array(55,0,768,547),631=>array(72,-18,655,561),632=>array(55,-208,602,760),633=>array(0,-13,320,547),634=>array(0,-13,320,755),635=>array(0,-208,433,547),636=>array(91,-207,411,560),637=>array(91,-208,411,560),638=>array(64,0,437,560),639=>array(57,0,437,560),640=>array(91,0,574,547),641=>array(91,0,574,547),642=>array(54,-208,472,560),643=>array(-19,-208,355,760),644=>array(-19,-208,355,760),645=>array(27,-208,401,549),646=>array(-132,-208,355,760),647=>array(27,-156,368,546),648=>array(27,-208,370,702),649=>array(0,-14,634,547),650=>array(55,-15,564,547),651=>array(94,0,545,548),652=>array(30,0,562,547),653=>array(42,0,776,547),654=>array(30,0,562,760),655=>array(50,0,552,547),656=>array(43,-208,593,547),657=>array(43,-54,482,547),658=>array(43,-213,523,547),659=>array(53,-213,553,547),660=>array(43,0,456,759),661=>array(43,0,456,759),662=>array(43,0,456,759),663=>array(43,-213,456,760),664=>array(56,-14,731,742),665=>array(91,0,530,547),666=>array(55,-14,596,561),667=>array(55,-14,724,760),668=>array(91,0,563,547),669=>array(-132,-208,272,760),670=>array(91,-213,576,547),671=>array(91,0,493,547),672=>array(55,-208,746,759),673=>array(43,0,456,759),674=>array(43,0,456,759),675=>array(55,-14,970,760),676=>array(55,-213,1014,760),677=>array(55,-54,970,760),678=>array(27,0,781,702),679=>array(27,-208,629,760),680=>array(27,-70,723,702),681=>array(23,-208,804,760),682=>array(94,0,657,760),683=>array(94,0,610,760),684=>array(26,-15,489,640),685=>array(26,84,489,640),686=>array(0,-214,570,760),687=>array(0,-208,683,760),688=>array(57,326,346,751),689=>array(57,326,346,751),690=>array(-11,209,116,751),691=>array(57,326,259,640),692=>array(35,319,236,632),693=>array(35,209,307,632),694=>array(16,326,320,632),695=>array(26,326,489,632),696=>array(19,209,354,632),697=>array(78,557,203,800),698=>array(78,557,384,800),699=>array(85,489,228,729),700=>array(87,499,230,729),701=>array(96,616,239,856),702=>array(57,492,191,760),703=>array(57,492,191,760),704=>array(57,326,317,751),705=>array(57,326,317,751),706=>array(130,524,370,836),707=>array(130,524,370,836),708=>array(94,561,406,800),709=>array(94,561,406,800),710=>array(94,616,406,800),711=>array(94,616,406,800),712=>array(104,488,171,759),713=>array(104,673,396,745),714=>array(181,616,415,800),715=>array(83,617,317,800),716=>array(104,-148,171,123),717=>array(104,-156,396,-84),718=>array(83,-236,317,-54),719=>array(181,-236,415,-53),720=>array(54,0,229,517),721=>array(54,356,229,517),722=>array(57,249,191,517),723=>array(57,249,191,517),724=>array(140,229,360,448),725=>array(140,229,360,448),726=>array(49,125,341,417),727=>array(49,234,269,307),728=>array(97,645,403,785),729=>array(200,658,300,758),730=>array(116,610,384,878),731=>array(162,-193,344,0),732=>array(89,639,411,777),733=>array(117,616,460,800),734=>array(-0,233,334,504),735=>array(117,616,383,800),736=>array(57,208,374,632),737=>array(60,326,116,751),738=>array(57,326,320,648),739=>array(57,326,391,632),740=>array(57,326,317,751),741=>array(104,0,389,668),742=>array(104,0,389,668),743=>array(104,0,389,668),744=>array(104,0,389,668),745=>array(104,0,389,668),748=>array(94,-260,406,-21),749=>array(104,610,396,808),750=>array(85,489,428,729),755=>array(116,-240,384,28),759=>array(89,-192,411,-55),768=>array(-418,560,-184,800),769=>array(-320,560,-86,800),770=>array(-406,560,-94,800),771=>array(-412,639,-90,777),772=>array(-394,673,-102,745),773=>array(-510,686,10,755),774=>array(-407,645,-101,785),775=>array(-296,560,-206,760),776=>array(-395,560,-105,758),777=>array(-348,618,-129,810),778=>array(-385,610,-117,878),779=>array(-381,616,-38,800),780=>array(-404,560,-92,800),781=>array(-283,615,-217,832),782=>array(-383,615,-117,832),783=>array(-455,616,-112,800),784=>array(-407,645,-101,917),785=>array(-407,645,-101,785),786=>array(-235,489,-92,645),787=>array(-305,595,-187,844),788=>array(-305,595,-187,844),789=>array(-66,575,66,759),790=>array(-418,-266,-184,-83),791=>array(-320,-267,-86,-83),792=>array(-357,-240,-221,-24),793=>array(-279,-240,-143,-24),794=>array(-208,690,31,930),795=>array(-133,427,60,609),796=>array(-313,-241,-208,-32),797=>array(-370,-240,-130,-87),798=>array(-370,-240,-130,-87),799=>array(-357,-240,-143,-24),800=>array(-370,-184,-130,-117),801=>array(-315,-208,-23,63),802=>array(-317,-208,-25,63),803=>array(-296,-183,-206,-69),804=>array(-396,-183,-106,-84),805=>array(-355,-241,-146,-32),806=>array(-323,-240,-180,-84),807=>array(-358,-193,-156,0),808=>array(-338,-193,-156,0),809=>array(-283,-240,-217,-47),810=>array(-383,-211,-114,-50),811=>array(-452,-222,-51,-82),812=>array(-404,-240,-92,-57),813=>array(-407,-240,-95,-57),814=>array(-407,-222,-101,-82),815=>array(-407,-224,-101,-83),816=>array(-412,-222,-90,-84),817=>array(-394,-156,-102,-84),818=>array(-510,-236,10,-166),819=>array(-510,-236,10,-9),820=>array(-557,240,-41,381),821=>array(-316,221,-59,301),822=>array(-634,221,-0,301),823=>array(-574,-46,-33,592),824=>array(-741,-34,-54,761),825=>array(-291,-241,-187,-32),826=>array(-382,-206,-113,-44),827=>array(-359,-240,-139,-21),828=>array(-452,-222,-51,-82),829=>array(-354,619,-138,834),830=>array(-247,595,-109,853),831=>array(-510,528,10,755),832=>array(-418,617,-184,800),833=>array(-320,616,-86,800),834=>array(-412,639,-90,777),835=>array(-305,595,-187,844),836=>array(-387,659,-77,978),837=>array(-278,-208,-171,-45),838=>array(-396,639,-104,786),839=>array(-360,-226,-140,-35),840=>array(-365,-240,-135,-47),841=>array(-360,-240,-140,-21),842=>array(-411,616,-89,800),843=>array(-411,567,-89,850),844=>array(-411,596,-89,820),845=>array(-452,-230,-48,-30),846=>array(-350,-240,-150,-45),847=>array(-316,610,-184,878),849=>array(-316,610,-184,878),850=>array(-407,547,-101,855),851=>array(-354,-240,-138,-24),855=>array(-316,610,-184,878),856=>array(-103,658,-3,758),858=>array(-430,-241,-71,-32),860=>array(-445,-237,445,-60),861=>array(-445,802,445,979),862=>array(-445,855,445,927),863=>array(-445,-156,445,-84),864=>array(-354,756,354,894),865=>array(-445,752,445,929),866=>array(-442,-230,447,-30),880=>array(98,0,555,729),881=>array(94,0,477,547),882=>array(98,0,764,729),883=>array(98,0,549,729),884=>array(78,557,203,800),885=>array(78,-208,203,35),886=>array(98,0,650,729),887=>array(91,0,559,547),890=>array(214,-208,321,-45),891=>array(62,-14,495,560),892=>array(55,-14,488,560),893=>array(62,-14,495,560),894=>array(77,-116,220,517),900=>array(181,616,415,800),901=>array(105,659,415,978),902=>array(8,0,676,800),903=>array(107,285,210,409),904=>array(-12,0,682,800),905=>array(-6,0,765,800),906=>array(-9,0,311,800),908=>array(-7,-14,750,800),910=>array(-15,0,821,800),911=>array(-18,0,752,800),912=>array(2,0,313,978),913=>array(8,0,676,729),914=>array(98,0,615,729),915=>array(98,0,552,729),916=>array(8,0,676,729),917=>array(98,0,568,729),918=>array(45,0,640,729),919=>array(98,0,654,729),920=>array(56,-14,731,742),921=>array(98,0,197,729),922=>array(98,0,677,729),923=>array(8,0,676,729),924=>array(98,0,765,729),925=>array(98,0,650,729),926=>array(98,0,548,729),927=>array(56,-14,731,742),928=>array(98,0,654,729),929=>array(98,0,569,729),931=>array(98,0,568,729),932=>array(-3,0,614,729),933=>array(-2,0,613,729),934=>array(56,0,731,729),935=>array(30,0,654,729),936=>array(56,0,732,729),937=>array(38,0,726,738),938=>array(3,0,293,913),939=>array(-2,0,613,913),940=>array(55,-12,611,800),941=>array(65,-14,473,800),942=>array(91,-208,549,800),943=>array(81,0,324,800),944=>array(73,-14,521,978),945=>array(55,-12,611,559),946=>array(94,-208,566,766),947=>array(16,-208,562,547),948=>array(55,-14,557,742),949=>array(65,-14,473,561),950=>array(52,-210,496,760),951=>array(91,-208,549,560),952=>array(55,-11,557,768),953=>array(81,0,304,547),954=>array(93,0,565,547),955=>array(30,0,562,760),956=>array(85,-208,612,547),957=>array(36,0,512,547),958=>array(52,-210,500,760),959=>array(55,-14,557,560),960=>array(36,-19,574,547),961=>array(91,-208,580,560),962=>array(55,-210,488,560),963=>array(55,-14,604,547),964=>array(49,0,553,547),965=>array(73,-14,521,547),966=>array(55,-208,602,551),967=>array(29,-208,549,547),968=>array(55,-208,602,547),969=>array(66,-14,769,547),970=>array(2,0,311,758),971=>array(73,-14,521,758),972=>array(55,-14,557,800),973=>array(73,-14,521,800),974=>array(66,-14,769,800),975=>array(98,-208,677,729),976=>array(82,-11,538,768),977=>array(55,-11,557,768),978=>array(42,0,665,734),979=>array(-15,0,829,800),980=>array(42,0,665,913),981=>array(55,-208,602,760),982=>array(32,-14,803,547),983=>array(55,-206,600,550),984=>array(56,-207,731,742),985=>array(55,-208,557,560),986=>array(68,-210,583,729),987=>array(55,-210,540,547),988=>array(98,0,517,729),989=>array(-94,-208,409,760),990=>array(87,-2,604,729),991=>array(93,0,566,759),992=>array(56,-208,797,742),993=>array(58,-180,573,559),994=>array(56,-213,877,729),995=>array(66,-208,769,547),996=>array(56,-208,660,742),997=>array(55,-208,568,560),998=>array(98,-213,735,729),999=>array(22,-14,571,575),1000=>array(39,-208,630,745),1001=>array(49,-208,552,560),1002=>array(56,0,714,742),1003=>array(26,0,599,560),1004=>array(56,-14,643,758),1005=>array(55,-14,544,758),1006=>array(21,-208,589,729),1007=>array(27,-208,510,726),1008=>array(55,-7,600,550),1009=>array(91,-208,580,560),1010=>array(55,-14,488,560),1011=>array(-18,-208,184,760),1012=>array(56,-14,731,742),1013=>array(55,-14,480,560),1014=>array(96,-14,521,560),1015=>array(98,0,569,729),1016=>array(91,-208,580,760),1017=>array(56,-14,644,742),1018=>array(98,0,765,729),1019=>array(62,-208,587,547),1020=>array(42,-208,580,560),1021=>array(56,-14,644,742),1022=>array(56,-14,644,742),1023=>array(56,-14,644,742),1024=>array(98,0,568,927),1025=>array(98,0,568,913),1026=>array(-3,-200,709,729),1027=>array(98,0,552,927),1028=>array(56,-14,644,742),1029=>array(66,-14,579,742),1030=>array(98,0,197,729),1031=>array(3,0,293,913),1032=>array(-52,-200,197,729),1033=>array(41,0,1023,729),1034=>array(98,0,975,729),1035=>array(-3,0,709,729),1036=>array(98,0,690,927),1037=>array(98,0,650,927),1038=>array(17,0,592,928),1039=>array(98,-157,654,729),1040=>array(8,0,676,729),1041=>array(98,0,615,729),1042=>array(98,0,615,729),1043=>array(98,0,552,729),1044=>array(49,-157,732,729),1045=>array(98,0,568,729),1046=>array(20,0,1058,729),1047=>array(66,-14,575,742),1048=>array(98,0,650,729),1049=>array(98,0,650,928),1050=>array(98,0,690,729),1051=>array(41,0,653,729),1052=>array(98,0,765,729),1053=>array(98,0,654,729),1054=>array(56,-14,731,742),1055=>array(98,0,654,729),1056=>array(98,0,569,729),1057=>array(56,-14,644,742),1058=>array(-3,0,614,729),1059=>array(17,0,592,729),1060=>array(59,0,802,729),1061=>array(30,0,654,729),1062=>array(98,-157,737,729),1063=>array(85,0,587,729),1064=>array(98,0,971,729),1065=>array(98,-157,1054,729),1066=>array(29,0,762,729),1067=>array(98,0,784,729),1068=>array(98,0,615,729),1069=>array(54,-14,642,742),1070=>array(103,-14,1023,742),1071=>array(66,0,597,729),1072=>array(60,-14,522,560),1073=>array(55,-14,562,777),1074=>array(91,0,530,547),1075=>array(91,0,477,547),1076=>array(52,-138,639,547),1077=>array(55,-14,562,560),1078=>array(34,0,867,547),1079=>array(65,-14,473,561),1080=>array(91,0,559,547),1081=>array(91,0,559,760),1082=>array(91,0,571,547),1083=>array(37,0,556,547),1084=>array(91,0,664,547),1085=>array(91,0,563,547),1086=>array(55,-14,557,560),1087=>array(91,0,563,547),1088=>array(91,-208,580,560),1089=>array(55,-14,488,560),1090=>array(29,0,553,547),1091=>array(30,-208,562,547),1092=>array(55,-208,800,729),1093=>array(29,0,559,547),1094=>array(91,-138,635,547),1095=>array(73,0,500,547),1096=>array(91,0,824,547),1097=>array(91,-138,896,547),1098=>array(30,0,647,547),1099=>array(91,0,701,560),1100=>array(91,0,530,547),1101=>array(55,-14,488,560),1102=>array(94,-14,787,560),1103=>array(57,0,517,547),1104=>array(55,-14,562,802),1105=>array(55,-14,562,758),1106=>array(23,-208,570,760),1107=>array(91,0,480,803),1108=>array(55,-14,488,560),1109=>array(54,-14,472,560),1110=>array(94,0,184,760),1111=>array(-6,0,284,758),1112=>array(-18,-208,184,760),1113=>array(37,0,843,547),1114=>array(91,0,839,547),1115=>array(23,0,567,760),1116=>array(91,0,571,803),1117=>array(91,0,559,802),1118=>array(30,-208,562,760),1119=>array(91,-138,563,547),1120=>array(56,-14,877,729),1121=>array(66,-14,769,547),1122=>array(15,0,711,729),1123=>array(15,0,613,760),1124=>array(103,-14,888,742),1125=>array(94,-14,688,560),1126=>array(8,0,871,729),1127=>array(25,0,758,547),1128=>array(98,0,1135,729),1129=>array(94,0,977,547),1130=>array(56,0,731,729),1131=>array(52,0,560,547),1132=>array(98,0,971,729),1133=>array(94,0,772,547),1134=>array(56,-208,556,935),1135=>array(44,-193,473,753),1136=>array(8,0,844,729),1137=>array(24,-208,852,765),1138=>array(56,-14,731,742),1139=>array(55,-14,557,560),1140=>array(8,0,769,742),1141=>array(24,0,640,560),1142=>array(8,0,769,930),1143=>array(24,0,640,800),1144=>array(56,-208,962,742),1145=>array(55,-208,875,560),1146=>array(56,-14,897,742),1147=>array(55,-14,704,560),1148=>array(58,-14,1122,932),1149=>array(74,-14,954,758),1150=>array(56,-14,877,900),1151=>array(66,-14,769,734),1152=>array(56,-208,644,742),1153=>array(55,-208,488,560),1154=>array(29,-44,474,457),1155=>array(-519,608,-93,810),1156=>array(-372,645,4,788),1157=>array(-288,595,-169,797),1158=>array(-288,595,-169,797),1159=>array(-776,606,4,788),1160=>array(-1021,-180,409,922),1161=>array(-957,-280,345,1022),1162=>array(98,-208,748,928),1163=>array(94,-208,652,760),1164=>array(16,0,615,729),1165=>array(19,0,534,702),1166=>array(98,0,610,729),1167=>array(91,-208,580,560),1168=>array(98,0,552,878),1169=>array(91,0,477,700),1170=>array(35,0,617,729),1171=>array(27,0,542,547),1172=>array(98,-200,600,729),1173=>array(91,-208,505,547),1174=>array(20,-157,1071,729),1175=>array(34,-138,876,547),1176=>array(66,-193,575,742),1177=>array(65,-193,473,561),1178=>array(98,-157,713,729),1179=>array(91,-138,587,547),1180=>array(98,0,690,729),1181=>array(91,0,571,547),1182=>array(16,0,690,729),1183=>array(30,0,571,760),1184=>array(24,0,837,729),1185=>array(21,0,688,547),1186=>array(98,-157,752,729),1187=>array(94,-138,656,547),1188=>array(98,0,1009,729),1189=>array(94,0,862,547),1190=>array(98,-200,1057,729),1191=>array(94,-208,891,547),1192=>array(56,-14,871,743),1193=>array(55,-14,684,560),1194=>array(56,-193,644,742),1195=>array(55,-193,488,560),1196=>array(-3,-157,614,729),1197=>array(29,-138,553,547),1198=>array(-2,0,613,729),1199=>array(30,-208,562,547),1200=>array(-2,0,613,729),1201=>array(30,-208,562,547),1202=>array(30,-157,654,729),1203=>array(29,-138,559,547),1204=>array(-3,-157,910,729),1205=>array(2,-138,782,547),1206=>array(85,-157,686,729),1207=>array(73,-138,590,547),1208=>array(85,0,587,729),1209=>array(73,0,500,547),1210=>array(85,0,587,729),1211=>array(91,0,549,760),1212=>array(10,-14,885,742),1213=>array(7,-14,675,560),1214=>array(10,-184,885,742),1215=>array(7,-161,675,560),1216=>array(98,0,197,729),1217=>array(20,0,1058,928),1218=>array(34,0,867,785),1219=>array(98,-200,651,729),1220=>array(93,-208,566,547),1221=>array(26,-208,751,729),1222=>array(22,-208,646,547),1223=>array(98,-200,654,729),1224=>array(94,-208,566,547),1225=>array(98,-208,752,729),1226=>array(94,-208,656,547),1227=>array(85,-157,587,729),1228=>array(73,-138,500,547),1229=>array(98,-208,863,729),1230=>array(94,-208,750,547),1231=>array(94,0,184,760),1232=>array(8,0,676,946),1233=>array(60,-14,522,765),1234=>array(8,0,676,913),1235=>array(60,-14,522,758),1236=>array(4,0,910,729),1237=>array(60,-14,929,560),1238=>array(98,0,568,928),1239=>array(55,-14,562,785),1240=>array(57,-14,731,742),1241=>array(55,-14,562,560),1242=>array(57,-14,731,913),1243=>array(55,-14,562,758),1244=>array(20,0,1058,913),1245=>array(34,0,867,758),1246=>array(66,-14,575,913),1247=>array(65,-14,473,758),1248=>array(78,-31,621,729),1249=>array(43,-213,523,547),1250=>array(98,0,650,899),1251=>array(91,0,559,745),1252=>array(98,0,650,913),1253=>array(91,0,559,758),1254=>array(56,-14,731,913),1255=>array(55,-14,557,758),1256=>array(56,-14,731,742),1257=>array(55,-14,557,560),1258=>array(56,-14,731,913),1259=>array(55,-14,557,758),1260=>array(54,-14,642,913),1261=>array(55,-14,488,758),1262=>array(17,0,592,899),1263=>array(30,-208,562,745),1264=>array(17,0,592,913),1265=>array(30,-208,562,758),1266=>array(17,0,592,927),1267=>array(30,-208,562,800),1268=>array(85,0,587,913),1269=>array(73,0,500,758),1270=>array(98,-157,552,729),1271=>array(91,-138,477,547),1272=>array(98,0,784,913),1273=>array(91,0,701,758),1274=>array(35,-208,617,729),1275=>array(27,-208,542,547),1276=>array(30,-200,646,729),1277=>array(29,-208,549,547),1278=>array(30,0,654,729),1279=>array(29,0,559,547),1280=>array(71,0,588,729),1281=>array(55,0,495,547),1282=>array(71,-14,908,729),1283=>array(55,-14,806,547),1284=>array(98,-14,876,742),1285=>array(83,-14,784,561),1286=>array(98,-208,654,742),1287=>array(83,-208,564,561),1288=>array(26,-14,974,729),1289=>array(22,-14,866,547),1290=>array(98,-14,1022,729),1291=>array(94,-14,876,547),1292=>array(56,-14,692,742),1293=>array(55,-14,534,560),1294=>array(-3,-14,675,729),1295=>array(2,-14,620,547),1296=>array(80,-14,560,742),1297=>array(65,-14,473,561),1298=>array(41,-200,653,729),1299=>array(37,-208,556,547),1300=>array(41,0,1139,729),1301=>array(37,0,962,547),1302=>array(98,0,863,729),1303=>array(91,-208,832,560),1304=>array(66,0,967,729),1305=>array(57,-14,933,560),1306=>array(56,-129,731,742),1307=>array(55,-208,544,560),1308=>array(33,0,956,729),1309=>array(42,0,776,547),1310=>array(98,0,690,729),1311=>array(91,0,571,547),1312=>array(41,-200,1056,729),1313=>array(37,-208,881,547),1314=>array(98,-200,1057,729),1315=>array(91,-208,888,547),1316=>array(98,-157,752,729),1317=>array(91,-138,653,547),1329=>array(87,-29,680,729),1330=>array(87,0,650,743),1331=>array(45,0,729,743),1332=>array(44,0,724,743),1333=>array(87,-14,650,729),1334=>array(87,0,692,744),1335=>array(92,0,616,729),1336=>array(87,0,650,743),1337=>array(87,-14,835,743),1338=>array(45,-14,729,729),1339=>array(92,0,650,729),1340=>array(92,0,533,729),1341=>array(92,-14,849,729),1342=>array(129,-13,763,742),1343=>array(87,0,645,729),1344=>array(34,-26,638,729),1345=>array(82,-23,688,744),1346=>array(49,0,729,743),1347=>array(51,0,715,735),1348=>array(87,-14,767,729),1349=>array(71,-14,668,743),1350=>array(0,-14,680,729),1351=>array(78,-15,684,729),1352=>array(87,0,645,743),1353=>array(59,-28,664,744),1354=>array(44,0,713,743),1355=>array(82,0,686,744),1356=>array(87,0,767,743),1357=>array(87,-14,645,729),1358=>array(49,0,729,729),1359=>array(73,-14,632,741),1360=>array(87,0,645,743),1361=>array(78,-14,675,743),1362=>array(92,0,538,729),1363=>array(59,0,752,729),1364=>array(24,0,679,743),1365=>array(56,-14,731,742),1366=>array(54,-13,746,729),1369=>array(57,492,191,760),1370=>array(87,499,230,729),1371=>array(0,620,234,803),1372=>array(2,618,356,893),1373=>array(-0,617,233,800),1374=>array(4,613,401,866),1375=>array(44,618,462,760),1377=>array(85,-14,883,547),1378=>array(91,-208,549,560),1379=>array(55,-208,648,560),1380=>array(91,-208,653,560),1381=>array(85,-14,548,760),1382=>array(55,-208,648,560),1383=>array(91,0,490,760),1384=>array(91,-208,549,560),1385=>array(91,-208,738,560),1386=>array(55,-14,648,760),1387=>array(91,-208,549,760),1388=>array(91,-208,303,547),1389=>array(91,-208,889,760),1390=>array(55,-14,557,760),1391=>array(85,-208,543,760),1392=>array(91,0,549,760),1393=>array(52,-15,523,760),1394=>array(91,-208,653,560),1395=>array(68,-14,544,768),1396=>array(85,-14,647,760),1397=>array(-21,-208,181,547),1398=>array(-19,-14,543,760),1399=>array(0,-208,435,560),1400=>array(91,0,549,560),1401=>array(5,-208,370,547),1402=>array(85,-208,883,547),1403=>array(54,-208,494,561),1404=>array(91,0,609,560),1405=>array(85,-14,543,560),1406=>array(85,-208,647,760),1407=>array(85,-14,889,560),1408=>array(91,-208,549,560),1409=>array(54,-208,543,560),1410=>array(91,0,449,547),1411=>array(85,-208,889,760),1412=>array(20,-208,580,560),1413=>array(54,-14,556,560),1414=>array(34,-208,766,760),1415=>array(85,-14,812,760),1417=>array(117,0,220,415),1418=>array(49,212,312,314),1456=>array(283,-217,356,-22),1457=>array(83,-217,438,-22),1458=>array(125,-217,454,-22),1459=>array(125,-217,454,-22),1460=>array(283,-159,356,-85),1461=>array(222,-159,417,-85),1462=>array(222,-217,417,-22),1463=>array(173,-159,466,-85),1464=>array(173,-193,466,-46),1465=>array(0,625,73,698),1466=>array(0,625,73,698),1467=>array(148,-237,465,-17),1468=>array(288,237,361,310),1469=>array(283,-217,356,-22),1470=>array(49,472,312,552),1471=>array(173,625,466,698),1472=>array(102,-98,193,645),1473=>array(637,625,710,698),1474=>array(96,625,169,698),1475=>array(102,0,193,547),1478=>array(50,0,357,547),1479=>array(173,-217,466,-22),1488=>array(91,0,578,547),1489=>array(43,0,535,547),1490=>array(43,-5,383,547),1491=>array(43,0,511,547),1492=>array(91,0,563,547),1493=>array(91,0,182,547),1494=>array(43,0,303,547),1495=>array(91,0,563,547),1496=>array(90,-14,593,552),1497=>array(66,204,157,547),1498=>array(43,-208,446,547),1499=>array(43,0,474,547),1500=>array(43,0,492,729),1501=>array(91,0,573,547),1502=>array(43,0,588,555),1503=>array(91,-208,182,547),1504=>array(43,0,309,547),1505=>array(90,-14,593,547),1506=>array(43,-93,535,547),1507=>array(91,-208,549,547),1508=>array(91,0,569,547),1509=>array(43,-208,497,548),1510=>array(43,0,502,547),1511=>array(91,-208,633,546),1512=>array(43,0,474,547),1513=>array(43,0,666,547),1514=>array(10,-4,566,547),1520=>array(91,0,380,547),1521=>array(66,0,332,547),1522=>array(66,204,312,547),1523=>array(91,361,325,547),1524=>array(91,361,554,547),1542=>array(0,-20,607,892),1543=>array(0,-20,607,895),1545=>array(65,0,685,635),1546=>array(65,0,904,635),1548=>array(107,0,250,240),1557=>array(123,624,377,868),1563=>array(107,0,250,633),1567=>array(72,0,461,742),1569=>array(80,42,390,483),1570=>array(-37,0,315,939),1571=>array(53,0,220,999),1572=>array(-42,-244,406,588),1573=>array(53,-244,220,760),1574=>array(63,-131,719,588),1575=>array(94,0,184,760),1576=>array(63,-171,865,327),1577=>array(68,-28,453,513),1578=>array(63,-10,865,391),1579=>array(63,-10,865,513),1580=>array(77,-244,645,425),1581=>array(77,-244,645,425),1582=>array(77,-244,645,586),1583=>array(61,-19,388,415),1584=>array(61,-19,388,586),1585=>array(-42,-244,423,269),1586=>array(-42,-244,423,464),1587=>array(63,-244,1138,366),1588=>array(63,-244,1138,586),1589=>array(63,-244,1134,362),1590=>array(63,-244,1134,464),1591=>array(70,0,857,760),1592=>array(70,0,857,760),1593=>array(57,-244,587,521),1594=>array(57,-244,587,659),1600=>array(-10,0,303,90),1601=>array(63,-45,952,635),1602=>array(52,-215,701,635),1603=>array(70,-27,722,760),1604=>array(70,-152,637,760),1605=>array(68,-240,546,369),1606=>array(72,-162,660,464),1607=>array(68,-28,453,358),1608=>array(-42,-244,406,315),1609=>array(63,-131,719,411),1610=>array(63,-244,719,411),1611=>array(107,591,393,825),1612=>array(107,591,393,874),1613=>array(107,-239,393,-5),1614=>array(107,591,393,708),1615=>array(107,590,393,874),1616=>array(107,-137,393,-20),1617=>array(98,599,402,869),1618=>array(115,610,383,878),1619=>array(74,590,426,719),1620=>array(164,593,331,808),1621=>array(164,-244,331,-29),1623=>array(107,615,393,898),1626=>array(119,616,381,775),1632=>array(215,220,322,342),1633=>array(136,0,342,635),1634=>array(40,0,492,635),1635=>array(37,0,509,635),1636=>array(85,-10,457,641),1637=>array(66,-10,471,643),1638=>array(42,0,493,635),1639=>array(29,0,508,635),1640=>array(29,0,508,635),1641=>array(49,0,493,640),1642=>array(65,0,472,635),1643=>array(0,-110,300,318),1644=>array(87,499,230,729),1645=>array(42,101,502,537),1646=>array(63,-10,865,327),1647=>array(52,-215,701,481),1648=>array(223,602,277,887),1652=>array(60,649,227,864),1657=>array(63,-10,865,575),1658=>array(63,-10,865,513),1659=>array(63,-244,865,327),1660=>array(63,-180,865,391),1661=>array(63,-10,865,464),1662=>array(63,-244,865,327),1663=>array(63,-10,865,513),1664=>array(63,-244,865,327),1665=>array(77,-244,645,710),1666=>array(77,-244,645,708),1667=>array(77,-244,645,425),1668=>array(77,-244,645,425),1669=>array(77,-244,645,708),1670=>array(77,-244,645,425),1671=>array(77,-244,645,425),1672=>array(61,-19,388,746),1673=>array(61,-180,388,415),1674=>array(61,-171,388,415),1675=>array(61,-171,388,746),1676=>array(61,-19,388,586),1677=>array(61,-146,388,415),1678=>array(61,-19,388,708),1679=>array(61,-19,388,684),1680=>array(61,-19,388,708),1681=>array(-42,-244,469,648),1682=>array(-42,-244,473,556),1683=>array(-42,-244,507,269),1684=>array(-42,-244,474,269),1685=>array(-42,-244,634,269),1686=>array(-42,-244,474,269),1687=>array(-42,-244,439,464),1688=>array(-42,-244,439,586),1689=>array(-42,-244,439,586),1690=>array(63,-244,1138,464),1691=>array(63,-244,1138,366),1692=>array(63,-244,1138,586),1693=>array(63,-244,1134,362),1694=>array(63,-244,1134,586),1695=>array(70,0,857,760),1696=>array(57,-244,587,781),1697=>array(63,-45,952,481),1698=>array(63,-171,952,481),1699=>array(63,-171,952,635),1700=>array(63,-45,952,757),1701=>array(63,-293,952,481),1702=>array(63,-45,952,757),1703=>array(52,-215,701,635),1704=>array(52,-215,701,757),1705=>array(63,-43,895,760),1706=>array(63,-43,1000,760),1707=>array(63,-43,895,760),1708=>array(70,-27,722,760),1709=>array(70,-27,722,854),1710=>array(70,-293,722,760),1711=>array(63,-43,895,896),1712=>array(63,-43,895,896),1713=>array(63,-43,895,903),1714=>array(63,-171,895,896),1715=>array(63,-293,895,896),1716=>array(63,-43,895,1025),1717=>array(70,-152,723,971),1718=>array(70,-152,637,952),1719=>array(70,-152,684,1025),1720=>array(70,-391,637,760),1721=>array(72,-317,660,464),1722=>array(72,-162,660,366),1723=>array(72,-162,660,636),1724=>array(72,-330,660,464),1725=>array(72,-162,660,586),1726=>array(70,-33,638,487),1727=>array(77,-244,645,586),1734=>array(-42,-244,406,556),1740=>array(63,-131,719,411),1742=>array(63,-131,719,556),1749=>array(68,-28,453,358),1776=>array(215,220,322,342),1777=>array(136,0,342,635),1778=>array(40,0,492,635),1779=>array(37,0,509,635),1780=>array(40,0,471,643),1781=>array(52,-5,485,643),1782=>array(102,0,445,640),1783=>array(29,0,508,635),1784=>array(29,0,508,635),1785=>array(49,0,493,640),1984=>array(66,-14,570,742),1985=>array(110,0,544,729),1986=>array(110,0,530,729),1987=>array(110,0,530,729),1988=>array(110,0,530,729),1989=>array(110,0,530,729),1990=>array(110,0,530,729),1991=>array(104,0,532,729),1992=>array(104,0,532,729),1993=>array(77,0,560,741),1994=>array(94,0,184,729),1995=>array(55,-14,516,447),1996=>array(30,0,394,731),1997=>array(30,0,562,430),1998=>array(91,0,563,430),1999=>array(91,0,563,430),2000=>array(55,0,539,735),2001=>array(91,0,563,581),2002=>array(55,0,738,741),2003=>array(94,0,408,729),2004=>array(30,0,344,729),2005=>array(91,0,504,729),2006=>array(94,0,518,729),2007=>array(30,0,256,729),2008=>array(94,0,865,513),2009=>array(30,0,443,729),2010=>array(30,0,754,729),2011=>array(91,0,563,430),2012=>array(30,0,595,729),2013=>array(94,0,679,729),2014=>array(94,0,436,729),2015=>array(55,0,630,729),2016=>array(30,0,443,729),2017=>array(30,0,595,729),2018=>array(55,0,539,729),2019=>array(94,0,436,729),2020=>array(94,0,436,612),2021=>array(94,0,428,729),2022=>array(55,0,539,729),2023=>array(55,0,539,729),2027=>array(106,673,398,745),2028=>array(32,609,468,800),2029=>array(205,658,305,758),2030=>array(93,616,405,800),2031=>array(44,616,456,800),2032=>array(32,609,468,800),2033=>array(44,616,456,800),2034=>array(200,-184,300,-84),2035=>array(104,659,394,758),2036=>array(98,557,216,760),2037=>array(98,557,216,760),2040=>array(49,0,511,498),2041=>array(49,0,511,483),2042=>array(-10,0,371,72),3647=>array(86,-138,571,769),3713=>array(63,-10,607,560),3714=>array(68,-17,691,568),3716=>array(67,-10,619,568),3719=>array(53,-238,415,568),3720=>array(62,-0,574,575),3722=>array(68,-234,690,568),3725=>array(56,-8,619,573),3732=>array(91,-14,592,560),3733=>array(63,-15,564,579),3734=>array(0,-240,587,560),3735=>array(42,-8,599,571),3737=>array(46,-14,593,568),3738=>array(36,-8,556,561),3739=>array(36,-8,556,760),3740=>array(43,-8,725,614),3741=>array(91,-14,676,760),3742=>array(51,-8,636,561),3743=>array(51,-8,636,760),3745=>array(31,-14,636,547),3746=>array(56,-8,619,760),3747=>array(68,-8,634,568),3749=>array(39,-8,583,568),3751=>array(56,-13,558,560),3754=>array(39,-8,688,679),3755=>array(62,-12,762,575),3757=>array(56,-14,558,560),3758=>array(68,-8,684,605),3759=>array(99,-166,742,579),3760=>array(54,-13,589,563),3761=>array(-578,639,-43,880),3762=>array(60,0,473,560),3763=>array(-425,0,473,806),3764=>array(-594,615,-73,926),3765=>array(-594,615,0,926),3766=>array(-594,615,-73,926),3767=>array(-594,615,0,926),3768=>array(-376,-350,-161,-38),3769=>array(-418,-306,-152,-40),3771=>array(-578,639,-43,880),3772=>array(-611,-278,6,-39),3773=>array(63,-240,619,715),3776=>array(60,-14,324,560),3777=>array(60,-14,598,560),3778=>array(-22,-5,398,896),3779=>array(45,-14,490,892),3780=>array(92,-11,445,886),3782=>array(72,-232,574,557),3784=>array(-366,618,-278,792),3785=>array(-563,609,-45,891),3786=>array(-595,598,22,869),3787=>array(-462,609,-182,890),3788=>array(-611,636,6,875),3789=>array(-425,620,-220,806),3792=>array(66,-14,570,547),3793=>array(48,-75,582,576),3794=>array(48,-66,545,711),3795=>array(11,-9,692,830),3796=>array(48,-83,601,711),3797=>array(48,-83,601,711),3798=>array(43,-8,744,812),3799=>array(63,-240,607,560),3800=>array(73,-210,680,557),3801=>array(51,-4,621,571),3804=>array(62,-12,947,575),3805=>array(62,-12,973,575),4256=>array(59,-15,815,828),4257=>array(54,-0,704,828),4258=>array(54,-148,649,837),4259=>array(54,-15,781,828),4260=>array(49,0,552,837),4261=>array(39,0,714,837),4262=>array(29,-15,695,828),4263=>array(59,-15,885,837),4264=>array(29,0,390,874),4265=>array(59,0,561,828),4266=>array(29,-15,784,828),4267=>array(59,-15,824,828),4268=>array(63,0,566,828),4269=>array(49,-167,806,837),4270=>array(24,-15,717,837),4271=>array(39,0,566,828),4272=>array(54,-15,853,828),4273=>array(63,-15,567,828),4274=>array(63,-0,566,837),4275=>array(49,-182,806,837),4276=>array(49,0,817,834),4277=>array(44,0,680,828),4278=>array(64,-15,566,837),4279=>array(54,0,557,828),4280=>array(59,-15,562,828),4281=>array(63,0,566,828),4282=>array(59,-15,764,837),4283=>array(59,-15,810,828),4284=>array(63,-0,566,828),4285=>array(49,-15,574,837),4286=>array(63,-0,566,828),4287=>array(29,0,695,828),4288=>array(29,-15,785,828),4289=>array(63,0,566,828),4290=>array(54,-15,635,837),4291=>array(29,0,532,828),4292=>array(54,0,540,828),4293=>array(39,-15,699,837),4304=>array(49,-15,459,592),4305=>array(49,-14,469,837),4306=>array(44,-235,537,551),4307=>array(49,-230,759,547),4308=>array(49,-236,449,547),4309=>array(49,-236,459,547),4310=>array(20,-14,452,838),4311=>array(49,-14,752,547),4312=>array(49,0,469,547),4313=>array(44,-236,456,542),4314=>array(49,-230,1016,552),4315=>array(49,-15,459,837),4316=>array(63,-15,474,833),4317=>array(49,-0,737,547),4318=>array(49,-15,459,833),4319=>array(49,-236,458,551),4320=>array(49,0,747,833),4321=>array(63,-15,474,827),4322=>array(44,-236,610,680),4323=>array(5,-236,464,571),4324=>array(49,-236,766,547),4325=>array(49,-236,449,828),4326=>array(49,-230,737,546),4327=>array(49,-236,459,538),4328=>array(29,-15,454,837),4329=>array(63,0,474,837),4330=>array(44,-236,527,532),4331=>array(49,-14,458,828),4332=>array(64,-15,488,837),4333=>array(49,-236,471,827),4334=>array(63,-15,474,827),4335=>array(10,-235,444,572),4336=>array(49,-15,459,837),4337=>array(59,-15,469,837),4338=>array(49,-141,458,547),4339=>array(49,-236,459,546),4340=>array(49,-236,458,837),4341=>array(49,-15,515,837),4342=>array(49,-236,778,547),4343=>array(44,-236,508,547),4344=>array(49,-236,459,538),4345=>array(39,-236,532,551),4346=>array(49,-77,459,547),4347=>array(54,-10,394,484),4348=>array(49,420,270,837),5121=>array(8,1,676,730),5122=>array(8,0,676,1037),5123=>array(8,0,676,729),5124=>array(8,0,676,914),5125=>array(98,0,711,729),5126=>array(98,0,711,914),5127=>array(98,0,711,913),5129=>array(98,0,711,729),5130=>array(58,0,671,729),5131=>array(58,0,671,914),5132=>array(98,1,827,730),5133=>array(8,1,776,730),5134=>array(98,0,827,729),5135=>array(8,0,776,729),5136=>array(98,0,827,914),5137=>array(8,0,776,914),5138=>array(98,0,909,729),5139=>array(98,0,909,729),5140=>array(98,0,909,914),5141=>array(98,0,909,914),5142=>array(98,0,711,914),5143=>array(98,0,869,729),5144=>array(58,0,909,729),5145=>array(98,0,869,914),5146=>array(58,0,909,914),5147=>array(58,0,671,914),5149=>array(98,629,198,729),5150=>array(67,326,488,734),5151=>array(46,356,362,714),5152=>array(46,356,362,714),5153=>array(67,398,334,674),5154=>array(67,391,334,667),5155=>array(67,398,338,667),5156=>array(67,398,334,667),5157=>array(35,327,405,733),5158=>array(67,326,331,734),5159=>array(98,312,198,412),5160=>array(67,503,334,563),5161=>array(67,399,334,667),5162=>array(67,399,334,691),5163=>array(8,1,1028,730),5164=>array(8,0,847,729),5165=>array(98,0,892,729),5166=>array(58,0,1055,729),5167=>array(8,0,676,729),5168=>array(8,0,676,1037),5169=>array(8,0,676,729),5170=>array(8,0,676,914),5171=>array(58,0,671,729),5172=>array(58,0,671,914),5173=>array(58,0,671,913),5175=>array(58,0,671,729),5176=>array(58,0,671,729),5177=>array(58,0,671,914),5178=>array(98,0,827,729),5179=>array(8,0,776,729),5180=>array(98,0,827,729),5181=>array(8,0,776,729),5182=>array(98,0,827,914),5183=>array(8,0,776,914),5184=>array(98,0,869,729),5185=>array(58,0,909,729),5186=>array(98,0,869,914),5187=>array(58,0,909,914),5188=>array(98,0,869,729),5189=>array(58,0,909,729),5190=>array(98,0,869,914),5191=>array(58,0,909,914),5192=>array(58,0,671,913),5193=>array(67,326,453,734),5194=>array(67,326,137,734),5196=>array(87,-14,645,729),5197=>array(87,0,645,1037),5198=>array(87,0,645,743),5199=>array(87,0,645,914),5200=>array(58,0,671,729),5201=>array(58,0,671,914),5202=>array(58,0,671,913),5204=>array(58,0,671,729),5205=>array(59,0,672,729),5206=>array(59,0,672,914),5207=>array(98,-14,834,729),5208=>array(87,-14,831,729),5209=>array(98,0,834,743),5210=>array(87,0,831,743),5211=>array(98,0,834,914),5212=>array(87,0,831,914),5213=>array(98,0,869,729),5214=>array(58,0,842,729),5215=>array(98,0,869,914),5216=>array(58,0,842,914),5217=>array(98,0,889,729),5218=>array(59,0,842,729),5219=>array(98,0,889,914),5220=>array(59,0,842,914),5221=>array(117,0,889,729),5222=>array(67,326,379,734),5223=>array(87,-14,823,734),5224=>array(87,0,823,743),5225=>array(58,0,811,734),5226=>array(59,0,835,734),5227=>array(34,0,530,743),5228=>array(98,0,594,1037),5229=>array(98,0,594,743),5230=>array(98,0,594,914),5231=>array(34,-14,530,729),5232=>array(34,-14,530,914),5233=>array(34,-14,623,913),5234=>array(98,-14,594,729),5235=>array(98,-14,594,914),5236=>array(98,0,762,743),5237=>array(34,0,712,743),5238=>array(98,0,781,743),5239=>array(98,0,758,743),5240=>array(98,0,781,914),5241=>array(98,0,758,914),5242=>array(98,-14,762,729),5243=>array(34,-14,712,729),5244=>array(98,-14,762,914),5245=>array(34,-14,712,914),5246=>array(98,-14,781,729),5247=>array(98,-14,758,729),5248=>array(98,-14,781,914),5249=>array(98,-14,758,914),5250=>array(117,-14,781,729),5251=>array(67,318,379,734),5252=>array(27,318,340,734),5253=>array(34,0,696,743),5254=>array(98,0,720,743),5255=>array(34,-14,696,734),5256=>array(98,-14,720,734),5257=>array(34,0,530,743),5258=>array(98,0,594,1037),5259=>array(98,0,594,743),5260=>array(98,0,594,914),5261=>array(34,-14,530,729),5262=>array(34,-14,530,914),5263=>array(34,-14,623,913),5264=>array(98,-14,594,729),5265=>array(98,-14,594,914),5266=>array(98,0,762,743),5267=>array(34,0,712,743),5268=>array(98,0,781,743),5269=>array(98,0,758,743),5270=>array(98,0,781,914),5271=>array(98,0,758,914),5272=>array(98,-14,762,729),5273=>array(34,-14,712,729),5274=>array(98,-14,762,914),5275=>array(34,-14,712,914),5276=>array(98,-14,781,729),5277=>array(98,-14,758,729),5278=>array(98,-14,781,914),5279=>array(98,-14,758,914),5280=>array(117,-14,781,729),5281=>array(67,318,379,734),5282=>array(67,318,379,734),5283=>array(58,0,512,729),5284=>array(98,0,552,1037),5285=>array(98,0,552,729),5286=>array(98,0,552,914),5287=>array(58,0,512,729),5288=>array(58,0,512,914),5289=>array(58,0,607,913),5290=>array(98,0,552,729),5291=>array(98,0,552,914),5292=>array(98,0,651,729),5293=>array(58,0,710,729),5294=>array(98,0,741,729),5295=>array(98,0,706,729),5296=>array(98,0,741,914),5297=>array(98,0,706,914),5298=>array(98,0,651,729),5299=>array(58,0,710,729),5300=>array(98,0,651,914),5301=>array(58,0,710,914),5302=>array(98,0,741,729),5303=>array(98,0,706,729),5304=>array(98,0,741,914),5305=>array(98,0,706,914),5306=>array(117,0,741,729),5307=>array(67,326,331,734),5308=>array(67,326,453,734),5309=>array(67,326,331,734),5312=>array(58,-14,817,436),5313=>array(34,-14,793,755),5314=>array(34,-14,793,436),5315=>array(5,-14,765,636),5316=>array(58,0,817,450),5317=>array(58,0,817,636),5318=>array(58,0,817,635),5319=>array(34,0,793,450),5320=>array(34,0,793,636),5321=>array(98,-14,1035,436),5322=>array(58,-14,977,436),5323=>array(98,0,1025,450),5324=>array(34,0,793,450),5325=>array(98,0,1025,636),5326=>array(34,0,793,636),5327=>array(34,0,793,635),5328=>array(67,484,545,736),5329=>array(67,318,397,734),5330=>array(67,484,545,736),5331=>array(58,0,817,450),5332=>array(34,0,793,755),5333=>array(34,0,793,450),5334=>array(34,0,793,636),5335=>array(58,0,817,450),5336=>array(58,0,817,636),5337=>array(58,0,817,635),5338=>array(34,0,793,450),5339=>array(34,0,793,636),5340=>array(98,0,1035,450),5341=>array(58,0,977,450),5342=>array(98,0,1025,450),5343=>array(34,0,972,450),5344=>array(98,0,1025,636),5345=>array(34,0,972,636),5346=>array(98,0,1035,450),5347=>array(58,0,977,450),5348=>array(98,0,1035,636),5349=>array(58,0,977,636),5350=>array(98,0,1025,450),5351=>array(34,0,972,450),5352=>array(98,0,1025,636),5353=>array(34,0,972,636),5354=>array(67,484,545,736),5356=>array(58,0,671,729),5357=>array(34,0,505,729),5358=>array(98,0,649,1037),5359=>array(98,0,569,729),5360=>array(98,0,569,914),5361=>array(34,0,505,729),5362=>array(34,0,505,914),5363=>array(34,0,600,913),5364=>array(98,0,569,729),5365=>array(98,0,569,914),5366=>array(98,0,736,729),5367=>array(34,0,696,729),5368=>array(98,0,758,729),5369=>array(98,0,713,729),5370=>array(98,0,758,914),5371=>array(98,0,713,914),5372=>array(98,0,736,729),5373=>array(34,0,696,729),5374=>array(98,0,736,914),5375=>array(34,0,696,914),5376=>array(98,0,758,729),5377=>array(98,0,713,729),5378=>array(98,0,758,914),5379=>array(98,0,713,914),5380=>array(117,0,758,729),5381=>array(67,326,363,734),5382=>array(67,318,365,741),5383=>array(67,326,363,734),5392=>array(34,-14,678,743),5393=>array(34,-14,678,743),5394=>array(34,-14,678,914),5395=>array(34,-14,857,464),5396=>array(34,-14,857,636),5397=>array(34,-14,857,464),5398=>array(34,-14,857,636),5399=>array(98,-14,875,743),5400=>array(34,-14,814,743),5401=>array(98,-14,875,743),5402=>array(34,-14,814,743),5403=>array(98,-14,875,914),5404=>array(34,-14,814,914),5405=>array(98,-14,1106,464),5406=>array(34,-14,1042,464),5407=>array(98,-14,1106,636),5408=>array(34,-14,1042,636),5409=>array(98,-14,1106,464),5410=>array(34,-14,1042,464),5411=>array(98,-14,1106,636),5412=>array(34,-14,1042,636),5413=>array(67,476,585,737),5414=>array(58,0,529,729),5415=>array(98,0,569,1037),5416=>array(98,0,569,729),5417=>array(98,0,569,914),5418=>array(58,0,529,729),5419=>array(58,0,531,914),5420=>array(58,0,626,913),5421=>array(98,0,569,729),5422=>array(98,0,569,914),5423=>array(98,0,746,729),5424=>array(58,0,723,729),5425=>array(98,0,758,729),5426=>array(98,0,760,729),5427=>array(98,0,758,914),5428=>array(98,0,760,914),5429=>array(98,0,746,729),5430=>array(58,0,723,729),5431=>array(98,0,749,914),5432=>array(58,0,723,914),5433=>array(98,0,758,729),5434=>array(98,0,760,729),5435=>array(98,0,758,914),5436=>array(98,0,760,914),5437=>array(117,0,758,729),5438=>array(67,326,363,734),5440=>array(67,399,334,667),5441=>array(67,326,429,734),5442=>array(98,-14,857,436),5443=>array(58,-14,817,436),5444=>array(58,0,817,450),5445=>array(98,0,857,755),5446=>array(98,0,857,450),5447=>array(98,0,857,636),5448=>array(98,0,569,729),5449=>array(98,0,569,914),5450=>array(98,0,569,729),5451=>array(34,0,505,729),5452=>array(34,0,505,914),5453=>array(34,0,505,729),5454=>array(98,0,736,914),5455=>array(34,0,696,914),5456=>array(67,326,363,734),5458=>array(58,0,671,729),5459=>array(73,0,676,744),5460=>array(73,-15,676,1037),5461=>array(73,-15,676,729),5462=>array(73,-15,676,914),5463=>array(38,0,668,662),5464=>array(38,0,668,914),5465=>array(58,0,688,662),5466=>array(58,0,688,914),5467=>array(98,0,886,914),5468=>array(58,0,909,914),5469=>array(67,326,462,695),5470=>array(87,-14,645,743),5471=>array(87,-14,645,743),5472=>array(87,-14,645,743),5473=>array(87,-14,645,743),5474=>array(87,-14,645,914),5475=>array(87,-14,645,914),5476=>array(41,0,671,729),5477=>array(41,0,671,914),5478=>array(59,0,689,729),5479=>array(59,0,689,914),5480=>array(98,0,907,914),5481=>array(59,0,842,914),5482=>array(67,326,467,734),5492=>array(34,0,772,743),5493=>array(58,0,796,743),5494=>array(58,0,796,914),5495=>array(34,-14,772,729),5496=>array(34,-14,772,914),5497=>array(58,-14,796,729),5498=>array(58,-14,796,914),5499=>array(67,318,508,734),5500=>array(98,0,654,729),5501=>array(67,326,429,734),5502=>array(67,0,1013,1037),5503=>array(67,0,1013,743),5504=>array(67,0,1013,914),5505=>array(67,-14,949,734),5506=>array(67,-14,949,914),5507=>array(67,-14,1013,734),5508=>array(67,-14,1013,914),5509=>array(67,318,798,734),5514=>array(34,0,772,743),5515=>array(58,0,796,743),5516=>array(34,-14,772,729),5517=>array(58,-14,796,729),5518=>array(67,0,1225,1037),5519=>array(67,0,1225,743),5520=>array(67,0,1225,914),5521=>array(67,-14,904,736),5522=>array(67,-14,904,914),5523=>array(67,-14,1225,736),5524=>array(67,-14,1225,914),5525=>array(67,332,645,736),5526=>array(67,332,1018,736),5536=>array(34,0,793,692),5537=>array(34,0,793,692),5538=>array(58,-242,817,450),5539=>array(58,-242,817,636),5540=>array(34,-242,793,450),5541=>array(34,-242,793,636),5542=>array(67,338,545,736),5543=>array(58,0,627,729),5544=>array(16,0,585,729),5545=>array(16,0,585,914),5546=>array(58,0,627,729),5547=>array(58,0,627,914),5548=>array(16,0,585,729),5549=>array(16,0,585,914),5550=>array(5,326,363,734),5551=>array(98,-14,594,729),5598=>array(98,0,711,729),5601=>array(56,0,669,729),5702=>array(67,326,413,734),5703=>array(67,240,413,820),5742=>array(57,0,391,306),5743=>array(67,0,949,743),5744=>array(67,0,1211,743),5745=>array(67,0,1598,743),5746=>array(67,0,1598,914),5747=>array(67,-14,1277,736),5748=>array(67,-14,1277,914),5749=>array(67,-14,1598,736),5750=>array(67,-14,1598,914),5760=>array(-10,246,487,328),5761=>array(-10,-125,502,328),5762=>array(-10,-125,722,328),5763=>array(-10,-125,941,328),5764=>array(-10,-125,1160,328),5765=>array(-10,-125,1379,328),5766=>array(-10,246,502,697),5767=>array(-10,246,722,697),5768=>array(-10,246,941,697),5769=>array(-10,246,1160,697),5770=>array(-10,246,1379,697),5771=>array(-10,-125,508,697),5772=>array(-10,-125,728,697),5773=>array(-10,-125,948,697),5774=>array(-10,-125,1168,697),5775=>array(-10,-125,1389,697),5776=>array(-10,41,502,533),5777=>array(-10,41,722,533),5778=>array(-10,41,939,533),5779=>array(-10,41,1159,533),5780=>array(-10,41,1379,533),5781=>array(-10,-125,508,697),5782=>array(-10,-125,762,697),5783=>array(-10,-83,798,328),5784=>array(-10,-240,1214,328),5785=>array(-10,246,1160,902),5786=>array(-10,82,693,328),5787=>array(55,28,517,544),5788=>array(-10,28,452,544),7424=>array(30,0,562,547),7425=>array(5,0,669,547),7426=>array(60,-14,929,560),7427=>array(30,0,530,547),7428=>array(55,-14,488,560),7429=>array(91,0,550,547),7430=>array(18,0,550,547),7431=>array(91,0,443,547),7432=>array(63,-14,471,561),7433=>array(94,-213,184,547),7434=>array(0,-14,310,547),7435=>array(91,0,576,547),7436=>array(1,0,498,560),7437=>array(91,0,664,547),7438=>array(91,0,559,547),7439=>array(55,-14,557,560),7440=>array(62,-14,495,560),7441=>array(55,22,629,524),7442=>array(55,57,629,489),7443=>array(25,2,663,543),7444=>array(55,-14,970,560),7446=>array(55,273,557,560),7447=>array(55,-14,557,273),7448=>array(74,0,475,547),7449=>array(24,0,507,547),7450=>array(24,0,507,547),7451=>array(29,0,553,547),7452=>array(91,-16,510,547),7453=>array(85,37,646,495),7454=>array(85,38,857,496),7455=>array(23,-238,583,560),7456=>array(30,0,562,547),7457=>array(42,0,776,547),7458=>array(43,0,482,547),7459=>array(59,-14,466,547),7462=>array(87,0,498,560),7463=>array(30,0,562,547),7464=>array(74,0,490,547),7465=>array(74,0,475,547),7466=>array(44,0,546,547),7467=>array(37,0,556,547),7468=>array(5,326,426,734),7469=>array(2,326,573,734),7470=>array(62,326,388,734),7472=>array(62,326,448,734),7473=>array(62,326,358,734),7474=>array(41,326,336,734),7475=>array(35,318,437,742),7476=>array(62,326,412,734),7477=>array(62,326,124,734),7478=>array(-33,214,124,734),7479=>array(62,326,426,734),7480=>array(62,326,348,734),7481=>array(62,326,482,734),7482=>array(62,326,410,734),7483=>array(62,326,410,734),7484=>array(35,318,460,742),7485=>array(35,318,405,742),7486=>array(62,326,358,734),7487=>array(62,326,419,734),7488=>array(-2,326,387,734),7489=>array(55,318,406,734),7490=>array(21,326,603,734),7491=>array(38,318,329,640),7492=>array(38,318,329,640),7493=>array(35,318,343,640),7494=>array(38,318,585,640),7495=>array(57,318,365,751),7496=>array(35,318,343,751),7497=>array(35,318,354,640),7498=>array(35,318,354,640),7499=>array(41,318,298,640),7500=>array(40,318,297,640),7501=>array(35,209,343,640),7502=>array(60,207,116,632),7503=>array(57,326,363,751),7504=>array(57,326,560,640),7505=>array(57,209,346,640),7506=>array(35,318,351,640),7507=>array(35,318,307,640),7508=>array(35,479,351,640),7509=>array(35,318,351,479),7510=>array(57,209,365,640),7511=>array(17,326,232,719),7512=>array(54,318,342,632),7513=>array(54,347,407,604),7514=>array(57,319,560,633),7515=>array(19,326,354,632),7517=>array(59,209,357,755),7518=>array(10,209,354,632),7519=>array(35,318,351,742),7520=>array(35,209,379,635),7521=>array(18,209,346,633),7522=>array(60,0,116,425),7523=>array(57,0,259,313),7524=>array(54,-8,342,306),7525=>array(19,0,354,306),7526=>array(59,-117,357,429),7527=>array(10,-117,354,306),7528=>array(59,-117,367,313),7529=>array(35,-117,379,309),7530=>array(18,-117,346,307),7543=>array(91,-208,580,560),7544=>array(62,326,412,734),7547=>array(57,0,314,547),7549=>array(24,-208,643,560),7557=>array(71,-208,273,760),7579=>array(35,318,343,640),7580=>array(35,318,307,640),7581=>array(35,287,307,640),7582=>array(35,318,351,751),7583=>array(41,318,298,640),7584=>array(15,326,234,751),7585=>array(-11,209,170,632),7586=>array(35,209,343,632),7587=>array(54,209,342,632),7588=>array(36,326,198,751),7589=>array(60,326,187,632),7590=>array(36,326,198,632),7591=>array(36,326,198,632),7592=>array(-83,209,172,751),7593=>array(60,209,187,751),7594=>array(44,209,172,751),7595=>array(55,326,314,640),7596=>array(57,209,560,640),7597=>array(57,209,560,633),7598=>array(-11,209,348,640),7599=>array(57,209,417,640),7600=>array(55,326,346,640),7601=>array(35,318,351,640),7602=>array(35,210,351,751),7603=>array(34,209,297,640),7604=>array(-11,209,224,751),7605=>array(17,209,232,719),7606=>array(46,318,445,632),7607=>array(35,318,355,632),7608=>array(57,317,321,632),7609=>array(60,326,343,632),7610=>array(19,326,354,632),7611=>array(27,326,304,632),7612=>array(27,209,374,632),7613=>array(27,296,304,632),7614=>array(27,207,330,632),7615=>array(35,320,351,756),7620=>array(-456,616,-44,800),7621=>array(-456,616,-44,800),7622=>array(-456,616,-44,800),7623=>array(-456,616,-44,800),7624=>array(-468,616,-32,800),7625=>array(-468,616,-32,800),7680=>array(8,-241,676,729),7681=>array(60,-241,522,560),7682=>array(98,0,615,914),7683=>array(90,-14,580,915),7684=>array(98,-183,615,729),7685=>array(91,-183,580,760),7686=>array(98,-156,615,729),7687=>array(91,-156,580,760),7688=>array(56,-193,644,928),7689=>array(55,-193,488,800),7690=>array(98,0,711,914),7691=>array(55,-14,544,942),7692=>array(98,-183,711,729),7693=>array(55,-183,544,760),7694=>array(98,-156,711,729),7695=>array(55,-156,544,760),7696=>array(98,-192,711,729),7697=>array(55,-193,544,760),7698=>array(98,-240,711,729),7699=>array(55,-240,544,760),7700=>array(98,0,568,1044),7701=>array(55,-14,562,921),7702=>array(98,0,568,1044),7703=>array(55,-14,562,921),7704=>array(98,-213,568,729),7705=>array(55,-213,562,560),7706=>array(98,-192,568,729),7707=>array(55,-192,562,560),7708=>array(98,-193,568,928),7709=>array(55,-193,562,785),7710=>array(98,0,517,914),7711=>array(23,0,371,942),7712=>array(56,-14,693,887),7713=>array(55,-208,544,745),7714=>array(98,0,654,913),7715=>array(90,0,549,915),7716=>array(98,-183,654,729),7717=>array(91,-183,549,760),7718=>array(98,0,654,914),7719=>array(-9,0,549,913),7720=>array(8,-193,654,729),7721=>array(1,-193,549,760),7722=>array(98,-222,654,729),7723=>array(91,-222,549,760),7724=>array(0,-192,322,729),7725=>array(-22,-192,300,760),7726=>array(3,0,293,1044),7727=>array(-6,0,284,886),7728=>array(98,0,677,928),7729=>array(91,0,576,928),7730=>array(98,-183,677,729),7731=>array(91,-183,576,760),7732=>array(98,-156,677,729),7733=>array(91,-156,576,760),7734=>array(98,-183,552,729),7735=>array(98,-183,189,760),7736=>array(1,-183,552,927),7737=>array(-1,-183,291,899),7738=>array(98,-156,552,729),7739=>array(-6,-156,286,760),7740=>array(98,-240,552,729),7741=>array(-17,-240,295,760),7742=>array(98,0,765,928),7743=>array(91,0,889,800),7744=>array(98,0,765,914),7745=>array(91,0,889,760),7746=>array(98,-183,765,729),7747=>array(91,-183,889,560),7748=>array(98,0,650,914),7749=>array(91,0,549,760),7750=>array(98,-183,650,729),7751=>array(91,-183,549,560),7752=>array(98,-156,650,729),7753=>array(91,-156,549,560),7754=>array(98,-240,650,729),7755=>array(91,-240,549,560),7756=>array(56,-14,731,1044),7757=>array(55,-14,557,881),7758=>array(56,-14,731,1042),7759=>array(55,-14,557,882),7760=>array(56,-14,731,1044),7761=>array(55,-14,557,921),7762=>array(56,-14,731,1044),7763=>array(55,-14,557,921),7764=>array(98,0,569,928),7765=>array(91,-208,580,800),7766=>array(98,0,569,914),7767=>array(91,-208,580,760),7768=>array(98,0,666,913),7769=>array(91,0,411,760),7770=>array(98,-183,666,729),7771=>array(91,-183,411,560),7772=>array(98,-183,666,899),7773=>array(91,-183,411,745),7774=>array(98,-156,666,729),7775=>array(41,-156,411,560),7776=>array(66,-14,579,914),7777=>array(54,-14,472,760),7778=>array(66,-183,579,742),7779=>array(54,-183,472,560),7780=>array(66,-14,579,928),7781=>array(54,-14,485,800),7782=>array(66,-14,579,1042),7783=>array(54,-14,472,973),7784=>array(66,-183,579,914),7785=>array(54,-183,472,733),7786=>array(-3,0,614,914),7787=>array(27,0,368,942),7788=>array(-3,-183,614,729),7789=>array(27,-183,368,702),7790=>array(-3,-156,614,729),7791=>array(27,-156,390,702),7792=>array(-3,-240,614,729),7793=>array(27,-240,394,702),7794=>array(87,-183,645,729),7795=>array(85,-183,543,560),7796=>array(87,-192,645,729),7797=>array(85,-192,543,560),7798=>array(87,-213,645,729),7799=>array(85,-213,543,560),7800=>array(87,-14,645,1044),7801=>array(85,-14,543,990),7802=>array(87,-14,645,1025),7803=>array(85,-14,543,869),7804=>array(8,0,676,936),7805=>array(30,0,562,777),7806=>array(8,-183,676,729),7807=>array(30,-183,562,547),7808=>array(33,0,956,931),7809=>array(42,0,776,802),7810=>array(33,0,956,931),7811=>array(42,0,776,803),7812=>array(33,0,956,913),7813=>array(42,0,776,758),7814=>array(33,0,956,913),7815=>array(42,0,776,760),7816=>array(33,-183,956,729),7817=>array(42,-183,776,547),7818=>array(30,0,654,914),7819=>array(29,0,559,760),7820=>array(30,0,654,913),7821=>array(29,0,559,758),7822=>array(-2,0,613,914),7823=>array(30,-208,562,760),7824=>array(45,0,640,928),7825=>array(43,0,482,800),7826=>array(45,-183,640,729),7827=>array(43,-183,482,547),7828=>array(45,-156,640,729),7829=>array(43,-156,482,547),7830=>array(91,-156,549,760),7831=>array(2,0,368,913),7832=>array(42,0,776,878),7833=>array(30,-208,562,878),7834=>array(60,-14,672,760),7835=>array(23,0,371,942),7836=>array(1,0,371,760),7837=>array(23,0,371,760),7838=>array(87,-14,713,743),7839=>array(55,-14,557,742),7840=>array(8,-183,676,729),7841=>array(60,-183,522,560),7842=>array(8,0,676,992),7843=>array(60,-14,522,810),7844=>array(8,0,676,1028),7845=>array(60,-14,585,846),7846=>array(8,0,676,1028),7847=>array(60,-14,522,847),7848=>array(8,0,676,1044),7849=>array(60,-14,577,862),7850=>array(8,0,676,1057),7851=>array(60,-14,522,875),7852=>array(8,-183,676,928),7853=>array(60,-183,522,800),7854=>array(8,0,676,1044),7855=>array(60,-14,522,877),7856=>array(8,0,676,1044),7857=>array(60,-14,522,877),7858=>array(8,0,676,1068),7859=>array(60,-14,522,901),7860=>array(8,0,676,1043),7861=>array(60,-14,522,876),7862=>array(8,-183,676,946),7863=>array(60,-183,522,765),7864=>array(98,-183,568,729),7865=>array(55,-183,562,560),7866=>array(98,0,568,992),7867=>array(55,-14,562,810),7868=>array(98,0,568,921),7869=>array(55,-14,562,777),7870=>array(98,0,637,1028),7871=>array(55,-14,613,846),7872=>array(98,0,568,1028),7873=>array(55,-14,562,847),7874=>array(98,0,620,1044),7875=>array(55,-14,605,862),7876=>array(98,0,568,1057),7877=>array(55,-14,562,875),7878=>array(98,-183,568,928),7879=>array(55,-183,562,800),7880=>array(44,0,263,992),7881=>array(33,0,252,811),7882=>array(98,-183,197,729),7883=>array(93,-183,184,760),7884=>array(56,-183,731,742),7885=>array(55,-183,557,560),7886=>array(56,-14,731,992),7887=>array(55,-14,557,810),7888=>array(56,-14,731,1028),7889=>array(55,-14,601,846),7890=>array(56,-14,731,1028),7891=>array(55,-14,557,847),7892=>array(56,-14,731,1044),7893=>array(55,-14,592,862),7894=>array(56,-14,731,1057),7895=>array(55,-14,557,875),7896=>array(56,-183,731,928),7897=>array(55,-183,557,800),7898=>array(50,-14,764,927),7899=>array(58,-14,603,800),7900=>array(50,-14,764,927),7901=>array(58,-14,603,800),7902=>array(50,-14,764,992),7903=>array(58,-14,603,810),7904=>array(50,-14,764,921),7905=>array(58,-14,603,777),7906=>array(50,-183,764,760),7907=>array(58,-183,603,615),7908=>array(87,-183,645,729),7909=>array(85,-183,543,560),7910=>array(87,-14,645,992),7911=>array(85,-14,543,810),7912=>array(84,-4,796,927),7913=>array(86,-14,676,800),7914=>array(84,-4,796,927),7915=>array(86,-14,676,800),7916=>array(84,-4,796,992),7917=>array(86,-14,676,810),7918=>array(84,-4,796,921),7919=>array(86,-14,676,777),7920=>array(84,-183,796,760),7921=>array(86,-183,676,615),7922=>array(-2,0,613,931),7923=>array(30,-208,562,802),7924=>array(-2,-183,613,729),7925=>array(30,-208,562,547),7926=>array(-2,0,613,996),7927=>array(30,-208,562,813),7928=>array(-2,0,613,921),7929=>array(30,-208,562,777),7930=>array(98,0,764,729),7931=>array(16,0,462,760),7936=>array(55,-12,611,797),7937=>array(55,-12,611,797),7938=>array(55,-12,611,800),7939=>array(55,-12,611,800),7940=>array(55,-12,611,800),7941=>array(55,-12,611,800),7942=>array(55,-12,611,928),7943=>array(55,-12,611,928),7944=>array(8,0,676,797),7945=>array(8,0,676,797),7946=>array(2,0,869,800),7947=>array(3,0,869,800),7948=>array(3,0,761,800),7949=>array(2,0,793,800),7950=>array(3,0,700,928),7951=>array(2,0,734,928),7952=>array(65,-14,473,797),7953=>array(65,-14,473,797),7954=>array(65,-14,473,800),7955=>array(65,-14,473,800),7956=>array(65,-14,486,800),7957=>array(65,-14,501,800),7960=>array(3,0,647,797),7961=>array(3,0,647,797),7962=>array(2,0,902,800),7963=>array(3,0,911,800),7964=>array(3,0,834,800),7965=>array(2,0,864,800),7968=>array(91,-208,549,797),7969=>array(91,-208,549,797),7970=>array(91,-208,549,800),7971=>array(91,-208,549,800),7972=>array(91,-208,549,800),7973=>array(91,-208,549,800),7974=>array(91,-208,549,928),7975=>array(91,-208,549,928),7976=>array(3,0,739,797),7977=>array(3,0,737,797),7978=>array(2,0,988,800),7979=>array(3,0,991,800),7980=>array(3,0,929,800),7981=>array(2,0,953,800),7982=>array(3,0,835,928),7983=>array(2,0,849,928),7984=>array(76,0,304,797),7985=>array(71,0,304,797),7986=>array(-39,0,340,800),7987=>array(-34,0,347,800),7988=>array(2,0,362,800),7989=>array(-22,0,366,800),7990=>array(-26,0,304,928),7991=>array(-28,0,304,928),7992=>array(3,0,282,797),7993=>array(3,0,276,797),7994=>array(2,0,537,800),7995=>array(3,0,537,800),7996=>array(3,0,472,800),7997=>array(2,0,501,800),7998=>array(3,0,392,928),7999=>array(2,0,395,928),8000=>array(55,-14,557,797),8001=>array(55,-14,557,797),8002=>array(55,-14,557,800),8003=>array(55,-14,557,800),8004=>array(55,-14,557,800),8005=>array(55,-14,557,800),8008=>array(3,-14,748,797),8009=>array(3,-14,792,797),8010=>array(2,-14,1039,800),8011=>array(3,-14,1043,800),8012=>array(3,-14,882,800),8013=>array(2,-14,914,800),8016=>array(73,-14,521,797),8017=>array(73,-14,521,797),8018=>array(73,-14,521,800),8019=>array(73,-14,521,800),8020=>array(73,-14,521,800),8021=>array(73,-14,521,800),8022=>array(73,-14,521,928),8023=>array(73,-14,521,928),8025=>array(3,0,786,797),8027=>array(3,0,1000,800),8029=>array(2,0,1014,800),8031=>array(2,0,900,928),8032=>array(66,-14,769,797),8033=>array(66,-14,769,797),8034=>array(66,-14,769,800),8035=>array(66,-14,769,800),8036=>array(66,-14,769,800),8037=>array(66,-14,769,800),8038=>array(66,-14,769,928),8039=>array(66,-14,769,928),8040=>array(3,0,764,797),8041=>array(3,0,805,797),8042=>array(2,0,1051,800),8043=>array(3,0,1057,800),8044=>array(3,0,908,800),8045=>array(2,0,934,800),8046=>array(3,0,883,928),8047=>array(2,0,914,928),8048=>array(55,-12,611,800),8049=>array(55,-12,611,800),8050=>array(65,-14,473,800),8051=>array(65,-14,473,800),8052=>array(91,-208,549,800),8053=>array(91,-208,549,800),8054=>array(-56,0,304,800),8055=>array(81,0,324,800),8056=>array(55,-14,557,800),8057=>array(55,-14,557,800),8058=>array(73,-14,521,800),8059=>array(73,-14,521,800),8060=>array(66,-14,769,800),8061=>array(66,-14,769,800),8064=>array(55,-208,611,797),8065=>array(55,-208,611,797),8066=>array(55,-208,611,800),8067=>array(55,-208,611,800),8068=>array(55,-208,611,800),8069=>array(55,-208,611,800),8070=>array(55,-208,611,928),8071=>array(55,-208,611,928),8072=>array(8,-208,676,797),8073=>array(8,-208,676,797),8074=>array(2,-208,869,800),8075=>array(3,-208,869,800),8076=>array(3,-208,761,800),8077=>array(2,-208,793,800),8078=>array(3,-208,700,928),8079=>array(2,-208,734,928),8080=>array(91,-208,549,797),8081=>array(91,-208,549,797),8082=>array(91,-208,549,800),8083=>array(91,-208,549,800),8084=>array(91,-208,549,800),8085=>array(91,-208,549,800),8086=>array(91,-208,549,928),8087=>array(91,-208,549,928),8088=>array(3,-208,739,797),8089=>array(3,-208,737,797),8090=>array(2,-208,988,800),8091=>array(3,-208,991,800),8092=>array(3,-208,929,800),8093=>array(2,-208,953,800),8094=>array(3,-208,835,928),8095=>array(2,-208,849,928),8096=>array(66,-208,769,797),8097=>array(66,-208,769,797),8098=>array(66,-208,769,800),8099=>array(66,-208,769,800),8100=>array(66,-208,769,800),8101=>array(66,-208,769,800),8102=>array(66,-208,769,928),8103=>array(66,-208,769,928),8104=>array(3,-208,764,797),8105=>array(3,-208,805,797),8106=>array(2,-208,1051,800),8107=>array(3,-208,1057,800),8108=>array(3,-208,908,800),8109=>array(2,-208,934,800),8110=>array(3,-208,883,928),8111=>array(2,-208,914,928),8112=>array(55,-12,611,785),8113=>array(55,-12,611,745),8114=>array(55,-208,611,800),8115=>array(55,-208,611,559),8116=>array(55,-208,611,800),8118=>array(55,-12,611,777),8119=>array(55,-208,611,777),8120=>array(8,0,676,928),8121=>array(8,0,676,899),8122=>array(-2,0,708,800),8123=>array(8,0,676,800),8124=>array(8,-208,676,729),8125=>array(190,595,309,797),8126=>array(214,-208,321,-45),8127=>array(190,595,309,797),8128=>array(89,639,411,777),8129=>array(89,659,411,928),8130=>array(91,-208,549,800),8131=>array(91,-208,549,560),8132=>array(91,-208,549,800),8134=>array(91,-208,549,777),8135=>array(91,-208,549,777),8136=>array(-2,0,741,800),8137=>array(-12,0,682,800),8138=>array(-2,0,833,800),8139=>array(-6,0,765,800),8140=>array(98,-208,654,729),8141=>array(67,595,446,800),8142=>array(88,595,447,800),8143=>array(89,595,411,928),8144=>array(-10,0,304,785),8145=>array(-14,0,304,745),8146=>array(-20,0,304,978),8147=>array(2,0,313,978),8150=>array(-14,0,309,777),8151=>array(-13,0,310,928),8152=>array(-5,0,300,928),8153=>array(1,0,293,899),8154=>array(-2,0,377,800),8155=>array(-9,0,311,800),8157=>array(62,595,443,800),8158=>array(73,595,461,800),8159=>array(89,595,411,928),8160=>array(73,-14,521,785),8161=>array(73,-14,521,745),8162=>array(73,-14,521,978),8163=>array(73,-14,521,978),8164=>array(91,-208,580,797),8165=>array(91,-208,580,797),8166=>array(73,-14,521,777),8167=>array(73,-14,521,928),8168=>array(-2,0,613,928),8169=>array(-2,0,613,899),8170=>array(-2,0,847,800),8171=>array(-15,0,821,800),8172=>array(3,0,651,797),8173=>array(83,659,395,978),8174=>array(105,659,415,978),8175=>array(83,617,317,800),8178=>array(66,-208,769,800),8179=>array(66,-208,769,547),8180=>array(66,-208,769,800),8182=>array(66,-14,769,777),8183=>array(66,-208,769,777),8184=>array(-2,-14,885,800),8185=>array(-7,-14,750,800),8186=>array(-2,0,884,800),8187=>array(-18,0,752,800),8188=>array(38,-208,726,738),8189=>array(181,616,415,800),8190=>array(190,595,309,797),8192=>array(49,234,312,314),8193=>array(49,234,312,314),8194=>array(49,234,312,314),8195=>array(49,234,312,314),8196=>array(49,234,312,314),8197=>array(49,234,312,314),8198=>array(49,234,312,314),8199=>array(49,234,312,314),8200=>array(49,234,312,314),8201=>array(49,234,312,314),8202=>array(49,234,312,314),8203=>array(49,234,312,314),8204=>array(49,234,312,314),8205=>array(49,234,312,314),8206=>array(49,234,312,314),8207=>array(49,234,312,314),8208=>array(49,234,312,314),8209=>array(49,234,312,314),8210=>array(49,239,587,309),8211=>array(49,239,451,309),8212=>array(49,239,951,309),8213=>array(0,239,1000,309),8214=>array(127,-236,371,764),8215=>array(-10,-236,510,-9),8216=>array(85,489,228,729),8217=>array(87,499,230,729),8218=>array(85,-116,228,124),8219=>array(87,499,230,729),8220=>array(85,489,428,729),8221=>array(85,489,428,729),8222=>array(85,-116,428,124),8223=>array(85,489,428,729),8224=>array(28,-96,472,729),8225=>array(28,-96,472,729),8226=>array(150,227,440,516),8227=>array(150,188,479,555),8228=>array(115,0,219,124),8229=>array(115,0,552,124),8230=>array(115,0,885,124),8231=>array(107,302,210,426),8232=>array(55,-14,1287,742),8233=>array(55,-14,1287,742),8234=>array(55,-14,1287,742),8235=>array(55,-14,1287,742),8236=>array(55,-14,1287,742),8237=>array(55,-14,1287,742),8238=>array(55,-14,1287,742),8239=>array(55,-14,1287,742),8240=>array(55,-14,1287,742),8241=>array(55,-14,1681,742),8242=>array(20,547,203,729),8243=>array(20,547,350,729),8244=>array(20,547,496,729),8245=>array(20,547,203,729),8246=>array(20,547,350,729),8247=>array(20,547,496,729),8248=>array(5,-236,333,-30),8249=>array(77,69,306,517),8250=>array(94,69,323,517),8251=>array(95,2,740,725),8252=>array(72,0,414,729),8253=>array(72,0,461,742),8254=>array(-10,686,510,755),8255=>array(-43,-237,847,-60),8256=>array(-43,752,847,929),8257=>array(-42,-236,286,229),8258=>array(30,-29,970,814),8259=>array(108,313,400,421),8260=>array(-183,-14,350,742),8261=>array(86,-132,293,760),8262=>array(86,-132,293,760),8263=>array(36,0,886,742),8264=>array(72,0,661,742),8265=>array(72,0,661,742),8266=>array(49,-123,448,545),8267=>array(115,-96,566,729),8268=>array(105,220,395,509),8269=>array(105,220,395,509),8270=>array(30,-29,470,427),8271=>array(139,-116,282,517),8272=>array(-43,-237,847,929),8273=>array(30,-7,470,929),8274=>array(71,-93,408,729),8275=>array(49,228,951,399),8276=>array(-43,-240,847,-63),8277=>array(152,98,686,631),8278=>array(122,149,464,589),8279=>array(20,547,643,729),8280=>array(175,125,663,613),8281=>array(175,120,663,608),8282=>array(107,0,210,729),8283=>array(49,-138,749,867),8284=>array(55,0,783,729),8285=>array(107,39,210,655),8286=>array(107,8,210,683),8287=>array(42,319,366,742),8288=>array(42,319,366,742),8289=>array(42,319,366,742),8290=>array(42,319,366,742),8291=>array(42,319,366,742),8292=>array(42,319,366,742),8298=>array(42,319,366,742),8299=>array(42,319,366,742),8300=>array(42,319,366,742),8301=>array(42,319,366,742),8302=>array(42,319,366,742),8303=>array(42,319,366,742),8304=>array(42,319,366,742),8305=>array(60,326,116,751),8308=>array(31,326,369,734),8309=>array(50,319,353,734),8310=>array(45,319,369,742),8311=>array(53,326,354,734),8312=>array(43,319,365,742),8313=>array(41,319,364,742),8314=>array(67,326,461,677),8315=>array(67,479,461,525),8316=>array(67,422,461,581),8317=>array(54,252,195,751),8318=>array(50,252,191,751),8319=>array(57,326,346,640),8320=>array(42,-7,366,416),8321=>array(67,0,346,408),8322=>array(46,0,338,416),8323=>array(48,-7,350,416),8324=>array(31,0,369,408),8325=>array(50,-7,353,408),8326=>array(45,-7,369,416),8327=>array(53,0,354,408),8328=>array(43,-7,365,416),8329=>array(41,-7,364,416),8330=>array(67,0,461,351),8331=>array(67,152,461,199),8332=>array(67,96,461,254),8333=>array(54,-74,195,425),8334=>array(50,-74,191,425),8336=>array(38,-8,329,313),8337=>array(35,-8,354,313),8338=>array(35,-8,351,313),8339=>array(57,0,391,306),8340=>array(35,-8,354,313),8341=>array(57,0,346,425),8342=>array(57,0,363,425),8343=>array(60,0,116,425),8344=>array(57,0,560,313),8345=>array(57,0,346,313),8346=>array(57,-117,365,313),8347=>array(57,0,320,322),8348=>array(17,0,232,393),8352=>array(42,0,835,729),8353=>array(56,-44,593,778),8354=>array(47,-14,587,742),8355=>array(65,0,599,729),8356=>array(63,0,548,742),8357=>array(91,-93,889,640),8358=>array(57,0,691,729),8359=>array(98,-14,1226,729),8360=>array(98,-14,1025,729),8361=>array(29,0,960,729),8362=>array(46,-14,743,729),8363=>array(55,-156,619,760),8364=>array(0,-14,570,742),8365=>array(20,0,636,729),8366=>array(10,0,626,729),8367=>array(102,-222,1205,742),8368=>array(22,-14,569,742),8369=>array(33,0,579,729),8370=>array(45,-81,586,809),8371=>array(8,0,627,729),8372=>array(57,-14,717,742),8373=>array(81,-147,556,760),8376=>array(10,0,626,729),8377=>array(52,0,585,729),8378=>array(5,2,649,731),8400=>array(-491,635,-26,760),8401=>array(-470,635,-5,760),8406=>array(-470,560,-26,760),8407=>array(-470,560,-26,760),8411=>array(-491,560,-10,758),8412=>array(-586,560,86,758),8417=>array(-470,560,-26,760),8448=>array(33,-24,980,752),8449=>array(33,-24,999,752),8450=>array(56,-14,644,742),8451=>array(95,-14,1053,742),8452=>array(-21,0,637,729),8453=>array(29,-24,987,752),8454=>array(29,-24,1038,752),8455=>array(80,-14,560,742),8456=>array(54,-146,642,611),8457=>array(95,0,894,742),8459=>array(36,-14,943,748),8460=>array(1,-128,693,731),8461=>array(98,0,751,729),8462=>array(35,0,566,760),8463=>array(44,0,566,760),8464=>array(29,-15,432,742),8465=>array(52,-14,659,742),8466=>array(33,-14,679,743),8467=>array(-14,-14,353,742),8468=>array(16,-14,763,760),8469=>array(97,0,704,729),8470=>array(26,0,969,729),8471=>array(138,0,862,724),8472=>array(54,-221,658,495),8473=>array(98,0,666,729),8474=>array(56,-129,731,742),8475=>array(32,-9,764,774),8476=>array(41,-14,803,743),8477=>array(98,0,774,729),8478=>array(83,0,814,729),8479=>array(98,-107,666,847),8480=>array(126,443,770,730),8481=>array(-2,0,1023,547),8482=>array(144,447,784,729),8483=>array(8,-108,676,846),8484=>array(45,0,700,729),8485=>array(43,-213,523,760),8486=>array(38,0,726,738),8487=>array(38,-14,726,724),8488=>array(12,-149,573,783),8489=>array(33,0,255,547),8490=>array(98,0,677,729),8491=>array(8,0,676,928),8492=>array(45,0,734,772),8493=>array(63,-12,652,742),8494=>array(61,-12,793,647),8495=>array(42,-14,547,533),8496=>array(79,-14,565,742),8497=>array(41,-16,758,755),8498=>array(98,0,517,729),8499=>array(28,-28,1032,751),8500=>array(51,-12,411,395),8501=>array(50,-14,712,742),8502=>array(-2,-14,653,743),8503=>array(13,-35,407,742),8504=>array(42,-35,591,742),8505=>array(34,0,355,760),8506=>array(44,-21,915,654),8507=>array(74,0,1162,547),8508=>array(18,-8,685,547),8509=>array(0,-194,669,560),8510=>array(98,0,648,729),8511=>array(98,0,750,729),8512=>array(12,-192,791,719),8513=>array(80,-14,716,742),8514=>array(4,0,458,729),8515=>array(3,0,457,729),8516=>array(-2,0,613,729),8517=>array(42,0,786,729),8518=>array(44,-14,709,760),8519=>array(44,-14,572,560),8520=>array(39,0,313,760),8521=>array(-114,-208,313,760),8523=>array(29,-14,715,742),8526=>array(40,0,441,547),8528=>array(67,-14,922,742),8529=>array(67,-14,932,742),8530=>array(67,-14,1335,742),8531=>array(67,-14,918,742),8532=>array(46,-14,918,742),8533=>array(67,-14,921,742),8534=>array(46,-14,921,742),8535=>array(48,-14,921,742),8536=>array(31,-14,921,742),8537=>array(67,-14,937,742),8538=>array(50,-14,937,742),8539=>array(67,-14,933,742),8540=>array(48,-14,933,742),8541=>array(50,-14,933,742),8542=>array(53,-14,933,742),8543=>array(67,-14,751,742),8544=>array(98,0,197,729),8545=>array(98,0,394,729),8546=>array(98,0,591,729),8547=>array(98,0,915,729),8548=>array(8,0,676,729),8549=>array(8,0,824,729),8550=>array(8,0,1021,729),8551=>array(8,0,1219,729),8552=>array(98,0,886,729),8553=>array(30,0,654,729),8554=>array(30,0,835,729),8555=>array(30,0,1032,729),8556=>array(98,0,552,729),8557=>array(56,-14,644,742),8558=>array(98,0,711,729),8559=>array(98,0,765,729),8560=>array(94,0,184,760),8561=>array(94,0,364,760),8562=>array(94,0,543,760),8563=>array(94,0,782,760),8564=>array(30,0,562,547),8565=>array(30,0,717,760),8566=>array(30,0,897,760),8567=>array(30,0,1077,760),8568=>array(94,0,786,760),8569=>array(29,0,559,547),8570=>array(29,0,729,760),8571=>array(29,0,908,760),8572=>array(94,0,184,760),8573=>array(55,-14,488,560),8574=>array(55,-14,544,760),8575=>array(91,0,889,560),8576=>array(59,0,1186,729),8577=>array(98,0,711,729),8578=>array(59,0,1186,729),8579=>array(56,-14,644,742),8580=>array(62,-14,495,560),8581=>array(56,-208,644,742),8585=>array(42,-14,918,742),8592=>array(49,100,781,527),8593=>array(205,0,632,732),8594=>array(57,100,789,527),8595=>array(205,-3,632,729),8596=>array(49,100,789,527),8597=>array(205,-8,632,732),8598=>array(141,25,703,587),8599=>array(141,25,703,587),8600=>array(141,25,703,587),8601=>array(141,25,703,587),8602=>array(49,100,781,527),8603=>array(57,100,789,527),8604=>array(21,103,827,414),8605=>array(11,103,816,414),8606=>array(49,100,781,527),8607=>array(206,0,633,732),8608=>array(57,100,789,527),8609=>array(206,-3,633,729),8610=>array(49,100,781,527),8611=>array(57,100,789,527),8612=>array(49,100,781,527),8613=>array(206,0,632,732),8614=>array(57,100,789,527),8615=>array(206,-3,632,729),8616=>array(206,0,632,732),8617=>array(49,100,780,565),8618=>array(58,100,789,565),8619=>array(49,100,780,565),8620=>array(58,100,789,565),8621=>array(49,100,789,527),8622=>array(49,93,789,534),8623=>array(146,-2,702,730),8624=>array(169,0,629,743),8625=>array(209,0,669,743),8626=>array(169,-14,629,729),8627=>array(209,-14,669,729),8628=>array(233,-3,760,604),8629=>array(49,100,656,626),8630=>array(22,203,799,668),8631=>array(39,203,816,668),8632=>array(108,25,788,729),8633=>array(55,-46,783,673),8634=>array(103,62,762,680),8635=>array(77,62,736,680),8636=>array(49,272,781,527),8637=>array(49,100,781,355),8638=>array(377,0,632,732),8639=>array(205,0,460,732),8640=>array(57,272,789,527),8641=>array(57,100,789,355),8642=>array(377,0,632,732),8643=>array(205,0,460,732),8644=>array(49,-47,789,674),8645=>array(58,-3,779,732),8646=>array(49,-47,789,674),8647=>array(49,-47,781,674),8648=>array(59,0,779,732),8649=>array(58,-47,790,674),8650=>array(59,-3,779,729),8651=>array(49,7,789,620),8652=>array(49,7,789,620),8653=>array(49,100,781,527),8654=>array(49,94,789,533),8655=>array(57,100,789,527),8656=>array(49,100,781,527),8657=>array(206,0,633,732),8658=>array(57,100,789,527),8659=>array(206,-3,633,729),8660=>array(49,100,789,527),8661=>array(205,-8,633,732),8662=>array(141,-23,751,587),8663=>array(92,-23,703,587),8664=>array(92,25,703,636),8665=>array(141,25,751,636),8666=>array(49,100,781,527),8667=>array(57,100,789,527),8668=>array(49,100,781,527),8669=>array(57,100,789,527),8670=>array(205,0,632,732),8671=>array(205,-3,632,729),8672=>array(49,100,781,527),8673=>array(205,0,633,732),8674=>array(57,100,789,527),8675=>array(205,-3,633,729),8676=>array(52,99,781,528),8677=>array(57,99,786,528),8678=>array(27,65,781,562),8679=>array(171,0,667,754),8680=>array(35,65,789,562),8681=>array(171,-25,667,729),8682=>array(171,0,667,754),8683=>array(171,0,667,754),8684=>array(156,0,682,754),8685=>array(171,0,667,754),8686=>array(171,0,667,754),8687=>array(171,0,667,754),8688=>array(57,65,811,562),8689=>array(60,0,788,729),8690=>array(60,0,788,729),8691=>array(171,-25,667,754),8692=>array(57,100,789,527),8693=>array(58,-3,779,732),8694=>array(57,-193,789,820),8695=>array(49,94,781,533),8696=>array(57,94,789,533),8697=>array(49,94,789,533),8698=>array(49,94,781,533),8699=>array(57,94,789,533),8700=>array(49,94,789,533),8701=>array(27,96,781,531),8702=>array(57,96,811,531),8703=>array(27,96,811,531),8704=>array(8,0,676,729),8705=>array(66,-14,554,742),8706=>array(46,-14,471,662),8707=>array(98,0,568,729),8708=>array(98,-46,568,776),8709=>array(76,-10,795,710),8710=>array(-3,0,672,719),8711=>array(-3,0,672,719),8712=>array(85,-10,786,710),8713=>array(85,-138,786,835),8714=>array(106,76,612,550),8715=>array(85,-10,786,710),8716=>array(85,-138,786,835),8717=>array(106,76,612,550),8718=>array(146,0,490,485),8719=>array(76,-192,680,719),8720=>array(76,-192,680,719),8721=>array(12,-192,654,719),8722=>array(106,272,732,355),8723=>array(106,0,732,627),8724=>array(106,0,732,729),8725=>array(0,-93,337,729),8726=>array(192,-54,529,768),8727=>array(127,0,710,627),8728=>array(158,160,468,470),8729=>array(168,168,458,458),8730=>array(30,-20,637,811),8731=>array(30,-20,637,933),8732=>array(30,-20,637,924),8733=>array(107,112,607,487),8734=>array(107,112,726,487),8735=>array(138,99,700,661),8736=>array(85,0,786,729),8737=>array(85,-53,786,729),8738=>array(116,-3,732,727),8739=>array(211,-214,289,771),8740=>array(50,-214,451,771),8741=>array(133,-214,367,771),8742=>array(50,-214,451,771),8743=>array(129,0,603,579),8744=>array(129,0,603,579),8745=>array(129,0,603,579),8746=>array(129,0,603,579),8747=>array(57,-212,464,757),8748=>array(57,-212,732,757),8749=>array(57,-212,1000,757),8750=>array(57,-212,464,757),8751=>array(57,-212,732,757),8752=>array(57,-212,1000,757),8753=>array(57,-213,522,757),8754=>array(57,-212,514,757),8755=>array(57,-212,515,757),8756=>array(59,100,577,604),8757=>array(59,100,577,604),8758=>array(79,100,182,604),8759=>array(59,100,577,604),8760=>array(106,272,732,552),8761=>array(106,78,732,552),8762=>array(105,78,732,552),8763=>array(106,78,732,552),8764=>array(106,228,732,399),8765=>array(106,228,732,399),8766=>array(79,149,759,479),8767=>array(106,42,732,584),8768=>array(102,0,273,626),8769=>array(106,77,732,553),8770=>array(106,133,732,454),8771=>array(106,172,732,494),8772=>array(106,48,732,603),8773=>array(106,90,732,594),8774=>array(106,12,732,594),8775=>array(106,-5,732,657),8776=>array(106,133,732,494),8777=>array(106,2,732,625),8778=>array(106,90,732,598),8779=>array(106,59,732,602),8780=>array(106,90,732,594),8781=>array(105,105,732,521),8782=>array(106,26,732,601),8783=>array(106,172,732,601),8784=>array(106,172,732,625),8785=>array(106,1,732,625),8786=>array(106,2,733,625),8787=>array(106,2,733,625),8788=>array(101,151,899,476),8789=>array(100,151,900,475),8790=>array(106,172,732,454),8791=>array(106,172,732,760),8792=>array(106,172,732,662),8793=>array(106,172,732,812),8794=>array(106,172,732,812),8795=>array(106,172,732,849),8796=>array(106,172,732,854),8797=>array(106,172,732,764),8798=>array(106,172,732,760),8799=>array(106,172,732,856),8800=>array(106,19,732,608),8801=>array(106,90,732,537),8802=>array(106,-24,732,650),8803=>array(106,0,732,629),8804=>array(106,0,732,582),8805=>array(106,0,732,582),8806=>array(106,-83,732,638),8807=>array(106,-83,732,638),8808=>array(106,-164,732,638),8809=>array(106,-164,732,638),8810=>array(72,22,975,609),8811=>array(72,22,975,609),8812=>array(86,-132,378,759),8813=>array(105,13,732,613),8814=>array(106,2,732,674),8815=>array(106,-47,732,625),8816=>array(106,-102,732,667),8817=>array(106,-102,732,667),8818=>array(106,-55,732,582),8819=>array(106,-39,732,582),8820=>array(106,-105,732,664),8821=>array(106,-102,732,667),8822=>array(102,-87,732,686),8823=>array(102,-87,732,686),8824=>array(102,-197,732,797),8825=>array(102,-197,732,797),8826=>array(106,-38,732,664),8827=>array(106,-38,732,664),8828=>array(106,-105,732,667),8829=>array(106,-105,732,667),8830=>array(106,-85,732,667),8831=>array(106,-85,732,667),8832=>array(106,-61,732,764),8833=>array(106,-138,732,687),8834=>array(100,80,738,546),8835=>array(100,80,738,546),8836=>array(100,-96,738,726),8837=>array(100,-100,738,722),8838=>array(93,0,732,613),8839=>array(106,0,745,613),8840=>array(93,-116,732,730),8841=>array(106,-116,745,730),8842=>array(93,-73,732,614),8843=>array(93,-73,732,614),8844=>array(129,0,603,579),8845=>array(129,0,603,579),8846=>array(129,2,603,582),8847=>array(106,0,732,568),8848=>array(106,0,732,568),8849=>array(106,-83,732,630),8850=>array(106,-83,732,630),8851=>array(106,0,674,626),8852=>array(106,0,674,626),8853=>array(91,-14,747,643),8854=>array(91,-14,747,643),8855=>array(91,-14,747,643),8856=>array(91,-14,747,643),8857=>array(91,-14,747,643),8858=>array(91,-14,747,643),8859=>array(91,-14,747,643),8860=>array(91,-14,747,643),8861=>array(91,-14,747,643),8862=>array(91,-14,747,643),8863=>array(91,-14,747,643),8864=>array(91,-14,747,643),8865=>array(91,-14,747,643),8866=>array(85,0,786,700),8867=>array(85,0,786,700),8868=>array(85,0,786,700),8869=>array(85,0,786,700),8870=>array(85,0,436,700),8871=>array(85,0,436,700),8872=>array(85,0,786,700),8873=>array(85,0,786,700),8874=>array(85,0,786,700),8875=>array(85,0,786,700),8876=>array(85,-40,786,740),8877=>array(85,-40,786,740),8878=>array(85,-40,786,740),8879=>array(85,-40,786,740),8880=>array(106,-43,724,670),8881=>array(106,-43,724,670),8882=>array(106,15,732,612),8883=>array(106,15,732,612),8884=>array(106,-48,732,674),8885=>array(106,-48,732,674),8886=>array(59,175,941,454),8887=>array(59,175,941,454),8888=>array(48,175,790,454),8889=>array(59,-47,779,674),8890=>array(116,0,404,701),8891=>array(98,0,634,740),8892=>array(98,0,634,740),8893=>array(98,0,634,740),8894=>array(138,0,700,562),8895=>array(138,0,700,562),8896=>array(-3,-192,823,719),8897=>array(-3,-192,823,719),8898=>array(68,-192,752,719),8899=>array(68,-192,752,719),8900=>array(3,-233,491,807),8901=>array(107,285,210,409),8902=>array(122,149,504,512),8903=>array(106,15,732,613),8904=>array(106,-30,894,657),8905=>array(106,-30,894,657),8906=>array(106,-30,894,657),8907=>array(106,-30,894,657),8908=>array(106,-30,894,657),8909=>array(106,172,732,494),8910=>array(48,0,684,579),8911=>array(48,0,684,579),8912=>array(93,-3,732,630),8913=>array(106,-3,745,630),8914=>array(103,0,735,663),8915=>array(103,-14,735,649),8916=>array(186,0,652,729),8917=>array(106,-100,732,729),8918=>array(106,46,732,581),8919=>array(106,46,732,581),8920=>array(72,22,1350,609),8921=>array(72,22,1350,609),8922=>array(106,-228,732,854),8923=>array(106,-228,732,854),8924=>array(106,0,732,582),8925=>array(106,0,732,582),8926=>array(106,-105,732,667),8927=>array(106,-105,732,667),8928=>array(106,-178,732,764),8929=>array(106,-178,732,764),8930=>array(106,-141,732,767),8931=>array(106,-141,732,767),8932=>array(106,-94,732,619),8933=>array(106,-94,732,619),8934=>array(106,-138,732,582),8935=>array(106,-138,732,582),8936=>array(106,-169,732,667),8937=>array(110,-171,736,667),8938=>array(106,-130,732,756),8939=>array(106,-130,732,756),8940=>array(106,-189,732,815),8941=>array(104,-189,730,815),8942=>array(448,-93,551,715),8943=>array(115,249,884,373),8944=>array(115,-93,884,715),8945=>array(115,-93,884,715),8946=>array(43,-10,957,710),8947=>array(85,-10,786,710),8948=>array(106,76,612,550),8949=>array(85,-10,786,910),8950=>array(85,-10,786,853),8951=>array(106,76,612,686),8952=>array(85,-144,786,710),8953=>array(85,-10,786,710),8954=>array(43,-10,957,710),8955=>array(85,-10,786,710),8956=>array(106,76,612,550),8957=>array(85,-10,786,853),8958=>array(106,76,612,686),8959=>array(106,0,765,720),8960=>array(36,-18,567,514),8961=>array(56,162,540,443),8962=>array(71,0,563,596),8963=>array(205,481,632,732),8964=>array(205,0,632,251),8965=>array(205,0,632,406),8966=>array(205,0,632,513),8967=>array(154,-29,334,788),8968=>array(86,-132,293,760),8969=>array(97,-132,304,760),8970=>array(86,-132,293,760),8971=>array(97,-132,304,760),8972=>array(369,-77,759,313),8973=>array(49,-77,439,313),8974=>array(369,243,759,634),8975=>array(49,243,439,634),8976=>array(106,140,732,421),8977=>array(3,126,510,634),8984=>array(121,0,879,759),8985=>array(106,140,732,421),8988=>array(86,425,403,760),8989=>array(65,425,383,760),8990=>array(86,-70,403,264),8991=>array(65,-70,383,264),8992=>array(210,-250,497,928),8993=>array(21,-237,307,942),8996=>array(76,227,1076,575),8997=>array(76,0,1076,575),8998=>array(76,0,1414,760),8999=>array(76,0,1076,760),9000=>array(59,0,1385,729),9003=>array(0,0,1338,760),9004=>array(73,-91,800,748),9075=>array(81,0,304,547),9076=>array(91,-208,580,560),9077=>array(66,-14,769,547),9082=>array(55,-12,611,559),9085=>array(13,-228,745,102),9095=>array(76,0,1096,748),9108=>array(17,0,856,727),9115=>array(86,-252,414,946),9116=>array(86,-252,181,942),9117=>array(86,-240,414,942),9118=>array(86,-252,414,946),9119=>array(319,-252,414,942),9120=>array(86,-240,414,942),9121=>array(86,-252,414,928),9122=>array(86,-252,181,942),9123=>array(86,-240,414,942),9124=>array(86,-252,414,928),9125=>array(319,-252,414,935),9126=>array(86,-240,414,935),9127=>array(330,-261,668,928),9128=>array(82,-252,420,940),9129=>array(330,-240,668,940),9130=>array(330,-256,420,943),9131=>array(82,-261,420,928),9132=>array(330,-252,668,940),9133=>array(82,-240,420,940),9134=>array(210,-250,307,942),9166=>array(27,65,781,729),9167=>array(91,0,854,596),9187=>array(73,-91,800,748),9189=>array(3,75,766,444),9192=>array(43,-129,601,294),9250=>array(-62,-14,580,760),9251=>array(71,-228,563,102),9312=>array(74,-10,822,738),9313=>array(74,-10,822,738),9314=>array(74,-10,822,738),9315=>array(74,-10,822,738),9316=>array(74,-10,822,738),9317=>array(74,-10,822,738),9318=>array(74,-10,822,738),9319=>array(74,-10,822,738),9320=>array(74,-10,822,738),9321=>array(74,-10,822,738),9472=>array(-10,242,612,326),9473=>array(-10,200,612,368),9474=>array(262,-302,340,973),9475=>array(223,-302,379,973),9476=>array(-10,242,612,326),9477=>array(-10,200,612,368),9478=>array(262,-302,340,973),9479=>array(223,-302,379,973),9480=>array(-10,242,612,326),9481=>array(-10,200,612,368),9482=>array(262,-302,340,973),9483=>array(223,-302,379,973),9484=>array(262,-302,612,326),9485=>array(262,-302,612,368),9486=>array(223,-302,612,326),9487=>array(223,-302,612,368),9488=>array(-10,-302,340,326),9489=>array(-10,-302,340,368),9490=>array(-10,-302,379,326),9491=>array(-10,-302,379,368),9492=>array(262,242,612,973),9493=>array(262,200,612,973),9494=>array(223,242,612,973),9495=>array(223,200,612,973),9496=>array(-10,242,340,973),9497=>array(-10,200,340,973),9498=>array(-10,242,379,973),9499=>array(-10,200,379,973),9500=>array(262,-302,612,973),9501=>array(262,-302,612,973),9502=>array(223,-302,612,973),9503=>array(223,-302,612,973),9504=>array(223,-302,612,973),9505=>array(223,-302,612,973),9506=>array(223,-302,612,973),9507=>array(223,-302,612,973),9508=>array(-10,-302,340,973),9509=>array(-10,-302,340,973),9510=>array(-10,-302,379,973),9511=>array(-10,-302,379,973),9512=>array(-10,-302,379,973),9513=>array(-10,-302,379,973),9514=>array(-10,-302,379,973),9515=>array(-10,-302,379,973),9516=>array(-10,-302,612,326),9517=>array(-10,-302,612,368),9518=>array(-10,-302,612,368),9519=>array(-10,-302,612,368),9520=>array(-10,-302,612,326),9521=>array(-10,-302,612,368),9522=>array(-10,-302,612,368),9523=>array(-10,-302,612,368),9524=>array(-10,242,612,973),9525=>array(-10,200,612,973),9526=>array(-10,200,612,973),9527=>array(-10,200,612,973),9528=>array(-10,242,612,973),9529=>array(-10,200,612,973),9530=>array(-10,200,612,973),9531=>array(-10,200,612,973),9532=>array(-10,-302,612,973),9533=>array(-10,-302,612,973),9534=>array(-10,-302,612,973),9535=>array(-10,-302,612,973),9536=>array(-10,-302,612,973),9537=>array(-10,-302,612,973),9538=>array(-10,-302,612,973),9539=>array(-10,-302,612,973),9540=>array(-10,-302,612,973),9541=>array(-10,-302,612,973),9542=>array(-10,-302,612,973),9543=>array(-10,-302,612,973),9544=>array(-10,-302,612,973),9545=>array(-10,-302,612,973),9546=>array(-10,-302,612,973),9547=>array(-10,-302,612,973),9548=>array(-10,242,612,326),9549=>array(-10,200,612,368),9550=>array(262,-302,340,973),9551=>array(223,-302,379,973),9552=>array(-10,158,612,410),9553=>array(184,-302,418,973),9554=>array(262,-302,612,410),9555=>array(184,-302,612,326),9556=>array(184,-302,612,410),9557=>array(-10,-302,340,410),9558=>array(-10,-302,418,326),9559=>array(-10,-302,418,410),9560=>array(262,158,612,973),9561=>array(184,242,612,973),9562=>array(184,158,612,973),9563=>array(-10,158,340,973),9564=>array(-10,242,418,973),9565=>array(-10,158,418,973),9566=>array(262,-302,612,973),9567=>array(184,-302,612,973),9568=>array(184,-302,612,973),9569=>array(-10,-302,340,973),9570=>array(-10,-302,418,973),9571=>array(-10,-302,418,973),9572=>array(-10,-302,612,410),9573=>array(-10,-302,612,326),9574=>array(-10,-302,612,410),9575=>array(-10,158,612,973),9576=>array(-10,242,612,973),9577=>array(-10,158,612,973),9578=>array(-10,-302,612,973),9579=>array(-10,-302,612,973),9580=>array(-10,-302,612,973),9581=>array(262,-302,612,326),9582=>array(-10,-302,340,326),9583=>array(-10,242,340,973),9584=>array(262,242,612,973),9585=>array(-53,-302,655,973),9586=>array(-53,-302,655,973),9587=>array(-53,-302,655,973),9588=>array(-10,242,311,326),9589=>array(262,284,340,973),9590=>array(311,242,612,326),9591=>array(262,-302,340,284),9592=>array(-10,200,311,368),9593=>array(223,284,379,973),9594=>array(311,200,612,368),9595=>array(223,-302,379,284),9596=>array(-10,200,612,368),9597=>array(223,-302,379,973),9598=>array(-10,200,612,368),9599=>array(223,-302,379,973),9600=>array(-10,260,779,770),9601=>array(-10,-250,779,-123),9602=>array(-10,-250,779,-5),9603=>array(-10,-250,779,132),9604=>array(-10,-250,779,260),9605=>array(-10,-250,779,387),9606=>array(-10,-250,779,515),9607=>array(-10,-250,779,642),9608=>array(-10,-250,779,770),9609=>array(-10,-250,680,770),9610=>array(-10,-250,582,770),9611=>array(-10,-250,483,770),9612=>array(-10,-250,384,770),9613=>array(-10,-250,286,770),9614=>array(-10,-250,187,770),9615=>array(-10,-250,88,770),9616=>array(384,-250,778,770),9617=>array(-10,-250,680,770),9618=>array(-10,-250,775,770),9619=>array(-10,-250,779,770),9620=>array(-10,642,779,770),9621=>array(680,-250,778,770),9622=>array(-10,-250,385,260),9623=>array(384,-250,779,260),9624=>array(-10,260,385,770),9625=>array(-10,-250,779,770),9626=>array(-10,-250,779,770),9627=>array(-10,-250,779,770),9628=>array(-10,-250,779,770),9629=>array(384,260,779,770),9630=>array(-10,-250,779,770),9631=>array(-10,-250,779,770),9632=>array(91,-123,854,643),9633=>array(91,-123,854,643),9634=>array(91,-123,854,643),9635=>array(91,-123,854,643),9636=>array(91,-123,854,643),9637=>array(91,-123,854,643),9638=>array(91,-123,854,643),9639=>array(91,-123,854,643),9640=>array(91,-123,854,643),9641=>array(91,-123,854,643),9642=>array(91,11,587,509),9643=>array(91,11,587,509),9644=>array(91,75,854,444),9645=>array(91,75,854,444),9646=>array(91,-122,459,642),9647=>array(91,-122,459,642),9648=>array(3,75,766,444),9649=>array(3,75,766,444),9650=>array(3,-123,766,643),9651=>array(3,-123,766,643),9652=>array(3,11,499,509),9653=>array(3,11,499,509),9654=>array(3,-123,766,643),9655=>array(3,-123,766,643),9656=>array(3,11,499,509),9657=>array(3,11,499,509),9658=>array(3,11,766,509),9659=>array(3,11,766,509),9660=>array(3,-123,766,643),9661=>array(3,-123,766,643),9662=>array(3,11,499,509),9663=>array(3,11,499,509),9664=>array(3,-123,766,643),9665=>array(3,-123,766,643),9666=>array(3,11,499,509),9667=>array(3,11,499,509),9668=>array(3,11,766,509),9669=>array(3,11,766,509),9670=>array(3,-123,766,643),9671=>array(3,-123,766,643),9672=>array(3,-123,766,643),9673=>array(55,-125,818,645),9674=>array(3,-233,491,807),9675=>array(55,-125,818,645),9676=>array(56,-125,817,644),9677=>array(55,-125,818,645),9678=>array(55,-125,818,645),9679=>array(55,-123,818,641),9680=>array(55,-123,818,641),9681=>array(55,-123,818,641),9682=>array(55,-123,818,641),9683=>array(55,-123,818,641),9684=>array(55,-123,818,641),9685=>array(55,-123,818,641),9686=>array(55,-125,436,645),9687=>array(91,-125,472,645),9688=>array(91,-10,700,770),9689=>array(91,-250,879,770),9690=>array(91,260,879,770),9691=>array(91,-250,879,260),9692=>array(3,260,384,645),9693=>array(3,260,384,645),9694=>array(3,-125,384,260),9695=>array(3,-125,384,260),9696=>array(55,260,818,645),9697=>array(55,-125,818,260),9698=>array(3,-123,766,643),9699=>array(3,-123,766,643),9700=>array(3,-123,766,643),9701=>array(3,-123,766,643),9702=>array(150,227,440,516),9703=>array(91,-123,854,643),9704=>array(91,-123,854,643),9705=>array(91,-123,854,643),9706=>array(91,-123,854,643),9707=>array(91,-123,854,643),9708=>array(3,-123,766,643),9709=>array(3,-123,766,643),9710=>array(3,-123,766,643),9711=>array(55,-250,1064,770),9712=>array(91,-123,854,643),9713=>array(91,-123,854,643),9714=>array(91,-123,854,643),9715=>array(91,-123,854,643),9716=>array(55,-123,818,641),9717=>array(55,-123,818,641),9718=>array(55,-123,818,641),9719=>array(55,-123,818,641),9720=>array(3,-123,766,643),9721=>array(3,-123,766,643),9722=>array(3,-123,766,643),9723=>array(91,-66,739,585),9724=>array(91,-66,739,585),9725=>array(91,-17,642,537),9726=>array(91,-17,642,537),9727=>array(3,-123,766,643),9728=>array(83,0,813,729),9729=>array(51,-2,949,360),9730=>array(49,0,848,729),9731=>array(83,-0,813,927),9732=>array(64,0,833,880),9733=>array(65,-4,832,723),9734=>array(65,-4,832,723),9735=>array(83,2,490,729),9736=>array(83,0,813,731),9737=>array(83,0,813,730),9738=>array(61,0,828,727),9739=>array(61,0,828,723),9740=>array(61,-1,610,722),9741=>array(61,0,952,723),9742=>array(68,0,1177,729),9743=>array(71,0,1180,729),9744=>array(90,0,807,729),9745=>array(89,0,808,729),9746=>array(89,0,808,729),9747=>array(75,78,457,656),9748=>array(49,0,870,933),9749=>array(74,0,822,731),9750=>array(84,0,813,731),9751=>array(84,0,813,727),9752=>array(78,0,819,729),9753=>array(83,140,813,574),9754=>array(84,113,813,569),9755=>array(84,113,813,569),9756=>array(87,104,810,569),9757=>array(72,0,537,724),9758=>array(86,103,810,569),9759=>array(72,-3,537,720),9760=>array(61,0,835,730),9761=>array(84,0,813,730),9762=>array(83,0,813,730),9763=>array(49,0,848,730),9764=>array(49,-2,620,727),9765=>array(83,0,663,731),9766=>array(83,-1,566,731),9767=>array(83,0,701,911),9768=>array(83,0,462,730),9769=>array(83,-1,813,729),9770=>array(87,0,810,730),9771=>array(83,0,814,731),9772=>array(83,0,627,731),9773=>array(83,0,813,730),9774=>array(83,0,813,730),9775=>array(83,0,813,730),9776=>array(83,0,813,729),9777=>array(83,0,814,729),9778=>array(83,0,813,729),9779=>array(83,0,813,729),9780=>array(83,0,813,729),9781=>array(83,0,813,729),9782=>array(83,0,813,729),9783=>array(83,0,813,729),9784=>array(66,-11,831,735),9785=>array(83,-73,959,804),9786=>array(83,-73,959,804),9787=>array(83,-73,959,804),9788=>array(83,0,813,730),9789=>array(358,0,814,730),9790=>array(83,0,539,730),9791=>array(85,-102,528,732),9792=>array(85,-125,647,731),9793=>array(85,-14,647,843),9794=>array(79,-14,831,720),9795=>array(166,0,730,730),9796=>array(219,0,677,730),9797=>array(121,0,774,730),9798=>array(127,0,769,730),9799=>array(240,0,656,730),9800=>array(45,0,851,731),9801=>array(89,0,807,730),9802=>array(94,0,802,731),9803=>array(113,31,784,679),9804=>array(140,0,756,730),9805=>array(53,-180,843,730),9806=>array(83,52,813,653),9807=>array(34,-96,863,730),9808=>array(83,-0,813,730),9809=>array(94,0,802,730),9810=>array(86,153,810,579),9811=>array(157,0,739,730),9812=>array(98,0,798,730),9813=>array(110,0,786,730),9814=>array(167,-1,729,729),9815=>array(214,0,683,730),9816=>array(165,0,732,730),9817=>array(148,-0,748,730),9818=>array(98,0,798,730),9819=>array(110,0,786,730),9820=>array(167,-1,729,729),9821=>array(214,0,683,730),9822=>array(162,0,734,730),9823=>array(148,-0,748,730),9824=>array(158,0,738,729),9825=>array(90,0,806,727),9826=>array(168,0,728,729),9827=>array(111,0,785,729),9828=>array(157,0,739,729),9829=>array(89,0,808,729),9830=>array(168,0,728,729),9831=>array(111,0,785,732),9832=>array(105,-1,791,729),9833=>array(84,-5,339,729),9834=>array(84,-5,554,729),9835=>array(184,-102,712,729),9836=>array(92,-5,804,729),9837=>array(88,-3,392,731),9838=>array(84,0,273,731),9839=>array(84,0,400,731),9840=>array(84,0,664,731),9841=>array(64,0,701,731),9842=>array(84,0,813,709),9843=>array(76,16,820,731),9844=>array(76,16,820,731),9845=>array(76,16,820,731),9846=>array(76,16,820,731),9847=>array(76,16,820,731),9848=>array(76,16,820,731),9849=>array(76,16,820,731),9850=>array(76,16,820,731),9851=>array(84,0,812,704),9852=>array(83,0,814,731),9853=>array(83,0,814,731),9854=>array(83,0,814,731),9855=>array(149,1,747,731),9856=>array(73,0,797,725),9857=>array(73,0,797,725),9858=>array(73,0,797,725),9859=>array(73,0,797,725),9860=>array(73,0,797,725),9861=>array(73,0,797,725),9862=>array(83,0,813,731),9863=>array(83,0,813,731),9864=>array(83,0,813,731),9865=>array(83,0,813,731),9866=>array(83,0,813,98),9867=>array(83,0,813,98),9868=>array(83,0,813,413),9869=>array(83,0,813,413),9870=>array(83,0,813,413),9871=>array(83,0,813,413),9872=>array(168,3,728,731),9873=>array(168,3,728,731),9874=>array(52,0,844,731),9875=>array(97,-10,799,732),9876=>array(131,0,765,729),9877=>array(61,-10,479,732),9878=>array(59,-10,837,732),9879=>array(61,0,835,732),9880=>array(145,0,750,732),9881=>array(95,-17,802,727),9882=>array(128,-9,768,733),9883=>array(127,0,769,728),9884=>array(127,0,769,729),9888=>array(49,0,848,729),9889=>array(83,2,619,730),9890=>array(85,-125,919,731),9891=>array(79,-206,1023,720),9892=>array(85,-186,1109,856),9893=>array(85,-125,837,917),9894=>array(131,-14,727,869),9895=>array(101,-170,741,884),9896=>array(188,-14,650,869),9897=>array(4,133,829,596),9898=>array(187,133,651,596),9899=>array(187,133,651,596),9900=>array(247,194,591,537),9901=>array(174,194,664,537),9902=>array(41,169,797,560),9903=>array(5,194,833,536),9904=>array(103,237,757,540),9905=>array(211,42,626,698),9906=>array(85,-125,647,731),9907=>array(168,-125,646,731),9908=>array(86,-125,646,731),9909=>array(86,-125,646,731),9910=>array(59,-118,791,643),9911=>array(194,-104,595,710),9912=>array(158,-125,543,731),9920=>array(42,4,796,553),9921=>array(42,4,796,724),9922=>array(42,4,796,553),9923=>array(42,4,796,724),9954=>array(85,-14,647,843),9985=>array(11,190,803,635),9986=>array(42,141,784,588),9987=>array(11,94,803,539),9988=>array(36,119,824,613),9990=>array(42,-14,796,742),9991=>array(42,-14,796,742),9992=>array(59,21,782,708),9993=>array(64,107,773,622),9996=>array(212,0,561,742),9997=>array(21,83,802,678),9998=>array(89,75,724,710),9999=>array(26,198,819,530),10000=>array(89,75,724,710),10001=>array(43,185,757,544),10002=>array(67,209,757,520),10003=>array(150,97,667,630),10004=>array(116,87,721,631),10005=>array(126,72,711,657),10006=>array(85,31,752,698),10007=>array(118,-9,701,732),10008=>array(123,0,754,739),10009=>array(55,0,783,729),10010=>array(55,0,783,729),10011=>array(55,0,783,729),10012=>array(55,0,783,729),10013=>array(165,0,673,729),10014=>array(131,0,678,729),10015=>array(155,0,683,729),10016=>array(55,0,783,729),10017=>array(91,-13,747,744),10018=>array(41,-14,797,742),10019=>array(42,-12,796,742),10020=>array(41,-14,797,742),10021=>array(41,-13,797,743),10022=>array(42,-14,796,745),10023=>array(42,-14,796,745),10025=>array(23,-10,815,744),10026=>array(42,-14,796,742),10027=>array(23,-9,814,743),10028=>array(23,-10,815,744),10029=>array(23,-9,814,743),10030=>array(23,-9,814,743),10031=>array(23,-9,814,743),10032=>array(24,12,815,714),10033=>array(64,0,773,729),10034=>array(74,0,764,729),10035=>array(55,0,783,729),10036=>array(31,-14,787,742),10037=>array(41,-14,797,742),10038=>array(91,-14,747,742),10039=>array(41,-14,797,742),10040=>array(41,-14,797,742),10041=>array(41,-14,797,742),10042=>array(55,0,783,729),10043=>array(82,-14,756,742),10044=>array(82,-14,756,742),10045=>array(79,-14,759,742),10046=>array(79,-14,759,742),10047=>array(54,0,784,709),10048=>array(54,0,784,709),10049=>array(41,-14,797,742),10050=>array(42,-14,796,742),10051=>array(79,-14,759,742),10052=>array(89,0,749,729),10053=>array(76,0,762,729),10054=>array(63,2,773,729),10055=>array(79,-13,759,742),10056=>array(47,-13,791,730),10057=>array(47,-13,791,730),10058=>array(41,-13,797,743),10059=>array(41,-13,797,743),10061=>array(50,-10,847,738),10063=>array(60,-49,837,729),10064=>array(60,0,837,777),10065=>array(60,-49,837,729),10066=>array(60,0,837,777),10070=>array(83,-2,813,728),10072=>array(377,-240,460,760),10073=>array(336,-240,502,760),10074=>array(253,-240,585,760),10075=>array(85,395,264,729),10076=>array(59,395,237,729),10077=>array(85,395,479,729),10078=>array(59,395,453,729),10081=>array(155,-93,772,851),10082=>array(202,-17,636,742),10083=>array(163,-17,675,742),10084=>array(54,83,784,645),10085=>array(168,-1,729,729),10086=>array(62,21,724,702),10087=>array(78,169,759,564),10088=>array(196,-139,648,769),10089=>array(196,-139,648,769),10090=>array(264,-132,574,758),10091=>array(264,-132,574,758),10092=>array(215,-240,607,760),10093=>array(232,-240,623,760),10094=>array(142,-240,685,760),10095=>array(153,-240,696,760),10096=>array(167,-240,656,760),10097=>array(183,-240,672,760),10098=>array(346,-241,535,760),10099=>array(303,-241,492,760),10100=>array(175,-163,634,760),10101=>array(204,-163,663,760),10102=>array(74,-10,822,738),10103=>array(74,-10,822,738),10104=>array(74,-10,822,738),10105=>array(74,-10,822,738),10106=>array(74,-10,822,738),10107=>array(74,-10,822,738),10108=>array(74,-10,822,738),10109=>array(74,-10,822,738),10110=>array(74,-10,822,738),10111=>array(74,-10,822,738),10112=>array(4,-52,833,780),10113=>array(4,-52,833,780),10114=>array(4,-52,833,780),10115=>array(4,-52,833,780),10116=>array(4,-52,833,780),10117=>array(4,-52,833,780),10118=>array(4,-52,833,780),10119=>array(4,-52,833,780),10120=>array(4,-52,833,780),10121=>array(4,-52,833,780),10122=>array(4,-52,833,780),10123=>array(4,-52,833,780),10124=>array(4,-52,833,780),10125=>array(4,-52,833,780),10126=>array(4,-52,833,780),10127=>array(4,-52,833,780),10128=>array(4,-52,833,780),10129=>array(4,-52,833,780),10130=>array(4,-52,833,780),10131=>array(4,-52,833,780),10132=>array(57,75,789,552),10136=>array(123,55,682,614),10137=>array(57,100,789,527),10138=>array(123,13,682,572),10139=>array(57,129,789,498),10140=>array(57,57,764,570),10141=>array(57,100,789,527),10142=>array(57,100,789,527),10143=>array(57,100,789,527),10144=>array(57,100,789,527),10145=>array(57,65,811,562),10146=>array(111,94,789,533),10147=>array(111,94,789,533),10148=>array(111,-4,789,631),10149=>array(57,100,789,548),10150=>array(57,79,789,527),10151=>array(240,-7,606,634),10152=>array(57,100,789,527),10153=>array(57,75,765,552),10154=>array(57,75,765,552),10155=>array(21,12,794,586),10156=>array(21,12,794,586),10157=>array(135,0,774,574),10158=>array(135,0,774,574),10159=>array(62,49,799,574),10161=>array(62,49,799,574),10162=>array(154,-20,721,585),10163=>array(63,157,789,470),10164=>array(81,55,682,655),10165=>array(57,173,789,454),10166=>array(82,-29,682,572),10167=>array(82,55,682,655),10168=>array(57,172,789,455),10169=>array(82,-28,682,572),10170=>array(56,84,789,543),10171=>array(73,140,779,487),10172=>array(79,167,774,460),10173=>array(79,118,774,509),10174=>array(57,81,789,546),10181=>array(54,-163,352,769),10182=>array(39,-163,336,769),10208=>array(3,-233,491,807),10214=>array(86,-132,398,760),10215=>array(85,-132,398,760),10216=>array(89,-132,310,759),10217=>array(80,-132,301,759),10218=>array(89,-132,476,759),10219=>array(80,-132,467,759),10224=>array(44,0,794,732),10225=>array(43,-3,793,729),10226=>array(39,53,814,658),10227=>array(39,61,814,666),10228=>array(57,-14,1108,643),10229=>array(49,100,1376,527),10230=>array(57,100,1385,527),10231=>array(49,100,1385,527),10232=>array(49,100,1376,527),10233=>array(57,100,1385,527),10234=>array(49,100,1385,527),10235=>array(49,100,1376,527),10236=>array(57,100,1385,527),10237=>array(49,100,1376,527),10238=>array(57,100,1385,527),10239=>array(57,100,1385,527),10240=>array(146,635,293,781),10241=>array(146,635,293,781),10242=>array(146,358,293,504),10243=>array(146,358,293,781),10244=>array(146,82,293,228),10245=>array(146,82,293,781),10246=>array(146,82,293,504),10247=>array(146,82,293,781),10248=>array(439,635,586,781),10249=>array(146,635,586,781),10250=>array(146,358,586,781),10251=>array(146,358,586,781),10252=>array(146,82,586,781),10253=>array(146,82,586,781),10254=>array(146,82,586,781),10255=>array(146,82,586,781),10256=>array(439,358,586,504),10257=>array(146,358,586,781),10258=>array(146,358,586,504),10259=>array(146,358,586,781),10260=>array(146,82,586,504),10261=>array(146,82,586,781),10262=>array(146,82,586,504),10263=>array(146,82,586,781),10264=>array(439,358,586,781),10265=>array(146,358,586,781),10266=>array(146,358,586,781),10267=>array(146,358,586,781),10268=>array(146,82,586,781),10269=>array(146,82,586,781),10270=>array(146,82,586,781),10271=>array(146,82,586,781),10272=>array(439,82,586,228),10273=>array(146,82,586,781),10274=>array(146,82,586,504),10275=>array(146,82,586,781),10276=>array(146,82,586,228),10277=>array(146,82,586,781),10278=>array(146,82,586,504),10279=>array(146,82,586,781),10280=>array(439,82,586,781),10281=>array(146,82,586,781),10282=>array(146,82,586,781),10283=>array(146,82,586,781),10284=>array(146,82,586,781),10285=>array(146,82,586,781),10286=>array(146,82,586,781),10287=>array(146,82,586,781),10288=>array(439,82,586,504),10289=>array(146,82,586,781),10290=>array(146,82,586,504),10291=>array(146,82,586,781),10292=>array(146,82,586,504),10293=>array(146,82,586,781),10294=>array(146,82,586,504),10295=>array(146,82,586,781),10296=>array(439,82,586,781),10297=>array(146,82,586,781),10298=>array(146,82,586,781),10299=>array(146,82,586,781),10300=>array(146,82,586,781),10301=>array(146,82,586,781),10302=>array(146,82,586,781),10303=>array(146,82,586,781),10304=>array(146,-195,293,-49),10305=>array(146,-195,293,781),10306=>array(146,-195,293,504),10307=>array(146,-195,293,781),10308=>array(146,-195,293,228),10309=>array(146,-195,293,781),10310=>array(146,-195,293,504),10311=>array(146,-195,293,781),10312=>array(146,-195,586,781),10313=>array(146,-195,586,781),10314=>array(146,-195,586,781),10315=>array(146,-195,586,781),10316=>array(146,-195,586,781),10317=>array(146,-195,586,781),10318=>array(146,-195,586,781),10319=>array(146,-195,586,781),10320=>array(146,-195,586,504),10321=>array(146,-195,586,781),10322=>array(146,-195,586,504),10323=>array(146,-195,586,781),10324=>array(146,-195,586,504),10325=>array(146,-195,586,781),10326=>array(146,-195,586,504),10327=>array(146,-195,586,781),10328=>array(146,-195,586,781),10329=>array(146,-195,586,781),10330=>array(146,-195,586,781),10331=>array(146,-195,586,781),10332=>array(146,-195,586,781),10333=>array(146,-195,586,781),10334=>array(146,-195,586,781),10335=>array(146,-195,586,781),10336=>array(146,-195,586,228),10337=>array(146,-195,586,781),10338=>array(146,-195,586,504),10339=>array(146,-195,586,781),10340=>array(146,-195,586,228),10341=>array(146,-195,586,781),10342=>array(146,-195,586,504),10343=>array(146,-195,586,781),10344=>array(146,-195,586,781),10345=>array(146,-195,586,781),10346=>array(146,-195,586,781),10347=>array(146,-195,586,781),10348=>array(146,-195,586,781),10349=>array(146,-195,586,781),10350=>array(146,-195,586,781),10351=>array(146,-195,586,781),10352=>array(146,-195,586,504),10353=>array(146,-195,586,781),10354=>array(146,-195,586,504),10355=>array(146,-195,586,781),10356=>array(146,-195,586,504),10357=>array(146,-195,586,781),10358=>array(146,-195,586,504),10359=>array(146,-195,586,781),10360=>array(146,-195,586,781),10361=>array(146,-195,586,781),10362=>array(146,-195,586,781),10363=>array(146,-195,586,781),10364=>array(146,-195,586,781),10365=>array(146,-195,586,781),10366=>array(146,-195,586,781),10367=>array(146,-195,586,781),10368=>array(439,-195,586,-49),10369=>array(146,-195,586,781),10370=>array(146,-195,586,504),10371=>array(146,-195,586,781),10372=>array(146,-195,586,228),10373=>array(146,-195,586,781),10374=>array(146,-195,586,504),10375=>array(146,-195,586,781),10376=>array(439,-195,586,781),10377=>array(146,-195,586,781),10378=>array(146,-195,586,781),10379=>array(146,-195,586,781),10380=>array(146,-195,586,781),10381=>array(146,-195,586,781),10382=>array(146,-195,586,781),10383=>array(146,-195,586,781),10384=>array(439,-195,586,504),10385=>array(146,-195,586,781),10386=>array(146,-195,586,504),10387=>array(146,-195,586,781),10388=>array(146,-195,586,504),10389=>array(146,-195,586,781),10390=>array(146,-195,586,504),10391=>array(146,-195,586,781),10392=>array(439,-195,586,781),10393=>array(146,-195,586,781),10394=>array(146,-195,586,781),10395=>array(146,-195,586,781),10396=>array(146,-195,586,781),10397=>array(146,-195,586,781),10398=>array(146,-195,586,781),10399=>array(146,-195,586,781),10400=>array(439,-195,586,228),10401=>array(146,-195,586,781),10402=>array(146,-195,586,504),10403=>array(146,-195,586,781),10404=>array(146,-195,586,228),10405=>array(146,-195,586,781),10406=>array(146,-195,586,504),10407=>array(146,-195,586,781),10408=>array(439,-195,586,781),10409=>array(146,-195,586,781),10410=>array(146,-195,586,781),10411=>array(146,-195,586,781),10412=>array(146,-195,586,781),10413=>array(146,-195,586,781),10414=>array(146,-195,586,781),10415=>array(146,-195,586,781),10416=>array(439,-195,586,504),10417=>array(146,-195,586,781),10418=>array(146,-195,586,504),10419=>array(146,-195,586,781),10420=>array(146,-195,586,504),10421=>array(146,-195,586,781),10422=>array(146,-195,586,504),10423=>array(146,-195,586,781),10424=>array(439,-195,586,781),10425=>array(146,-195,586,781),10426=>array(146,-195,586,781),10427=>array(146,-195,586,781),10428=>array(146,-195,586,781),10429=>array(146,-195,586,781),10430=>array(146,-195,586,781),10431=>array(146,-195,586,781),10432=>array(146,-195,586,-49),10433=>array(146,-195,586,781),10434=>array(146,-195,586,504),10435=>array(146,-195,586,781),10436=>array(146,-195,586,228),10437=>array(146,-195,586,781),10438=>array(146,-195,586,504),10439=>array(146,-195,586,781),10440=>array(146,-195,586,781),10441=>array(146,-195,586,781),10442=>array(146,-195,586,781),10443=>array(146,-195,586,781),10444=>array(146,-195,586,781),10445=>array(146,-195,586,781),10446=>array(146,-195,586,781),10447=>array(146,-195,586,781),10448=>array(146,-195,586,504),10449=>array(146,-195,586,781),10450=>array(146,-195,586,504),10451=>array(146,-195,586,781),10452=>array(146,-195,586,504),10453=>array(146,-195,586,781),10454=>array(146,-195,586,504),10455=>array(146,-195,586,781),10456=>array(146,-195,586,781),10457=>array(146,-195,586,781),10458=>array(146,-195,586,781),10459=>array(146,-195,586,781),10460=>array(146,-195,586,781),10461=>array(146,-195,586,781),10462=>array(146,-195,586,781),10463=>array(146,-195,586,781),10464=>array(146,-195,586,228),10465=>array(146,-195,586,781),10466=>array(146,-195,586,504),10467=>array(146,-195,586,781),10468=>array(146,-195,586,228),10469=>array(146,-195,586,781),10470=>array(146,-195,586,504),10471=>array(146,-195,586,781),10472=>array(146,-195,586,781),10473=>array(146,-195,586,781),10474=>array(146,-195,586,781),10475=>array(146,-195,586,781),10476=>array(146,-195,586,781),10477=>array(146,-195,586,781),10478=>array(146,-195,586,781),10479=>array(146,-195,586,781),10480=>array(146,-195,586,504),10481=>array(146,-195,586,781),10482=>array(146,-195,586,504),10483=>array(146,-195,586,781),10484=>array(146,-195,586,504),10485=>array(146,-195,586,781),10486=>array(146,-195,586,504),10487=>array(146,-195,586,781),10488=>array(146,-195,586,781),10489=>array(146,-195,586,781),10490=>array(146,-195,586,781),10491=>array(146,-195,586,781),10492=>array(146,-195,586,781),10493=>array(146,-195,586,781),10494=>array(146,-195,586,781),10495=>array(146,-195,586,781),10502=>array(49,100,781,527),10503=>array(57,100,789,527),10506=>array(125,0,713,732),10507=>array(125,-3,713,729),10560=>array(39,63,644,838),10561=>array(39,63,644,838),10627=>array(125,-163,609,760),10628=>array(125,-163,609,760),10702=>array(106,-226,732,747),10703=>array(106,15,894,612),10704=>array(106,15,894,612),10705=>array(106,-30,894,657),10706=>array(106,-30,894,657),10707=>array(106,-30,894,657),10708=>array(106,-30,894,657),10709=>array(106,-30,894,657),10731=>array(3,-233,491,807),10746=>array(106,0,732,627),10747=>array(106,0,732,627),10752=>array(28,-198,972,748),10753=>array(28,-198,972,748),10754=>array(28,-198,972,748),10764=>array(57,-212,1268,757),10765=>array(57,-212,464,757),10766=>array(57,-212,464,757),10767=>array(57,-212,464,757),10768=>array(57,-212,464,757),10769=>array(57,-212,522,757),10770=>array(57,-212,464,757),10771=>array(57,-212,464,757),10772=>array(57,-212,555,757),10773=>array(57,-212,464,757),10774=>array(57,-212,464,757),10775=>array(-32,-212,553,757),10776=>array(57,-212,464,757),10777=>array(57,-212,464,757),10778=>array(57,-212,464,757),10779=>array(57,-212,469,872),10780=>array(52,-327,464,757),10799=>array(137,31,701,596),10858=>array(106,228,732,552),10859=>array(106,78,732,552),10877=>array(106,-123,732,581),10878=>array(106,-123,732,581),10879=>array(106,-123,733,581),10880=>array(106,-123,732,581),10881=>array(106,-123,732,644),10882=>array(106,-123,732,644),10883=>array(106,-123,733,759),10884=>array(106,-123,732,756),10885=>array(106,-132,732,663),10886=>array(106,-132,732,663),10887=>array(106,-121,732,582),10888=>array(106,-121,732,582),10889=>array(106,-204,732,663),10890=>array(106,-204,732,663),10891=>array(106,-311,732,791),10892=>array(106,-311,732,791),10893=>array(106,-124,732,663),10894=>array(106,-124,732,663),10895=>array(106,-241,732,756),10896=>array(106,-241,732,756),10897=>array(106,-229,732,730),10898=>array(106,-229,732,730),10899=>array(106,-224,732,741),10900=>array(106,-224,732,741),10901=>array(106,-61,732,644),10902=>array(106,-61,732,644),10903=>array(106,-61,733,644),10904=>array(106,-61,732,644),10905=>array(106,-36,732,685),10906=>array(106,-36,732,685),10907=>array(106,-31,732,725),10908=>array(106,-31,732,725),10909=>array(106,8,732,645),10910=>array(106,23,732,645),10911=>array(106,-176,732,729),10912=>array(106,-176,732,729),10926=>array(106,50,732,601),10927=>array(106,-24,732,667),10928=>array(106,-24,732,667),10929=>array(106,-145,732,667),10930=>array(106,-145,732,667),10931=>array(106,-121,732,662),10932=>array(106,-121,732,662),10933=>array(106,-195,732,662),10934=>array(106,-195,732,662),10935=>array(106,-191,732,693),10936=>array(106,-191,732,693),10937=>array(106,-259,732,693),10938=>array(106,-259,732,693),11001=>array(106,-171,732,585),11002=>array(106,-171,732,585),11008=>array(88,-27,703,587),11009=>array(141,-27,755,587),11010=>array(88,25,703,640),11011=>array(141,25,755,640),11012=>array(27,65,789,562),11013=>array(27,65,781,562),11014=>array(171,0,667,754),11015=>array(171,-25,667,729),11016=>array(88,-27,703,587),11017=>array(141,-27,755,587),11018=>array(88,25,703,640),11019=>array(141,25,755,640),11020=>array(27,65,789,562),11021=>array(171,-25,667,754),11022=>array(57,-3,790,355),11023=>array(57,272,790,630),11024=>array(35,-3,768,355),11025=>array(35,272,768,630),11026=>array(91,-123,854,643),11027=>array(91,-123,854,643),11028=>array(91,-123,854,643),11029=>array(91,-123,854,643),11030=>array(3,-123,766,643),11031=>array(3,-123,766,643),11032=>array(3,-123,766,643),11033=>array(3,-123,766,643),11034=>array(91,-123,854,643),11039=>array(18,-26,852,767),11040=>array(18,-26,852,767),11041=>array(73,-91,800,748),11042=>array(73,-91,800,748),11043=>array(17,-35,856,692),11044=>array(55,-250,1064,770),11091=>array(38,-47,832,788),11092=>array(38,-47,832,788),11360=>array(5,0,552,729),11361=>array(5,0,271,760),11362=>array(-20,0,552,729),11363=>array(5,0,569,729),11364=>array(98,-200,666,729),11365=>array(35,-46,576,592),11366=>array(-12,-93,384,822),11367=>array(98,-157,752,729),11368=>array(91,-138,639,760),11369=>array(98,-157,677,729),11370=>array(91,-138,576,760),11371=>array(45,-157,738,729),11372=>array(43,-138,572,547),11373=>array(56,-14,683,743),11374=>array(98,-200,765,729),11375=>array(8,0,676,729),11376=>array(56,-14,683,743),11377=>array(30,0,734,560),11378=>array(33,0,1128,742),11379=>array(42,0,961,560),11380=>array(51,0,562,587),11381=>array(98,0,555,729),11382=>array(94,0,477,547),11383=>array(55,-12,602,551),11385=>array(0,-13,320,760),11386=>array(55,-14,557,560),11387=>array(48,0,400,547),11388=>array(-11,-117,116,425),11389=>array(5,326,426,734),11390=>array(66,-242,598,742),11391=>array(45,-242,640,729),11520=>array(60,-63,544,547),11521=>array(24,-235,556,546),11522=>array(39,-235,535,546),11523=>array(62,-10,572,807),11524=>array(51,-235,537,546),11525=>array(39,-236,862,546),11526=>array(0,-8,575,816),11527=>array(53,0,900,546),11528=>array(69,0,542,546),11529=>array(51,-235,556,816),11530=>array(39,0,903,546),11531=>array(53,-8,595,816),11532=>array(39,0,544,816),11533=>array(51,0,887,546),11534=>array(51,0,556,546),11535=>array(69,-235,767,816),11536=>array(51,0,880,816),11537=>array(51,0,545,816),11538=>array(50,-235,536,546),11539=>array(51,-235,884,661),11540=>array(60,-235,892,546),11541=>array(49,-235,784,816),11542=>array(39,0,545,546),11543=>array(51,-235,556,547),11544=>array(51,-235,551,546),11545=>array(39,-235,541,816),11546=>array(42,-235,532,547),11547=>array(60,-9,596,816),11548=>array(39,-235,870,547),11549=>array(29,-235,545,546),11550=>array(47,-235,547,546),11551=>array(34,-235,547,567),11552=>array(39,0,875,546),11553=>array(49,-235,544,816),11554=>array(60,0,538,626),11555=>array(61,-235,553,816),11556=>array(51,-235,603,546),11557=>array(60,-8,841,816),11568=>array(55,-14,591,380),11569=>array(56,-14,832,742),11570=>array(56,-14,832,742),11571=>array(31,0,651,729),11572=>array(33,0,652,729),11573=>array(31,0,604,729),11574=>array(73,0,488,729),11575=>array(8,0,676,729),11576=>array(8,0,676,729),11577=>array(98,0,568,729),11578=>array(64,0,534,729),11579=>array(73,-14,609,742),11580=>array(107,0,811,729),11581=>array(45,0,665,729),11582=>array(73,0,437,729),11583=>array(45,0,665,729),11584=>array(56,-14,832,742),11585=>array(56,-52,832,781),11586=>array(73,0,197,729),11587=>array(20,0,610,729),11588=>array(98,0,654,729),11589=>array(30,0,654,729),11590=>array(73,0,454,729),11591=>array(45,0,629,729),11592=>array(73,301,571,426),11593=>array(98,0,568,729),11594=>array(54,0,448,729),11595=>array(54,-15,899,742),11596=>array(54,0,725,729),11597=>array(98,0,650,729),11598=>array(100,0,566,729),11599=>array(98,0,197,729),11600=>array(54,0,725,729),11601=>array(98,0,198,729),11602=>array(78,-14,705,729),11603=>array(48,-14,584,742),11604=>array(56,-14,832,742),11605=>array(56,-54,832,742),11606=>array(98,0,654,729),11607=>array(98,0,222,729),11608=>array(73,0,676,729),11609=>array(56,-14,832,742),11610=>array(56,-14,832,780),11611=>array(56,-14,681,742),11612=>array(49,0,719,729),11613=>array(30,0,654,729),11614=>array(56,-14,681,742),11615=>array(98,0,568,729),11616=>array(8,0,676,729),11617=>array(98,0,654,729),11618=>array(98,0,559,729),11619=>array(56,0,732,729),11620=>array(98,0,495,729),11621=>array(56,0,732,729),11631=>array(26,522,489,729),11800=>array(70,-14,459,728),11806=>array(106,78,732,399),11810=>array(86,403,293,760),11811=>array(97,403,304,760),11812=>array(86,-132,293,225),11813=>array(97,-132,304,225),11822=>array(72,0,461,742),19904=>array(83,-158,813,729),19905=>array(83,-158,813,729),19906=>array(83,-158,813,729),19907=>array(83,-158,813,729),19908=>array(83,-158,813,729),19909=>array(83,-158,813,729),19910=>array(83,-158,813,729),19911=>array(83,-158,813,729),19912=>array(83,-158,813,729),19913=>array(83,-158,814,729),19914=>array(83,-158,813,729),19915=>array(83,-158,813,729),19916=>array(83,-158,813,729),19917=>array(83,-158,813,729),19918=>array(83,-158,813,729),19919=>array(83,-158,813,729),19920=>array(83,-158,814,729),19921=>array(83,-158,813,729),19922=>array(83,-158,814,729),19923=>array(83,-158,813,729),19924=>array(83,-158,813,729),19925=>array(83,-158,813,729),19926=>array(83,-158,813,729),19927=>array(83,-158,813,729),19928=>array(83,-158,813,729),19929=>array(83,-158,813,729),19930=>array(83,-158,813,729),19931=>array(83,-158,814,729),19932=>array(83,-158,813,729),19933=>array(83,-158,813,729),19934=>array(83,-158,814,729),19935=>array(83,-158,813,729),19936=>array(83,-158,813,729),19937=>array(83,-158,813,729),19938=>array(83,-158,813,729),19939=>array(83,-158,813,729),19940=>array(83,-158,813,729),19941=>array(83,-158,814,729),19942=>array(83,-158,813,729),19943=>array(83,-158,813,729),19944=>array(83,-158,814,729),19945=>array(83,-158,813,729),19946=>array(83,-158,814,729),19947=>array(83,-158,813,729),19948=>array(83,-158,814,729),19949=>array(83,-158,813,729),19950=>array(83,-158,814,729),19951=>array(83,-158,813,729),19952=>array(83,-158,814,729),19953=>array(83,-158,813,729),19954=>array(83,-158,813,729),19955=>array(83,-158,813,729),19956=>array(83,-158,813,729),19957=>array(83,-158,814,729),19958=>array(83,-158,813,729),19959=>array(83,-158,813,729),19960=>array(83,-158,813,729),19961=>array(83,-158,814,729),19962=>array(83,-158,813,729),19963=>array(83,-158,814,729),19964=>array(83,-158,814,729),19965=>array(83,-158,813,729),19966=>array(83,-158,813,729),19967=>array(83,-158,813,729),42192=>array(98,0,615,729),42193=>array(98,0,569,729),42194=>array(34,0,505,729),42195=>array(98,0,711,729),42196=>array(-3,0,614,729),42197=>array(-3,0,614,729),42198=>array(56,-14,693,742),42199=>array(98,0,677,729),42200=>array(-21,0,558,729),42201=>array(0,-14,414,729),42202=>array(56,-14,644,742),42203=>array(56,-14,644,742),42204=>array(45,0,640,729),42205=>array(98,0,517,729),42206=>array(98,0,517,729),42207=>array(98,0,765,729),42208=>array(98,0,650,729),42209=>array(98,0,552,729),42210=>array(66,-14,579,742),42211=>array(98,0,666,729),42212=>array(29,0,597,729),42213=>array(8,0,676,729),42214=>array(8,0,676,729),42215=>array(98,0,654,729),42216=>array(80,-14,716,742),42217=>array(98,0,512,743),42218=>array(33,0,956,729),42219=>array(30,0,654,729),42220=>array(-2,0,613,729),42221=>array(71,0,588,729),42222=>array(8,0,676,729),42223=>array(8,0,676,729),42224=>array(98,0,568,729),42225=>array(64,0,534,729),42226=>array(98,0,197,729),42227=>array(56,-14,731,742),42228=>array(87,-14,645,729),42229=>array(87,0,645,743),42230=>array(4,0,458,729),42231=>array(56,0,669,729),42232=>array(85,0,214,155),42233=>array(71,-156,214,155),42234=>array(85,0,511,155),42235=>array(85,-156,511,155),42236=>array(71,-156,214,517),42237=>array(85,0,214,517),42238=>array(85,0,502,354),42239=>array(85,172,502,454),42564=>array(56,-14,569,742),42565=>array(49,-14,467,560),42566=>array(98,0,347,729),42567=>array(81,0,304,547),42572=>array(58,-14,1122,645),42573=>array(74,-14,954,471),42576=>array(29,0,931,729),42577=>array(30,0,817,560),42580=>array(56,-14,977,742),42581=>array(55,-14,748,560),42582=>array(103,0,968,729),42583=>array(94,-14,752,560),42594=>array(49,-157,1004,729),42595=>array(52,-138,863,547),42596=>array(41,0,1008,729),42597=>array(37,0,852,547),42598=>array(98,0,1120,729),42599=>array(91,0,959,547),42600=>array(56,-14,731,742),42601=>array(55,-14,557,560),42602=>array(56,-14,799,742),42603=>array(55,-14,658,560),42604=>array(56,-14,1302,742),42605=>array(55,-14,964,560),42606=>array(28,-208,851,743),42634=>array(-3,-200,758,729),42635=>array(29,-208,660,547),42636=>array(-3,0,614,729),42637=>array(29,0,553,547),42644=>array(85,0,587,729),42645=>array(91,0,549,760),42760=>array(104,0,389,668),42761=>array(104,0,389,668),42762=>array(104,0,389,668),42763=>array(104,0,389,668),42764=>array(104,0,389,668),42765=>array(104,0,389,668),42766=>array(104,0,389,668),42767=>array(104,0,389,668),42768=>array(104,0,389,668),42769=>array(104,0,389,668),42770=>array(104,0,389,668),42771=>array(104,0,389,668),42772=>array(104,0,389,668),42773=>array(104,0,389,668),42774=>array(104,0,389,668),42779=>array(50,326,319,736),42780=>array(50,324,319,734),42781=>array(95,326,158,734),42782=>array(95,326,158,734),42783=>array(95,0,158,408),42786=>array(67,0,350,729),42787=>array(67,0,321,547),42788=>array(56,224,411,742),42789=>array(56,42,411,560),42790=>array(98,-200,654,729),42791=>array(91,-208,549,760),42792=>array(-3,-213,819,729),42793=>array(27,-213,650,702),42794=>array(80,-14,560,742),42795=>array(65,-200,473,561),42800=>array(91,0,437,547),42801=>array(54,-14,472,560),42802=>array(8,0,1241,729),42803=>array(60,-14,894,560),42804=>array(8,-14,1147,742),42805=>array(60,-14,935,560),42806=>array(8,-14,1055,729),42807=>array(60,-14,890,560),42808=>array(8,0,963,729),42809=>array(60,-14,788,560),42810=>array(8,0,963,729),42811=>array(60,-14,788,560),42812=>array(8,-208,951,729),42813=>array(60,-208,788,560),42814=>array(56,-14,644,742),42815=>array(62,-14,495,560),42816=>array(5,0,677,729),42817=>array(7,0,580,760),42822=>array(98,0,675,729),42823=>array(94,0,298,760),42824=>array(41,0,576,729),42825=>array(59,0,368,760),42826=>array(5,-14,802,742),42827=>array(5,-14,694,560),42830=>array(56,-14,1302,742),42831=>array(55,-14,964,560),42832=>array(5,0,569,729),42833=>array(-2,-208,580,560),42834=>array(24,0,700,729),42835=>array(24,-208,720,560),42838=>array(56,-178,731,742),42839=>array(55,-208,637,560),42852=>array(5,0,569,729),42853=>array(-2,-208,580,760),42854=>array(5,0,569,729),42855=>array(-2,-208,580,760),42880=>array(5,0,459,729),42881=>array(94,-208,184,560),42882=>array(98,-208,637,742),42883=>array(91,-208,549,560),42889=>array(117,0,220,517),42890=>array(78,161,298,380),42891=>array(151,235,250,729),42892=>array(96,458,179,729),42893=>array(85,0,587,729),42894=>array(38,-208,416,760),42896=>array(98,-157,733,729),42897=>array(91,-138,621,560),42912=>array(2,-14,778,742),42913=>array(2,-208,633,560),42914=>array(2,0,677,729),42915=>array(2,0,577,760),42916=>array(2,0,746,729),42917=>array(2,0,633,560),42918=>array(2,0,693,729),42919=>array(2,0,411,560),42920=>array(2,-14,633,742),42921=>array(2,-14,519,560),42922=>array(-51,0,703,729),43002=>array(91,0,824,547),43003=>array(58,0,477,729),43004=>array(34,0,505,729),43005=>array(98,0,765,729),43006=>array(98,0,197,928),43007=>array(33,0,1167,729),61184=>array(95,602,323,668),61185=>array(69,451,342,668),61186=>array(54,301,361,668),61187=>array(47,150,368,668),61188=>array(44,0,372,668),61189=>array(69,451,342,668),61190=>array(95,451,323,518),61191=>array(69,301,342,518),61192=>array(54,150,361,518),61193=>array(47,0,368,518),61194=>array(54,301,361,668),61195=>array(69,301,342,518),61196=>array(95,301,323,367),61197=>array(69,150,342,367),61198=>array(54,0,361,367),61199=>array(47,150,368,668),61200=>array(54,150,361,518),61201=>array(69,150,342,367),61202=>array(95,150,323,217),61203=>array(69,0,342,217),61204=>array(44,0,372,668),61205=>array(47,0,368,518),61206=>array(54,0,361,367),61207=>array(69,0,342,217),61208=>array(95,0,323,66),61209=>array(104,0,171,668),61440=>array(73,0,903,732),61441=>array(73,0,903,732),61442=>array(73,0,903,732),61443=>array(73,0,903,732),62464=>array(54,-15,526,828),62465=>array(54,-15,526,828),62466=>array(54,-15,570,837),62467=>array(54,0,835,837),62468=>array(54,-15,526,837),62469=>array(54,-15,526,837),62470=>array(54,-15,599,837),62471=>array(54,-15,828,837),62472=>array(54,0,501,837),62473=>array(54,-15,526,828),62474=>array(54,0,1115,837),62475=>array(54,-15,525,837),62476=>array(63,-15,536,828),62477=>array(54,0,815,837),62478=>array(54,-15,526,828),62479=>array(54,-15,526,844),62480=>array(54,0,860,837),62481=>array(63,-15,536,828),62482=>array(54,-15,677,837),62483=>array(24,-15,519,837),62484=>array(54,-15,818,837),62485=>array(54,-15,526,828),62486=>array(54,-15,841,837),62487=>array(54,-15,525,829),62488=>array(54,-15,525,837),62489=>array(64,0,536,837),62490=>array(55,-15,595,828),62491=>array(54,-15,525,828),62492=>array(64,-15,536,837),62493=>array(54,-15,545,828),62494=>array(63,-15,536,828),62495=>array(24,-15,492,837),62496=>array(54,-15,526,837),62497=>array(59,-15,530,837),62498=>array(54,-79,526,837),62499=>array(54,-15,525,838),62500=>array(54,-15,532,838),62501=>array(54,-15,594,837),62502=>array(54,-15,901,838),62504=>array(60,-235,872,816),62505=>array(49,-230,759,853),62506=>array(49,-15,459,765),62507=>array(49,-15,459,777),62508=>array(49,-15,459,875),62509=>array(49,-15,459,818),62510=>array(49,-15,459,887),62511=>array(49,-15,459,809),62512=>array(49,-236,449,765),62513=>array(49,-236,449,799),62514=>array(49,-236,449,901),62515=>array(49,-236,449,809),62516=>array(49,0,469,765),62517=>array(49,0,469,799),62518=>array(49,0,469,809),62519=>array(49,-0,737,765),62520=>array(49,-0,737,777),62521=>array(49,-0,737,895),62522=>array(49,-0,737,799),62523=>array(49,-0,737,809),62524=>array(29,-236,488,765),62525=>array(29,-236,488,777),62526=>array(29,-236,488,904),62527=>array(29,-236,488,799),62528=>array(29,-236,488,809),62529=>array(29,-236,488,852),63173=>array(55,-14,557,760),64256=>array(23,0,708,760),64257=>array(23,0,536,760),64258=>array(23,0,536,760),64259=>array(23,0,873,760),64260=>array(23,0,873,760),64261=>array(23,0,662,760),64262=>array(54,-14,837,742),64275=>array(83,-14,1111,760),64276=>array(85,-14,1111,760),64277=>array(85,-208,1111,760),64278=>array(85,-208,1111,760),64279=>array(85,-208,1451,760),64285=>array(66,44,157,547),64286=>array(167,625,473,765),64287=>array(36,44,329,547),64288=>array(38,0,562,547),64289=>array(85,0,772,547),64290=>array(43,0,717,547),64291=>array(91,0,764,547),64292=>array(43,0,716,547),64293=>array(43,0,716,760),64294=>array(91,0,764,547),64295=>array(43,0,716,547),64296=>array(47,-4,716,547),64297=>array(106,272,732,627),64298=>array(43,0,666,698),64299=>array(38,0,666,698),64300=>array(43,0,666,698),64301=>array(43,0,666,698),64302=>array(91,-159,578,547),64303=>array(91,-193,578,547),64304=>array(91,-159,578,547),64305=>array(43,0,535,547),64306=>array(43,-5,383,547),64307=>array(43,0,511,547),64308=>array(91,0,563,547),64309=>array(43,0,265,547),64310=>array(43,0,363,547),64312=>array(90,-14,593,552),64313=>array(43,204,264,547),64314=>array(43,-208,446,547),64315=>array(43,0,474,547),64316=>array(43,0,492,729),64318=>array(43,0,588,555),64320=>array(43,0,309,547),64321=>array(90,-14,593,547),64323=>array(91,-208,549,547),64324=>array(91,0,569,547),64326=>array(43,0,502,547),64327=>array(91,-208,633,546),64328=>array(43,0,474,547),64329=>array(43,0,666,547),64330=>array(10,-4,566,547),64331=>array(91,0,182,698),64332=>array(43,0,535,698),64333=>array(43,0,474,698),64334=>array(91,0,569,698),64335=>array(43,0,571,760),64338=>array(63,-244,865,327),64339=>array(63,-244,992,327),64340=>array(-10,-244,191,293),64341=>array(-10,-244,312,293),64342=>array(63,-244,865,327),64343=>array(63,-244,992,327),64344=>array(-10,-244,244,293),64345=>array(-10,-244,312,293),64346=>array(63,-244,865,327),64347=>array(63,-244,992,327),64348=>array(-10,-244,244,293),64349=>array(-10,-244,312,293),64350=>array(63,-10,865,513),64351=>array(63,-10,992,513),64352=>array(-10,0,191,610),64353=>array(-10,0,312,610),64354=>array(63,-10,865,513),64355=>array(63,-10,992,513),64356=>array(-10,0,244,610),64357=>array(-10,0,312,610),64358=>array(63,-10,865,575),64359=>array(63,-10,992,575),64360=>array(-10,0,273,672),64361=>array(-10,0,312,672),64362=>array(63,-45,952,757),64363=>array(63,-44,1045,659),64364=>array(-10,0,406,757),64365=>array(-10,0,516,684),64366=>array(63,-45,952,757),64367=>array(63,-44,1045,659),64368=>array(-10,0,406,757),64369=>array(-10,0,516,684),64370=>array(77,-244,645,425),64371=>array(77,-244,655,425),64372=>array(-10,-220,545,398),64373=>array(-10,-220,655,398),64374=>array(77,-244,645,425),64375=>array(77,-244,655,425),64376=>array(-10,-98,545,398),64377=>array(-10,-98,655,398),64378=>array(77,-244,645,425),64379=>array(77,-244,655,425),64380=>array(-10,-220,545,398),64381=>array(-10,-220,655,398),64382=>array(77,-244,645,425),64383=>array(77,-244,655,425),64384=>array(-10,-220,545,398),64385=>array(-10,-220,655,398),64386=>array(61,-146,388,415),64387=>array(61,-146,535,415),64388=>array(61,-19,388,586),64389=>array(61,-19,535,586),64390=>array(61,-19,388,708),64391=>array(61,-19,535,708),64392=>array(61,-19,388,746),64393=>array(61,-19,535,746),64394=>array(-42,-244,439,586),64395=>array(-42,-244,562,586),64396=>array(-42,-244,469,648),64397=>array(-42,-244,562,648),64398=>array(63,-43,895,760),64399=>array(63,-43,981,760),64400=>array(-10,0,476,760),64401=>array(-10,0,562,760),64402=>array(63,-43,895,896),64403=>array(63,-43,981,896),64404=>array(-10,0,476,896),64405=>array(-10,0,562,896),64406=>array(63,-293,895,896),64407=>array(63,-293,981,896),64408=>array(-10,-269,476,896),64409=>array(-10,-269,562,896),64410=>array(63,-43,895,903),64411=>array(63,-43,981,903),64412=>array(-10,0,476,903),64413=>array(-10,0,562,903),64414=>array(72,-162,660,366),64415=>array(72,-244,771,284),64416=>array(72,-162,660,636),64417=>array(72,-244,771,514),64418=>array(-10,0,273,672),64419=>array(-10,0,312,672),64426=>array(70,-33,638,487),64427=>array(70,-244,642,333),64428=>array(-10,-33,467,487),64429=>array(-10,-244,471,333),64467=>array(70,-27,722,854),64468=>array(70,-27,853,854),64469=>array(-10,0,476,928),64470=>array(-10,0,562,928),64473=>array(-42,-244,406,556),64474=>array(-42,-244,526,556),64488=>array(-10,0,191,293),64489=>array(-10,0,312,293),64508=>array(63,-131,719,411),64509=>array(63,-133,843,251),64510=>array(-10,-146,244,293),64511=>array(-10,-146,312,293),65024=>array(-445,752,0,929),65025=>array(-445,752,0,929),65026=>array(-445,752,0,929),65027=>array(-445,752,0,929),65028=>array(-445,752,0,929),65029=>array(-445,752,0,929),65030=>array(-445,752,0,929),65031=>array(-445,752,0,929),65032=>array(-445,752,0,929),65033=>array(-445,752,0,929),65034=>array(-445,752,0,929),65035=>array(-445,752,0,929),65036=>array(-445,752,0,929),65037=>array(-445,752,0,929),65038=>array(-445,752,0,929),65039=>array(-445,752,0,929),65056=>array(-445,752,0,929),65057=>array(0,752,445,929),65058=>array(-354,756,0,894),65059=>array(0,756,354,894),65136=>array(4,591,289,825),65137=>array(-10,0,303,825),65138=>array(4,591,289,874),65139=>array(51,0,271,177),65140=>array(4,-239,289,-5),65142=>array(4,591,289,708),65143=>array(-10,0,303,708),65144=>array(4,590,289,874),65145=>array(-10,0,303,874),65146=>array(4,-137,289,-20),65147=>array(-10,-137,303,90),65148=>array(-6,599,299,869),65149=>array(-10,0,303,869),65150=>array(12,610,279,878),65151=>array(-10,0,303,878),65152=>array(80,42,390,483),65153=>array(-37,0,315,939),65154=>array(-37,0,315,939),65155=>array(53,0,220,1028),65156=>array(53,0,314,1028),65157=>array(-42,-244,406,588),65158=>array(-42,-244,526,588),65159=>array(53,-244,220,760),65160=>array(53,-244,314,760),65161=>array(63,-131,719,588),65162=>array(63,-133,843,466),65163=>array(-10,0,227,613),65164=>array(-10,0,312,613),65165=>array(94,0,184,760),65166=>array(94,0,314,760),65167=>array(63,-171,865,327),65168=>array(63,-171,992,327),65169=>array(-10,-146,191,293),65170=>array(-10,-146,312,293),65171=>array(68,-28,453,513),65172=>array(71,0,546,513),65173=>array(63,-10,865,391),65174=>array(63,-10,992,391),65175=>array(-10,0,244,488),65176=>array(-10,0,312,488),65177=>array(63,-10,865,513),65178=>array(63,-10,992,513),65179=>array(-10,0,244,610),65180=>array(-10,0,312,610),65181=>array(77,-244,645,425),65182=>array(77,-244,655,425),65183=>array(-10,-146,545,398),65184=>array(-10,-146,655,398),65185=>array(77,-244,645,425),65186=>array(77,-244,655,425),65187=>array(-10,0,545,398),65188=>array(-10,0,655,398),65189=>array(77,-244,645,586),65190=>array(77,-244,655,586),65191=>array(-10,0,545,537),65192=>array(-10,0,655,537),65193=>array(61,-19,388,415),65194=>array(61,-19,535,415),65195=>array(61,-19,388,586),65196=>array(61,-19,535,586),65197=>array(-42,-244,423,269),65198=>array(-42,-244,562,269),65199=>array(-42,-244,423,464),65200=>array(-42,-244,562,464),65201=>array(63,-244,1138,366),65202=>array(63,-244,1285,366),65203=>array(-10,-14,755,366),65204=>array(-10,-14,902,366),65205=>array(63,-244,1138,586),65206=>array(63,-244,1285,586),65207=>array(-10,-14,755,586),65208=>array(-10,-14,902,586),65209=>array(63,-244,1134,362),65210=>array(63,-244,1235,362),65211=>array(-10,0,774,362),65212=>array(-10,0,877,362),65213=>array(63,-244,1134,464),65214=>array(63,-244,1235,464),65215=>array(-10,0,774,464),65216=>array(-10,0,877,464),65217=>array(70,0,857,760),65218=>array(70,0,959,760),65219=>array(-10,0,729,760),65220=>array(-10,0,830,760),65221=>array(70,0,857,760),65222=>array(70,0,959,760),65223=>array(-10,0,729,760),65224=>array(-10,0,830,760),65225=>array(57,-244,587,521),65226=>array(57,-244,587,382),65227=>array(-10,0,496,521),65228=>array(-10,0,492,382),65229=>array(57,-244,587,659),65230=>array(57,-244,587,537),65231=>array(-10,0,496,659),65232=>array(-10,0,492,537),65233=>array(63,-45,952,635),65234=>array(63,-44,1045,537),65235=>array(-10,0,406,635),65236=>array(-10,0,516,562),65237=>array(52,-215,701,635),65238=>array(52,-244,844,500),65239=>array(-10,0,406,635),65240=>array(-10,0,516,562),65241=>array(70,-27,722,760),65242=>array(70,-27,853,760),65243=>array(-10,0,476,760),65244=>array(-10,0,562,760),65245=>array(70,-152,637,760),65246=>array(70,-152,767,760),65247=>array(-10,0,210,760),65248=>array(-10,0,341,760),65249=>array(68,-240,546,369),65250=>array(68,-240,675,307),65251=>array(-10,-25,456,303),65252=>array(-10,-24,588,303),65253=>array(72,-162,660,464),65254=>array(72,-244,771,342),65255=>array(-10,0,191,488),65256=>array(-10,0,312,488),65257=>array(68,-28,453,358),65258=>array(71,0,546,366),65259=>array(-10,-33,467,487),65260=>array(-10,-244,471,333),65261=>array(-42,-244,406,315),65262=>array(-42,-244,526,315),65263=>array(63,-131,719,411),65264=>array(63,-133,843,251),65265=>array(63,-244,719,411),65266=>array(63,-244,843,251),65267=>array(-10,-146,244,293),65268=>array(-10,-146,312,293),65269=>array(-103,-10,468,866),65270=>array(-103,-10,606,866),65271=>array(-13,-10,468,955),65272=>array(-13,-10,606,955),65273=>array(11,-244,468,760),65274=>array(11,-244,606,760),65275=>array(41,-10,468,760),65276=>array(41,-10,606,760),65279=>array(15,-84,1011,912),65529=>array(15,-84,1011,912),65530=>array(15,-84,1011,912),65531=>array(15,-84,1011,912),65532=>array(15,-84,1011,912),65533=>array(15,-84,1011,912),65535=>array(50,-177,550,705));
15
+ $cw=array(0=>600,32=>318,33=>401,34=>460,35=>838,36=>636,37=>950,38=>780,39=>275,40=>390,41=>390,42=>500,43=>838,44=>318,45=>361,46=>318,47=>337,48=>636,49=>636,50=>636,51=>636,52=>636,53=>636,54=>636,55=>636,56=>636,57=>636,58=>337,59=>337,60=>838,61=>838,62=>838,63=>531,64=>1000,65=>684,66=>686,67=>698,68=>770,69=>632,70=>575,71=>775,72=>752,73=>295,74=>295,75=>656,76=>557,77=>863,78=>748,79=>787,80=>603,81=>787,82=>695,83=>635,84=>611,85=>732,86=>684,87=>989,88=>685,89=>611,90=>685,91=>390,92=>337,93=>390,94=>838,95=>500,96=>500,97=>613,98=>635,99=>550,100=>635,101=>615,102=>352,103=>635,104=>634,105=>278,106=>278,107=>579,108=>278,109=>974,110=>634,111=>612,112=>635,113=>635,114=>411,115=>521,116=>392,117=>634,118=>592,119=>818,120=>592,121=>592,122=>525,123=>636,124=>337,125=>636,126=>838,160=>318,161=>401,162=>636,163=>636,164=>636,165=>636,166=>337,167=>500,168=>500,169=>1000,170=>471,171=>612,172=>838,173=>361,174=>1000,175=>500,176=>500,177=>838,178=>401,179=>401,180=>500,181=>636,182=>636,183=>318,184=>500,185=>401,186=>471,187=>612,188=>969,189=>969,190=>969,191=>531,192=>684,193=>684,194=>684,195=>684,196=>684,197=>684,198=>974,199=>698,200=>632,201=>632,202=>632,203=>632,204=>295,205=>295,206=>295,207=>295,208=>775,209=>748,210=>787,211=>787,212=>787,213=>787,214=>787,215=>838,216=>787,217=>732,218=>732,219=>732,220=>732,221=>611,222=>605,223=>630,224=>613,225=>613,226=>613,227=>613,228=>613,229=>613,230=>982,231=>550,232=>615,233=>615,234=>615,235=>615,236=>278,237=>278,238=>278,239=>278,240=>612,241=>634,242=>612,243=>612,244=>612,245=>612,246=>612,247=>838,248=>612,249=>634,250=>634,251=>634,252=>634,253=>592,254=>635,255=>592,256=>684,257=>613,258=>684,259=>613,260=>684,261=>613,262=>698,263=>550,264=>698,265=>550,266=>698,267=>550,268=>698,269=>550,270=>770,271=>635,272=>775,273=>635,274=>632,275=>615,276=>632,277=>615,278=>632,279=>615,280=>632,281=>615,282=>632,283=>615,284=>775,285=>635,286=>775,287=>635,288=>775,289=>635,290=>775,291=>635,292=>752,293=>634,294=>916,295=>695,296=>295,297=>278,298=>295,299=>278,300=>295,301=>278,302=>295,303=>278,304=>295,305=>278,306=>590,307=>556,308=>295,309=>278,310=>656,311=>579,312=>579,313=>557,314=>278,315=>557,316=>278,317=>557,318=>375,319=>557,320=>342,321=>562,322=>284,323=>748,324=>634,325=>748,326=>634,327=>748,328=>634,329=>813,330=>748,331=>634,332=>787,333=>612,334=>787,335=>612,336=>787,337=>612,338=>1070,339=>1023,340=>695,341=>411,342=>695,343=>411,344=>695,345=>411,346=>635,347=>521,348=>635,349=>521,350=>635,351=>521,352=>635,353=>521,354=>611,355=>392,356=>611,357=>392,358=>611,359=>392,360=>732,361=>634,362=>732,363=>634,364=>732,365=>634,366=>732,367=>634,368=>732,369=>634,370=>732,371=>634,372=>989,373=>818,374=>611,375=>592,376=>611,377=>685,378=>525,379=>685,380=>525,381=>685,382=>525,383=>352,384=>635,385=>735,386=>686,387=>635,388=>686,389=>635,390=>703,391=>698,392=>550,393=>775,394=>819,395=>686,396=>635,397=>612,398=>632,399=>787,400=>614,401=>575,402=>352,403=>775,404=>687,405=>984,406=>354,407=>295,408=>746,409=>579,410=>278,411=>592,412=>974,413=>748,414=>634,415=>787,416=>913,417=>612,418=>949,419=>759,420=>652,421=>635,422=>695,423=>635,424=>521,425=>632,426=>336,427=>392,428=>611,429=>392,430=>611,431=>858,432=>634,433=>764,434=>721,435=>744,436=>730,437=>685,438=>525,439=>666,440=>666,441=>578,442=>525,443=>636,444=>666,445=>578,446=>510,447=>635,448=>295,449=>492,450=>459,451=>295,452=>1422,453=>1299,454=>1154,455=>835,456=>787,457=>457,458=>931,459=>924,460=>797,461=>684,462=>613,463=>295,464=>278,465=>787,466=>612,467=>732,468=>634,469=>732,470=>634,471=>732,472=>634,473=>732,474=>634,475=>732,476=>634,477=>615,478=>684,479=>613,480=>684,481=>613,482=>974,483=>982,484=>775,485=>635,486=>775,487=>635,488=>656,489=>579,490=>787,491=>612,492=>787,493=>612,494=>666,495=>578,496=>278,497=>1422,498=>1299,499=>1154,500=>775,501=>635,502=>1113,503=>682,504=>748,505=>634,506=>684,507=>613,508=>974,509=>982,510=>787,511=>612,512=>684,513=>613,514=>684,515=>613,516=>632,517=>615,518=>632,519=>615,520=>295,521=>278,522=>295,523=>278,524=>787,525=>612,526=>787,527=>612,528=>695,529=>411,530=>695,531=>411,532=>732,533=>634,534=>732,535=>634,536=>635,537=>521,538=>611,539=>392,540=>627,541=>521,542=>752,543=>634,544=>735,545=>838,546=>698,547=>610,548=>685,549=>525,550=>684,551=>613,552=>632,553=>615,554=>787,555=>612,556=>787,557=>612,558=>787,559=>612,560=>787,561=>612,562=>611,563=>592,564=>475,565=>843,566=>477,567=>278,568=>998,569=>998,570=>684,571=>698,572=>550,573=>557,574=>611,575=>521,576=>525,577=>603,578=>479,579=>686,580=>732,581=>684,582=>632,583=>615,584=>295,585=>278,586=>781,587=>635,588=>695,589=>411,590=>611,591=>592,592=>600,593=>635,594=>635,595=>635,596=>549,597=>550,598=>635,599=>696,600=>615,601=>615,602=>819,603=>541,604=>532,605=>775,606=>664,607=>278,608=>696,609=>635,610=>629,611=>596,612=>596,613=>634,614=>634,615=>634,616=>278,617=>338,618=>372,619=>396,620=>487,621=>278,622=>706,623=>974,624=>974,625=>974,626=>646,627=>642,628=>634,629=>612,630=>858,631=>728,632=>660,633=>414,634=>414,635=>414,636=>411,637=>411,638=>530,639=>530,640=>604,641=>604,642=>521,643=>336,644=>336,645=>461,646=>336,647=>392,648=>392,649=>634,650=>618,651=>598,652=>592,653=>818,654=>592,655=>611,656=>525,657=>525,658=>578,659=>578,660=>510,661=>510,662=>510,663=>510,664=>787,665=>580,666=>664,667=>708,668=>654,669=>292,670=>667,671=>507,672=>727,673=>510,674=>510,675=>1014,676=>1058,677=>1013,678=>830,679=>610,680=>778,681=>848,682=>706,683=>654,684=>515,685=>515,686=>661,687=>664,688=>404,689=>399,690=>175,691=>259,692=>295,693=>296,694=>379,695=>515,696=>373,697=>278,698=>460,699=>318,700=>318,701=>318,702=>307,703=>307,704=>370,705=>370,706=>500,707=>500,708=>500,709=>500,710=>500,711=>500,712=>275,713=>500,714=>500,715=>500,716=>275,717=>500,718=>500,719=>500,720=>337,721=>337,722=>307,723=>307,724=>500,725=>500,726=>390,727=>317,728=>500,729=>500,730=>500,731=>500,732=>500,733=>500,734=>315,735=>500,736=>426,737=>166,738=>373,739=>444,740=>370,741=>493,742=>493,743=>493,744=>493,745=>493,748=>500,749=>500,750=>518,755=>500,759=>500,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,827=>0,828=>0,829=>0,830=>0,831=>0,832=>0,833=>0,834=>0,835=>0,836=>0,837=>0,838=>0,839=>0,840=>0,841=>0,842=>0,843=>0,844=>0,845=>0,846=>0,847=>0,849=>0,850=>0,851=>0,855=>0,856=>0,858=>0,860=>0,861=>0,862=>0,863=>0,864=>0,865=>0,866=>0,880=>654,881=>568,882=>862,883=>647,884=>278,885=>278,886=>748,887=>650,890=>500,891=>549,892=>550,893=>549,894=>337,900=>500,901=>500,902=>692,903=>318,904=>746,905=>871,906=>408,908=>813,910=>825,911=>826,912=>338,913=>684,914=>686,915=>557,916=>684,917=>632,918=>685,919=>752,920=>787,921=>295,922=>656,923=>684,924=>863,925=>748,926=>632,927=>787,928=>752,929=>603,931=>632,932=>611,933=>611,934=>787,935=>685,936=>787,937=>764,938=>295,939=>611,940=>659,941=>541,942=>634,943=>338,944=>579,945=>659,946=>638,947=>592,948=>612,949=>541,950=>544,951=>634,952=>612,953=>338,954=>589,955=>592,956=>636,957=>559,958=>558,959=>612,960=>602,961=>635,962=>587,963=>634,964=>602,965=>579,966=>660,967=>578,968=>660,969=>837,970=>338,971=>579,972=>612,973=>579,974=>837,975=>656,976=>614,977=>619,978=>699,979=>842,980=>699,981=>660,982=>837,983=>664,984=>787,985=>612,986=>648,987=>587,988=>575,989=>458,990=>660,991=>660,992=>865,993=>627,994=>934,995=>837,996=>758,997=>659,998=>792,999=>615,1000=>687,1001=>607,1002=>768,1003=>625,1004=>699,1005=>612,1006=>611,1007=>536,1008=>664,1009=>635,1010=>550,1011=>278,1012=>787,1013=>615,1014=>615,1015=>605,1016=>635,1017=>698,1018=>863,1019=>651,1020=>635,1021=>703,1022=>698,1023=>703,1024=>632,1025=>632,1026=>786,1027=>610,1028=>698,1029=>635,1030=>295,1031=>295,1032=>295,1033=>1094,1034=>1045,1035=>786,1036=>710,1037=>748,1038=>609,1039=>752,1040=>684,1041=>686,1042=>686,1043=>610,1044=>781,1045=>632,1046=>1077,1047=>641,1048=>748,1049=>748,1050=>710,1051=>752,1052=>863,1053=>752,1054=>787,1055=>752,1056=>603,1057=>698,1058=>611,1059=>609,1060=>861,1061=>685,1062=>776,1063=>686,1064=>1069,1065=>1094,1066=>833,1067=>882,1068=>686,1069=>698,1070=>1080,1071=>695,1072=>613,1073=>617,1074=>589,1075=>525,1076=>691,1077=>615,1078=>901,1079=>532,1080=>650,1081=>650,1082=>604,1083=>639,1084=>754,1085=>654,1086=>612,1087=>654,1088=>635,1089=>550,1090=>583,1091=>592,1092=>855,1093=>592,1094=>681,1095=>591,1096=>915,1097=>942,1098=>707,1099=>790,1100=>589,1101=>549,1102=>842,1103=>602,1104=>615,1105=>615,1106=>625,1107=>525,1108=>549,1109=>521,1110=>278,1111=>278,1112=>278,1113=>902,1114=>898,1115=>652,1116=>604,1117=>650,1118=>592,1119=>654,1120=>934,1121=>837,1122=>771,1123=>672,1124=>942,1125=>749,1126=>879,1127=>783,1128=>1160,1129=>1001,1130=>787,1131=>612,1132=>1027,1133=>824,1134=>636,1135=>541,1136=>856,1137=>876,1138=>787,1139=>612,1140=>781,1141=>665,1142=>781,1143=>665,1144=>992,1145=>904,1146=>953,1147=>758,1148=>1180,1149=>1028,1150=>934,1151=>837,1152=>698,1153=>550,1154=>502,1155=>0,1156=>0,1157=>0,1158=>0,1159=>0,1160=>418,1161=>418,1162=>772,1163=>677,1164=>686,1165=>589,1166=>603,1167=>635,1168=>610,1169=>525,1170=>675,1171=>590,1172=>624,1173=>530,1174=>1077,1175=>901,1176=>641,1177=>532,1178=>710,1179=>604,1180=>710,1181=>604,1182=>710,1183=>604,1184=>856,1185=>832,1186=>752,1187=>661,1188=>1014,1189=>877,1190=>1081,1191=>916,1192=>878,1193=>693,1194=>698,1195=>550,1196=>611,1197=>583,1198=>611,1199=>592,1200=>611,1201=>592,1202=>685,1203=>592,1204=>934,1205=>807,1206=>686,1207=>591,1208=>686,1209=>591,1210=>686,1211=>634,1212=>941,1213=>728,1214=>941,1215=>728,1216=>295,1217=>1077,1218=>901,1219=>656,1220=>604,1221=>776,1222=>670,1223=>752,1224=>661,1225=>776,1226=>681,1227=>686,1228=>591,1229=>888,1230=>774,1231=>278,1232=>684,1233=>613,1234=>684,1235=>613,1236=>974,1237=>982,1238=>632,1239=>615,1240=>787,1241=>615,1242=>787,1243=>615,1244=>1077,1245=>901,1246=>641,1247=>532,1248=>666,1249=>578,1250=>748,1251=>650,1252=>748,1253=>650,1254=>787,1255=>612,1256=>787,1257=>612,1258=>787,1259=>612,1260=>698,1261=>549,1262=>609,1263=>592,1264=>609,1265=>592,1266=>609,1267=>592,1268=>686,1269=>591,1270=>610,1271=>525,1272=>882,1273=>790,1274=>675,1275=>590,1276=>685,1277=>592,1278=>685,1279=>592,1280=>686,1281=>589,1282=>1006,1283=>897,1284=>975,1285=>869,1286=>679,1287=>588,1288=>1072,1289=>957,1290=>1113,1291=>967,1292=>775,1293=>660,1294=>773,1295=>711,1296=>614,1297=>541,1298=>752,1299=>639,1300=>1169,1301=>994,1302=>894,1303=>864,1304=>1032,1305=>986,1306=>787,1307=>635,1308=>989,1309=>818,1310=>710,1311=>604,1312=>1081,1313=>905,1314=>1081,1315=>912,1316=>793,1317=>683,1329=>766,1330=>732,1331=>753,1332=>753,1333=>732,1334=>772,1335=>640,1336=>732,1337=>859,1338=>753,1339=>691,1340=>533,1341=>922,1342=>863,1343=>732,1344=>716,1345=>766,1346=>753,1347=>767,1348=>792,1349=>728,1350=>729,1351=>757,1352=>732,1353=>713,1354=>800,1355=>768,1356=>792,1357=>732,1358=>753,1359=>705,1360=>694,1361=>744,1362=>538,1363=>811,1364=>757,1365=>787,1366=>790,1369=>307,1370=>318,1371=>234,1372=>361,1373=>238,1374=>405,1375=>500,1377=>974,1378=>634,1379=>658,1380=>663,1381=>634,1382=>635,1383=>515,1384=>634,1385=>738,1386=>658,1387=>634,1388=>271,1389=>980,1390=>623,1391=>634,1392=>634,1393=>608,1394=>634,1395=>629,1396=>634,1397=>271,1398=>634,1399=>499,1400=>634,1401=>404,1402=>974,1403=>560,1404=>648,1405=>634,1406=>634,1407=>974,1408=>634,1409=>633,1410=>435,1411=>974,1412=>636,1413=>609,1414=>805,1415=>812,1417=>337,1418=>361,1456=>0,1457=>0,1458=>0,1459=>0,1460=>0,1461=>0,1462=>0,1463=>0,1464=>0,1465=>0,1466=>0,1467=>0,1468=>0,1469=>0,1470=>361,1471=>0,1472=>295,1473=>0,1474=>0,1475=>295,1478=>441,1479=>0,1488=>668,1489=>578,1490=>412,1491=>546,1492=>653,1493=>272,1494=>346,1495=>653,1496=>648,1497=>224,1498=>537,1499=>529,1500=>568,1501=>664,1502=>679,1503=>272,1504=>400,1505=>649,1506=>626,1507=>640,1508=>625,1509=>540,1510=>593,1511=>709,1512=>564,1513=>708,1514=>657,1520=>471,1521=>423,1522=>331,1523=>416,1524=>645,1542=>637,1543=>637,1545=>757,1546=>977,1548=>323,1557=>0,1563=>318,1567=>531,1569=>470,1570=>278,1571=>278,1572=>483,1573=>278,1574=>783,1575=>278,1576=>941,1577=>524,1578=>941,1579=>941,1580=>646,1581=>646,1582=>646,1583=>445,1584=>445,1585=>483,1586=>483,1587=>1221,1588=>1221,1589=>1209,1590=>1209,1591=>925,1592=>925,1593=>597,1594=>597,1600=>293,1601=>1037,1602=>776,1603=>824,1604=>727,1605=>619,1606=>734,1607=>524,1608=>483,1609=>783,1610=>783,1611=>0,1612=>0,1613=>0,1614=>0,1615=>0,1616=>0,1617=>0,1618=>0,1619=>0,1620=>0,1621=>0,1623=>0,1626=>500,1632=>537,1633=>537,1634=>537,1635=>537,1636=>537,1637=>537,1638=>537,1639=>537,1640=>537,1641=>537,1642=>537,1643=>325,1644=>318,1645=>545,1646=>941,1647=>776,1648=>0,1652=>292,1657=>941,1658=>941,1659=>941,1660=>941,1661=>941,1662=>941,1663=>941,1664=>941,1665=>646,1666=>646,1667=>646,1668=>646,1669=>646,1670=>646,1671=>646,1672=>445,1673=>445,1674=>445,1675=>445,1676=>445,1677=>445,1678=>445,1679=>445,1680=>445,1681=>483,1682=>483,1683=>498,1684=>530,1685=>610,1686=>530,1687=>483,1688=>483,1689=>483,1690=>1221,1691=>1221,1692=>1221,1693=>1209,1694=>1209,1695=>925,1696=>597,1697=>1037,1698=>1037,1699=>1037,1700=>1037,1701=>1037,1702=>1037,1703=>776,1704=>776,1705=>895,1706=>1054,1707=>895,1708=>824,1709=>824,1710=>824,1711=>895,1712=>895,1713=>895,1714=>895,1715=>895,1716=>895,1717=>727,1718=>727,1719=>727,1720=>727,1721=>734,1722=>734,1723=>734,1724=>734,1725=>734,1726=>698,1727=>646,1734=>483,1740=>783,1742=>783,1749=>524,1776=>537,1777=>537,1778=>537,1779=>537,1780=>537,1781=>537,1782=>537,1783=>537,1784=>537,1785=>537,1984=>636,1985=>636,1986=>636,1987=>636,1988=>636,1989=>636,1990=>636,1991=>636,1992=>636,1993=>636,1994=>278,1995=>571,1996=>424,1997=>592,1998=>654,1999=>654,2000=>594,2001=>654,2002=>829,2003=>438,2004=>438,2005=>559,2006=>612,2007=>350,2008=>959,2009=>473,2010=>783,2011=>654,2012=>625,2013=>734,2014=>530,2015=>724,2016=>473,2017=>625,2018=>594,2019=>530,2020=>530,2021=>522,2022=>594,2023=>594,2027=>0,2028=>0,2029=>0,2030=>0,2031=>0,2032=>0,2033=>0,2034=>0,2035=>0,2036=>313,2037=>313,2040=>560,2041=>560,2042=>361,3647=>636,3713=>670,3714=>684,3716=>688,3719=>482,3720=>628,3722=>684,3725=>688,3732=>669,3733=>642,3734=>645,3735=>655,3737=>659,3738=>625,3739=>625,3740=>745,3741=>767,3742=>687,3743=>687,3745=>702,3746=>688,3747=>684,3749=>649,3751=>632,3754=>703,3755=>819,3757=>633,3758=>684,3759=>788,3760=>632,3761=>0,3762=>539,3763=>539,3764=>0,3765=>0,3766=>0,3767=>0,3768=>0,3769=>0,3771=>0,3772=>0,3773=>663,3776=>375,3777=>657,3778=>460,3779=>547,3780=>491,3782=>674,3784=>0,3785=>0,3786=>0,3787=>0,3788=>0,3789=>0,3792=>636,3793=>641,3794=>641,3795=>670,3796=>625,3797=>625,3798=>703,3799=>670,3800=>674,3801=>677,3804=>1028,3805=>1028,4256=>874,4257=>733,4258=>679,4259=>834,4260=>615,4261=>768,4262=>753,4263=>914,4264=>453,4265=>620,4266=>843,4267=>882,4268=>625,4269=>854,4270=>781,4271=>629,4272=>912,4273=>621,4274=>620,4275=>854,4276=>866,4277=>724,4278=>630,4279=>621,4280=>625,4281=>620,4282=>818,4283=>874,4284=>615,4285=>623,4286=>625,4287=>725,4288=>844,4289=>596,4290=>688,4291=>596,4292=>594,4293=>738,4304=>508,4305=>518,4306=>581,4307=>818,4308=>508,4309=>513,4310=>500,4311=>801,4312=>518,4313=>510,4314=>1064,4315=>522,4316=>522,4317=>786,4318=>508,4319=>518,4320=>796,4321=>522,4322=>654,4323=>522,4324=>825,4325=>513,4326=>786,4327=>518,4328=>518,4329=>522,4330=>571,4331=>522,4332=>518,4333=>520,4334=>522,4335=>454,4336=>508,4337=>518,4338=>508,4339=>508,4340=>518,4341=>554,4342=>828,4343=>552,4344=>508,4345=>571,4346=>508,4347=>448,4348=>324,5121=>684,5122=>684,5123=>684,5124=>684,5125=>769,5126=>769,5127=>769,5129=>769,5130=>769,5131=>769,5132=>835,5133=>834,5134=>835,5135=>834,5136=>835,5137=>834,5138=>967,5139=>1007,5140=>967,5141=>1007,5142=>769,5143=>967,5144=>1007,5145=>967,5146=>1007,5147=>769,5149=>256,5150=>543,5151=>423,5152=>423,5153=>389,5154=>389,5155=>393,5156=>389,5157=>466,5158=>385,5159=>256,5160=>389,5161=>389,5162=>389,5163=>1090,5164=>909,5165=>953,5166=>1117,5167=>684,5168=>684,5169=>684,5170=>684,5171=>729,5172=>729,5173=>729,5175=>729,5176=>729,5177=>729,5178=>835,5179=>684,5180=>835,5181=>834,5182=>835,5183=>834,5184=>967,5185=>1007,5186=>967,5187=>1007,5188=>967,5189=>1007,5190=>967,5191=>1007,5192=>729,5193=>508,5194=>192,5196=>732,5197=>732,5198=>732,5199=>732,5200=>730,5201=>730,5202=>730,5204=>730,5205=>730,5206=>730,5207=>921,5208=>889,5209=>921,5210=>889,5211=>921,5212=>889,5213=>928,5214=>900,5215=>928,5216=>900,5217=>947,5218=>900,5219=>947,5220=>900,5221=>947,5222=>434,5223=>877,5224=>877,5225=>866,5226=>890,5227=>628,5228=>628,5229=>628,5230=>628,5231=>628,5232=>628,5233=>628,5234=>628,5235=>628,5236=>860,5237=>771,5238=>815,5239=>816,5240=>815,5241=>816,5242=>860,5243=>771,5244=>860,5245=>771,5246=>815,5247=>816,5248=>815,5249=>816,5250=>815,5251=>407,5252=>407,5253=>750,5254=>775,5255=>750,5256=>775,5257=>628,5258=>628,5259=>628,5260=>628,5261=>628,5262=>628,5263=>628,5264=>628,5265=>628,5266=>860,5267=>771,5268=>815,5269=>816,5270=>815,5271=>816,5272=>860,5273=>771,5274=>860,5275=>771,5276=>815,5277=>816,5278=>815,5279=>816,5280=>815,5281=>435,5282=>435,5283=>610,5284=>557,5285=>557,5286=>557,5287=>610,5288=>610,5289=>610,5290=>557,5291=>557,5292=>749,5293=>769,5294=>746,5295=>764,5296=>746,5297=>764,5298=>749,5299=>769,5300=>749,5301=>769,5302=>746,5303=>764,5304=>746,5305=>764,5306=>746,5307=>386,5308=>508,5309=>386,5312=>852,5313=>852,5314=>852,5315=>852,5316=>852,5317=>852,5318=>852,5319=>852,5320=>852,5321=>1069,5322=>1035,5323=>1059,5324=>852,5325=>1059,5326=>852,5327=>852,5328=>600,5329=>453,5330=>600,5331=>852,5332=>852,5333=>852,5334=>852,5335=>852,5336=>852,5337=>852,5338=>852,5339=>852,5340=>1069,5341=>1035,5342=>1059,5343=>1030,5344=>1059,5345=>1030,5346=>1069,5347=>1035,5348=>1069,5349=>1035,5350=>1083,5351=>1030,5352=>1083,5353=>1030,5354=>600,5356=>729,5357=>603,5358=>603,5359=>603,5360=>603,5361=>603,5362=>603,5363=>603,5364=>603,5365=>603,5366=>834,5367=>754,5368=>792,5369=>771,5370=>792,5371=>771,5372=>834,5373=>754,5374=>834,5375=>754,5376=>792,5377=>771,5378=>792,5379=>771,5380=>792,5381=>418,5382=>420,5383=>418,5392=>712,5393=>712,5394=>712,5395=>892,5396=>892,5397=>892,5398=>892,5399=>910,5400=>872,5401=>910,5402=>872,5403=>910,5404=>872,5405=>1140,5406=>1100,5407=>1140,5408=>1100,5409=>1140,5410=>1100,5411=>1140,5412=>1100,5413=>641,5414=>627,5415=>627,5416=>627,5417=>627,5418=>627,5419=>627,5420=>627,5421=>627,5422=>627,5423=>844,5424=>781,5425=>816,5426=>818,5427=>816,5428=>818,5429=>844,5430=>781,5431=>844,5432=>781,5433=>816,5434=>818,5435=>816,5436=>818,5437=>816,5438=>418,5440=>389,5441=>484,5442=>916,5443=>916,5444=>916,5445=>916,5446=>916,5447=>916,5448=>603,5449=>603,5450=>603,5451=>603,5452=>603,5453=>603,5454=>834,5455=>754,5456=>418,5458=>729,5459=>684,5460=>684,5461=>684,5462=>684,5463=>726,5464=>726,5465=>726,5466=>726,5467=>924,5468=>1007,5469=>508,5470=>732,5471=>732,5472=>732,5473=>732,5474=>732,5475=>732,5476=>730,5477=>730,5478=>730,5479=>730,5480=>947,5481=>900,5482=>508,5492=>831,5493=>831,5494=>831,5495=>831,5496=>831,5497=>831,5498=>831,5499=>563,5500=>752,5501=>484,5502=>1047,5503=>1047,5504=>1047,5505=>1047,5506=>1047,5507=>1047,5508=>1047,5509=>825,5514=>831,5515=>831,5516=>831,5517=>831,5518=>1259,5519=>1259,5520=>1259,5521=>1002,5522=>1002,5523=>1259,5524=>1259,5525=>700,5526=>1073,5536=>852,5537=>852,5538=>852,5539=>852,5540=>852,5541=>852,5542=>600,5543=>643,5544=>643,5545=>643,5546=>643,5547=>643,5548=>643,5549=>643,5550=>418,5551=>628,5598=>770,5601=>767,5702=>468,5703=>468,5742=>444,5743=>1047,5744=>1310,5745=>1632,5746=>1632,5747=>1375,5748=>1375,5749=>1632,5750=>1632,5760=>477,5761=>493,5762=>712,5763=>931,5764=>1150,5765=>1370,5766=>493,5767=>712,5768=>931,5769=>1150,5770=>1370,5771=>498,5772=>718,5773=>938,5774=>1159,5775=>1379,5776=>493,5777=>712,5778=>930,5779=>1149,5780=>1370,5781=>498,5782=>752,5783=>789,5784=>1205,5785=>1150,5786=>683,5787=>507,5788=>507,7424=>592,7425=>717,7426=>982,7427=>586,7428=>550,7429=>605,7430=>605,7431=>491,7432=>541,7433=>278,7434=>395,7435=>579,7436=>583,7437=>754,7438=>650,7439=>612,7440=>550,7441=>684,7442=>684,7443=>684,7444=>1023,7446=>612,7447=>612,7448=>524,7449=>602,7450=>602,7451=>583,7452=>574,7453=>737,7454=>948,7455=>638,7456=>592,7457=>818,7458=>525,7459=>526,7462=>583,7463=>592,7464=>564,7465=>524,7466=>590,7467=>639,7468=>431,7469=>613,7470=>432,7472=>485,7473=>398,7474=>398,7475=>488,7476=>474,7477=>186,7478=>186,7479=>413,7480=>351,7481=>543,7482=>471,7483=>471,7484=>496,7485=>439,7486=>380,7487=>438,7488=>385,7489=>461,7490=>623,7491=>392,7492=>392,7493=>405,7494=>648,7495=>428,7496=>405,7497=>417,7498=>417,7499=>360,7500=>359,7501=>405,7502=>179,7503=>426,7504=>623,7505=>409,7506=>414,7507=>370,7508=>414,7509=>414,7510=>428,7511=>295,7512=>405,7513=>470,7514=>623,7515=>417,7517=>402,7518=>373,7519=>385,7520=>416,7521=>364,7522=>179,7523=>259,7524=>405,7525=>417,7526=>402,7527=>373,7528=>412,7529=>416,7530=>364,7543=>635,7544=>474,7547=>372,7549=>667,7557=>278,7579=>405,7580=>370,7581=>370,7582=>414,7583=>360,7584=>296,7585=>233,7586=>405,7587=>405,7588=>261,7589=>250,7590=>261,7591=>261,7592=>234,7593=>250,7594=>235,7595=>376,7596=>623,7597=>623,7598=>411,7599=>479,7600=>409,7601=>414,7602=>414,7603=>360,7604=>287,7605=>295,7606=>508,7607=>418,7608=>361,7609=>406,7610=>417,7611=>366,7612=>437,7613=>366,7614=>392,7615=>414,7620=>0,7621=>0,7622=>0,7623=>0,7624=>0,7625=>0,7680=>684,7681=>613,7682=>686,7683=>635,7684=>686,7685=>635,7686=>686,7687=>635,7688=>698,7689=>550,7690=>770,7691=>635,7692=>770,7693=>635,7694=>770,7695=>635,7696=>770,7697=>635,7698=>770,7699=>635,7700=>632,7701=>615,7702=>632,7703=>615,7704=>632,7705=>615,7706=>632,7707=>615,7708=>632,7709=>615,7710=>575,7711=>352,7712=>775,7713=>635,7714=>752,7715=>634,7716=>752,7717=>634,7718=>752,7719=>634,7720=>752,7721=>634,7722=>752,7723=>634,7724=>295,7725=>278,7726=>295,7727=>278,7728=>656,7729=>579,7730=>656,7731=>579,7732=>656,7733=>579,7734=>557,7735=>288,7736=>557,7737=>288,7738=>557,7739=>278,7740=>557,7741=>278,7742=>863,7743=>974,7744=>863,7745=>974,7746=>863,7747=>974,7748=>748,7749=>634,7750=>748,7751=>634,7752=>748,7753=>634,7754=>748,7755=>634,7756=>787,7757=>612,7758=>787,7759=>612,7760=>787,7761=>612,7762=>787,7763=>612,7764=>603,7765=>635,7766=>603,7767=>635,7768=>695,7769=>411,7770=>695,7771=>411,7772=>695,7773=>411,7774=>695,7775=>411,7776=>635,7777=>521,7778=>635,7779=>521,7780=>635,7781=>521,7782=>635,7783=>521,7784=>635,7785=>521,7786=>611,7787=>392,7788=>611,7789=>392,7790=>611,7791=>392,7792=>611,7793=>392,7794=>732,7795=>634,7796=>732,7797=>634,7798=>732,7799=>634,7800=>732,7801=>634,7802=>732,7803=>634,7804=>684,7805=>592,7806=>684,7807=>592,7808=>989,7809=>818,7810=>989,7811=>818,7812=>989,7813=>818,7814=>989,7815=>818,7816=>989,7817=>818,7818=>685,7819=>592,7820=>685,7821=>592,7822=>611,7823=>592,7824=>685,7825=>525,7826=>685,7827=>525,7828=>685,7829=>525,7830=>634,7831=>392,7832=>818,7833=>592,7834=>613,7835=>352,7836=>352,7837=>352,7838=>769,7839=>612,7840=>684,7841=>613,7842=>684,7843=>613,7844=>684,7845=>613,7846=>684,7847=>613,7848=>684,7849=>613,7850=>684,7851=>613,7852=>684,7853=>613,7854=>684,7855=>613,7856=>684,7857=>613,7858=>684,7859=>613,7860=>684,7861=>613,7862=>684,7863=>613,7864=>632,7865=>615,7866=>632,7867=>615,7868=>632,7869=>615,7870=>632,7871=>615,7872=>632,7873=>615,7874=>632,7875=>615,7876=>632,7877=>615,7878=>632,7879=>615,7880=>295,7881=>278,7882=>295,7883=>278,7884=>787,7885=>612,7886=>787,7887=>612,7888=>787,7889=>612,7890=>787,7891=>612,7892=>787,7893=>612,7894=>787,7895=>612,7896=>787,7897=>612,7898=>913,7899=>612,7900=>913,7901=>612,7902=>913,7903=>612,7904=>913,7905=>612,7906=>913,7907=>612,7908=>732,7909=>634,7910=>732,7911=>634,7912=>858,7913=>634,7914=>858,7915=>634,7916=>858,7917=>634,7918=>858,7919=>634,7920=>858,7921=>634,7922=>611,7923=>592,7924=>611,7925=>592,7926=>611,7927=>592,7928=>611,7929=>592,7930=>769,7931=>477,7936=>659,7937=>659,7938=>659,7939=>659,7940=>659,7941=>659,7942=>659,7943=>659,7944=>684,7945=>684,7946=>877,7947=>877,7948=>769,7949=>801,7950=>708,7951=>743,7952=>541,7953=>541,7954=>541,7955=>541,7956=>541,7957=>541,7960=>711,7961=>711,7962=>966,7963=>975,7964=>898,7965=>928,7968=>634,7969=>634,7970=>634,7971=>634,7972=>634,7973=>634,7974=>634,7975=>634,7976=>837,7977=>835,7978=>1086,7979=>1089,7980=>1027,7981=>1051,7982=>934,7983=>947,7984=>338,7985=>338,7986=>338,7987=>338,7988=>338,7989=>338,7990=>338,7991=>338,7992=>380,7993=>374,7994=>635,7995=>635,7996=>570,7997=>600,7998=>489,7999=>493,8000=>612,8001=>612,8002=>612,8003=>612,8004=>612,8005=>612,8008=>804,8009=>848,8010=>1095,8011=>1100,8012=>938,8013=>970,8016=>579,8017=>579,8018=>579,8019=>579,8020=>579,8021=>579,8022=>579,8023=>579,8025=>784,8027=>998,8029=>1012,8031=>897,8032=>837,8033=>837,8034=>837,8035=>837,8036=>837,8037=>837,8038=>837,8039=>837,8040=>802,8041=>843,8042=>1089,8043=>1095,8044=>946,8045=>972,8046=>921,8047=>952,8048=>659,8049=>659,8050=>541,8051=>548,8052=>634,8053=>654,8054=>338,8055=>338,8056=>612,8057=>612,8058=>579,8059=>579,8060=>837,8061=>837,8064=>659,8065=>659,8066=>659,8067=>659,8068=>659,8069=>659,8070=>659,8071=>659,8072=>684,8073=>684,8074=>877,8075=>877,8076=>769,8077=>801,8078=>708,8079=>743,8080=>634,8081=>634,8082=>634,8083=>634,8084=>634,8085=>634,8086=>634,8087=>634,8088=>837,8089=>835,8090=>1086,8091=>1089,8092=>1027,8093=>1051,8094=>934,8095=>947,8096=>837,8097=>837,8098=>837,8099=>837,8100=>837,8101=>837,8102=>837,8103=>837,8104=>802,8105=>843,8106=>1089,8107=>1095,8108=>946,8109=>972,8110=>921,8111=>952,8112=>659,8113=>659,8114=>659,8115=>659,8116=>659,8118=>659,8119=>659,8120=>684,8121=>684,8122=>716,8123=>692,8124=>684,8125=>500,8126=>500,8127=>500,8128=>500,8129=>500,8130=>634,8131=>634,8132=>654,8134=>634,8135=>634,8136=>805,8137=>746,8138=>931,8139=>871,8140=>752,8141=>500,8142=>500,8143=>500,8144=>338,8145=>338,8146=>338,8147=>338,8150=>338,8151=>338,8152=>295,8153=>295,8154=>475,8155=>408,8157=>500,8158=>500,8159=>500,8160=>579,8161=>579,8162=>579,8163=>579,8164=>635,8165=>635,8166=>579,8167=>579,8168=>611,8169=>611,8170=>845,8171=>825,8172=>685,8173=>500,8174=>500,8175=>500,8178=>837,8179=>837,8180=>837,8182=>837,8183=>837,8184=>941,8185=>813,8186=>922,8187=>826,8188=>764,8189=>500,8190=>500,8192=>500,8193=>1000,8194=>500,8195=>1000,8196=>330,8197=>250,8198=>167,8199=>636,8200=>318,8201=>200,8202=>100,8203=>0,8204=>0,8205=>0,8206=>0,8207=>0,8208=>361,8209=>361,8210=>636,8211=>500,8212=>1000,8213=>1000,8214=>500,8215=>500,8216=>318,8217=>318,8218=>318,8219=>318,8220=>518,8221=>518,8222=>518,8223=>518,8224=>500,8225=>500,8226=>590,8227=>590,8228=>334,8229=>667,8230=>1000,8231=>318,8232=>0,8233=>0,8234=>0,8235=>0,8236=>0,8237=>0,8238=>0,8239=>200,8240=>1342,8241=>1735,8242=>227,8243=>374,8244=>520,8245=>227,8246=>374,8247=>520,8248=>339,8249=>400,8250=>400,8251=>838,8252=>485,8253=>531,8254=>500,8255=>804,8256=>804,8257=>250,8258=>1000,8259=>500,8260=>167,8261=>390,8262=>390,8263=>922,8264=>733,8265=>733,8266=>497,8267=>636,8268=>500,8269=>500,8270=>500,8271=>337,8272=>804,8273=>500,8274=>450,8275=>1000,8276=>804,8277=>838,8278=>586,8279=>663,8280=>838,8281=>838,8282=>318,8283=>797,8284=>838,8285=>318,8286=>318,8287=>222,8288=>0,8289=>0,8290=>0,8291=>0,8292=>0,8298=>0,8299=>0,8300=>0,8301=>0,8302=>0,8303=>0,8304=>401,8305=>179,8308=>401,8309=>401,8310=>401,8311=>401,8312=>401,8313=>401,8314=>528,8315=>528,8316=>528,8317=>246,8318=>246,8319=>398,8320=>401,8321=>401,8322=>401,8323=>401,8324=>401,8325=>401,8326=>401,8327=>401,8328=>401,8329=>401,8330=>528,8331=>528,8332=>528,8333=>246,8334=>246,8336=>392,8337=>417,8338=>414,8339=>444,8340=>417,8341=>404,8342=>426,8343=>166,8344=>623,8345=>398,8346=>428,8347=>373,8348=>295,8352=>877,8353=>636,8354=>636,8355=>636,8356=>636,8357=>974,8358=>748,8359=>1272,8360=>1074,8361=>989,8362=>784,8363=>636,8364=>636,8365=>636,8366=>636,8367=>1272,8368=>636,8369=>636,8370=>636,8371=>636,8372=>774,8373=>636,8376=>636,8377=>636,8378=>679,8400=>0,8401=>0,8406=>0,8407=>0,8411=>0,8412=>0,8417=>0,8448=>1019,8449=>1019,8450=>698,8451=>1123,8452=>642,8453=>1019,8454=>1067,8455=>614,8456=>698,8457=>952,8459=>988,8460=>754,8461=>850,8462=>634,8463=>634,8464=>470,8465=>697,8466=>720,8467=>413,8468=>818,8469=>801,8470=>1040,8471=>1000,8472=>697,8473=>701,8474=>787,8475=>798,8476=>814,8477=>792,8478=>896,8479=>684,8480=>1020,8481=>1074,8482=>1000,8483=>684,8484=>745,8485=>578,8486=>764,8487=>764,8488=>616,8489=>338,8490=>656,8491=>684,8492=>786,8493=>703,8494=>854,8495=>592,8496=>605,8497=>786,8498=>575,8499=>1069,8500=>462,8501=>745,8502=>674,8503=>466,8504=>645,8505=>380,8506=>926,8507=>1194,8508=>702,8509=>728,8510=>654,8511=>849,8512=>811,8513=>775,8514=>557,8515=>557,8516=>611,8517=>819,8518=>708,8519=>615,8520=>351,8521=>351,8523=>780,8526=>526,8528=>969,8529=>969,8530=>1370,8531=>969,8532=>969,8533=>969,8534=>969,8535=>969,8536=>969,8537=>969,8538=>969,8539=>969,8540=>969,8541=>969,8542=>969,8543=>568,8544=>295,8545=>492,8546=>689,8547=>923,8548=>684,8549=>922,8550=>1120,8551=>1317,8552=>917,8553=>685,8554=>933,8555=>1131,8556=>557,8557=>698,8558=>770,8559=>863,8560=>278,8561=>458,8562=>637,8563=>812,8564=>592,8565=>811,8566=>991,8567=>1170,8568=>819,8569=>592,8570=>822,8571=>1002,8572=>278,8573=>550,8574=>635,8575=>974,8576=>1245,8577=>770,8578=>1245,8579=>703,8580=>549,8581=>698,8585=>969,8592=>838,8593=>838,8594=>838,8595=>838,8596=>838,8597=>838,8598=>838,8599=>838,8600=>838,8601=>838,8602=>838,8603=>838,8604=>838,8605=>838,8606=>838,8607=>838,8608=>838,8609=>838,8610=>838,8611=>838,8612=>838,8613=>838,8614=>838,8615=>838,8616=>838,8617=>838,8618=>838,8619=>838,8620=>838,8621=>838,8622=>838,8623=>838,8624=>838,8625=>838,8626=>838,8627=>838,8628=>838,8629=>838,8630=>838,8631=>838,8632=>838,8633=>838,8634=>838,8635=>838,8636=>838,8637=>838,8638=>838,8639=>838,8640=>838,8641=>838,8642=>838,8643=>838,8644=>838,8645=>838,8646=>838,8647=>838,8648=>838,8649=>838,8650=>838,8651=>838,8652=>838,8653=>838,8654=>838,8655=>838,8656=>838,8657=>838,8658=>838,8659=>838,8660=>838,8661=>838,8662=>838,8663=>838,8664=>838,8665=>838,8666=>838,8667=>838,8668=>838,8669=>838,8670=>838,8671=>838,8672=>838,8673=>838,8674=>838,8675=>838,8676=>838,8677=>838,8678=>838,8679=>838,8680=>838,8681=>838,8682=>838,8683=>838,8684=>838,8685=>838,8686=>838,8687=>838,8688=>838,8689=>838,8690=>838,8691=>838,8692=>838,8693=>838,8694=>838,8695=>838,8696=>838,8697=>838,8698=>838,8699=>838,8700=>838,8701=>838,8702=>838,8703=>838,8704=>684,8705=>636,8706=>517,8707=>632,8708=>632,8709=>871,8710=>669,8711=>669,8712=>871,8713=>871,8714=>718,8715=>871,8716=>871,8717=>718,8718=>636,8719=>757,8720=>757,8721=>674,8722=>838,8723=>838,8724=>838,8725=>337,8726=>637,8727=>838,8728=>626,8729=>626,8730=>637,8731=>637,8732=>637,8733=>714,8734=>833,8735=>838,8736=>896,8737=>896,8738=>838,8739=>500,8740=>500,8741=>500,8742=>500,8743=>732,8744=>732,8745=>732,8746=>732,8747=>521,8748=>789,8749=>1057,8750=>521,8751=>789,8752=>1057,8753=>521,8754=>521,8755=>521,8756=>636,8757=>636,8758=>260,8759=>636,8760=>838,8761=>838,8762=>838,8763=>838,8764=>838,8765=>838,8766=>838,8767=>838,8768=>375,8769=>838,8770=>838,8771=>838,8772=>838,8773=>838,8774=>838,8775=>838,8776=>838,8777=>838,8778=>838,8779=>838,8780=>838,8781=>838,8782=>838,8783=>838,8784=>838,8785=>838,8786=>839,8787=>839,8788=>1000,8789=>1000,8790=>838,8791=>838,8792=>838,8793=>838,8794=>838,8795=>838,8796=>838,8797=>838,8798=>838,8799=>838,8800=>838,8801=>838,8802=>838,8803=>838,8804=>838,8805=>838,8806=>838,8807=>838,8808=>838,8809=>838,8810=>1047,8811=>1047,8812=>464,8813=>838,8814=>838,8815=>838,8816=>838,8817=>838,8818=>838,8819=>838,8820=>838,8821=>838,8822=>838,8823=>838,8824=>838,8825=>838,8826=>838,8827=>838,8828=>838,8829=>838,8830=>838,8831=>838,8832=>838,8833=>838,8834=>838,8835=>838,8836=>838,8837=>838,8838=>838,8839=>838,8840=>838,8841=>838,8842=>838,8843=>838,8844=>732,8845=>732,8846=>732,8847=>838,8848=>838,8849=>838,8850=>838,8851=>780,8852=>780,8853=>838,8854=>838,8855=>838,8856=>838,8857=>838,8858=>838,8859=>838,8860=>838,8861=>838,8862=>838,8863=>838,8864=>838,8865=>838,8866=>871,8867=>871,8868=>871,8869=>871,8870=>521,8871=>521,8872=>871,8873=>871,8874=>871,8875=>871,8876=>871,8877=>871,8878=>871,8879=>871,8880=>838,8881=>838,8882=>838,8883=>838,8884=>838,8885=>838,8886=>1000,8887=>1000,8888=>838,8889=>838,8890=>521,8891=>732,8892=>732,8893=>732,8894=>838,8895=>838,8896=>820,8897=>820,8898=>820,8899=>820,8900=>494,8901=>318,8902=>626,8903=>838,8904=>1000,8905=>1000,8906=>1000,8907=>1000,8908=>1000,8909=>838,8910=>732,8911=>732,8912=>838,8913=>838,8914=>838,8915=>838,8916=>838,8917=>838,8918=>838,8919=>838,8920=>1422,8921=>1422,8922=>838,8923=>838,8924=>838,8925=>838,8926=>838,8927=>838,8928=>838,8929=>838,8930=>838,8931=>838,8932=>838,8933=>838,8934=>838,8935=>838,8936=>838,8937=>838,8938=>838,8939=>838,8940=>838,8941=>838,8942=>1000,8943=>1000,8944=>1000,8945=>1000,8946=>1000,8947=>871,8948=>718,8949=>871,8950=>871,8951=>718,8952=>871,8953=>871,8954=>1000,8955=>871,8956=>718,8957=>871,8958=>718,8959=>871,8960=>602,8961=>602,8962=>635,8963=>838,8964=>838,8965=>838,8966=>838,8967=>488,8968=>390,8969=>390,8970=>390,8971=>390,8972=>809,8973=>809,8974=>809,8975=>809,8976=>838,8977=>513,8984=>1000,8985=>838,8988=>469,8989=>469,8990=>469,8991=>469,8992=>521,8993=>521,8996=>1152,8997=>1152,8998=>1414,8999=>1152,9000=>1443,9003=>1414,9004=>873,9075=>338,9076=>635,9077=>837,9082=>659,9085=>757,9095=>1152,9108=>873,9115=>500,9116=>500,9117=>500,9118=>500,9119=>500,9120=>500,9121=>500,9122=>500,9123=>500,9124=>500,9125=>500,9126=>500,9127=>750,9128=>750,9129=>750,9130=>750,9131=>750,9132=>750,9133=>750,9134=>521,9166=>838,9167=>945,9187=>873,9189=>769,9192=>636,9250=>635,9251=>635,9312=>896,9313=>896,9314=>896,9315=>896,9316=>896,9317=>896,9318=>896,9319=>896,9320=>896,9321=>896,9472=>602,9473=>602,9474=>602,9475=>602,9476=>602,9477=>602,9478=>602,9479=>602,9480=>602,9481=>602,9482=>602,9483=>602,9484=>602,9485=>602,9486=>602,9487=>602,9488=>602,9489=>602,9490=>602,9491=>602,9492=>602,9493=>602,9494=>602,9495=>602,9496=>602,9497=>602,9498=>602,9499=>602,9500=>602,9501=>602,9502=>602,9503=>602,9504=>602,9505=>602,9506=>602,9507=>602,9508=>602,9509=>602,9510=>602,9511=>602,9512=>602,9513=>602,9514=>602,9515=>602,9516=>602,9517=>602,9518=>602,9519=>602,9520=>602,9521=>602,9522=>602,9523=>602,9524=>602,9525=>602,9526=>602,9527=>602,9528=>602,9529=>602,9530=>602,9531=>602,9532=>602,9533=>602,9534=>602,9535=>602,9536=>602,9537=>602,9538=>602,9539=>602,9540=>602,9541=>602,9542=>602,9543=>602,9544=>602,9545=>602,9546=>602,9547=>602,9548=>602,9549=>602,9550=>602,9551=>602,9552=>602,9553=>602,9554=>602,9555=>602,9556=>602,9557=>602,9558=>602,9559=>602,9560=>602,9561=>602,9562=>602,9563=>602,9564=>602,9565=>602,9566=>602,9567=>602,9568=>602,9569=>602,9570=>602,9571=>602,9572=>602,9573=>602,9574=>602,9575=>602,9576=>602,9577=>602,9578=>602,9579=>602,9580=>602,9581=>602,9582=>602,9583=>602,9584=>602,9585=>602,9586=>602,9587=>602,9588=>602,9589=>602,9590=>602,9591=>602,9592=>602,9593=>602,9594=>602,9595=>602,9596=>602,9597=>602,9598=>602,9599=>602,9600=>769,9601=>769,9602=>769,9603=>769,9604=>769,9605=>769,9606=>769,9607=>769,9608=>769,9609=>769,9610=>769,9611=>769,9612=>769,9613=>769,9614=>769,9615=>769,9616=>769,9617=>769,9618=>769,9619=>769,9620=>769,9621=>769,9622=>769,9623=>769,9624=>769,9625=>769,9626=>769,9627=>769,9628=>769,9629=>769,9630=>769,9631=>769,9632=>945,9633=>945,9634=>945,9635=>945,9636=>945,9637=>945,9638=>945,9639=>945,9640=>945,9641=>945,9642=>678,9643=>678,9644=>945,9645=>945,9646=>550,9647=>550,9648=>769,9649=>769,9650=>769,9651=>769,9652=>502,9653=>502,9654=>769,9655=>769,9656=>502,9657=>502,9658=>769,9659=>769,9660=>769,9661=>769,9662=>502,9663=>502,9664=>769,9665=>769,9666=>502,9667=>502,9668=>769,9669=>769,9670=>769,9671=>769,9672=>769,9673=>873,9674=>494,9675=>873,9676=>873,9677=>873,9678=>873,9679=>873,9680=>873,9681=>873,9682=>873,9683=>873,9684=>873,9685=>873,9686=>527,9687=>527,9688=>791,9689=>970,9690=>970,9691=>970,9692=>387,9693=>387,9694=>387,9695=>387,9696=>873,9697=>873,9698=>769,9699=>769,9700=>769,9701=>769,9702=>590,9703=>945,9704=>945,9705=>945,9706=>945,9707=>945,9708=>769,9709=>769,9710=>769,9711=>1119,9712=>945,9713=>945,9714=>945,9715=>945,9716=>873,9717=>873,9718=>873,9719=>873,9720=>769,9721=>769,9722=>769,9723=>830,9724=>830,9725=>732,9726=>732,9727=>769,9728=>896,9729=>1000,9730=>896,9731=>896,9732=>896,9733=>896,9734=>896,9735=>573,9736=>896,9737=>896,9738=>888,9739=>888,9740=>671,9741=>1013,9742=>1246,9743=>1250,9744=>896,9745=>896,9746=>896,9747=>532,9748=>896,9749=>896,9750=>896,9751=>896,9752=>896,9753=>896,9754=>896,9755=>896,9756=>896,9757=>609,9758=>896,9759=>609,9760=>896,9761=>896,9762=>896,9763=>896,9764=>669,9765=>746,9766=>649,9767=>784,9768=>545,9769=>896,9770=>896,9771=>896,9772=>710,9773=>896,9774=>896,9775=>896,9776=>896,9777=>896,9778=>896,9779=>896,9780=>896,9781=>896,9782=>896,9783=>896,9784=>896,9785=>1042,9786=>1042,9787=>1042,9788=>896,9789=>896,9790=>896,9791=>614,9792=>732,9793=>732,9794=>896,9795=>896,9796=>896,9797=>896,9798=>896,9799=>896,9800=>896,9801=>896,9802=>896,9803=>896,9804=>896,9805=>896,9806=>896,9807=>896,9808=>896,9809=>896,9810=>896,9811=>896,9812=>896,9813=>896,9814=>896,9815=>896,9816=>896,9817=>896,9818=>896,9819=>896,9820=>896,9821=>896,9822=>896,9823=>896,9824=>896,9825=>896,9826=>896,9827=>896,9828=>896,9829=>896,9830=>896,9831=>896,9832=>896,9833=>472,9834=>638,9835=>896,9836=>896,9837=>472,9838=>357,9839=>484,9840=>748,9841=>766,9842=>896,9843=>896,9844=>896,9845=>896,9846=>896,9847=>896,9848=>896,9849=>896,9850=>896,9851=>896,9852=>896,9853=>896,9854=>896,9855=>896,9856=>869,9857=>869,9858=>869,9859=>869,9860=>869,9861=>869,9862=>896,9863=>896,9864=>896,9865=>896,9866=>896,9867=>896,9868=>896,9869=>896,9870=>896,9871=>896,9872=>896,9873=>896,9874=>896,9875=>896,9876=>896,9877=>541,9878=>896,9879=>896,9880=>896,9881=>896,9882=>896,9883=>896,9884=>896,9888=>896,9889=>702,9890=>1004,9891=>1089,9892=>1175,9893=>903,9894=>838,9895=>838,9896=>838,9897=>838,9898=>838,9899=>838,9900=>838,9901=>838,9902=>838,9903=>838,9904=>844,9905=>838,9906=>732,9907=>732,9908=>732,9909=>732,9910=>850,9911=>732,9912=>732,9920=>838,9921=>838,9922=>838,9923=>838,9954=>732,9985=>838,9986=>838,9987=>838,9988=>838,9990=>838,9991=>838,9992=>838,9993=>838,9996=>838,9997=>838,9998=>838,9999=>838,10000=>838,10001=>838,10002=>838,10003=>838,10004=>838,10005=>838,10006=>838,10007=>838,10008=>838,10009=>838,10010=>838,10011=>838,10012=>838,10013=>838,10014=>838,10015=>838,10016=>838,10017=>838,10018=>838,10019=>838,10020=>838,10021=>838,10022=>838,10023=>838,10025=>838,10026=>838,10027=>838,10028=>838,10029=>838,10030=>838,10031=>838,10032=>838,10033=>838,10034=>838,10035=>838,10036=>838,10037=>838,10038=>838,10039=>838,10040=>838,10041=>838,10042=>838,10043=>838,10044=>838,10045=>838,10046=>838,10047=>838,10048=>838,10049=>838,10050=>838,10051=>838,10052=>838,10053=>838,10054=>838,10055=>838,10056=>838,10057=>838,10058=>838,10059=>838,10061=>896,10063=>896,10064=>896,10065=>896,10066=>896,10070=>896,10072=>838,10073=>838,10074=>838,10075=>322,10076=>322,10077=>538,10078=>538,10081=>838,10082=>838,10083=>838,10084=>838,10085=>838,10086=>838,10087=>838,10088=>838,10089=>838,10090=>838,10091=>838,10092=>838,10093=>838,10094=>838,10095=>838,10096=>838,10097=>838,10098=>838,10099=>838,10100=>838,10101=>838,10102=>896,10103=>896,10104=>896,10105=>896,10106=>896,10107=>896,10108=>896,10109=>896,10110=>896,10111=>896,10112=>838,10113=>838,10114=>838,10115=>838,10116=>838,10117=>838,10118=>838,10119=>838,10120=>838,10121=>838,10122=>838,10123=>838,10124=>838,10125=>838,10126=>838,10127=>838,10128=>838,10129=>838,10130=>838,10131=>838,10132=>838,10136=>838,10137=>838,10138=>838,10139=>838,10140=>838,10141=>838,10142=>838,10143=>838,10144=>838,10145=>838,10146=>838,10147=>838,10148=>838,10149=>838,10150=>838,10151=>838,10152=>838,10153=>838,10154=>838,10155=>838,10156=>838,10157=>838,10158=>838,10159=>838,10161=>838,10162=>838,10163=>838,10164=>838,10165=>838,10166=>838,10167=>838,10168=>838,10169=>838,10170=>838,10171=>838,10172=>838,10173=>838,10174=>838,10181=>390,10182=>390,10208=>494,10214=>495,10215=>495,10216=>390,10217=>390,10218=>556,10219=>556,10224=>838,10225=>838,10226=>838,10227=>838,10228=>1157,10229=>1434,10230=>1434,10231=>1434,10232=>1434,10233=>1434,10234=>1434,10235=>1434,10236=>1434,10237=>1434,10238=>1434,10239=>1434,10240=>732,10241=>732,10242=>732,10243=>732,10244=>732,10245=>732,10246=>732,10247=>732,10248=>732,10249=>732,10250=>732,10251=>732,10252=>732,10253=>732,10254=>732,10255=>732,10256=>732,10257=>732,10258=>732,10259=>732,10260=>732,10261=>732,10262=>732,10263=>732,10264=>732,10265=>732,10266=>732,10267=>732,10268=>732,10269=>732,10270=>732,10271=>732,10272=>732,10273=>732,10274=>732,10275=>732,10276=>732,10277=>732,10278=>732,10279=>732,10280=>732,10281=>732,10282=>732,10283=>732,10284=>732,10285=>732,10286=>732,10287=>732,10288=>732,10289=>732,10290=>732,10291=>732,10292=>732,10293=>732,10294=>732,10295=>732,10296=>732,10297=>732,10298=>732,10299=>732,10300=>732,10301=>732,10302=>732,10303=>732,10304=>732,10305=>732,10306=>732,10307=>732,10308=>732,10309=>732,10310=>732,10311=>732,10312=>732,10313=>732,10314=>732,10315=>732,10316=>732,10317=>732,10318=>732,10319=>732,10320=>732,10321=>732,10322=>732,10323=>732,10324=>732,10325=>732,10326=>732,10327=>732,10328=>732,10329=>732,10330=>732,10331=>732,10332=>732,10333=>732,10334=>732,10335=>732,10336=>732,10337=>732,10338=>732,10339=>732,10340=>732,10341=>732,10342=>732,10343=>732,10344=>732,10345=>732,10346=>732,10347=>732,10348=>732,10349=>732,10350=>732,10351=>732,10352=>732,10353=>732,10354=>732,10355=>732,10356=>732,10357=>732,10358=>732,10359=>732,10360=>732,10361=>732,10362=>732,10363=>732,10364=>732,10365=>732,10366=>732,10367=>732,10368=>732,10369=>732,10370=>732,10371=>732,10372=>732,10373=>732,10374=>732,10375=>732,10376=>732,10377=>732,10378=>732,10379=>732,10380=>732,10381=>732,10382=>732,10383=>732,10384=>732,10385=>732,10386=>732,10387=>732,10388=>732,10389=>732,10390=>732,10391=>732,10392=>732,10393=>732,10394=>732,10395=>732,10396=>732,10397=>732,10398=>732,10399=>732,10400=>732,10401=>732,10402=>732,10403=>732,10404=>732,10405=>732,10406=>732,10407=>732,10408=>732,10409=>732,10410=>732,10411=>732,10412=>732,10413=>732,10414=>732,10415=>732,10416=>732,10417=>732,10418=>732,10419=>732,10420=>732,10421=>732,10422=>732,10423=>732,10424=>732,10425=>732,10426=>732,10427=>732,10428=>732,10429=>732,10430=>732,10431=>732,10432=>732,10433=>732,10434=>732,10435=>732,10436=>732,10437=>732,10438=>732,10439=>732,10440=>732,10441=>732,10442=>732,10443=>732,10444=>732,10445=>732,10446=>732,10447=>732,10448=>732,10449=>732,10450=>732,10451=>732,10452=>732,10453=>732,10454=>732,10455=>732,10456=>732,10457=>732,10458=>732,10459=>732,10460=>732,10461=>732,10462=>732,10463=>732,10464=>732,10465=>732,10466=>732,10467=>732,10468=>732,10469=>732,10470=>732,10471=>732,10472=>732,10473=>732,10474=>732,10475=>732,10476=>732,10477=>732,10478=>732,10479=>732,10480=>732,10481=>732,10482=>732,10483=>732,10484=>732,10485=>732,10486=>732,10487=>732,10488=>732,10489=>732,10490=>732,10491=>732,10492=>732,10493=>732,10494=>732,10495=>732,10502=>838,10503=>838,10506=>838,10507=>838,10560=>683,10561=>683,10627=>734,10628=>734,10702=>838,10703=>1000,10704=>1000,10705=>1000,10706=>1000,10707=>1000,10708=>1000,10709=>1000,10731=>494,10746=>838,10747=>838,10752=>1000,10753=>1000,10754=>1000,10764=>1325,10765=>521,10766=>521,10767=>521,10768=>521,10769=>521,10770=>521,10771=>521,10772=>521,10773=>521,10774=>521,10775=>521,10776=>521,10777=>521,10778=>521,10779=>521,10780=>521,10799=>838,10858=>838,10859=>838,10877=>838,10878=>838,10879=>838,10880=>838,10881=>838,10882=>838,10883=>838,10884=>838,10885=>838,10886=>838,10887=>838,10888=>838,10889=>838,10890=>838,10891=>838,10892=>838,10893=>838,10894=>838,10895=>838,10896=>838,10897=>838,10898=>838,10899=>838,10900=>838,10901=>838,10902=>838,10903=>838,10904=>838,10905=>838,10906=>838,10907=>838,10908=>838,10909=>838,10910=>838,10911=>838,10912=>838,10926=>838,10927=>838,10928=>838,10929=>838,10930=>838,10931=>838,10932=>838,10933=>838,10934=>838,10935=>838,10936=>838,10937=>838,10938=>838,11001=>838,11002=>838,11008=>838,11009=>838,11010=>838,11011=>838,11012=>838,11013=>838,11014=>838,11015=>838,11016=>838,11017=>838,11018=>838,11019=>838,11020=>838,11021=>838,11022=>836,11023=>836,11024=>836,11025=>836,11026=>945,11027=>945,11028=>945,11029=>945,11030=>769,11031=>769,11032=>769,11033=>769,11034=>945,11039=>869,11040=>869,11041=>873,11042=>873,11043=>873,11044=>1119,11091=>869,11092=>869,11360=>557,11361=>278,11362=>557,11363=>603,11364=>695,11365=>613,11366=>392,11367=>752,11368=>634,11369=>656,11370=>579,11371=>685,11372=>525,11373=>781,11374=>863,11375=>684,11376=>781,11377=>734,11378=>1128,11379=>961,11380=>592,11381=>654,11382=>568,11383=>660,11385=>414,11386=>612,11387=>491,11388=>175,11389=>431,11390=>635,11391=>685,11520=>591,11521=>595,11522=>564,11523=>602,11524=>587,11525=>911,11526=>626,11527=>952,11528=>595,11529=>607,11530=>954,11531=>620,11532=>595,11533=>926,11534=>595,11535=>806,11536=>931,11537=>584,11538=>592,11539=>923,11540=>953,11541=>828,11542=>596,11543=>595,11544=>590,11545=>592,11546=>592,11547=>621,11548=>920,11549=>589,11550=>586,11551=>581,11552=>914,11553=>596,11554=>595,11555=>592,11556=>642,11557=>901,11568=>646,11569=>888,11570=>888,11571=>682,11572=>684,11573=>635,11574=>562,11575=>684,11576=>684,11577=>632,11578=>632,11579=>683,11580=>875,11581=>685,11582=>491,11583=>685,11584=>888,11585=>888,11586=>300,11587=>627,11588=>752,11589=>656,11590=>527,11591=>685,11592=>645,11593=>632,11594=>502,11595=>953,11596=>778,11597=>748,11598=>621,11599=>295,11600=>778,11601=>295,11602=>752,11603=>633,11604=>888,11605=>888,11606=>752,11607=>320,11608=>749,11609=>888,11610=>888,11611=>698,11612=>768,11613=>685,11614=>698,11615=>622,11616=>684,11617=>752,11618=>632,11619=>788,11620=>567,11621=>788,11631=>515,11800=>531,11806=>838,11810=>390,11811=>390,11812=>390,11813=>390,11822=>531,19904=>896,19905=>896,19906=>896,19907=>896,19908=>896,19909=>896,19910=>896,19911=>896,19912=>896,19913=>896,19914=>896,19915=>896,19916=>896,19917=>896,19918=>896,19919=>896,19920=>896,19921=>896,19922=>896,19923=>896,19924=>896,19925=>896,19926=>896,19927=>896,19928=>896,19929=>896,19930=>896,19931=>896,19932=>896,19933=>896,19934=>896,19935=>896,19936=>896,19937=>896,19938=>896,19939=>896,19940=>896,19941=>896,19942=>896,19943=>896,19944=>896,19945=>896,19946=>896,19947=>896,19948=>896,19949=>896,19950=>896,19951=>896,19952=>896,19953=>896,19954=>896,19955=>896,19956=>896,19957=>896,19958=>896,19959=>896,19960=>896,19961=>896,19962=>896,19963=>896,19964=>896,19965=>896,19966=>896,19967=>896,42192=>686,42193=>603,42194=>603,42195=>770,42196=>611,42197=>611,42198=>775,42199=>656,42200=>656,42201=>512,42202=>698,42203=>703,42204=>685,42205=>575,42206=>575,42207=>863,42208=>748,42209=>557,42210=>635,42211=>695,42212=>695,42213=>684,42214=>684,42215=>752,42216=>775,42217=>512,42218=>989,42219=>685,42220=>611,42221=>686,42222=>684,42223=>684,42224=>632,42225=>632,42226=>295,42227=>787,42228=>732,42229=>732,42230=>557,42231=>767,42232=>300,42233=>300,42234=>596,42235=>596,42236=>300,42237=>300,42238=>588,42239=>588,42564=>635,42565=>521,42566=>354,42567=>338,42572=>1180,42573=>1028,42576=>1029,42577=>906,42580=>1080,42581=>842,42582=>977,42583=>843,42594=>1062,42595=>912,42596=>1066,42597=>901,42598=>1178,42599=>1008,42600=>787,42601=>612,42602=>855,42603=>712,42604=>1358,42605=>1019,42606=>879,42634=>782,42635=>685,42636=>611,42637=>583,42644=>686,42645=>634,42760=>493,42761=>493,42762=>493,42763=>493,42764=>493,42765=>493,42766=>493,42767=>493,42768=>493,42769=>493,42770=>493,42771=>493,42772=>493,42773=>493,42774=>493,42779=>369,42780=>369,42781=>252,42782=>252,42783=>252,42786=>385,42787=>356,42788=>472,42789=>472,42790=>752,42791=>634,42792=>878,42793=>709,42794=>614,42795=>541,42800=>491,42801=>521,42802=>1250,42803=>985,42804=>1203,42805=>990,42806=>1142,42807=>981,42808=>971,42809=>818,42810=>971,42811=>818,42812=>959,42813=>818,42814=>703,42815=>549,42816=>656,42817=>583,42822=>680,42823=>392,42824=>582,42825=>427,42826=>807,42827=>704,42830=>1358,42831=>1019,42832=>603,42833=>635,42834=>734,42835=>774,42838=>787,42839=>635,42852=>605,42853=>635,42854=>605,42855=>635,42880=>557,42881=>278,42882=>735,42883=>634,42889=>337,42890=>376,42891=>401,42892=>275,42893=>686,42894=>487,42896=>772,42897=>667,42912=>775,42913=>635,42914=>656,42915=>579,42916=>748,42917=>634,42918=>695,42919=>411,42920=>635,42921=>521,42922=>801,43002=>915,43003=>575,43004=>603,43005=>863,43006=>295,43007=>1199,61184=>213,61185=>238,61186=>257,61187=>264,61188=>267,61189=>238,61190=>213,61191=>238,61192=>257,61193=>264,61194=>257,61195=>238,61196=>213,61197=>238,61198=>257,61199=>264,61200=>257,61201=>238,61202=>213,61203=>238,61204=>267,61205=>264,61206=>257,61207=>238,61208=>213,61209=>275,61440=>977,61441=>977,61442=>977,61443=>977,62464=>580,62465=>580,62466=>624,62467=>889,62468=>585,62469=>580,62470=>653,62471=>882,62472=>555,62473=>580,62474=>1168,62475=>589,62476=>590,62477=>869,62478=>580,62479=>589,62480=>914,62481=>590,62482=>731,62483=>583,62484=>872,62485=>589,62486=>895,62487=>589,62488=>589,62489=>590,62490=>649,62491=>589,62492=>589,62493=>599,62494=>590,62495=>516,62496=>580,62497=>584,62498=>580,62499=>580,62500=>581,62501=>638,62502=>955,62504=>931,62505=>808,62506=>508,62507=>508,62508=>508,62509=>508,62510=>508,62511=>508,62512=>508,62513=>508,62514=>508,62515=>508,62516=>518,62517=>518,62518=>518,62519=>787,62520=>787,62521=>787,62522=>787,62523=>787,62524=>546,62525=>546,62526=>546,62527=>546,62528=>546,62529=>546,63173=>612,64256=>689,64257=>630,64258=>630,64259=>967,64260=>967,64261=>686,64262=>861,64275=>1202,64276=>1202,64277=>1196,64278=>1186,64279=>1529,64285=>224,64286=>0,64287=>331,64288=>636,64289=>856,64290=>774,64291=>906,64292=>771,64293=>843,64294=>855,64295=>807,64296=>875,64297=>838,64298=>708,64299=>708,64300=>708,64301=>708,64302=>668,64303=>668,64304=>668,64305=>578,64306=>412,64307=>546,64308=>653,64309=>355,64310=>406,64312=>648,64313=>330,64314=>537,64315=>529,64316=>568,64318=>679,64320=>399,64321=>649,64323=>640,64324=>625,64326=>593,64327=>709,64328=>564,64329=>708,64330=>657,64331=>272,64332=>578,64333=>529,64334=>625,64335=>629,64338=>941,64339=>982,64340=>278,64341=>302,64342=>941,64343=>982,64344=>278,64345=>302,64346=>941,64347=>982,64348=>278,64349=>302,64350=>941,64351=>982,64352=>278,64353=>302,64354=>941,64355=>982,64356=>278,64357=>302,64358=>941,64359=>982,64360=>278,64361=>302,64362=>1037,64363=>1035,64364=>478,64365=>506,64366=>1037,64367=>1035,64368=>478,64369=>506,64370=>646,64371=>646,64372=>618,64373=>646,64374=>646,64375=>646,64376=>618,64377=>646,64378=>646,64379=>646,64380=>618,64381=>646,64382=>646,64383=>646,64384=>618,64385=>646,64386=>445,64387=>525,64388=>445,64389=>525,64390=>445,64391=>525,64392=>445,64393=>525,64394=>483,64395=>552,64396=>483,64397=>552,64398=>895,64399=>895,64400=>476,64401=>552,64402=>895,64403=>895,64404=>476,64405=>552,64406=>895,64407=>895,64408=>476,64409=>552,64410=>895,64411=>895,64412=>476,64413=>552,64414=>734,64415=>761,64416=>734,64417=>761,64418=>278,64419=>302,64426=>698,64427=>632,64428=>527,64429=>461,64467=>824,64468=>843,64469=>476,64470=>552,64473=>483,64474=>517,64488=>278,64489=>302,64508=>783,64509=>833,64510=>278,64511=>302,65024=>0,65025=>0,65026=>0,65027=>0,65028=>0,65029=>0,65030=>0,65031=>0,65032=>0,65033=>0,65034=>0,65035=>0,65036=>0,65037=>0,65038=>0,65039=>0,65056=>0,65057=>0,65058=>0,65059=>0,65136=>293,65137=>293,65138=>293,65139=>262,65140=>293,65142=>293,65143=>293,65144=>293,65145=>293,65146=>293,65147=>293,65148=>293,65149=>293,65150=>293,65151=>293,65152=>470,65153=>278,65154=>305,65155=>278,65156=>305,65157=>483,65158=>517,65159=>278,65160=>305,65161=>783,65162=>833,65163=>278,65164=>302,65165=>278,65166=>305,65167=>941,65168=>982,65169=>278,65170=>302,65171=>524,65172=>536,65173=>941,65174=>982,65175=>278,65176=>302,65177=>941,65178=>982,65179=>278,65180=>302,65181=>646,65182=>646,65183=>618,65184=>646,65185=>646,65186=>646,65187=>618,65188=>646,65189=>646,65190=>646,65191=>618,65192=>646,65193=>445,65194=>525,65195=>445,65196=>525,65197=>483,65198=>552,65199=>483,65200=>552,65201=>1221,65202=>1275,65203=>838,65204=>892,65205=>1221,65206=>1275,65207=>838,65208=>892,65209=>1209,65210=>1225,65211=>849,65212=>867,65213=>1209,65214=>1225,65215=>849,65216=>867,65217=>925,65218=>949,65219=>796,65220=>820,65221=>925,65222=>949,65223=>796,65224=>820,65225=>597,65226=>532,65227=>597,65228=>482,65229=>597,65230=>532,65231=>523,65232=>482,65233=>1037,65234=>1035,65235=>478,65236=>506,65237=>776,65238=>834,65239=>478,65240=>506,65241=>824,65242=>843,65243=>476,65244=>552,65245=>727,65246=>757,65247=>305,65248=>331,65249=>619,65250=>666,65251=>536,65252=>578,65253=>734,65254=>761,65255=>278,65256=>302,65257=>524,65258=>536,65259=>527,65260=>461,65261=>483,65262=>517,65263=>783,65264=>833,65265=>783,65266=>833,65267=>278,65268=>302,65269=>570,65270=>597,65271=>570,65272=>597,65273=>570,65274=>597,65275=>570,65276=>597,65279=>0,65529=>0,65530=>0,65531=>0,65532=>0,65533=>1025,65535=>600);
16
+ // --- EOF ---
includes/tcpdf_min/fonts/dejavusans.z ADDED
Binary file
includes/tcpdf_min/fonts/dejavusansb.ctg.z ADDED
Binary file
includes/tcpdf_min/fonts/dejavusansb.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='TrueTypeUnicode';
4
+ $name='DejaVuSans-Bold';
5
+ $up=-63;
6
+ $ut=44;
7
+ $dw=600;
8
+ $diff='';
9
+ $originalsize=693876;
10
+ $enc='';
11
+ $file='dejavusansb.z';
12
+ $ctg='dejavusansb.ctg.z';
13
+ $desc=array('Flags'=>32,'FontBBox'=>'[-1069 -415 1975 1174]','ItalicAngle'=>0,'Ascent'=>928,'Descent'=>-236,'Leading'=>0,'CapHeight'=>729,'XHeight'=>547,'StemV'=>60,'StemH'=>26,'AvgWidth'=>573,'MaxWidth'=>2016,'MissingWidth'=>600);
14
+ $cbbox=array(0=>array(50,-177,550,705),32=>array(140,0,316,729),33=>array(140,0,316,729),34=>array(95,458,426,729),35=>array(68,0,770,718),36=>array(78,-147,628,760),37=>array(32,-14,970,742),38=>array(60,-14,830,742),39=>array(95,458,211,729),40=>array(86,-132,377,759),41=>array(80,-132,371,759),42=>array(20,278,503,742),43=>array(106,0,732,627),44=>array(53,-142,278,189),45=>array(54,217,361,359),46=>array(102,0,278,189),47=>array(0,-93,365,729),48=>array(48,-14,648,742),49=>array(113,0,627,729),50=>array(79,0,609,742),51=>array(67,-14,616,742),52=>array(45,0,650,729),53=>array(77,-14,626,729),54=>array(62,-14,642,741),55=>array(67,0,616,729),56=>array(61,-14,634,742),57=>array(52,-14,632,741),58=>array(112,0,288,547),59=>array(63,-142,288,547),60=>array(106,30,732,597),61=>array(106,144,732,482),62=>array(106,30,732,597),63=>array(69,0,515,742),64=>array(66,-174,929,703),65=>array(5,0,769,729),66=>array(92,0,692,729),67=>array(50,-14,670,742),68=>array(92,0,778,729),69=>array(92,0,610,729),70=>array(92,0,599,729),71=>array(50,-14,747,742),72=>array(92,0,745,729),73=>array(92,0,280,729),74=>array(-56,-200,280,729),75=>array(92,0,805,729),76=>array(92,0,610,729),77=>array(92,0,903,729),78=>array(92,0,745,729),79=>array(50,-14,800,742),80=>array(92,0,692,729),81=>array(50,-146,800,742),82=>array(92,0,750,729),83=>array(72,-14,647,742),84=>array(5,0,677,729),85=>array(92,-14,720,729),86=>array(5,0,769,729),87=>array(30,0,1072,729),88=>array(19,0,751,729),89=>array(-10,0,734,729),90=>array(45,0,680,729),91=>array(86,-132,389,760),92=>array(0,-93,365,729),93=>array(68,-132,371,760),94=>array(101,457,737,729),95=>array(0,-236,500,-143),96=>array(46,616,322,800),97=>array(43,-14,596,560),98=>array(84,-14,671,760),99=>array(43,-14,526,560),100=>array(45,-14,632,760),101=>array(43,-14,630,560),102=>array(19,0,444,760),103=>array(45,-216,632,559),104=>array(84,0,634,760),105=>array(84,0,259,760),106=>array(-33,-216,259,760),107=>array(84,0,684,760),108=>array(84,0,259,760),109=>array(83,0,963,560),110=>array(84,0,634,560),111=>array(43,-14,644,560),112=>array(84,-208,671,560),113=>array(45,-208,632,559),114=>array(84,0,490,560),115=>array(52,-14,548,560),116=>array(13,0,455,702),117=>array(78,-14,628,547),118=>array(15,0,637,547),119=>array(35,0,889,547),120=>array(15,0,630,547),121=>array(12,-216,634,547),122=>array(45,0,534,547),123=>array(125,-163,587,760),124=>array(127,-236,238,764),125=>array(125,-163,587,760),126=>array(106,212,732,415),160=>array(140,0,316,729),161=>array(140,0,316,729),162=>array(85,-153,567,699),163=>array(61,0,613,742),164=>array(36,30,601,596),165=>array(12,0,684,729),166=>array(127,-171,238,699),167=>array(7,-95,496,742),168=>array(96,654,404,774),169=>array(138,0,862,725),170=>array(77,182,489,742),171=>array(77,67,552,519),172=>array(106,140,732,444),173=>array(54,217,361,359),174=>array(138,0,862,725),175=>array(96,668,404,760),176=>array(87,424,412,749),177=>array(106,0,732,627),178=>array(53,326,382,742),179=>array(44,319,384,742),180=>array(178,616,454,800),181=>array(85,-209,704,547),182=>array(63,-96,549,729),183=>array(102,253,278,442),184=>array(128,-196,349,0),185=>array(60,326,382,734),186=>array(57,182,507,742),187=>array(94,67,569,519),188=>array(49,-14,957,742),189=>array(49,-14,987,742),190=>array(51,-14,957,742),191=>array(69,-14,515,729),192=>array(5,0,769,927),193=>array(5,0,769,927),194=>array(5,0,769,927),195=>array(5,0,769,931),196=>array(5,0,769,927),197=>array(5,0,769,928),198=>array(0,0,1012,729),199=>array(50,-196,670,742),200=>array(92,0,610,927),201=>array(92,0,610,927),202=>array(92,0,610,927),203=>array(92,0,610,927),204=>array(11,0,280,927),205=>array(92,0,337,927),206=>array(1,0,370,927),207=>array(32,0,339,927),208=>array(16,0,787,729),209=>array(92,0,745,928),210=>array(50,-14,800,927),211=>array(50,-14,800,927),212=>array(50,-14,800,927),213=>array(50,-14,800,928),214=>array(50,-14,800,927),215=>array(125,20,713,607),216=>array(22,-36,823,765),217=>array(92,-14,720,927),218=>array(92,-14,720,927),219=>array(92,-14,720,927),220=>array(92,-14,720,927),221=>array(-10,0,734,927),222=>array(92,0,692,729),223=>array(84,-14,676,760),224=>array(43,-14,596,800),225=>array(43,-14,596,800),226=>array(43,-14,596,800),227=>array(43,-14,596,778),228=>array(43,-14,596,774),229=>array(43,-14,596,888),230=>array(43,-14,1000,560),231=>array(43,-196,526,560),232=>array(43,-14,630,800),233=>array(43,-14,630,800),234=>array(43,-14,630,800),235=>array(43,-14,630,774),236=>array(-21,0,259,800),237=>array(84,0,387,800),238=>array(-13,0,355,800),239=>array(17,0,325,774),240=>array(43,-14,644,760),241=>array(84,0,634,778),242=>array(43,-14,644,800),243=>array(43,-14,644,800),244=>array(43,-14,644,800),245=>array(43,-14,644,778),246=>array(43,-14,644,774),247=>array(106,42,732,585),248=>array(38,-46,645,594),249=>array(78,-14,628,800),250=>array(78,-14,628,800),251=>array(78,-14,628,800),252=>array(78,-14,628,774),253=>array(12,-216,634,800),254=>array(84,-208,671,760),255=>array(12,-216,634,774),256=>array(5,0,769,914),257=>array(43,-14,596,763),258=>array(5,0,769,935),259=>array(43,-14,596,780),260=>array(5,-196,769,729),261=>array(43,-196,596,560),262=>array(50,-14,670,927),263=>array(43,-14,557,800),264=>array(50,-14,670,927),265=>array(43,-14,542,800),266=>array(50,-14,670,927),267=>array(43,-14,526,760),268=>array(50,-14,670,927),269=>array(43,-14,537,800),270=>array(92,0,778,927),271=>array(45,-14,871,760),272=>array(16,0,787,729),273=>array(45,-14,707,760),274=>array(92,0,610,914),275=>array(43,-14,630,763),276=>array(92,0,610,927),277=>array(43,-14,630,784),278=>array(92,0,610,927),279=>array(43,-14,630,760),280=>array(92,-196,610,729),281=>array(43,-196,630,560),282=>array(92,0,610,927),283=>array(43,-14,630,800),284=>array(50,-14,747,927),285=>array(45,-216,632,800),286=>array(50,-14,747,927),287=>array(45,-216,632,784),288=>array(50,-14,747,927),289=>array(45,-216,632,760),290=>array(50,-224,747,742),291=>array(45,-216,632,765),292=>array(92,0,745,927),293=>array(-9,0,634,927),294=>array(92,0,882,729),295=>array(81,0,709,760),296=>array(16,0,355,928),297=>array(1,0,341,778),298=>array(32,0,339,914),299=>array(18,0,325,763),300=>array(21,0,350,927),301=>array(7,0,335,784),302=>array(92,-196,366,729),303=>array(84,-196,345,760),304=>array(92,0,280,927),305=>array(84,0,259,547),306=>array(92,-200,651,729),307=>array(84,-216,602,760),308=>array(-56,-200,370,927),309=>array(-33,-216,355,800),310=>array(92,-209,805,729),311=>array(84,-209,684,760),312=>array(84,0,684,547),313=>array(92,0,610,928),314=>array(84,0,357,928),315=>array(92,-209,610,729),316=>array(71,-209,273,760),317=>array(92,0,610,729),318=>array(84,0,479,760),319=>array(92,0,610,729),320=>array(84,0,484,760),321=>array(-45,0,615,729),322=>array(-18,0,390,760),323=>array(92,0,745,928),324=>array(84,0,634,803),325=>array(92,-209,745,729),326=>array(84,-209,634,560),327=>array(92,0,745,927),328=>array(84,0,634,800),329=>array(51,0,891,729),330=>array(84,-200,730,742),331=>array(84,-216,634,560),332=>array(50,-14,800,914),333=>array(43,-14,644,763),334=>array(50,-14,800,927),335=>array(43,-14,644,787),336=>array(50,-14,800,927),337=>array(43,-14,644,800),338=>array(50,-1,1094,730),339=>array(43,-14,1046,560),340=>array(92,0,750,928),341=>array(84,0,515,803),342=>array(92,-209,750,729),343=>array(71,-209,490,560),344=>array(92,0,750,927),345=>array(84,0,490,800),346=>array(72,-14,647,928),347=>array(52,-14,548,803),348=>array(72,-14,647,927),349=>array(52,-14,548,800),350=>array(72,-196,647,742),351=>array(52,-196,548,560),352=>array(72,-14,647,927),353=>array(52,-14,548,800),354=>array(5,-196,677,729),355=>array(13,-196,455,702),356=>array(5,0,677,930),357=>array(13,0,507,814),358=>array(5,0,677,729),359=>array(13,0,455,702),360=>array(92,-14,720,928),361=>array(78,-14,628,778),362=>array(92,-14,720,914),363=>array(78,-14,628,763),364=>array(92,-14,720,927),365=>array(78,-14,628,784),366=>array(92,-14,720,929),367=>array(78,-14,628,881),368=>array(92,-14,720,927),369=>array(78,-14,628,800),370=>array(92,-196,720,729),371=>array(78,-196,716,547),372=>array(30,0,1072,931),373=>array(35,0,889,800),374=>array(-10,0,734,931),375=>array(12,-216,634,800),376=>array(-10,0,734,927),377=>array(45,0,680,928),378=>array(45,0,534,803),379=>array(45,0,680,929),380=>array(45,0,534,760),381=>array(45,0,680,927),382=>array(45,0,534,800),383=>array(19,0,444,760),384=>array(9,-14,671,760),385=>array(-68,0,741,729),386=>array(92,0,692,729),387=>array(84,-14,671,760),388=>array(40,0,731,729),389=>array(25,-14,696,760),390=>array(50,-14,670,742),391=>array(50,-14,818,924),392=>array(43,-14,643,724),393=>array(16,0,787,729),394=>array(-68,0,827,729),395=>array(70,0,669,729),396=>array(45,-14,632,760),397=>array(43,-222,645,560),398=>array(92,0,610,729),399=>array(51,-14,800,742),400=>array(67,-14,616,742),401=>array(-56,-200,599,729),402=>array(-57,-208,444,760),403=>array(50,-14,868,924),404=>array(2,-211,793,730),405=>array(84,0,1000,760),406=>array(92,0,428,729),407=>array(5,0,384,729),408=>array(92,0,805,742),409=>array(84,0,684,760),410=>array(5,0,355,760),411=>array(-11,0,562,760),412=>array(83,-13,963,729),413=>array(-56,-200,745,729),414=>array(84,-208,634,560),415=>array(50,-14,800,742),416=>array(53,-14,854,761),417=>array(46,-14,708,609),418=>array(50,-14,1007,742),419=>array(43,-216,826,560),420=>array(-68,0,741,729),421=>array(84,-208,671,760),422=>array(92,-146,760,729),423=>array(26,-14,601,742),424=>array(15,-14,511,560),425=>array(92,0,610,729),426=>array(-31,-217,561,760),427=>array(13,-216,455,702),428=>array(15,0,701,729),429=>array(13,0,455,760),430=>array(5,-200,677,729),431=>array(91,-14,833,761),432=>array(75,-14,733,609),433=>array(27,-14,823,728),434=>array(92,0,772,729),435=>array(-10,0,796,742),436=>array(12,-216,778,560),437=>array(45,0,680,729),438=>array(45,0,534,547),439=>array(72,-33,728,729),440=>array(41,-33,696,729),441=>array(37,-215,586,547),442=>array(57,-208,534,547),443=>array(79,0,609,742),444=>array(41,-33,728,729),445=>array(37,-215,586,547),446=>array(36,-15,525,702),447=>array(84,-208,671,560),448=>array(92,-208,280,729),449=>array(92,-208,566,729),450=>array(5,-208,536,729),451=>array(99,0,274,729),452=>array(92,0,1510,927),453=>array(92,0,1364,800),454=>array(45,-14,1250,800),455=>array(92,-200,917,729),456=>array(92,-216,896,760),457=>array(84,-216,602,760),458=>array(92,-200,1117,729),459=>array(92,-216,1096,760),460=>array(84,-216,971,760),461=>array(5,0,769,927),462=>array(43,-14,596,800),463=>array(3,0,371,927),464=>array(2,0,370,800),465=>array(50,-14,800,927),466=>array(43,-14,644,800),467=>array(92,-14,720,927),468=>array(78,-14,628,800),469=>array(92,-14,720,1040),470=>array(78,-14,628,914),471=>array(92,-14,720,1114),472=>array(78,-14,628,917),473=>array(92,-14,720,1114),474=>array(78,-14,628,917),475=>array(92,-14,720,1114),476=>array(78,-14,628,917),477=>array(43,-14,630,560),478=>array(5,0,769,1040),479=>array(43,-14,596,914),480=>array(5,0,769,1042),481=>array(43,-14,596,914),482=>array(0,0,1012,914),483=>array(43,-14,1000,758),484=>array(50,-14,792,742),485=>array(45,-216,674,559),486=>array(50,-14,747,927),487=>array(45,-216,632,800),488=>array(92,0,805,927),489=>array(-5,0,684,927),490=>array(50,-196,800,742),491=>array(43,-196,644,560),492=>array(50,-196,800,914),493=>array(43,-196,644,763),494=>array(72,-33,728,927),495=>array(43,-215,593,793),496=>array(-33,-216,359,800),497=>array(92,0,1510,729),498=>array(92,0,1364,729),499=>array(45,-14,1250,760),500=>array(50,-14,747,928),501=>array(45,-216,632,800),502=>array(92,-14,1186,729),503=>array(92,-208,737,742),504=>array(92,0,745,927),505=>array(84,0,634,800),506=>array(5,0,769,931),507=>array(43,-14,708,931),508=>array(0,0,1012,927),509=>array(43,-14,1000,800),510=>array(22,-36,823,927),511=>array(38,-46,645,800),512=>array(5,0,769,928),513=>array(43,-14,596,800),514=>array(5,0,769,923),515=>array(43,-14,596,784),516=>array(92,0,610,928),517=>array(43,-14,630,800),518=>array(92,0,610,923),519=>array(43,-14,630,784),520=>array(-41,0,377,928),521=>array(-3,0,381,800),522=>array(23,0,351,923),523=>array(7,0,335,784),524=>array(50,-14,800,928),525=>array(43,-14,644,800),526=>array(50,-14,800,923),527=>array(43,-14,644,784),528=>array(92,0,750,928),529=>array(58,0,490,800),530=>array(92,0,750,923),531=>array(84,0,490,784),532=>array(92,-14,720,928),533=>array(78,-14,628,800),534=>array(92,-14,720,923),535=>array(78,-14,628,784),536=>array(72,-239,647,742),537=>array(52,-239,548,560),538=>array(5,-239,677,729),539=>array(13,-239,455,702),540=>array(67,-210,616,742),541=>array(49,-211,544,560),542=>array(92,0,745,927),543=>array(-12,0,634,927),544=>array(84,-208,730,742),545=>array(45,-75,822,760),546=>array(61,-14,748,742),547=>array(43,-14,616,646),548=>array(45,-216,680,729),549=>array(45,-216,534,547),550=>array(5,0,769,927),551=>array(43,-14,596,760),552=>array(92,-192,610,729),553=>array(43,-196,630,560),554=>array(50,-14,800,1040),555=>array(43,-14,644,914),556=>array(50,-14,800,1040),557=>array(43,-14,644,898),558=>array(50,-14,800,927),559=>array(43,-14,644,760),560=>array(50,-14,800,1042),561=>array(43,-14,644,914),562=>array(-10,0,734,914),563=>array(12,-216,634,763),564=>array(84,-75,449,760),565=>array(84,-75,824,560),566=>array(13,-76,469,702),567=>array(-33,-216,259,547),568=>array(45,-14,1043,760),569=>array(45,-208,1043,560),570=>array(-14,-36,788,765),571=>array(-34,-36,768,765),572=>array(-7,-46,600,594),573=>array(-1,0,610,729),574=>array(-60,-36,742,765),575=>array(52,-240,595,560),576=>array(45,-240,595,547),577=>array(40,0,741,729),578=>array(42,0,573,560),579=>array(6,0,692,729),580=>array(23,-14,789,729),581=>array(5,0,769,729),582=>array(92,-93,610,822),583=>array(43,-93,630,640),584=>array(-56,-200,360,729),585=>array(-33,-216,360,760),586=>array(48,-200,927,741),587=>array(45,-216,800,560),588=>array(6,0,750,729),589=>array(-21,0,490,560),590=>array(-10,0,734,729),591=>array(-4,-216,656,547),592=>array(78,-14,631,560),593=>array(45,-14,632,560),594=>array(84,-14,671,560),595=>array(84,-14,671,760),596=>array(43,-14,526,560),597=>array(43,-69,526,560),598=>array(45,-216,750,760),599=>array(45,-14,801,760),600=>array(43,-14,630,560),601=>array(43,-14,630,560),602=>array(59,-14,885,560),603=>array(54,-14,493,560),604=>array(54,-14,493,560),605=>array(54,-14,769,560),606=>array(54,-14,665,560),607=>array(-33,-216,360,547),608=>array(45,-216,801,760),609=>array(45,-216,632,547),610=>array(43,-14,545,546),611=>array(25,-211,619,547),612=>array(25,-21,619,547),613=>array(78,-214,628,547),614=>array(84,0,634,760),615=>array(84,-216,634,760),616=>array(84,0,461,760),617=>array(83,0,356,547),618=>array(84,0,461,547),619=>array(84,0,475,760),620=>array(84,0,609,760),621=>array(85,-216,429,760),622=>array(84,-215,793,760),623=>array(79,-14,959,546),624=>array(79,-209,959,546),625=>array(83,-216,964,560),626=>array(-33,-216,634,560),627=>array(84,-216,802,560),628=>array(84,0,623,547),629=>array(43,-14,644,560),630=>array(43,-1,826,547),631=>array(51,0,630,574),632=>array(60,-208,729,760),633=>array(84,-13,490,547),634=>array(84,-13,490,760),635=>array(84,-216,659,547),636=>array(84,-208,490,560),637=>array(83,-216,490,560),638=>array(84,0,530,547),639=>array(84,0,530,547),640=>array(52,0,590,547),641=>array(52,0,590,547),642=>array(52,-216,548,560),643=>array(-33,-216,431,760),644=>array(-11,-216,444,760),645=>array(84,-216,539,560),646=>array(-31,-217,561,760),647=>array(13,-155,455,547),648=>array(13,-216,455,702),649=>array(84,-14,836,547),650=>array(79,-14,693,547),651=>array(83,0,625,547),652=>array(15,0,637,547),653=>array(35,0,889,547),654=>array(12,0,634,763),655=>array(64,0,660,547),656=>array(45,-216,703,547),657=>array(45,-69,617,547),658=>array(43,-215,593,547),659=>array(57,-215,593,547),660=>array(36,0,525,759),661=>array(36,0,525,759),662=>array(36,0,525,759),663=>array(36,-208,525,759),664=>array(50,-14,800,742),665=>array(84,0,589,547),666=>array(54,-14,665,560),667=>array(43,0,693,760),668=>array(84,0,607,547),669=>array(-170,-216,341,760),670=>array(84,-213,684,547),671=>array(84,0,499,547),672=>array(45,-208,801,760),673=>array(36,0,525,759),674=>array(36,0,525,759),675=>array(45,-14,1108,760),676=>array(45,-215,1167,760),677=>array(45,-55,1107,760),678=>array(13,0,928,702),679=>array(13,-216,777,760),680=>array(13,-69,881,702),681=>array(19,-216,979,760),682=>array(84,0,815,760),683=>array(84,0,732,760),684=>array(22,0,569,641),685=>array(22,86,345,641),686=>array(-89,-214,629,760),687=>array(-89,-216,797,760),688=>array(54,326,406,751),689=>array(54,326,406,751),690=>array(-21,205,166,751),691=>array(54,326,314,640),692=>array(54,319,314,632),693=>array(54,205,421,632),694=>array(14,326,358,632),695=>array(22,326,569,632),696=>array(8,205,406,632),697=>array(78,557,218,800),698=>array(78,557,437,800),699=>array(103,418,318,729),700=>array(63,418,278,729),701=>array(124,616,296,856),702=>array(116,481,255,760),703=>array(116,481,255,760),704=>array(23,326,336,751),705=>array(23,326,336,751),706=>array(130,517,370,843),707=>array(130,517,370,843),708=>array(87,561,413,800),709=>array(87,561,413,800),710=>array(66,616,434,800),711=>array(66,616,434,800),712=>array(107,488,199,759),713=>array(96,668,404,760),714=>array(178,616,454,800),715=>array(46,616,322,800),716=>array(107,-81,199,190),717=>array(96,-184,404,-92),718=>array(46,-236,322,-52),719=>array(178,-236,454,-52),720=>array(45,0,246,547),721=>array(45,361,246,547),722=>array(116,269,255,547),723=>array(116,269,255,547),724=>array(138,238,357,458),725=>array(141,238,360,458),726=>array(54,119,362,427),727=>array(54,229,274,317),728=>array(86,639,414,784),729=>array(183,654,317,774),730=>array(111,610,389,888),731=>array(167,-196,376,0),732=>array(80,638,420,778),733=>array(94,616,479,800),734=>array(0,213,360,524),735=>array(111,616,387,800),736=>array(16,208,390,633),737=>array(54,326,166,751),738=>array(33,318,351,640),739=>array(10,326,403,632),740=>array(23,326,336,751),741=>array(96,0,404,693),742=>array(96,0,404,693),743=>array(96,0,404,693),744=>array(96,0,404,693),745=>array(96,0,404,693),748=>array(88,-260,414,-21),749=>array(96,605,404,822),750=>array(92,418,554,729),755=>array(111,-240,389,38),759=>array(80,-196,420,-84),768=>array(-455,616,-179,800),769=>array(-326,616,-50,800),770=>array(-435,616,-67,800),771=>array(-424,638,-84,778),772=>array(-405,668,-97,760),773=>array(-500,663,0,755),774=>array(-409,639,-81,784),775=>array(-338,617,-164,760),776=>array(-402,654,-94,774),777=>array(-370,616,-122,843),778=>array(-390,610,-112,888),779=>array(-404,616,-19,800),780=>array(-435,616,-67,800),781=>array(-297,615,-205,832),782=>array(-390,615,-113,832),783=>array(-484,616,-100,800),784=>array(-409,639,-81,882),785=>array(-409,639,-81,784),786=>array(-271,418,-69,563),787=>array(-266,595,-132,844),788=>array(-266,595,-132,844),789=>array(-89,616,89,800),790=>array(-455,-276,-179,-93),791=>array(-326,-276,-50,-93),792=>array(-380,-240,-211,-6),793=>array(-295,-240,-126,-6),794=>array(-224,658,47,929),795=>array(-175,400,21,609),796=>array(-331,-240,-216,-11),797=>array(-386,-240,-115,-59),798=>array(-389,-240,-118,-59),799=>array(-370,-240,-136,-6),800=>array(-389,-202,-118,-110),801=>array(-423,-216,-79,117),802=>array(-419,-216,-75,117),803=>array(-338,-212,-164,-70),804=>array(-402,-212,-94,-92),805=>array(-365,-240,-135,-11),806=>array(-327,-239,-125,-93),807=>array(-372,-196,-151,0),808=>array(-333,-196,-124,0),809=>array(-297,-240,-205,-47),810=>array(-405,-237,-97,-54),811=>array(-450,-239,-51,-94),812=>array(-435,-240,-67,-57),813=>array(-435,-240,-67,-57),814=>array(-409,-239,-81,-94),815=>array(-409,-240,-81,-95),816=>array(-424,-234,-84,-94),817=>array(-405,-184,-97,-92),818=>array(-500,-236,0,-143),819=>array(-500,-236,0,-9),820=>array(-625,212,1,415),821=>array(-471,214,-94,309),822=>array(-837,214,-86,309),823=>array(-655,-46,-48,594),824=>array(-825,-36,-24,765),825=>array(-285,-240,-170,-11),826=>array(-405,-238,-97,-55),827=>array(-332,-241,-98,-6),828=>array(-450,-239,-51,-94),829=>array(-379,585,-123,842),830=>array(-267,595,-127,867),831=>array(-500,528,0,755),832=>array(-455,616,-179,800),833=>array(-323,616,-47,800),834=>array(-421,638,-81,778),835=>array(-266,595,-132,844),836=>array(-404,654,-55,978),837=>array(-286,-208,-179,-45),838=>array(-403,639,-97,786),839=>array(-360,-226,-140,-35),840=>array(-379,-240,-121,-47),841=>array(-367,-240,-133,-21),842=>array(-420,616,-80,800),843=>array(-420,567,-80,850),844=>array(-420,573,-80,835),845=>array(-459,-230,-41,-30),846=>array(-357,-240,-143,-45),847=>array(-320,610,-179,888),849=>array(-320,610,-179,888),850=>array(-409,640,-81,882),851=>array(-367,-240,-135,-9),855=>array(-320,610,-179,888),856=>array(-120,654,14,774),858=>array(-445,-240,-58,-11),860=>array(-433,-237,458,-79),861=>array(-433,802,458,960),862=>array(-445,797,445,889),863=>array(-445,-185,445,-93),864=>array(-362,756,362,894),865=>array(-445,769,445,927),866=>array(-449,-230,454,-30),880=>array(92,0,606,729),881=>array(84,0,481,547),882=>array(92,0,930,729),883=>array(92,0,744,729),884=>array(78,557,218,800),885=>array(78,-208,218,35),886=>array(92,0,745,729),887=>array(84,0,617,547),890=>array(202,-208,333,-45),891=>array(43,-14,526,560),892=>array(43,-14,526,560),893=>array(43,-14,526,560),894=>array(63,-142,288,547),900=>array(169,616,445,800),901=>array(96,654,445,978),902=>array(26,0,792,800),903=>array(102,253,278,442),904=>array(-24,0,771,800),905=>array(-18,0,915,800),906=>array(-21,0,450,800),908=>array(-19,-14,836,800),910=>array(-27,0,992,800),911=>array(-30,0,867,800),912=>array(23,-19,372,978),913=>array(5,0,769,729),914=>array(92,0,692,729),915=>array(92,0,610,729),916=>array(5,0,769,729),917=>array(92,0,610,729),918=>array(45,0,680,729),919=>array(92,0,745,729),920=>array(50,-14,800,742),921=>array(92,0,280,729),922=>array(92,0,805,729),923=>array(5,0,769,729),924=>array(92,0,903,729),925=>array(92,0,745,729),926=>array(98,0,548,729),927=>array(50,-14,800,742),928=>array(92,0,745,729),929=>array(92,0,692,729),931=>array(92,0,610,729),932=>array(5,0,677,729),933=>array(-10,0,734,729),934=>array(50,0,800,729),935=>array(19,0,751,729),936=>array(56,0,795,729),937=>array(27,0,823,742),938=>array(34,0,342,927),939=>array(-10,0,734,927),940=>array(48,-13,645,800),941=>array(54,-14,493,800),942=>array(84,-208,634,800),943=>array(77,-19,353,800),944=>array(78,-10,629,978),945=>array(48,-13,645,559),946=>array(84,-208,671,773),947=>array(15,-208,667,547),948=>array(43,-14,645,768),949=>array(54,-14,493,560),950=>array(43,-208,542,760),951=>array(84,-208,634,560),952=>array(43,-11,645,768),953=>array(78,-19,348,547),954=>array(84,0,655,547),955=>array(30,0,603,760),956=>array(85,-209,704,547),957=>array(15,0,635,547),958=>array(43,-208,542,760),959=>array(43,-14,644,560),960=>array(42,-19,732,547),961=>array(84,-208,671,562),962=>array(43,-208,526,560),963=>array(43,-14,727,547),964=>array(21,-19,612,547),965=>array(78,-10,629,547),966=>array(64,-208,725,552),967=>array(25,-208,620,547),968=>array(65,-208,724,547),969=>array(43,-13,826,547),970=>array(19,-19,355,774),971=>array(78,-10,629,774),972=>array(43,-14,644,800),973=>array(78,-10,629,800),974=>array(43,-13,826,800),975=>array(92,-208,805,729),976=>array(55,-11,575,768),977=>array(51,-11,612,768),978=>array(21,0,717,729),979=>array(-24,0,954,800),980=>array(21,0,717,927),981=>array(60,-208,729,760),982=>array(22,-13,843,547),983=>array(54,-205,688,548),984=>array(50,-208,800,742),985=>array(43,-208,644,560),986=>array(50,-208,678,729),987=>array(43,-208,541,547),988=>array(92,0,599,729),989=>array(-56,-208,437,760),990=>array(61,2,646,729),991=>array(82,0,571,759),992=>array(56,-208,843,742),993=>array(22,-180,537,559),994=>array(50,-213,1043,729),995=>array(59,-208,775,547),996=>array(50,-208,740,742),997=>array(45,-208,632,560),998=>array(92,-213,878,729),999=>array(21,-14,689,575),1000=>array(42,-208,692,745),1001=>array(46,-208,608,560),1002=>array(53,0,736,742),1003=>array(49,0,622,560),1004=>array(50,-14,715,758),1005=>array(83,-14,670,758),1006=>array(28,-208,654,729),1007=>array(27,-208,563,729),1008=>array(54,-7,688,548),1009=>array(84,-216,671,562),1010=>array(43,-14,526,560),1011=>array(-33,-216,259,760),1012=>array(50,-14,800,742),1013=>array(67,-14,550,560),1014=>array(81,-14,563,560),1015=>array(92,0,692,729),1016=>array(84,-208,671,760),1017=>array(50,-14,670,742),1018=>array(92,0,903,729),1019=>array(73,-208,649,547),1020=>array(33,-208,671,562),1021=>array(33,-14,653,742),1022=>array(50,-14,670,742),1023=>array(33,-14,653,742),1024=>array(92,0,610,927),1025=>array(92,0,610,927),1026=>array(5,-200,798,729),1027=>array(92,0,610,928),1028=>array(50,-14,670,742),1029=>array(72,-14,647,742),1030=>array(92,0,280,729),1031=>array(32,0,339,927),1032=>array(-56,-200,280,729),1033=>array(46,0,1102,729),1034=>array(92,0,1060,729),1035=>array(5,0,798,729),1036=>array(92,0,803,928),1037=>array(92,0,745,927),1038=>array(29,0,741,927),1039=>array(92,-157,745,729),1040=>array(5,0,769,729),1041=>array(92,0,692,729),1042=>array(92,0,692,729),1043=>array(92,0,610,729),1044=>array(60,-157,831,729),1045=>array(92,0,610,729),1046=>array(15,0,1209,729),1047=>array(66,-14,645,742),1048=>array(92,0,745,729),1049=>array(92,0,745,927),1050=>array(92,0,803,729),1051=>array(46,0,739,729),1052=>array(92,0,903,729),1053=>array(92,0,745,729),1054=>array(50,-14,800,742),1055=>array(92,0,745,729),1056=>array(92,0,692,729),1057=>array(50,-14,670,742),1058=>array(5,0,677,729),1059=>array(29,0,741,729),1060=>array(50,0,941,729),1061=>array(19,0,751,729),1062=>array(92,-157,868,729),1063=>array(81,0,716,729),1064=>array(92,0,1143,729),1065=>array(92,-157,1266,729),1066=>array(49,0,890,729),1067=>array(92,0,944,729),1068=>array(92,0,692,729),1069=>array(64,-14,684,742),1070=>array(92,-14,1119,742),1071=>array(64,0,678,729),1072=>array(43,-14,596,560),1073=>array(43,-14,655,792),1074=>array(84,0,589,547),1075=>array(84,0,499,547),1076=>array(56,-138,751,547),1077=>array(43,-14,630,560),1078=>array(15,0,980,547),1079=>array(49,-14,518,560),1080=>array(84,0,617,547),1081=>array(84,0,617,765),1082=>array(84,0,664,547),1083=>array(55,0,648,547),1084=>array(84,0,733,547),1085=>array(84,0,607,547),1086=>array(43,-14,644,560),1087=>array(84,0,607,547),1088=>array(84,-208,671,560),1089=>array(43,-14,526,560),1090=>array(4,0,575,547),1091=>array(12,-216,634,547),1092=>array(55,-208,937,760),1093=>array(15,0,630,547),1094=>array(84,-138,698,547),1095=>array(64,0,573,547),1096=>array(84,0,972,547),1097=>array(84,-138,1063,547),1098=>array(20,0,711,547),1099=>array(84,0,823,547),1100=>array(84,0,588,547),1101=>array(67,-14,550,560),1102=>array(84,-14,928,560),1103=>array(31,0,560,547),1104=>array(43,-14,630,803),1105=>array(43,-14,630,774),1106=>array(20,-216,669,760),1107=>array(84,0,520,803),1108=>array(43,-14,526,560),1109=>array(52,-14,548,560),1110=>array(84,0,259,760),1111=>array(17,0,325,774),1112=>array(-33,-216,259,760),1113=>array(44,0,942,547),1114=>array(84,0,912,547),1115=>array(20,0,656,760),1116=>array(84,0,664,803),1117=>array(84,0,617,803),1118=>array(12,-216,634,765),1119=>array(84,-138,607,547),1120=>array(50,-14,1043,729),1121=>array(43,-13,826,547),1122=>array(49,0,791,729),1123=>array(20,0,692,731),1124=>array(92,-14,948,742),1125=>array(84,-14,760,560),1126=>array(8,0,984,729),1127=>array(25,0,807,547),1128=>array(92,0,1351,729),1129=>array(84,0,1097,547),1130=>array(50,0,800,729),1131=>array(43,0,644,547),1132=>array(92,0,1137,729),1133=>array(84,0,964,547),1134=>array(54,-208,616,938),1135=>array(40,-193,493,756),1136=>array(9,0,1060,729),1137=>array(9,-208,1046,759),1138=>array(50,-14,800,742),1139=>array(43,-14,644,560),1140=>array(5,0,826,742),1141=>array(9,0,681,560),1142=>array(5,0,826,928),1143=>array(9,0,681,800),1144=>array(47,-216,1130,742),1145=>array(43,-216,1025,560),1146=>array(50,-14,1024,742),1147=>array(43,-14,820,560),1148=>array(57,-14,1348,928),1149=>array(47,-13,1126,828),1150=>array(50,-14,1043,910),1151=>array(43,-13,826,746),1152=>array(50,-208,670,742),1153=>array(43,-208,526,560),1154=>array(27,-33,521,488),1155=>array(-601,606,-85,822),1156=>array(-413,638,0,784),1157=>array(-365,595,-231,785),1158=>array(-365,595,-231,785),1159=>array(-796,592,4,788),1160=>array(-1069,-179,383,928),1161=>array(-996,-280,306,1022),1162=>array(92,-208,933,927),1163=>array(84,-208,782,765),1164=>array(23,0,692,729),1165=>array(0,0,567,702),1166=>array(92,0,702,729),1167=>array(84,-208,671,560),1168=>array(92,0,610,878),1169=>array(84,0,499,700),1170=>array(28,0,638,729),1171=>array(21,0,519,547),1172=>array(92,-200,728,729),1173=>array(84,-216,591,547),1174=>array(15,-157,1209,729),1175=>array(15,-138,980,547),1176=>array(66,-196,645,742),1177=>array(49,-196,518,560),1178=>array(92,-157,803,729),1179=>array(84,-138,664,547),1180=>array(92,0,803,729),1181=>array(84,0,664,547),1182=>array(23,0,803,729),1183=>array(7,0,664,760),1184=>array(24,0,1000,729),1185=>array(20,0,812,547),1186=>array(92,-157,932,729),1187=>array(84,-138,783,547),1188=>array(92,0,1075,729),1189=>array(84,0,847,547),1190=>array(92,-200,1193,729),1191=>array(84,-216,939,547),1192=>array(56,-14,924,743),1193=>array(55,-14,836,560),1194=>array(50,-196,670,742),1195=>array(43,-196,526,560),1196=>array(5,-157,677,729),1197=>array(4,-138,575,547),1198=>array(-10,0,734,729),1199=>array(12,-216,634,547),1200=>array(-10,0,734,729),1201=>array(12,-216,634,547),1202=>array(19,-157,751,729),1203=>array(15,-138,630,547),1204=>array(5,-157,1088,729),1205=>array(4,-138,976,547),1206=>array(81,-157,904,729),1207=>array(64,-138,749,547),1208=>array(81,0,716,729),1209=>array(64,0,573,547),1210=>array(81,0,716,729),1211=>array(84,0,634,760),1212=>array(7,-14,976,742),1213=>array(5,-14,761,560),1214=>array(7,-184,976,742),1215=>array(5,-161,761,560),1216=>array(92,0,280,729),1217=>array(15,0,1209,927),1218=>array(15,0,980,784),1219=>array(92,-200,769,729),1220=>array(84,-216,626,547),1221=>array(26,-208,926,729),1222=>array(21,-208,781,547),1223=>array(92,-200,745,729),1224=>array(84,-216,608,547),1225=>array(92,-208,933,729),1226=>array(84,-208,782,547),1227=>array(81,-157,716,729),1228=>array(64,-138,573,547),1229=>array(92,-208,1090,729),1230=>array(84,-208,908,547),1231=>array(84,0,259,760),1232=>array(5,0,769,935),1233=>array(43,-14,596,780),1234=>array(5,0,769,927),1235=>array(43,-14,596,774),1236=>array(0,0,1012,729),1237=>array(43,-14,1000,560),1238=>array(92,0,610,927),1239=>array(43,-14,630,784),1240=>array(51,-14,800,742),1241=>array(43,-14,630,560),1242=>array(51,-14,800,927),1243=>array(43,-14,630,774),1244=>array(15,0,1209,927),1245=>array(15,0,980,774),1246=>array(66,-14,645,927),1247=>array(49,-14,518,773),1248=>array(72,-33,728,729),1249=>array(43,-215,593,547),1250=>array(92,0,745,914),1251=>array(84,0,617,763),1252=>array(92,0,745,927),1253=>array(84,0,617,774),1254=>array(50,-14,800,927),1255=>array(43,-14,644,774),1256=>array(50,-14,800,742),1257=>array(43,-14,644,560),1258=>array(50,-14,800,927),1259=>array(43,-14,644,774),1260=>array(64,-14,684,927),1261=>array(67,-14,550,774),1262=>array(29,0,741,914),1263=>array(12,-216,634,763),1264=>array(29,0,741,927),1265=>array(12,-216,634,774),1266=>array(29,0,741,927),1267=>array(12,-216,634,800),1268=>array(81,0,716,927),1269=>array(64,0,573,774),1270=>array(92,-157,610,729),1271=>array(84,-138,499,547),1272=>array(92,0,944,927),1273=>array(84,0,823,774),1274=>array(28,-216,638,729),1275=>array(21,-217,519,547),1276=>array(19,-200,750,729),1277=>array(15,-216,620,547),1278=>array(19,0,751,729),1279=>array(15,0,630,547),1280=>array(70,0,670,729),1281=>array(44,0,524,547),1282=>array(70,-14,1081,729),1283=>array(44,-14,850,547),1284=>array(98,-14,1027,742),1285=>array(79,-14,836,560),1286=>array(98,-208,804,742),1287=>array(79,-208,668,560),1288=>array(26,-14,1150,729),1289=>array(21,-14,933,547),1290=>array(92,-14,1186,729),1291=>array(84,-14,939,547),1292=>array(50,-14,748,742),1293=>array(43,-14,544,546),1294=>array(5,-14,846,729),1295=>array(4,-14,709,547),1296=>array(67,-14,616,742),1297=>array(54,-14,493,560),1298=>array(46,-200,739,729),1299=>array(55,-216,648,547),1300=>array(46,0,1266,729),1301=>array(55,0,1053,547),1302=>array(92,0,1045,729),1303=>array(84,-208,964,560),1304=>array(64,0,1008,729),1305=>array(31,-14,965,560),1306=>array(50,-146,800,742),1307=>array(45,-208,632,559),1308=>array(30,0,1072,729),1309=>array(35,0,889,547),1310=>array(92,0,803,729),1311=>array(84,0,664,547),1312=>array(46,-200,1187,729),1313=>array(55,-216,980,547),1314=>array(92,-200,1193,729),1315=>array(84,-216,939,547),1316=>array(92,-157,933,729),1317=>array(84,-138,782,547),1329=>array(83,-38,731,729),1330=>array(83,0,655,743),1331=>array(26,0,728,743),1332=>array(22,0,731,743),1333=>array(83,-14,655,729),1334=>array(66,0,664,743),1335=>array(83,0,625,729),1336=>array(83,0,655,743),1337=>array(83,-13,903,742),1338=>array(26,-14,728,729),1339=>array(83,0,648,729),1340=>array(83,0,549,729),1341=>array(83,-14,888,729),1342=>array(62,-12,722,741),1343=>array(74,0,639,729),1344=>array(4,-46,598,729),1345=>array(66,-48,664,743),1346=>array(18,0,715,743),1347=>array(22,0,660,735),1348=>array(83,-14,780,729),1349=>array(57,-14,645,743),1350=>array(0,-14,697,729),1351=>array(57,-14,655,729),1352=>array(83,0,648,743),1353=>array(40,-48,638,743),1354=>array(18,0,789,743),1355=>array(57,0,654,743),1356=>array(83,0,780,743),1357=>array(92,-14,720,729),1358=>array(18,0,715,729),1359=>array(53,-14,641,743),1360=>array(83,0,648,743),1361=>array(57,-14,645,743),1362=>array(83,0,567,729),1363=>array(22,0,811,729),1364=>array(9,0,645,743),1365=>array(49,-14,799,742),1366=>array(44,-14,833,729),1369=>array(104,481,230,760),1370=>array(57,418,250,729),1371=>array(0,616,310,800),1372=>array(0,595,375,893),1373=>array(-7,614,290,847),1374=>array(0,586,460,878),1375=>array(40,618,434,893),1377=>array(71,-13,863,547),1378=>array(76,-208,571,560),1379=>array(40,-208,700,559),1380=>array(76,-208,703,560),1381=>array(71,-14,567,760),1382=>array(40,-208,700,559),1383=>array(76,0,532,760),1384=>array(76,-208,579,560),1385=>array(76,-208,756,560),1386=>array(40,-14,700,760),1387=>array(76,-208,571,760),1388=>array(76,-208,410,547),1389=>array(76,-208,909,760),1390=>array(40,-14,600,760),1391=>array(71,-208,567,760),1392=>array(76,0,571,760),1393=>array(26,-13,536,760),1394=>array(76,-208,703,560),1395=>array(62,-13,570,768),1396=>array(71,-13,699,760),1397=>array(-30,-216,233,547),1398=>array(-61,-13,567,760),1399=>array(13,-208,456,560),1400=>array(76,0,571,560),1401=>array(5,-208,375,547),1402=>array(71,-208,863,546),1403=>array(44,-208,533,560),1404=>array(76,0,622,560),1405=>array(71,-13,567,547),1406=>array(71,-208,699,760),1407=>array(71,-13,863,560),1408=>array(76,-208,571,560),1409=>array(44,-216,631,559),1410=>array(76,0,475,547),1411=>array(71,-208,863,760),1412=>array(-56,-208,604,560),1413=>array(44,-14,645,560),1414=>array(31,-190,774,760),1415=>array(71,-14,808,760),1417=>array(101,0,259,547),1418=>array(49,180,325,359),1456=>array(296,-229,394,-10),1457=>array(147,-229,501,-10),1458=>array(138,-229,492,-10),1459=>array(125,-229,492,-10),1460=>array(296,-171,394,-73),1461=>array(223,-171,467,-73),1462=>array(235,-229,455,-10),1463=>array(174,-171,516,0),1464=>array(187,-217,504,0),1465=>array(-24,547,73,723),1466=>array(-24,547,73,723),1467=>array(187,-239,528,-5),1468=>array(301,225,399,322),1469=>array(296,-217,394,-22),1470=>array(54,413,361,555),1471=>array(187,547,504,710),1472=>array(98,-98,273,645),1473=>array(753,613,851,710),1474=>array(137,613,235,710),1475=>array(98,0,273,547),1478=>array(78,0,462,547),1479=>array(187,-229,504,-10),1488=>array(84,0,644,547),1489=>array(43,0,567,547),1490=>array(43,-9,418,547),1491=>array(43,0,545,547),1492=>array(91,0,596,547),1493=>array(91,0,252,547),1494=>array(43,0,357,547),1495=>array(91,0,596,547),1496=>array(90,-13,624,553),1497=>array(66,164,228,547),1498=>array(43,-240,487,547),1499=>array(43,0,511,547),1500=>array(43,0,527,711),1501=>array(91,0,605,547),1502=>array(43,0,633,554),1503=>array(91,-240,252,547),1504=>array(43,0,362,547),1505=>array(90,-13,624,547),1506=>array(43,-101,575,547),1507=>array(91,-240,584,547),1508=>array(91,0,603,547),1509=>array(11,-240,543,548),1510=>array(33,0,564,547),1511=>array(91,-240,660,546),1512=>array(43,0,511,547),1513=>array(20,0,750,547),1514=>array(10,-4,592,547),1520=>array(91,0,574,547),1521=>array(66,0,524,547),1522=>array(66,164,500,547),1523=>array(84,361,360,547),1524=>array(84,361,626,547),1542=>array(-2,-20,630,892),1543=>array(-2,-20,630,897),1545=>array(65,0,811,635),1546=>array(65,0,1084,635),1548=>array(98,0,322,331),1557=>array(121,612,379,868),1563=>array(98,0,323,689),1567=>array(69,0,515,742),1569=>array(73,20,437,493),1570=>array(-20,0,362,955),1571=>array(75,0,259,993),1572=>array(-42,-244,547,603),1573=>array(76,-245,259,760),1574=>array(63,-107,863,603),1575=>array(84,0,259,760),1576=>array(63,-149,921,327),1577=>array(48,-30,540,513),1578=>array(63,-5,921,415),1579=>array(63,-5,921,537),1580=>array(77,-244,720,425),1581=>array(77,-244,720,425),1582=>array(77,-244,720,579),1583=>array(61,-15,442,415),1584=>array(61,-15,442,579),1585=>array(-42,-244,508,269),1586=>array(-42,-244,508,457),1587=>array(63,-244,1297,366),1588=>array(63,-244,1297,586),1589=>array(63,-244,1265,362),1590=>array(63,-244,1265,457),1591=>array(70,0,971,760),1592=>array(70,0,971,760),1593=>array(87,-244,720,521),1594=>array(87,-244,720,652),1600=>array(-10,0,352,125),1601=>array(63,-24,1082,627),1602=>array(52,-215,825,635),1603=>array(70,-27,814,760),1604=>array(70,-142,778,760),1605=>array(68,-244,660,369),1606=>array(62,-165,779,457),1607=>array(48,-30,540,358),1608=>array(-42,-244,547,322),1609=>array(63,-107,863,462),1610=>array(63,-244,863,462),1611=>array(107,591,393,825),1612=>array(107,591,393,881),1613=>array(107,-239,393,-5),1614=>array(107,591,393,723),1615=>array(107,590,393,881),1616=>array(107,-137,393,-5),1617=>array(88,599,412,869),1618=>array(115,610,383,878),1619=>array(59,584,441,735),1620=>array(154,601,335,822),1621=>array(155,-245,336,-23),1623=>array(107,615,393,906),1626=>array(99,616,401,775),1632=>array(218,195,392,366),1633=>array(140,0,431,635),1634=>array(12,0,598,635),1635=>array(12,0,597,635),1636=>array(74,-10,530,646),1637=>array(63,-10,547,643),1638=>array(37,0,574,635),1639=>array(15,0,596,635),1640=>array(15,0,596,635),1641=>array(32,0,590,640),1642=>array(65,0,545,635),1643=>array(0,-118,349,318),1644=>array(63,418,278,729),1645=>array(42,101,502,537),1646=>array(63,-5,921,327),1647=>array(52,-215,825,484),1648=>array(216,600,284,885),1652=>array(51,641,232,863),1657=>array(63,-5,921,599),1658=>array(63,-5,921,566),1659=>array(63,-244,921,327),1660=>array(63,-171,921,415),1661=>array(63,-5,921,566),1662=>array(63,-244,921,327),1663=>array(63,-5,921,566),1664=>array(63,-244,921,327),1665=>array(77,-244,720,725),1666=>array(77,-244,720,737),1667=>array(77,-244,720,425),1668=>array(77,-244,720,425),1669=>array(77,-244,720,737),1670=>array(77,-244,720,425),1671=>array(77,-244,720,425),1672=>array(61,-15,442,746),1673=>array(61,-180,442,415),1674=>array(61,-171,442,415),1675=>array(61,-171,442,746),1676=>array(61,-15,442,586),1677=>array(61,-146,442,415),1678=>array(61,-15,442,708),1679=>array(61,-15,442,684),1680=>array(61,-15,442,708),1681=>array(-42,-244,520,648),1682=>array(-42,-244,542,556),1683=>array(-42,-244,587,269),1684=>array(-42,-244,522,269),1685=>array(-42,-244,753,269),1686=>array(-42,-244,522,269),1687=>array(-42,-244,508,464),1688=>array(-42,-244,508,586),1689=>array(-42,-244,508,586),1690=>array(63,-244,1297,464),1691=>array(63,-244,1297,366),1692=>array(63,-244,1297,586),1693=>array(63,-244,1265,362),1694=>array(63,-244,1265,586),1695=>array(70,0,971,760),1696=>array(87,-244,720,781),1697=>array(63,-24,1082,484),1698=>array(63,-171,1082,484),1699=>array(63,-171,1082,635),1700=>array(63,-24,1082,786),1701=>array(63,-293,1082,484),1702=>array(63,-24,1082,786),1703=>array(52,-215,825,635),1704=>array(52,-215,825,757),1705=>array(63,-39,1024,760),1706=>array(63,-39,1194,760),1707=>array(63,-39,1024,760),1708=>array(70,-27,814,760),1709=>array(70,-27,814,854),1710=>array(70,-293,814,760),1711=>array(63,-39,1024,910),1712=>array(63,-39,1024,910),1713=>array(63,-39,1024,910),1714=>array(63,-171,1024,910),1715=>array(63,-293,1024,910),1716=>array(63,-39,1024,1025),1717=>array(70,-142,841,971),1718=>array(70,-142,778,952),1719=>array(70,-142,781,1025),1720=>array(70,-391,778,760),1721=>array(62,-317,779,464),1722=>array(62,-165,779,366),1723=>array(62,-165,779,636),1724=>array(62,-330,779,464),1725=>array(62,-165,779,586),1726=>array(70,-33,877,506),1727=>array(77,-244,720,579),1734=>array(-42,-244,547,556),1740=>array(63,-107,863,462),1742=>array(63,-107,863,556),1749=>array(48,-30,540,358),1776=>array(218,195,392,366),1777=>array(140,0,431,635),1778=>array(12,0,598,635),1779=>array(12,0,597,635),1780=>array(12,0,573,650),1781=>array(30,-8,580,643),1782=>array(85,0,514,645),1783=>array(15,0,596,635),1784=>array(15,0,596,635),1785=>array(32,0,590,640),1984=>array(48,-14,648,742),1985=>array(69,0,583,729),1986=>array(80,0,616,729),1987=>array(80,0,616,729),1988=>array(80,0,616,729),1989=>array(80,0,616,729),1990=>array(80,0,616,729),1991=>array(98,0,599,729),1992=>array(98,0,599,729),1993=>array(70,0,625,742),1994=>array(84,0,259,729),1995=>array(43,-14,504,465),1996=>array(15,0,529,729),1997=>array(15,0,637,451),1998=>array(84,0,607,451),1999=>array(84,0,607,451),2000=>array(46,0,548,742),2001=>array(84,0,607,667),2002=>array(43,0,820,742),2003=>array(84,0,467,729),2004=>array(84,0,467,729),2005=>array(84,0,584,729),2006=>array(84,0,604,729),2007=>array(15,0,360,729),2008=>array(84,0,938,532),2009=>array(15,0,491,729),2010=>array(15,0,811,729),2011=>array(84,0,607,451),2012=>array(15,0,637,729),2013=>array(84,0,869,729),2014=>array(84,0,543,729),2015=>array(43,0,692,729),2016=>array(15,0,491,729),2017=>array(15,0,637,729),2018=>array(43,0,531,729),2019=>array(84,0,543,729),2020=>array(84,0,543,581),2021=>array(84,0,543,729),2022=>array(43,0,531,729),2023=>array(43,0,531,729),2027=>array(95,668,403,760),2028=>array(63,638,438,777),2029=>array(185,654,319,774),2030=>array(65,616,433,800),2031=>array(33,616,438,803),2032=>array(63,638,438,777),2033=>array(33,616,438,803),2034=>array(183,-212,317,-92),2035=>array(96,654,404,774),2036=>array(63,418,278,729),2037=>array(103,418,318,729),2040=>array(84,0,607,562),2041=>array(84,0,607,564),2042=>array(-10,0,425,125),3647=>array(62,-147,638,760),3713=>array(43,-14,706,560),3714=>array(43,-14,723,560),3716=>array(43,-14,704,560),3719=>array(21,-241,521,561),3720=>array(42,0,705,560),3722=>array(40,-269,768,560),3725=>array(40,-24,713,610),3732=>array(42,-14,647,560),3733=>array(42,-19,647,561),3734=>array(-22,-240,684,560),3735=>array(20,-14,768,560),3737=>array(37,-15,681,560),3738=>array(38,-15,664,561),3739=>array(38,-15,664,760),3740=>array(60,-12,910,626),3741=>array(64,-14,762,760),3742=>array(76,-14,773,560),3743=>array(76,-14,773,760),3745=>array(24,-14,771,547),3746=>array(40,-23,713,760),3747=>array(48,-10,733,615),3749=>array(41,-33,693,560),3751=>array(33,-33,640,561),3754=>array(51,-21,819,724),3755=>array(44,-21,935,620),3757=>array(53,-20,662,606),3758=>array(48,-14,825,698),3759=>array(43,-259,897,648),3760=>array(36,-16,658,567),3761=>array(-653,610,-31,896),3762=>array(39,0,563,593),3763=>array(-479,0,563,875),3764=>array(-654,622,-62,950),3765=>array(-654,633,13,962),3766=>array(-654,622,-62,950),3767=>array(-654,633,13,962),3768=>array(-426,-385,-165,-55),3769=>array(-473,-316,-174,-28),3771=>array(-653,610,-31,896),3772=>array(-682,-311,15,-48),3773=>array(39,-220,691,776),3776=>array(83,-13,444,561),3777=>array(83,-13,818,561),3778=>array(-37,-14,458,936),3779=>array(23,-14,595,879),3780=>array(-15,-35,585,809),3782=>array(70,-240,688,582),3784=>array(-413,659,-297,844),3785=>array(-627,622,-22,918),3786=>array(-667,621,39,965),3787=>array(-521,612,-187,917),3788=>array(-682,603,15,866),3789=>array(-479,668,-229,875),3792=>array(66,-29,723,563),3793=>array(25,-139,721,586),3794=>array(31,-80,603,711),3795=>array(24,-14,882,981),3796=>array(48,-156,696,711),3797=>array(48,-156,696,711),3798=>array(64,-14,894,950),3799=>array(43,-240,706,560),3800=>array(72,-269,774,582),3801=>array(58,-14,858,564),3804=>array(44,-21,1301,620),3805=>array(44,-21,1305,620),4256=>array(47,-14,827,819),4257=>array(39,-0,719,819),4258=>array(37,-138,667,828),4259=>array(41,-15,793,819),4260=>array(29,0,572,828),4261=>array(24,0,729,828),4262=>array(15,-14,709,819),4263=>array(49,-14,890,828),4264=>array(4,0,415,862),4265=>array(39,0,581,819),4266=>array(18,-14,796,820),4267=>array(48,-14,837,819),4268=>array(43,0,586,819),4269=>array(37,-157,817,829),4270=>array(11,-14,731,822),4271=>array(20,0,585,823),4272=>array(43,-15,863,820),4273=>array(43,-15,587,820),4274=>array(43,-0,586,828),4275=>array(37,-170,817,828),4276=>array(37,0,828,825),4277=>array(28,0,695,820),4278=>array(44,0,586,828),4279=>array(34,0,577,820),4280=>array(39,-14,582,820),4281=>array(43,0,586,819),4282=>array(45,-14,778,827),4283=>array(46,-15,822,820),4284=>array(43,-0,586,819),4285=>array(29,-15,594,828),4286=>array(43,-0,586,819),4287=>array(15,0,726,819),4288=>array(18,-14,796,820),4289=>array(43,0,586,820),4290=>array(37,-15,652,828),4291=>array(9,0,552,820),4292=>array(33,0,561,820),4293=>array(24,-14,714,828),4304=>array(49,-14,505,599),4305=>array(49,-14,515,823),4306=>array(44,-232,578,561),4307=>array(49,-225,786,557),4308=>array(49,-232,496,557),4309=>array(49,-232,505,557),4310=>array(25,-14,502,828),4311=>array(49,-14,779,557),4312=>array(49,0,515,557),4313=>array(49,-232,506,542),4314=>array(49,-225,1025,562),4315=>array(49,-14,505,828),4316=>array(63,-14,520,819),4317=>array(49,-0,765,557),4318=>array(49,-14,505,818),4319=>array(49,-232,504,560),4320=>array(49,0,774,830),4321=>array(63,-14,520,818),4322=>array(49,-232,651,670),4323=>array(29,-232,533,604),4324=>array(49,-232,792,558),4325=>array(49,-232,496,818),4326=>array(49,-225,766,557),4327=>array(49,-232,505,549),4328=>array(20,-14,489,828),4329=>array(63,0,520,828),4330=>array(49,-232,573,548),4331=>array(49,-14,504,818),4332=>array(64,-15,534,828),4333=>array(49,-232,517,818),4334=>array(63,-14,520,818),4335=>array(24,-232,516,580),4336=>array(49,-15,505,823),4337=>array(49,-14,505,823),4338=>array(49,-146,504,557),4339=>array(49,-232,505,558),4340=>array(49,-232,504,828),4341=>array(49,-14,558,828),4342=>array(49,-232,803,557),4343=>array(49,-232,556,557),4344=>array(49,-232,505,549),4345=>array(44,-232,578,561),4346=>array(49,-111,505,557),4347=>array(49,0,399,500),4348=>array(24,400,294,828),5121=>array(5,0,769,729),5122=>array(5,0,769,1056),5123=>array(5,0,769,729),5124=>array(5,0,769,928),5125=>array(92,0,821,729),5126=>array(92,0,821,928),5127=>array(92,0,821,927),5129=>array(92,0,821,729),5130=>array(84,0,813,729),5131=>array(84,0,813,928),5132=>array(92,0,1013,729),5133=>array(5,0,925,729),5134=>array(92,0,1013,729),5135=>array(5,0,925,729),5136=>array(92,0,1013,928),5137=>array(5,0,925,928),5138=>array(92,0,1065,729),5139=>array(92,0,1056,729),5140=>array(92,0,1065,928),5141=>array(92,0,1056,928),5142=>array(92,0,821,928),5143=>array(92,0,1057,729),5144=>array(84,0,1058,729),5145=>array(92,0,1057,928),5146=>array(84,0,1058,928),5147=>array(84,0,813,928),5149=>array(92,607,226,728),5150=>array(60,326,473,734),5151=>array(31,338,379,722),5152=>array(31,338,379,722),5153=>array(60,392,338,711),5154=>array(60,352,338,670),5155=>array(60,392,338,670),5156=>array(60,392,338,670),5157=>array(31,327,518,749),5158=>array(60,326,414,734),5159=>array(92,304,226,424),5160=>array(60,494,338,569),5161=>array(60,392,338,670),5162=>array(60,392,338,693),5163=>array(5,0,1167,729),5164=>array(5,0,940,729),5165=>array(92,0,1170,729),5166=>array(84,0,1251,729),5167=>array(5,0,769,729),5168=>array(5,0,769,1056),5169=>array(5,0,769,729),5170=>array(5,0,769,928),5171=>array(73,0,802,729),5172=>array(73,0,802,928),5173=>array(73,0,802,927),5175=>array(73,0,802,729),5176=>array(73,0,802,729),5177=>array(73,0,802,928),5178=>array(92,0,1013,729),5179=>array(5,0,925,729),5180=>array(92,0,1013,729),5181=>array(5,0,925,729),5182=>array(92,0,1013,928),5183=>array(5,0,925,928),5184=>array(92,0,1046,729),5185=>array(73,0,1056,729),5186=>array(92,0,1046,928),5187=>array(73,0,1056,928),5188=>array(92,0,1046,729),5189=>array(73,0,1058,729),5190=>array(92,0,1046,928),5191=>array(73,0,1058,928),5192=>array(73,0,802,927),5193=>array(60,326,520,727),5194=>array(60,326,172,734),5196=>array(92,-14,720,729),5197=>array(92,0,720,1056),5198=>array(92,0,720,743),5199=>array(92,0,720,928),5200=>array(73,0,759,729),5201=>array(73,0,759,928),5202=>array(73,0,759,927),5204=>array(73,0,759,729),5205=>array(56,0,742,729),5206=>array(56,0,742,928),5207=>array(92,-14,964,729),5208=>array(92,-14,964,729),5209=>array(92,0,964,743),5210=>array(92,0,964,743),5211=>array(92,0,964,928),5212=>array(92,0,964,928),5213=>array(92,0,1003,729),5214=>array(73,0,970,729),5215=>array(92,0,1003,928),5216=>array(73,0,970,928),5217=>array(92,0,986,729),5218=>array(56,0,968,729),5219=>array(92,0,986,928),5220=>array(56,0,968,928),5221=>array(92,0,986,729),5222=>array(60,326,427,733),5223=>array(92,-14,949,734),5224=>array(92,0,949,743),5225=>array(73,0,967,734),5226=>array(56,0,960,734),5227=>array(41,0,651,743),5228=>array(92,0,702,1056),5229=>array(92,0,702,743),5230=>array(92,0,702,928),5231=>array(41,-14,651,729),5232=>array(41,-14,651,928),5233=>array(41,-14,708,927),5234=>array(92,-14,702,729),5235=>array(92,-14,702,928),5236=>array(92,0,937,743),5237=>array(41,0,891,743),5238=>array(92,0,939,743),5239=>array(92,0,891,743),5240=>array(92,0,939,928),5241=>array(92,0,891,928),5242=>array(92,-14,937,729),5243=>array(41,-14,891,729),5244=>array(92,-14,937,928),5245=>array(41,-14,891,928),5246=>array(92,-14,939,729),5247=>array(92,-14,891,729),5248=>array(92,-14,939,928),5249=>array(92,-14,891,928),5250=>array(92,-14,939,729),5251=>array(60,319,445,734),5252=>array(60,319,445,734),5253=>array(41,0,881,743),5254=>array(92,0,881,743),5255=>array(41,-14,881,734),5256=>array(92,-14,881,734),5257=>array(41,0,651,743),5258=>array(92,0,702,1056),5259=>array(92,0,702,743),5260=>array(92,0,702,928),5261=>array(41,-14,651,729),5262=>array(41,-14,651,928),5263=>array(41,-14,714,927),5264=>array(92,-14,702,729),5265=>array(92,-14,702,928),5266=>array(92,0,937,743),5267=>array(41,0,891,743),5268=>array(92,0,988,743),5269=>array(92,0,891,743),5270=>array(92,0,988,928),5271=>array(92,0,891,928),5272=>array(92,-14,937,729),5273=>array(41,-14,891,729),5274=>array(92,-14,937,928),5275=>array(41,-14,891,928),5276=>array(92,-14,988,729),5277=>array(92,-14,891,729),5278=>array(92,-14,988,928),5279=>array(92,-14,891,928),5280=>array(92,-14,988,729),5281=>array(60,319,445,734),5282=>array(60,319,445,734),5283=>array(27,0,535,729),5284=>array(92,0,599,1056),5285=>array(92,0,599,729),5286=>array(92,0,599,928),5287=>array(27,0,535,729),5288=>array(27,0,535,928),5289=>array(27,0,598,927),5290=>array(92,0,599,729),5291=>array(92,0,599,928),5292=>array(92,0,790,729),5293=>array(27,0,771,729),5294=>array(92,0,836,729),5295=>array(92,0,790,729),5296=>array(92,0,836,928),5297=>array(92,0,790,928),5298=>array(92,0,790,729),5299=>array(27,0,790,729),5300=>array(92,0,790,928),5301=>array(27,0,790,928),5302=>array(92,0,836,729),5303=>array(92,0,790,729),5304=>array(92,0,836,928),5305=>array(92,0,790,928),5306=>array(92,0,836,729),5307=>array(60,326,380,734),5308=>array(60,326,492,733),5309=>array(60,326,380,734),5312=>array(84,-14,947,468),5313=>array(41,-14,904,786),5314=>array(41,-14,904,468),5315=>array(41,-14,904,667),5316=>array(27,0,890,482),5317=>array(27,0,890,667),5318=>array(27,0,890,667),5319=>array(41,0,904,482),5320=>array(41,0,904,667),5321=>array(92,-14,1197,468),5322=>array(84,-14,1163,468),5323=>array(92,0,1172,482),5324=>array(41,0,1144,482),5325=>array(92,0,1172,667),5326=>array(41,0,1144,667),5327=>array(41,0,904,667),5328=>array(60,477,604,742),5329=>array(60,319,440,734),5330=>array(60,477,604,742),5331=>array(84,0,947,468),5332=>array(41,0,904,786),5333=>array(41,0,904,468),5334=>array(41,0,904,667),5335=>array(27,0,890,468),5336=>array(27,0,890,667),5337=>array(27,0,890,667),5338=>array(41,0,904,468),5339=>array(41,0,904,667),5340=>array(92,0,1190,468),5341=>array(84,0,1163,468),5342=>array(92,0,1199,468),5343=>array(41,0,1144,468),5344=>array(92,0,1199,667),5345=>array(41,0,1144,667),5346=>array(92,0,1187,468),5347=>array(27,0,1130,468),5348=>array(92,0,1187,667),5349=>array(27,0,1130,667),5350=>array(92,0,1199,468),5351=>array(41,0,1144,468),5352=>array(92,0,1199,667),5353=>array(41,0,1144,667),5354=>array(60,477,604,734),5356=>array(73,0,802,729),5357=>array(41,0,638,729),5358=>array(92,0,736,1056),5359=>array(92,0,689,729),5360=>array(92,0,689,928),5361=>array(41,0,638,729),5362=>array(41,0,638,928),5363=>array(41,0,694,927),5364=>array(92,0,689,729),5365=>array(92,0,689,928),5366=>array(92,0,906,729),5367=>array(41,0,875,729),5368=>array(92,0,926,729),5369=>array(92,0,905,729),5370=>array(92,0,926,928),5371=>array(92,0,905,928),5372=>array(92,0,906,729),5373=>array(41,0,875,729),5374=>array(92,0,906,928),5375=>array(41,0,875,928),5376=>array(92,0,926,729),5377=>array(92,0,905,729),5378=>array(92,0,926,928),5379=>array(92,0,905,928),5380=>array(92,0,926,729),5381=>array(60,326,437,734),5382=>array(60,319,404,742),5383=>array(60,326,437,734),5392=>array(41,-14,882,743),5393=>array(41,-14,882,743),5394=>array(41,-14,882,928),5395=>array(41,-14,1095,482),5396=>array(41,-14,1095,667),5397=>array(41,-14,1095,482),5398=>array(41,-14,1095,667),5399=>array(92,-14,1168,743),5400=>array(41,-14,1118,743),5401=>array(92,-14,1168,743),5402=>array(41,-14,1118,743),5403=>array(92,-14,1168,928),5404=>array(41,-14,1118,928),5405=>array(92,-14,1390,482),5406=>array(41,-14,1336,482),5407=>array(92,-14,1390,667),5408=>array(41,-14,1336,667),5409=>array(92,-14,1390,482),5410=>array(41,-14,1336,482),5411=>array(92,-14,1390,667),5412=>array(41,-14,1336,667),5413=>array(60,469,690,747),5414=>array(84,0,684,729),5415=>array(92,0,692,1056),5416=>array(92,0,692,729),5417=>array(92,0,692,928),5418=>array(84,0,684,729),5419=>array(84,0,684,928),5420=>array(84,0,750,927),5421=>array(92,0,692,729),5422=>array(92,0,692,928),5423=>array(92,0,911,729),5424=>array(84,0,919,729),5425=>array(92,0,929,729),5426=>array(92,0,912,729),5427=>array(92,0,929,928),5428=>array(92,0,912,928),5429=>array(92,0,911,729),5430=>array(84,0,919,729),5431=>array(92,0,911,928),5432=>array(84,0,919,928),5433=>array(92,0,929,729),5434=>array(92,0,912,729),5435=>array(92,0,929,928),5436=>array(92,0,912,928),5437=>array(92,0,929,928),5438=>array(60,326,438,734),5440=>array(60,392,338,670),5441=>array(60,326,454,734),5442=>array(92,-14,949,468),5443=>array(84,-14,941,468),5444=>array(27,0,884,482),5445=>array(92,0,949,786),5446=>array(92,0,949,482),5447=>array(92,0,949,667),5448=>array(92,0,692,729),5449=>array(92,0,692,928),5450=>array(92,0,692,729),5451=>array(41,0,641,729),5452=>array(41,0,641,928),5453=>array(41,0,641,729),5454=>array(92,0,911,928),5455=>array(41,0,875,928),5456=>array(60,326,438,727),5458=>array(73,0,802,729),5459=>array(51,0,769,743),5460=>array(51,-14,769,1056),5461=>array(51,-14,769,729),5462=>array(51,-14,769,928),5463=>array(73,0,844,663),5464=>array(73,0,844,928),5465=>array(84,0,855,663),5466=>array(84,0,855,928),5467=>array(92,0,1099,928),5468=>array(84,0,1058,928),5469=>array(60,311,546,675),5470=>array(92,-14,720,743),5471=>array(92,-14,720,743),5472=>array(92,-14,720,743),5473=>array(92,-14,720,743),5474=>array(92,-14,720,928),5475=>array(92,-14,720,928),5476=>array(54,0,759,729),5477=>array(54,0,759,928),5478=>array(56,0,762,729),5479=>array(56,0,762,928),5480=>array(92,0,1006,928),5481=>array(56,0,968,928),5482=>array(60,326,512,733),5492=>array(41,0,893,743),5493=>array(84,0,936,743),5494=>array(84,0,936,928),5495=>array(41,-14,893,729),5496=>array(41,-14,893,928),5497=>array(84,-14,936,729),5498=>array(84,-14,936,928),5499=>array(60,319,562,734),5500=>array(92,0,745,729),5501=>array(60,326,454,734),5502=>array(60,0,1197,1056),5503=>array(60,0,1197,743),5504=>array(60,0,1197,928),5505=>array(60,-14,1146,729),5506=>array(60,-14,1146,928),5507=>array(60,-14,1197,729),5508=>array(60,-14,1197,928),5509=>array(60,319,939,734),5514=>array(41,0,893,743),5515=>array(84,0,936,743),5516=>array(41,-14,893,729),5517=>array(84,-14,936,729),5518=>array(60,0,1550,1056),5519=>array(60,0,1550,743),5520=>array(60,0,1550,928),5521=>array(60,-14,1203,741),5522=>array(60,-14,1203,928),5523=>array(60,-14,1550,741),5524=>array(60,-14,1550,928),5525=>array(60,335,792,741),5526=>array(60,335,1217,741),5536=>array(41,0,904,709),5537=>array(41,0,904,709),5538=>array(27,-242,890,468),5539=>array(27,-242,890,667),5540=>array(41,-242,904,468),5541=>array(41,-242,904,667),5542=>array(60,344,604,734),5543=>array(84,0,771,729),5544=>array(5,0,692,729),5545=>array(5,0,692,928),5546=>array(84,0,771,729),5547=>array(84,0,771,928),5548=>array(5,0,692,729),5549=>array(5,0,692,928),5550=>array(15,326,438,734),5551=>array(92,-14,702,729),5598=>array(92,0,778,729),5601=>array(52,0,738,729),5702=>array(60,326,439,734),5703=>array(60,240,439,820),5742=>array(10,0,403,306),5743=>array(60,0,1146,743),5744=>array(60,0,1499,743),5745=>array(60,0,1975,743),5746=>array(60,0,1975,928),5747=>array(60,-14,1628,741),5748=>array(60,-14,1586,928),5749=>array(60,-14,1975,741),5750=>array(60,-14,1975,928),5760=>array(-10,219,553,354),5761=>array(-10,-125,646,354),5762=>array(-10,-125,955,354),5763=>array(-10,-125,1264,354),5764=>array(-10,-125,1572,354),5765=>array(-10,-125,1881,354),5766=>array(-10,219,637,697),5767=>array(-10,219,945,697),5768=>array(-10,219,1264,697),5769=>array(-10,219,1569,697),5770=>array(-10,219,1881,697),5771=>array(-10,-125,579,697),5772=>array(-10,-125,888,697),5773=>array(-10,-125,1198,697),5774=>array(-10,-125,1507,697),5775=>array(-10,-125,1817,697),5776=>array(-10,41,646,532),5777=>array(-10,41,955,532),5778=>array(-10,41,1264,532),5779=>array(-10,41,1572,532),5780=>array(-10,41,1881,532),5781=>array(-10,-125,579,697),5782=>array(-10,-125,948,697),5783=>array(-10,-109,798,354),5784=>array(-10,-254,1244,354),5785=>array(-10,219,1569,928),5786=>array(-10,14,750,354),5787=>array(55,-49,648,622),5788=>array(-10,-49,583,622),7424=>array(15,0,637,547),7425=>array(0,0,755,547),7426=>array(43,-14,1000,560),7427=>array(20,0,564,547),7428=>array(43,-14,526,560),7429=>array(84,-1,611,547),7430=>array(20,-1,611,547),7431=>array(92,0,480,547),7432=>array(54,-14,493,560),7433=>array(84,-213,259,547),7434=>array(44,-14,416,547),7435=>array(84,0,684,547),7436=>array(-18,0,499,547),7437=>array(84,0,733,547),7438=>array(84,0,617,547),7439=>array(43,-14,644,560),7440=>array(43,-14,526,560),7441=>array(43,-27,617,573),7442=>array(43,31,617,515),7443=>array(13,-28,653,579),7444=>array(43,-14,1046,560),7446=>array(43,273,644,560),7447=>array(44,-14,646,273),7448=>array(51,0,515,547),7449=>array(21,0,560,547),7450=>array(21,0,560,547),7451=>array(4,0,575,547),7452=>array(84,-14,607,547),7453=>array(85,10,646,560),7454=>array(69,10,857,561),7455=>array(19,-238,651,560),7456=>array(15,0,637,547),7457=>array(35,0,889,547),7458=>array(45,0,534,547),7459=>array(57,-14,581,547),7462=>array(84,0,499,547),7463=>array(15,0,637,547),7464=>array(84,0,607,547),7465=>array(51,0,515,547),7466=>array(84,0,698,547),7467=>array(55,0,648,547),7468=>array(3,326,484,734),7469=>array(0,326,638,734),7470=>array(58,326,436,734),7472=>array(58,326,490,734),7473=>array(58,326,384,734),7474=>array(58,326,384,734),7475=>array(31,318,471,742),7476=>array(58,326,469,734),7477=>array(58,326,176,734),7478=>array(-35,214,176,734),7479=>array(58,326,507,734),7480=>array(58,326,384,734),7481=>array(58,326,569,734),7482=>array(58,326,469,734),7483=>array(58,326,469,734),7484=>array(31,318,504,742),7485=>array(39,318,471,742),7486=>array(58,326,436,734),7487=>array(58,326,473,734),7488=>array(3,326,426,734),7489=>array(58,318,454,734),7490=>array(19,326,675,734),7491=>array(53,318,402,640),7492=>array(53,318,402,640),7493=>array(53,318,423,640),7494=>array(53,318,656,640),7495=>array(53,318,423,751),7496=>array(53,318,423,751),7497=>array(53,318,423,640),7498=>array(53,318,423,640),7499=>array(53,318,330,640),7500=>array(53,318,330,640),7501=>array(53,205,423,639),7502=>array(53,207,164,632),7503=>array(53,326,431,751),7504=>array(53,326,607,640),7505=>array(53,205,399,640),7506=>array(53,318,432,640),7507=>array(53,318,357,640),7508=>array(53,479,432,640),7509=>array(53,318,432,479),7510=>array(53,209,423,640),7511=>array(53,326,332,719),7512=>array(53,318,399,632),7513=>array(53,332,407,640),7514=>array(53,318,607,632),7515=>array(53,326,445,632),7517=>array(53,209,423,759),7518=>array(10,209,420,632),7519=>array(27,318,406,756),7520=>array(41,209,457,635),7521=>array(16,209,391,632),7522=>array(53,0,164,425),7523=>array(54,0,314,313),7524=>array(53,-8,399,306),7525=>array(53,0,445,306),7526=>array(53,-117,423,433),7527=>array(10,-117,420,306),7528=>array(53,-117,423,314),7529=>array(41,-117,457,309),7530=>array(16,-117,391,306),7543=>array(84,-216,671,559),7544=>array(58,326,469,734),7547=>array(84,0,461,547),7549=>array(5,-208,742,560),7557=>array(84,-216,434,760),7579=>array(53,318,423,640),7580=>array(53,318,357,640),7581=>array(53,288,357,640),7582=>array(53,318,432,751),7583=>array(53,318,330,640),7584=>array(53,326,321,751),7585=>array(53,205,292,632),7586=>array(53,205,423,632),7587=>array(53,207,399,632),7588=>array(53,326,291,751),7589=>array(53,326,226,632),7590=>array(53,326,291,632),7591=>array(53,326,291,632),7592=>array(53,205,375,751),7593=>array(53,205,270,751),7594=>array(53,205,274,751),7595=>array(53,326,314,632),7596=>array(53,205,608,640),7597=>array(53,209,607,632),7598=>array(53,205,506,640),7599=>array(53,205,505,640),7600=>array(53,326,393,632),7601=>array(53,318,432,640),7602=>array(53,209,486,751),7603=>array(53,205,366,640),7604=>array(53,205,340,751),7605=>array(53,205,332,719),7606=>array(53,318,527,632),7607=>array(53,298,438,632),7608=>array(53,318,383,632),7609=>array(53,326,395,632),7610=>array(53,326,445,632),7611=>array(53,326,361,632),7612=>array(53,205,468,632),7613=>array(53,288,414,632),7614=>array(53,206,399,632),7615=>array(53,320,370,756),7620=>array(-467,616,-35,800),7621=>array(-467,616,-35,800),7622=>array(-467,616,-35,800),7623=>array(-467,616,-35,800),7624=>array(-513,616,11,800),7625=>array(-513,616,11,800),7680=>array(5,-240,769,729),7681=>array(43,-240,596,560),7682=>array(92,0,692,928),7683=>array(84,-14,671,913),7684=>array(92,-212,692,729),7685=>array(84,-212,671,760),7686=>array(92,-184,692,729),7687=>array(84,-184,671,760),7688=>array(50,-196,670,927),7689=>array(43,-196,526,800),7690=>array(92,0,778,927),7691=>array(45,-14,632,942),7692=>array(92,-212,778,729),7693=>array(45,-212,632,760),7694=>array(92,-184,778,729),7695=>array(45,-184,632,760),7696=>array(92,-192,778,729),7697=>array(45,-196,632,760),7698=>array(92,-240,778,729),7699=>array(45,-240,632,760),7700=>array(92,0,610,1057),7701=>array(43,-14,630,927),7702=>array(92,0,610,1057),7703=>array(43,-14,630,927),7704=>array(92,-203,610,729),7705=>array(43,-203,630,560),7706=>array(92,-195,610,729),7707=>array(43,-195,630,560),7708=>array(92,-196,610,927),7709=>array(43,-196,630,784),7710=>array(92,0,599,928),7711=>array(19,0,444,942),7712=>array(50,-14,747,901),7713=>array(45,-216,632,760),7714=>array(92,0,745,928),7715=>array(84,0,634,913),7716=>array(92,-212,745,729),7717=>array(84,-212,634,760),7718=>array(92,0,745,927),7719=>array(23,0,634,927),7720=>array(45,-196,745,729),7721=>array(38,-196,634,760),7722=>array(92,-236,745,729),7723=>array(84,-236,634,760),7724=>array(16,-195,355,729),7725=>array(1,-195,341,760),7726=>array(40,0,378,1057),7727=>array(16,0,354,917),7728=>array(92,0,805,927),7729=>array(84,0,684,982),7730=>array(92,-212,805,729),7731=>array(84,-212,684,760),7732=>array(92,-184,805,729),7733=>array(84,-184,684,760),7734=>array(92,-212,610,729),7735=>array(83,-212,259,760),7736=>array(32,-212,610,942),7737=>array(18,-212,325,914),7738=>array(92,-184,610,729),7739=>array(20,-184,328,760),7740=>array(92,-240,610,729),7741=>array(-13,-240,355,760),7742=>array(92,0,903,927),7743=>array(83,0,963,800),7744=>array(92,0,903,928),7745=>array(83,0,963,760),7746=>array(92,-212,903,729),7747=>array(83,-212,963,560),7748=>array(92,0,745,928),7749=>array(84,0,634,760),7750=>array(92,-212,745,729),7751=>array(84,-212,634,560),7752=>array(92,-184,745,729),7753=>array(84,-184,634,560),7754=>array(92,-240,745,729),7755=>array(84,-240,634,560),7756=>array(50,-14,800,1057),7757=>array(43,-14,644,916),7758=>array(50,-14,800,1043),7759=>array(43,-14,644,900),7760=>array(50,-14,800,1057),7761=>array(43,-14,644,927),7762=>array(50,-14,800,1057),7763=>array(43,-14,644,927),7764=>array(92,0,692,927),7765=>array(84,-208,671,800),7766=>array(92,0,692,928),7767=>array(84,-208,671,760),7768=>array(92,0,750,928),7769=>array(84,0,490,760),7770=>array(92,-212,750,729),7771=>array(83,-212,490,560),7772=>array(92,-212,750,914),7773=>array(83,-212,490,759),7774=>array(92,-184,750,729),7775=>array(33,-184,490,560),7776=>array(72,-14,647,928),7777=>array(52,-14,548,760),7778=>array(72,-212,647,742),7779=>array(52,-212,548,560),7780=>array(72,-14,647,928),7781=>array(52,-14,548,816),7782=>array(72,-14,647,1053),7783=>array(52,-14,548,1002),7784=>array(72,-212,647,928),7785=>array(52,-212,548,762),7786=>array(5,0,677,927),7787=>array(13,0,455,942),7788=>array(5,-212,677,729),7789=>array(13,-212,455,702),7790=>array(5,-184,677,729),7791=>array(13,-184,455,702),7792=>array(5,-240,677,729),7793=>array(13,-240,455,702),7794=>array(92,-212,720,729),7795=>array(78,-212,628,547),7796=>array(92,-196,720,729),7797=>array(78,-195,628,547),7798=>array(92,-203,720,729),7799=>array(78,-203,628,547),7800=>array(92,-14,720,1057),7801=>array(78,-14,628,916),7802=>array(92,-14,720,1043),7803=>array(78,-14,628,887),7804=>array(5,0,769,928),7805=>array(15,0,637,778),7806=>array(5,-212,769,729),7807=>array(15,-212,637,547),7808=>array(30,0,1072,931),7809=>array(35,0,889,803),7810=>array(30,0,1072,931),7811=>array(35,0,889,803),7812=>array(30,0,1072,927),7813=>array(35,0,889,774),7814=>array(30,0,1072,927),7815=>array(35,0,889,760),7816=>array(30,-212,1072,729),7817=>array(35,-212,889,547),7818=>array(19,0,751,928),7819=>array(15,0,630,760),7820=>array(19,0,751,927),7821=>array(15,0,630,774),7822=>array(-10,0,734,928),7823=>array(12,-216,634,760),7824=>array(45,0,680,927),7825=>array(45,0,534,798),7826=>array(45,-212,680,729),7827=>array(45,-212,534,547),7828=>array(45,-184,680,729),7829=>array(45,-184,534,547),7830=>array(84,-184,634,760),7831=>array(13,0,455,927),7832=>array(35,0,889,888),7833=>array(12,-216,634,888),7834=>array(43,-14,758,760),7835=>array(19,0,444,942),7836=>array(-18,0,444,760),7837=>array(19,0,444,760),7838=>array(92,-14,823,743),7839=>array(43,-14,645,768),7840=>array(5,-212,769,729),7841=>array(43,-212,596,560),7842=>array(5,0,769,1025),7843=>array(43,-14,596,843),7844=>array(5,0,769,1054),7845=>array(43,-14,652,873),7846=>array(5,0,769,1054),7847=>array(43,-14,597,874),7848=>array(5,0,769,1093),7849=>array(43,-14,672,912),7850=>array(5,0,769,1068),7851=>array(43,-14,596,887),7852=>array(5,-212,769,927),7853=>array(43,-212,596,800),7854=>array(5,0,769,1057),7855=>array(43,-14,596,891),7856=>array(5,0,769,1057),7857=>array(43,-14,596,894),7858=>array(5,0,769,1123),7859=>array(43,-14,596,959),7860=>array(5,0,769,1068),7861=>array(43,-14,596,905),7862=>array(5,-212,769,935),7863=>array(43,-212,596,780),7864=>array(92,-212,610,729),7865=>array(43,-212,630,560),7866=>array(92,0,610,1025),7867=>array(43,-14,630,843),7868=>array(92,0,610,928),7869=>array(43,-14,630,778),7870=>array(92,0,684,1054),7871=>array(43,-14,688,873),7872=>array(92,0,621,1054),7873=>array(43,-14,630,874),7874=>array(92,0,686,1093),7875=>array(43,-14,681,912),7876=>array(92,0,610,1068),7877=>array(43,-14,630,887),7878=>array(92,-212,610,927),7879=>array(43,-212,630,800),7880=>array(66,0,313,1025),7881=>array(52,0,300,842),7882=>array(92,-212,280,729),7883=>array(83,-212,259,760),7884=>array(50,-212,800,742),7885=>array(43,-212,644,560),7886=>array(50,-14,800,1025),7887=>array(43,-14,644,843),7888=>array(50,-14,800,1054),7889=>array(43,-14,679,873),7890=>array(50,-14,800,1054),7891=>array(43,-14,644,874),7892=>array(50,-14,800,1093),7893=>array(43,-14,685,912),7894=>array(50,-14,800,1068),7895=>array(43,-14,644,887),7896=>array(50,-212,800,927),7897=>array(43,-212,644,800),7898=>array(53,-14,854,927),7899=>array(46,-14,708,800),7900=>array(53,-14,854,927),7901=>array(46,-14,708,800),7902=>array(53,-14,854,1025),7903=>array(46,-14,708,843),7904=>array(53,-14,854,928),7905=>array(46,-14,708,778),7906=>array(53,-212,854,761),7907=>array(46,-212,708,609),7908=>array(92,-212,720,729),7909=>array(78,-212,628,547),7910=>array(92,-14,720,1025),7911=>array(78,-14,628,843),7912=>array(91,-14,833,927),7913=>array(75,-14,733,800),7914=>array(91,-14,833,927),7915=>array(75,-14,733,800),7916=>array(91,-14,833,1025),7917=>array(75,-14,733,843),7918=>array(91,-14,833,928),7919=>array(75,-14,733,778),7920=>array(91,-212,833,761),7921=>array(75,-212,733,609),7922=>array(-10,0,734,931),7923=>array(12,-216,634,803),7924=>array(-10,-212,734,729),7925=>array(12,-216,634,547),7926=>array(-10,0,734,1029),7927=>array(12,-216,634,843),7928=>array(-10,0,734,928),7929=>array(12,-216,634,778),7930=>array(92,0,925,729),7931=>array(9,0,635,760),7936=>array(48,-13,645,785),7937=>array(48,-13,645,785),7938=>array(48,-13,645,800),7939=>array(48,-13,645,800),7940=>array(48,-13,645,800),7941=>array(48,-13,645,800),7942=>array(48,-13,645,928),7943=>array(48,-13,645,928),7944=>array(5,0,769,785),7945=>array(5,0,769,785),7946=>array(2,0,1036,800),7947=>array(3,0,1039,800),7948=>array(1,0,930,800),7949=>array(2,0,958,800),7950=>array(4,0,831,928),7951=>array(3,0,854,928),7952=>array(54,-14,493,785),7953=>array(54,-14,493,785),7954=>array(54,-14,498,800),7955=>array(54,-14,493,800),7956=>array(54,-14,531,800),7957=>array(54,-14,516,800),7960=>array(3,0,718,785),7961=>array(4,0,721,785),7962=>array(2,0,1026,800),7963=>array(3,0,1023,800),7964=>array(1,0,950,800),7965=>array(2,0,979,800),7968=>array(84,-208,634,785),7969=>array(84,-208,634,785),7970=>array(84,-208,634,800),7971=>array(84,-208,634,800),7972=>array(84,-208,634,800),7973=>array(84,-208,634,800),7974=>array(84,-208,634,928),7975=>array(84,-208,634,928),7976=>array(3,0,854,785),7977=>array(4,0,859,785),7978=>array(2,0,1159,800),7979=>array(3,0,1158,800),7980=>array(1,0,1088,800),7981=>array(2,0,1114,800),7982=>array(4,0,962,928),7983=>array(3,0,971,928),7984=>array(78,-19,348,785),7985=>array(78,-19,348,785),7986=>array(-27,-19,407,800),7987=>array(-58,-19,376,800),7988=>array(31,-19,446,800),7989=>array(-6,-19,438,800),7990=>array(-2,-19,348,928),7991=>array(-5,-19,348,928),7992=>array(3,0,391,785),7993=>array(4,0,397,785),7994=>array(2,0,685,800),7995=>array(3,0,693,800),7996=>array(1,0,620,800),7997=>array(2,0,646,800),7998=>array(4,0,512,928),7999=>array(3,0,512,928),8000=>array(43,-14,644,785),8001=>array(43,-14,644,785),8002=>array(43,-14,644,800),8003=>array(43,-14,644,800),8004=>array(43,-14,644,800),8005=>array(43,-14,644,800),8008=>array(3,-14,841,785),8009=>array(4,-14,883,785),8010=>array(2,-14,1171,800),8011=>array(3,-14,1173,800),8012=>array(1,-14,1002,800),8013=>array(2,-14,1032,800),8016=>array(78,-10,629,785),8017=>array(78,-10,629,785),8018=>array(78,-10,629,800),8019=>array(78,-10,629,800),8020=>array(78,-10,629,800),8021=>array(78,-10,629,800),8022=>array(78,-10,629,928),8023=>array(78,-10,629,928),8025=>array(4,0,940,785),8027=>array(3,0,1194,800),8029=>array(2,0,1208,800),8031=>array(3,0,1059,928),8032=>array(43,-13,826,785),8033=>array(43,-13,826,785),8034=>array(43,-13,826,800),8035=>array(43,-13,826,800),8036=>array(43,-13,826,800),8037=>array(43,-13,826,800),8038=>array(43,-13,826,928),8039=>array(43,-13,826,928),8040=>array(3,0,881,785),8041=>array(4,0,931,785),8042=>array(2,0,1219,800),8043=>array(3,-3,1224,800),8044=>array(1,0,1048,800),8045=>array(2,0,1078,800),8046=>array(4,0,1000,928),8047=>array(3,0,1048,928),8048=>array(48,-13,645,800),8049=>array(48,-13,645,800),8050=>array(54,-14,493,800),8051=>array(54,-14,493,800),8052=>array(84,-208,634,800),8053=>array(84,-208,634,800),8054=>array(-26,-19,348,800),8055=>array(77,-19,353,800),8056=>array(43,-14,644,800),8057=>array(43,-14,644,800),8058=>array(78,-10,629,800),8059=>array(78,-10,629,800),8060=>array(43,-13,826,800),8061=>array(43,-13,826,800),8064=>array(48,-208,645,785),8065=>array(48,-208,645,785),8066=>array(48,-208,645,800),8067=>array(48,-208,645,800),8068=>array(48,-208,645,800),8069=>array(48,-208,645,800),8070=>array(48,-208,645,928),8071=>array(48,-208,645,928),8072=>array(5,-208,769,785),8073=>array(5,-208,769,785),8074=>array(2,-208,1036,800),8075=>array(3,-208,1039,800),8076=>array(1,-208,930,800),8077=>array(2,-208,958,800),8078=>array(4,-208,831,928),8079=>array(3,-208,854,928),8080=>array(84,-208,634,785),8081=>array(84,-208,634,785),8082=>array(84,-208,634,800),8083=>array(84,-208,634,800),8084=>array(84,-208,634,800),8085=>array(84,-208,634,800),8086=>array(84,-208,634,928),8087=>array(84,-208,634,928),8088=>array(3,-208,854,785),8089=>array(4,-208,859,785),8090=>array(2,-208,1159,800),8091=>array(3,-208,1158,800),8092=>array(1,-208,1088,800),8093=>array(2,-208,1114,800),8094=>array(4,-208,962,928),8095=>array(3,-208,971,928),8096=>array(43,-208,826,785),8097=>array(43,-208,826,785),8098=>array(43,-208,826,800),8099=>array(43,-208,826,800),8100=>array(43,-208,826,800),8101=>array(43,-208,826,800),8102=>array(43,-208,826,928),8103=>array(43,-208,826,928),8104=>array(3,-208,881,785),8105=>array(4,-208,931,785),8106=>array(2,-208,1219,800),8107=>array(3,-208,1224,800),8108=>array(1,-208,1048,800),8109=>array(2,-208,1078,800),8110=>array(4,-208,1000,928),8111=>array(3,-208,1048,928),8112=>array(48,-13,645,784),8113=>array(48,-13,645,760),8114=>array(48,-208,645,800),8115=>array(48,-208,645,559),8116=>array(48,-208,645,800),8118=>array(48,-13,645,778),8119=>array(48,-208,645,778),8120=>array(5,0,769,927),8121=>array(5,0,769,914),8122=>array(-1,0,872,800),8123=>array(26,0,792,800),8124=>array(5,-208,769,729),8125=>array(183,595,317,785),8126=>array(202,-208,333,-45),8127=>array(183,595,317,785),8128=>array(80,638,420,778),8129=>array(80,654,420,928),8130=>array(84,-208,634,800),8131=>array(84,-208,634,560),8132=>array(84,-208,634,800),8134=>array(84,-208,634,778),8135=>array(84,-208,634,778),8136=>array(-1,0,856,800),8137=>array(-24,0,771,800),8138=>array(-1,0,988,800),8139=>array(-18,0,915,800),8140=>array(92,-208,745,729),8141=>array(34,595,468,800),8142=>array(63,595,478,800),8143=>array(80,595,420,928),8144=>array(3,-19,348,784),8145=>array(20,-19,348,760),8146=>array(-36,-19,348,978),8147=>array(23,-19,372,978),8150=>array(4,-19,348,778),8151=>array(-6,-19,348,928),8152=>array(21,0,350,927),8153=>array(32,0,339,914),8154=>array(-1,0,529,800),8155=>array(-21,0,450,800),8157=>array(40,595,474,800),8158=>array(45,595,489,800),8159=>array(80,595,420,928),8160=>array(78,-10,629,784),8161=>array(78,-10,629,760),8162=>array(78,-10,629,978),8163=>array(78,-10,629,978),8164=>array(84,-208,671,785),8165=>array(84,-208,671,785),8166=>array(78,-10,629,778),8167=>array(78,-10,629,928),8168=>array(-10,0,734,927),8169=>array(-10,0,734,914),8170=>array(-1,0,1030,800),8171=>array(-27,0,992,800),8172=>array(4,0,797,785),8173=>array(46,654,404,978),8174=>array(96,654,445,978),8175=>array(46,616,322,800),8178=>array(43,-208,826,800),8179=>array(43,-208,826,547),8180=>array(43,-208,826,800),8182=>array(43,-13,826,778),8183=>array(43,-208,826,778),8184=>array(-1,-14,1015,800),8185=>array(-19,-14,836,800),8186=>array(-1,0,1057,800),8187=>array(-30,0,867,800),8188=>array(27,-208,823,742),8189=>array(178,616,454,800),8190=>array(183,595,317,785),8192=>array(54,217,361,359),8193=>array(54,217,361,359),8194=>array(54,217,361,359),8195=>array(54,217,361,359),8196=>array(54,217,361,359),8197=>array(54,217,361,359),8198=>array(54,217,361,359),8199=>array(54,217,361,359),8200=>array(54,217,361,359),8201=>array(54,217,361,359),8202=>array(54,217,361,359),8203=>array(54,217,361,359),8204=>array(54,217,361,359),8205=>array(54,217,361,359),8206=>array(54,217,361,359),8207=>array(54,217,361,359),8208=>array(54,217,361,359),8209=>array(54,217,361,359),8210=>array(54,211,642,337),8211=>array(54,211,446,337),8212=>array(54,211,946,337),8213=>array(0,211,1000,337),8214=>array(127,-236,399,764),8215=>array(0,-236,500,-9),8216=>array(103,418,318,729),8217=>array(63,418,278,729),8218=>array(72,-122,287,189),8219=>array(63,418,278,729),8220=>array(103,418,565,729),8221=>array(92,418,554,729),8222=>array(72,-122,534,189),8223=>array(92,418,554,729),8224=>array(26,-96,470,729),8225=>array(25,-96,470,729),8226=>array(144,196,495,547),8227=>array(144,157,534,586),8228=>array(79,0,255,189),8229=>array(79,0,588,189),8230=>array(79,0,921,189),8231=>array(86,253,262,442),8232=>array(32,-14,1417,742),8233=>array(32,-14,1417,742),8234=>array(32,-14,1417,742),8235=>array(32,-14,1417,742),8236=>array(32,-14,1417,742),8237=>array(32,-14,1417,742),8238=>array(32,-14,1417,742),8239=>array(32,-14,1417,742),8240=>array(32,-14,1417,742),8241=>array(32,-14,1864,742),8242=>array(20,547,240,729),8243=>array(20,547,423,729),8244=>array(20,547,606,729),8245=>array(20,547,240,729),8246=>array(20,547,425,729),8247=>array(20,547,606,729),8248=>array(101,-238,632,29),8249=>array(77,67,318,519),8250=>array(94,67,335,519),8251=>array(72,0,900,829),8252=>array(69,0,558,729),8253=>array(69,0,515,742),8254=>array(0,663,500,755),8255=>array(-31,-237,859,-79),8256=>array(-31,769,859,927),8257=>array(-52,-235,296,231),8258=>array(20,-37,1003,832),8259=>array(96,220,404,358),8260=>array(-199,-14,366,742),8261=>array(86,-132,389,760),8262=>array(68,-132,371,760),8263=>array(34,0,996,742),8264=>array(69,0,760,742),8265=>array(69,0,760,742),8266=>array(49,-125,464,546),8267=>array(93,-96,579,729),8268=>array(75,189,425,541),8269=>array(75,189,425,541),8270=>array(20,0,503,464),8271=>array(104,-142,329,547),8272=>array(-31,-237,859,927),8273=>array(53,-14,439,797),8274=>array(30,-93,529,729),8275=>array(49,212,951,415),8276=>array(-31,-240,859,-82),8277=>array(152,98,686,631),8278=>array(110,93,574,645),8279=>array(20,547,789,729),8280=>array(76,21,762,708),8281=>array(126,71,712,657),8282=>array(102,0,280,729),8283=>array(49,-170,822,898),8284=>array(55,0,783,729),8285=>array(102,0,278,683),8286=>array(102,0,278,683),8287=>array(29,319,398,742),8288=>array(29,319,398,742),8289=>array(29,319,398,742),8290=>array(29,319,398,742),8291=>array(29,319,398,742),8292=>array(29,319,398,742),8298=>array(29,319,398,742),8299=>array(29,319,398,742),8300=>array(29,319,398,742),8301=>array(29,319,398,742),8302=>array(29,319,398,742),8303=>array(29,319,398,742),8304=>array(29,319,398,742),8305=>array(53,326,164,751),8308=>array(27,326,397,734),8309=>array(47,319,384,734),8310=>array(38,319,394,742),8311=>array(41,326,378,734),8312=>array(38,319,389,742),8313=>array(32,319,388,742),8314=>array(67,326,461,677),8315=>array(67,469,461,534),8316=>array(67,407,461,596),8317=>array(54,252,237,751),8318=>array(50,252,234,751),8319=>array(54,326,406,640),8320=>array(29,-7,398,416),8321=>array(60,0,382,408),8322=>array(53,0,382,416),8323=>array(44,-7,384,416),8324=>array(27,0,397,408),8325=>array(47,-7,384,408),8326=>array(38,-7,394,416),8327=>array(41,0,378,408),8328=>array(38,-7,389,416),8329=>array(32,-7,388,416),8330=>array(67,0,461,351),8331=>array(67,143,461,208),8332=>array(67,81,461,270),8333=>array(54,-74,237,425),8334=>array(50,-74,234,425),8336=>array(53,-8,402,313),8337=>array(53,-8,423,313),8338=>array(53,-8,432,313),8339=>array(10,0,403,306),8340=>array(53,-8,423,313),8341=>array(54,0,406,425),8342=>array(53,0,431,425),8343=>array(54,0,166,425),8344=>array(53,0,607,313),8345=>array(54,0,406,313),8346=>array(53,-117,423,313),8347=>array(33,-8,351,313),8348=>array(53,0,332,393),8352=>array(38,0,892,729),8353=>array(50,-44,634,778),8354=>array(29,-14,667,742),8355=>array(75,0,663,729),8356=>array(61,0,613,742),8357=>array(83,-93,963,640),8358=>array(43,0,794,729),8359=>array(92,-14,1470,729),8360=>array(92,-14,1157,729),8361=>array(13,0,1088,729),8362=>array(39,-14,859,729),8363=>array(30,-182,692,760),8364=>array(-19,-14,629,742),8365=>array(29,0,695,729),8366=>array(12,0,684,729),8367=>array(92,-223,1247,742),8368=>array(14,-14,648,742),8369=>array(34,0,696,729),8370=>array(50,-81,643,809),8371=>array(5,0,691,729),8372=>array(43,-14,816,742),8373=>array(72,-147,629,760),8376=>array(12,0,684,729),8377=>array(50,0,647,729),8378=>array(5,0,745,729),8400=>array(-498,628,-26,760),8401=>array(-470,628,1,760),8406=>array(-470,560,-26,760),8407=>array(-470,560,-26,760),8411=>array(-501,654,-1,774),8412=>array(-595,654,99,774),8417=>array(-470,560,-26,760),8448=>array(20,-24,1083,752),8449=>array(20,-24,1137,752),8450=>array(50,-14,670,742),8451=>array(87,-14,1147,749),8452=>array(64,0,832,729),8453=>array(20,-24,1064,752),8454=>array(20,-24,1117,752),8455=>array(67,-14,616,742),8456=>array(64,-146,684,611),8457=>array(87,0,1002,749),8459=>array(36,-14,1063,746),8460=>array(6,-125,809,747),8461=>array(100,0,788,729),8462=>array(31,0,654,760),8463=>array(10,0,625,760),8464=>array(36,-14,533,742),8465=>array(52,-14,659,743),8466=>array(37,-14,787,742),8467=>array(-14,-14,401,742),8468=>array(9,-14,936,760),8469=>array(92,0,745,729),8470=>array(34,0,1154,729),8471=>array(138,0,862,725),8472=>array(54,-221,658,495),8473=>array(92,0,709,729),8474=>array(50,-146,800,742),8475=>array(31,-14,904,768),8476=>array(41,-14,803,743),8477=>array(98,0,793,729),8478=>array(37,0,859,729),8479=>array(81,-112,694,887),8480=>array(127,444,792,731),8481=>array(3,0,1249,547),8482=>array(144,447,790,729),8483=>array(11,-113,729,885),8484=>array(45,0,709,729),8485=>array(26,-230,540,777),8486=>array(27,0,823,742),8487=>array(27,-14,823,728),8488=>array(-5,-159,670,729),8489=>array(1,0,271,566),8490=>array(92,0,805,729),8491=>array(5,0,769,928),8492=>array(41,-1,853,772),8493=>array(63,-19,767,742),8494=>array(61,-12,793,647),8495=>array(41,-14,591,533),8496=>array(72,-14,668,742),8497=>array(37,-14,860,773),8498=>array(92,0,599,729),8499=>array(38,-18,1156,751),8500=>array(29,-12,436,420),8501=>array(50,-14,761,742),8502=>array(19,-14,687,742),8503=>array(31,-35,439,742),8504=>array(63,-41,633,742),8505=>array(34,0,355,760),8506=>array(44,-27,932,723),8507=>array(69,0,1352,547),8508=>array(34,-14,765,547),8509=>array(-40,-208,700,561),8510=>array(92,0,627,729),8511=>array(92,0,771,729),8512=>array(12,-192,820,719),8513=>array(25,-14,723,742),8514=>array(9,0,527,729),8515=>array(43,0,561,729),8516=>array(0,0,744,729),8517=>array(21,0,786,729),8518=>array(34,-14,752,760),8519=>array(33,-14,635,560),8520=>array(15,0,353,760),8521=>array(-143,-216,354,760),8523=>array(41,-14,811,742),8526=>array(55,0,470,547),8528=>array(49,-14,983,742),8529=>array(49,-14,993,742),8530=>array(49,-14,1441,742),8531=>array(49,-14,989,742),8532=>array(53,-14,989,742),8533=>array(49,-14,989,742),8534=>array(53,-14,989,742),8535=>array(44,-14,989,742),8536=>array(27,-14,989,742),8537=>array(49,-14,999,742),8538=>array(47,-14,999,742),8539=>array(49,-14,994,742),8540=>array(44,-14,994,742),8541=>array(47,-14,994,742),8542=>array(41,-14,994,742),8543=>array(49,-14,814,742),8544=>array(92,0,280,729),8545=>array(92,0,566,729),8546=>array(92,0,853,729),8547=>array(92,0,1094,729),8548=>array(5,0,769,729),8549=>array(5,0,1007,729),8550=>array(5,0,1293,729),8551=>array(5,0,1580,729),8552=>array(92,0,1101,729),8553=>array(19,0,751,729),8554=>array(19,0,1028,729),8555=>array(19,0,1314,729),8556=>array(92,0,610,729),8557=>array(50,-14,670,742),8558=>array(92,0,778,729),8559=>array(92,0,903,729),8560=>array(84,0,259,760),8561=>array(84,0,523,760),8562=>array(84,0,788,760),8563=>array(84,0,946,760),8564=>array(15,0,637,547),8565=>array(15,0,878,760),8566=>array(15,0,1143,760),8567=>array(15,0,1407,760),8568=>array(84,0,954,760),8569=>array(15,0,630,547),8570=>array(15,0,885,760),8571=>array(15,0,1149,760),8572=>array(84,0,259,760),8573=>array(43,-14,526,560),8574=>array(45,-14,632,760),8575=>array(83,0,963,560),8576=>array(52,0,1236,729),8577=>array(92,0,778,729),8578=>array(52,0,1236,729),8579=>array(50,-14,670,742),8580=>array(43,-14,526,560),8581=>array(50,-208,670,742),8585=>array(29,-14,989,742),8592=>array(49,87,781,540),8593=>array(193,0,646,732),8594=>array(57,87,789,540),8595=>array(193,-3,646,729),8596=>array(49,87,789,540),8597=>array(193,-3,646,732),8598=>array(136,66,720,650),8599=>array(136,66,720,650),8600=>array(136,66,720,650),8601=>array(136,66,720,650),8602=>array(49,87,781,540),8603=>array(57,87,789,540),8604=>array(13,84,833,431),8605=>array(5,84,825,431),8606=>array(49,87,781,540),8607=>array(189,0,641,732),8608=>array(57,87,789,540),8609=>array(194,-3,646,729),8610=>array(49,87,793,540),8611=>array(45,87,789,540),8612=>array(49,87,781,540),8613=>array(193,0,646,732),8614=>array(57,87,789,540),8615=>array(193,0,646,732),8616=>array(193,0,646,732),8617=>array(49,87,781,565),8618=>array(57,87,789,565),8619=>array(49,87,781,565),8620=>array(57,87,789,565),8621=>array(49,87,789,540),8622=>array(49,86,789,541),8623=>array(123,-4,714,733),8624=>array(169,0,646,755),8625=>array(192,0,669,755),8626=>array(169,-26,646,729),8627=>array(192,-26,669,729),8628=>array(233,-3,772,621),8629=>array(49,87,673,626),8630=>array(11,198,816,685),8631=>array(22,198,828,685),8632=>array(118,13,788,729),8633=>array(49,-108,789,735),8634=>array(86,45,767,691),8635=>array(71,45,751,691),8636=>array(49,255,781,540),8637=>array(49,87,781,372),8638=>array(361,0,646,732),8639=>array(193,0,478,732),8640=>array(57,255,789,540),8641=>array(57,87,789,372),8642=>array(361,0,646,732),8643=>array(193,0,478,732),8644=>array(49,-59,789,686),8645=>array(47,-3,792,732),8646=>array(49,-59,789,686),8647=>array(49,-59,781,686),8648=>array(46,0,792,732),8649=>array(57,-59,789,686),8650=>array(46,-3,792,729),8651=>array(49,-5,789,632),8652=>array(49,-5,789,632),8653=>array(49,87,781,540),8654=>array(49,87,789,540),8655=>array(57,87,789,540),8656=>array(49,87,781,540),8657=>array(193,0,645,732),8658=>array(57,87,789,540),8659=>array(193,-3,645,729),8660=>array(49,87,789,540),8661=>array(193,-8,645,732),8662=>array(132,-26,755,596),8663=>array(88,-26,711,597),8664=>array(88,16,711,639),8665=>array(132,16,755,639),8666=>array(49,87,781,540),8667=>array(57,87,789,540),8668=>array(44,87,776,540),8669=>array(57,87,789,540),8670=>array(193,0,646,732),8671=>array(193,-3,646,729),8672=>array(49,87,781,540),8673=>array(193,0,646,732),8674=>array(57,87,789,540),8675=>array(193,-3,646,729),8676=>array(49,87,781,540),8677=>array(57,87,789,540),8678=>array(27,46,781,581),8679=>array(151,0,687,754),8680=>array(35,46,789,581),8681=>array(151,-25,687,729),8682=>array(151,0,687,754),8683=>array(151,0,687,754),8684=>array(151,0,687,754),8685=>array(151,0,687,754),8686=>array(151,0,687,754),8687=>array(151,0,687,754),8688=>array(35,46,789,581),8689=>array(60,0,788,729),8690=>array(60,0,788,729),8691=>array(151,-25,687,754),8692=>array(57,87,789,540),8693=>array(47,-3,792,732),8694=>array(57,-223,789,850),8695=>array(49,87,781,540),8696=>array(57,87,789,540),8697=>array(49,87,789,540),8698=>array(49,87,781,540),8699=>array(57,87,789,540),8700=>array(49,87,789,540),8701=>array(27,96,781,531),8702=>array(57,96,811,531),8703=>array(27,96,811,531),8704=>array(5,0,769,729),8705=>array(48,-14,629,742),8706=>array(29,-14,515,674),8707=>array(92,0,610,729),8708=>array(92,-46,610,775),8709=>array(47,-15,810,715),8710=>array(0,0,697,719),8711=>array(0,0,697,719),8712=>array(73,-2,824,730),8713=>array(73,-46,824,775),8714=>array(106,58,644,568),8715=>array(73,-2,824,730),8716=>array(73,-46,824,775),8717=>array(106,58,644,568),8718=>array(98,0,539,553),8719=>array(73,-192,712,719),8720=>array(73,-193,712,718),8721=>array(20,-192,697,719),8722=>array(106,256,732,371),8723=>array(106,0,732,627),8724=>array(49,0,647,729),8725=>array(0,-93,365,729),8726=>array(165,-49,530,772),8727=>array(118,0,720,626),8728=>array(150,151,475,477),8729=>array(102,253,278,442),8730=>array(37,-20,669,837),8731=>array(37,-20,669,933),8732=>array(36,-20,669,924),8733=>array(92,89,617,505),8734=>array(92,89,741,505),8735=>array(106,67,732,693),8736=>array(77,0,820,729),8737=>array(77,-44,820,729),8738=>array(116,-0,732,726),8739=>array(207,-207,322,773),8740=>array(48,-207,482,773),8741=>array(112,-207,417,773),8742=>array(48,-207,482,773),8743=>array(151,0,661,579),8744=>array(151,0,661,579),8745=>array(151,0,661,579),8746=>array(151,0,661,579),8747=>array(15,-227,548,754),8748=>array(15,-227,914,754),8749=>array(15,-227,1280,754),8750=>array(14,-227,548,754),8751=>array(38,-227,938,754),8752=>array(23,-227,1290,754),8753=>array(15,-227,616,754),8754=>array(14,-227,600,754),8755=>array(14,-227,588,754),8756=>array(60,78,637,647),8757=>array(60,78,637,647),8758=>array(59,79,235,647),8759=>array(60,78,637,647),8760=>array(106,256,732,631),8761=>array(106,45,800,584),8762=>array(106,-4,732,631),8763=>array(106,-34,732,660),8764=>array(106,212,732,415),8765=>array(106,212,732,415),8766=>array(65,131,772,497),8767=>array(106,42,732,584),8768=>array(85,0,289,626),8769=>array(106,76,732,551),8770=>array(106,110,732,482),8771=>array(106,144,732,517),8772=>array(106,0,732,637),8773=>array(106,37,732,628),8774=>array(106,-31,732,628),8775=>array(106,-86,732,726),8776=>array(106,110,732,517),8777=>array(106,8,732,614),8778=>array(106,37,732,628),8779=>array(106,-13,732,628),8780=>array(106,37,732,628),8781=>array(105,105,732,585),8782=>array(106,26,732,656),8783=>array(106,172,732,656),8784=>array(106,144,732,744),8785=>array(106,-117,732,743),8786=>array(105,-92,732,719),8787=>array(104,-92,731,719),8788=>array(98,102,965,520),8789=>array(96,102,966,520),8790=>array(106,144,732,482),8791=>array(106,144,732,839),8792=>array(106,144,732,704),8793=>array(106,144,732,840),8794=>array(106,144,732,840),8795=>array(106,144,732,959),8796=>array(106,144,732,952),8797=>array(106,144,732,762),8798=>array(106,144,732,786),8799=>array(106,144,732,903),8800=>array(106,-5,732,631),8801=>array(106,38,732,588),8802=>array(106,-69,732,695),8803=>array(106,-74,732,700),8804=>array(106,0,732,582),8805=>array(106,0,732,582),8806=>array(106,-106,732,617),8807=>array(106,-106,732,617),8808=>array(106,-185,732,617),8809=>array(106,-185,732,617),8810=>array(72,-34,974,660),8811=>array(72,-34,974,660),8812=>array(86,-132,414,759),8813=>array(105,-10,732,700),8814=>array(106,-4,732,690),8815=>array(106,-63,732,631),8816=>array(106,-112,732,645),8817=>array(106,-112,732,645),8818=>array(106,-84,732,582),8819=>array(106,-84,732,582),8820=>array(106,-112,732,645),8821=>array(106,-112,732,645),8822=>array(102,-119,732,678),8823=>array(102,-119,732,678),8824=>array(102,-221,732,779),8825=>array(102,-221,732,779),8826=>array(106,-55,732,681),8827=>array(106,-55,732,681),8828=>array(106,-177,732,684),8829=>array(106,-177,732,684),8830=>array(106,-132,732,684),8831=>array(106,-132,732,684),8832=>array(106,-89,732,781),8833=>array(106,-89,732,781),8834=>array(99,67,739,559),8835=>array(99,65,739,559),8836=>array(99,-96,739,726),8837=>array(99,-100,739,722),8838=>array(99,0,739,636),8839=>array(99,0,739,635),8840=>array(99,-124,739,759),8841=>array(99,-124,739,759),8842=>array(99,-97,739,636),8843=>array(99,-97,739,635),8844=>array(151,0,661,579),8845=>array(151,0,661,579),8846=>array(151,0,661,579),8847=>array(106,0,732,584),8848=>array(106,0,732,584),8849=>array(106,-115,732,667),8850=>array(106,-115,732,667),8851=>array(106,0,690,626),8852=>array(106,0,690,626),8853=>array(91,-14,747,643),8854=>array(91,-14,747,643),8855=>array(91,-14,747,643),8856=>array(91,-13,747,642),8857=>array(91,-14,747,643),8858=>array(91,-14,747,643),8859=>array(91,-14,747,643),8860=>array(91,-14,747,643),8861=>array(91,-14,747,643),8862=>array(77,-29,761,657),8863=>array(77,-29,761,657),8864=>array(77,-29,761,657),8865=>array(77,-29,761,657),8866=>array(85,0,829,705),8867=>array(85,0,829,705),8868=>array(85,0,829,705),8869=>array(85,0,829,705),8870=>array(85,0,457,705),8871=>array(85,0,457,705),8872=>array(85,0,829,705),8873=>array(85,0,829,705),8874=>array(85,0,829,705),8875=>array(85,0,829,705),8876=>array(85,-100,829,805),8877=>array(85,-100,829,805),8878=>array(85,-100,829,805),8879=>array(85,-100,829,805),8880=>array(106,-54,724,681),8881=>array(114,-54,732,681),8882=>array(106,-1,732,628),8883=>array(106,-1,732,628),8884=>array(106,-80,732,706),8885=>array(106,-80,732,706),8886=>array(60,151,940,477),8887=>array(60,151,940,477),8888=>array(60,151,778,477),8889=>array(43,-63,794,689),8890=>array(63,0,480,705),8891=>array(103,0,709,759),8892=>array(103,0,709,759),8893=>array(103,0,709,759),8894=>array(106,0,732,626),8895=>array(106,0,732,626),8896=>array(0,-192,843,719),8897=>array(0,-192,843,719),8898=>array(48,-192,794,719),8899=>array(48,-192,794,719),8900=>array(3,-233,491,807),8901=>array(102,253,278,442),8902=>array(83,112,543,549),8903=>array(106,-56,732,683),8904=>array(106,-48,894,674),8905=>array(106,-48,894,675),8906=>array(106,-48,894,675),8907=>array(106,-48,894,675),8908=>array(106,-48,894,675),8909=>array(106,144,732,517),8910=>array(49,0,763,579),8911=>array(49,0,763,579),8912=>array(93,-22,732,649),8913=>array(106,-22,745,649),8914=>array(83,0,755,639),8915=>array(83,-14,755,625),8916=>array(186,0,652,729),8917=>array(106,-100,732,729),8918=>array(106,30,732,597),8919=>array(106,30,732,597),8920=>array(72,-34,1350,660),8921=>array(72,-34,1350,660),8922=>array(106,-211,732,837),8923=>array(106,-211,732,837),8924=>array(106,0,732,582),8925=>array(106,0,732,582),8926=>array(106,-177,732,684),8927=>array(106,-177,732,684),8928=>array(106,-197,732,808),8929=>array(106,-263,732,742),8930=>array(106,-191,732,817),8931=>array(106,-191,732,817),8932=>array(106,-146,732,636),8933=>array(106,-146,732,636),8934=>array(106,-168,732,582),8935=>array(106,-168,732,582),8936=>array(106,-216,732,684),8937=>array(106,-216,732,684),8938=>array(106,-138,732,808),8939=>array(106,-138,732,808),8940=>array(106,-224,732,894),8941=>array(106,-224,732,894),8942=>array(412,-40,588,735),8943=>array(79,253,921,442),8944=>array(79,-40,921,735),8945=>array(79,-40,921,735),8946=>array(72,-2,1085,730),8947=>array(73,-2,824,730),8948=>array(106,58,644,568),8949=>array(73,-2,824,984),8950=>array(73,-2,824,919),8951=>array(106,58,644,741),8952=>array(73,-207,824,730),8953=>array(73,-2,824,730),8954=>array(72,-2,1085,730),8955=>array(73,-2,824,730),8956=>array(106,58,644,568),8957=>array(72,-2,824,919),8958=>array(106,58,644,741),8959=>array(106,0,791,732),8960=>array(31,-22,572,519),8961=>array(56,152,540,453),8962=>array(64,0,651,596),8963=>array(193,470,646,732),8964=>array(193,0,646,263),8965=>array(193,-12,646,423),8966=>array(193,-12,646,552),8967=>array(139,-39,349,798),8968=>array(86,-132,389,760),8969=>array(68,-132,371,760),8970=>array(86,-132,389,760),8971=>array(68,-132,371,760),8972=>array(352,-77,759,331),8973=>array(49,-77,457,331),8974=>array(352,226,759,634),8975=>array(49,226,457,634),8976=>array(106,140,732,444),8977=>array(3,113,536,646),8984=>array(84,0,843,759),8985=>array(106,140,732,444),8988=>array(86,425,403,760),8989=>array(65,425,383,760),8990=>array(86,-126,403,208),8991=>array(65,-126,383,208),8992=>array(235,-250,586,926),8993=>array(22,-240,373,940),8996=>array(76,215,1076,575),8997=>array(76,0,1076,575),8998=>array(76,0,1414,760),8999=>array(76,0,1076,760),9000=>array(59,0,1385,729),9003=>array(0,0,1338,760),9004=>array(73,-91,800,748),9075=>array(78,-19,348,547),9076=>array(84,-208,671,562),9077=>array(43,-13,826,547),9082=>array(48,-13,645,559),9085=>array(13,-228,850,99),9095=>array(76,0,1100,743),9108=>array(17,0,856,727),9115=>array(63,-252,438,928),9116=>array(63,-252,205,940),9117=>array(63,-240,438,940),9118=>array(63,-252,438,928),9119=>array(295,-252,438,940),9120=>array(63,-240,438,940),9121=>array(63,-252,438,928),9122=>array(63,-252,205,940),9123=>array(63,-240,438,940),9124=>array(63,-252,438,928),9125=>array(295,-252,438,940),9126=>array(63,-240,438,940),9127=>array(306,-261,668,928),9128=>array(82,-247,444,934),9129=>array(306,-240,668,934),9130=>array(306,-256,444,934),9131=>array(82,-261,444,928),9132=>array(306,-247,668,934),9133=>array(82,-240,444,934),9134=>array(235,-250,373,940),9166=>array(27,46,781,729),9167=>array(91,0,854,596),9187=>array(73,-91,800,748),9189=>array(3,75,766,444),9192=>array(39,-129,665,294),9250=>array(-81,-14,671,760),9251=>array(64,-228,651,99),9312=>array(59,-15,788,715),9313=>array(59,-15,788,715),9314=>array(59,-15,788,715),9315=>array(59,-15,788,715),9316=>array(59,-15,788,715),9317=>array(59,-15,788,715),9318=>array(59,-15,788,715),9319=>array(59,-15,788,715),9320=>array(59,-15,788,715),9321=>array(59,-15,788,715),9600=>array(-10,260,779,770),9601=>array(-10,-250,779,-123),9602=>array(-10,-250,779,-5),9603=>array(-10,-250,779,132),9604=>array(-10,-250,779,260),9605=>array(-10,-250,779,387),9606=>array(-10,-250,779,515),9607=>array(-10,-250,779,642),9608=>array(-10,-250,779,770),9609=>array(-10,-250,680,770),9610=>array(-10,-250,582,770),9611=>array(-10,-250,483,770),9612=>array(-10,-250,384,770),9613=>array(-10,-250,286,770),9614=>array(-10,-250,187,770),9615=>array(-10,-250,88,770),9616=>array(384,-250,778,770),9617=>array(-10,-250,680,770),9618=>array(-10,-250,779,770),9619=>array(-10,-250,779,770),9620=>array(-10,642,779,770),9621=>array(680,-250,778,770),9622=>array(-10,-250,385,260),9623=>array(384,-250,779,260),9624=>array(-10,260,385,770),9625=>array(-10,-250,779,770),9626=>array(-10,-250,779,770),9627=>array(-10,-250,779,770),9628=>array(-10,-250,779,770),9629=>array(384,260,779,770),9630=>array(-10,-250,779,770),9631=>array(-10,-250,779,770),9632=>array(91,-124,854,643),9633=>array(91,-124,854,643),9634=>array(91,-124,854,643),9635=>array(91,-124,854,643),9636=>array(91,-124,854,643),9637=>array(91,-124,854,643),9638=>array(91,-124,854,643),9639=>array(91,-124,854,643),9640=>array(91,-124,854,643),9641=>array(91,-124,854,643),9642=>array(91,11,587,509),9643=>array(91,11,587,509),9644=>array(91,75,854,444),9645=>array(91,75,854,444),9646=>array(91,-122,459,642),9647=>array(91,-122,459,642),9648=>array(3,75,766,444),9649=>array(3,75,766,444),9650=>array(3,-124,766,643),9651=>array(3,-124,766,643),9652=>array(3,11,499,509),9653=>array(3,11,499,509),9654=>array(3,-124,766,643),9655=>array(3,-124,766,643),9656=>array(3,11,499,509),9657=>array(3,11,499,509),9658=>array(3,11,766,509),9659=>array(3,11,766,509),9660=>array(3,-124,766,643),9661=>array(3,-124,766,643),9662=>array(3,11,499,509),9663=>array(3,11,499,509),9664=>array(3,-124,766,643),9665=>array(3,-124,766,643),9666=>array(3,11,499,509),9667=>array(3,11,499,509),9668=>array(3,11,766,509),9669=>array(3,11,766,509),9670=>array(3,-124,766,643),9671=>array(3,-124,766,643),9672=>array(3,-124,766,643),9673=>array(55,-125,818,645),9674=>array(3,-233,491,807),9675=>array(55,-125,818,645),9676=>array(56,-125,817,644),9677=>array(55,-125,818,645),9678=>array(55,-125,818,645),9679=>array(55,-123,818,641),9680=>array(55,-123,818,641),9681=>array(55,-123,818,641),9682=>array(55,-123,818,641),9683=>array(55,-123,818,641),9684=>array(55,-123,818,641),9685=>array(55,-123,818,641),9686=>array(55,-125,436,645),9687=>array(91,-125,472,645),9688=>array(91,-10,750,770),9689=>array(91,-250,879,770),9690=>array(91,260,879,770),9691=>array(91,-250,879,260),9692=>array(3,260,385,645),9693=>array(3,260,384,645),9694=>array(3,-125,384,260),9695=>array(3,-125,385,260),9696=>array(3,260,766,645),9697=>array(3,-125,766,260),9698=>array(3,-124,766,643),9699=>array(3,-124,766,643),9700=>array(3,-124,766,643),9701=>array(3,-124,766,643),9702=>array(144,196,495,547),9703=>array(91,-124,854,643),9704=>array(91,-124,854,643),9705=>array(91,-124,854,643),9706=>array(91,-124,854,643),9707=>array(91,-124,854,643),9708=>array(3,-124,766,643),9709=>array(3,-124,766,643),9710=>array(3,-124,766,643),9711=>array(55,-250,1064,770),9712=>array(91,-124,854,643),9713=>array(91,-124,854,643),9714=>array(91,-124,854,643),9715=>array(91,-124,854,643),9716=>array(55,-123,818,641),9717=>array(55,-123,818,641),9718=>array(55,-123,818,641),9719=>array(55,-123,818,641),9720=>array(3,-124,766,643),9721=>array(3,-124,766,643),9722=>array(3,-124,766,643),9723=>array(91,-66,739,585),9724=>array(91,-66,739,585),9725=>array(91,-17,642,537),9726=>array(91,-17,642,537),9727=>array(3,-124,766,643),9728=>array(83,0,813,729),9729=>array(51,-2,949,360),9730=>array(49,0,848,729),9731=>array(83,-0,813,927),9732=>array(64,0,833,880),9733=>array(65,-4,832,723),9734=>array(65,-4,832,723),9735=>array(83,2,490,729),9736=>array(83,0,813,731),9737=>array(83,0,813,730),9738=>array(61,0,828,727),9739=>array(61,0,828,723),9740=>array(61,-1,610,722),9741=>array(61,0,952,723),9742=>array(68,0,1177,729),9743=>array(71,0,1180,729),9744=>array(90,0,807,729),9745=>array(89,0,808,729),9746=>array(89,0,808,729),9747=>array(75,78,457,656),9748=>array(49,0,870,933),9749=>array(74,0,822,731),9750=>array(84,0,813,731),9751=>array(84,0,813,727),9752=>array(78,0,819,729),9753=>array(83,140,813,574),9754=>array(84,113,813,569),9755=>array(84,113,813,569),9756=>array(87,104,810,569),9757=>array(72,0,537,724),9758=>array(86,103,810,569),9759=>array(72,-3,537,720),9760=>array(61,0,835,730),9761=>array(84,0,813,730),9762=>array(83,0,813,730),9763=>array(49,0,848,730),9764=>array(49,-2,620,727),9765=>array(83,0,663,731),9766=>array(83,-1,566,731),9767=>array(83,0,701,911),9768=>array(83,0,462,730),9769=>array(83,-1,813,729),9770=>array(87,0,810,730),9771=>array(83,0,814,731),9772=>array(83,0,627,731),9773=>array(83,0,813,730),9774=>array(83,0,813,730),9775=>array(83,0,813,730),9776=>array(83,0,813,729),9777=>array(83,0,814,729),9778=>array(83,0,813,729),9779=>array(83,0,813,729),9780=>array(83,0,813,729),9781=>array(83,0,813,729),9782=>array(83,0,813,729),9783=>array(83,0,813,729),9784=>array(80,3,817,721),9785=>array(83,-73,959,804),9786=>array(83,-73,959,804),9787=>array(83,-73,959,804),9788=>array(83,0,813,730),9789=>array(358,0,814,730),9790=>array(83,0,539,730),9791=>array(85,-102,528,732),9792=>array(85,-125,647,731),9793=>array(85,-14,647,843),9794=>array(79,-14,831,720),9795=>array(166,0,730,730),9796=>array(219,0,677,730),9797=>array(121,0,774,730),9798=>array(127,0,769,730),9799=>array(240,0,656,730),9800=>array(45,0,851,731),9801=>array(89,0,807,730),9802=>array(94,0,802,731),9803=>array(113,31,784,679),9804=>array(140,0,756,730),9805=>array(53,-180,843,730),9806=>array(83,52,813,653),9807=>array(34,-96,863,730),9808=>array(83,-0,813,730),9809=>array(94,0,802,730),9810=>array(86,153,810,579),9811=>array(157,0,739,730),9812=>array(98,0,798,730),9813=>array(110,0,786,730),9814=>array(167,-1,729,729),9815=>array(214,0,683,730),9816=>array(165,0,732,730),9817=>array(148,-0,748,730),9818=>array(98,0,798,730),9819=>array(110,0,786,730),9820=>array(167,-1,729,729),9821=>array(214,0,683,730),9822=>array(162,0,734,730),9823=>array(148,-0,748,730),9824=>array(158,0,738,729),9825=>array(90,0,806,727),9826=>array(168,0,728,729),9827=>array(111,0,785,729),9828=>array(157,0,739,729),9829=>array(89,0,808,729),9830=>array(168,0,728,729),9831=>array(111,0,785,732),9832=>array(105,-1,791,729),9833=>array(84,-5,339,729),9834=>array(84,-5,554,729),9835=>array(184,-102,712,729),9836=>array(92,-5,804,729),9837=>array(88,-3,392,731),9838=>array(84,0,273,731),9839=>array(84,0,400,731),9840=>array(84,0,664,731),9841=>array(64,0,701,731),9842=>array(84,0,813,709),9843=>array(76,16,820,731),9844=>array(76,16,820,731),9845=>array(76,16,820,731),9846=>array(76,16,820,731),9847=>array(76,16,820,731),9848=>array(76,16,820,731),9849=>array(76,16,820,731),9850=>array(76,16,820,731),9851=>array(84,0,812,704),9852=>array(83,0,814,731),9853=>array(83,0,814,731),9854=>array(83,0,814,731),9855=>array(149,1,747,731),9856=>array(73,0,797,725),9857=>array(73,0,797,725),9858=>array(73,0,797,725),9859=>array(73,0,797,725),9860=>array(73,0,797,725),9861=>array(73,0,797,725),9862=>array(83,0,813,731),9863=>array(83,0,813,731),9864=>array(83,0,813,731),9865=>array(83,0,813,731),9866=>array(83,0,813,98),9867=>array(83,0,813,98),9868=>array(83,0,813,413),9869=>array(83,0,813,413),9870=>array(83,0,813,413),9871=>array(83,0,813,413),9872=>array(168,3,728,731),9873=>array(168,3,728,731),9874=>array(52,0,844,731),9875=>array(97,-10,799,732),9876=>array(131,0,765,729),9877=>array(61,-10,479,732),9878=>array(59,-10,837,732),9879=>array(61,0,835,732),9880=>array(145,0,750,732),9881=>array(95,-17,802,727),9882=>array(128,-9,768,733),9883=>array(127,0,769,728),9884=>array(127,0,769,729),9888=>array(49,0,848,729),9889=>array(83,2,619,730),9890=>array(85,-125,919,731),9891=>array(79,-206,1023,720),9892=>array(85,-186,1109,856),9893=>array(85,-125,837,917),9894=>array(131,-14,727,869),9895=>array(101,-170,741,884),9896=>array(188,-14,650,869),9897=>array(4,133,829,596),9898=>array(188,133,650,597),9899=>array(188,133,650,597),9900=>array(249,194,589,536),9901=>array(175,194,663,536),9902=>array(41,169,797,560),9903=>array(5,194,833,536),9904=>array(103,237,757,540),9905=>array(211,42,626,698),9906=>array(85,-125,647,731),9907=>array(168,-125,646,731),9908=>array(86,-125,646,731),9909=>array(86,-125,646,731),9910=>array(59,-118,791,643),9911=>array(194,-104,595,710),9912=>array(158,-125,543,731),9920=>array(42,4,796,553),9921=>array(42,4,796,724),9922=>array(42,4,796,553),9923=>array(42,4,796,724),9954=>array(85,-14,647,843),9985=>array(11,190,803,635),9986=>array(42,141,784,588),9987=>array(11,94,803,539),9988=>array(36,119,824,613),9990=>array(42,-14,796,742),9991=>array(42,-14,796,742),9992=>array(59,21,782,708),9993=>array(64,107,773,622),9996=>array(212,0,561,742),9997=>array(21,83,802,678),9998=>array(89,75,724,710),9999=>array(26,198,819,530),10000=>array(89,75,724,710),10001=>array(43,185,757,544),10002=>array(67,209,757,520),10003=>array(150,97,667,630),10004=>array(116,87,721,631),10005=>array(126,72,711,657),10006=>array(85,31,752,698),10007=>array(118,-9,701,732),10008=>array(123,0,754,739),10009=>array(55,0,783,729),10010=>array(55,0,783,729),10011=>array(55,0,783,729),10012=>array(55,0,783,729),10013=>array(165,0,673,729),10014=>array(131,0,678,729),10015=>array(155,0,683,729),10016=>array(55,0,783,729),10017=>array(91,-13,747,744),10018=>array(41,-14,797,742),10019=>array(42,-12,796,742),10020=>array(41,-14,797,742),10021=>array(41,-13,797,743),10022=>array(42,-14,796,745),10023=>array(42,-14,796,745),10025=>array(23,-9,814,743),10026=>array(42,-14,796,742),10027=>array(23,-9,814,743),10028=>array(23,-9,814,743),10029=>array(23,-9,814,743),10030=>array(23,-9,814,743),10031=>array(23,-9,814,743),10032=>array(24,12,815,714),10033=>array(64,0,773,729),10034=>array(74,0,764,729),10035=>array(55,0,783,729),10036=>array(31,-14,787,742),10037=>array(41,-14,797,742),10038=>array(91,-14,747,742),10039=>array(41,-14,797,742),10040=>array(41,-14,797,742),10041=>array(41,-14,797,742),10042=>array(55,0,783,729),10043=>array(82,-14,756,742),10044=>array(82,-14,756,742),10045=>array(84,-14,753,742),10046=>array(79,-14,759,742),10047=>array(54,0,784,709),10048=>array(54,0,784,709),10049=>array(41,-14,797,742),10050=>array(42,-14,796,742),10051=>array(79,-14,759,742),10052=>array(89,0,749,729),10053=>array(76,0,762,729),10054=>array(63,2,773,729),10055=>array(79,-13,759,742),10056=>array(47,-13,791,730),10057=>array(47,-13,791,730),10058=>array(41,-13,797,743),10059=>array(41,-13,797,743),10061=>array(50,-10,847,738),10063=>array(60,-49,837,729),10064=>array(60,0,837,777),10065=>array(60,-49,837,729),10066=>array(60,0,837,777),10070=>array(83,-2,813,728),10072=>array(377,-240,460,760),10073=>array(336,-240,502,760),10074=>array(253,-240,585,760),10075=>array(85,395,288,729),10076=>array(59,395,262,729),10077=>array(85,395,528,729),10078=>array(59,395,502,729),10081=>array(155,-93,772,851),10082=>array(202,-17,636,742),10083=>array(163,-17,675,742),10084=>array(54,83,784,645),10085=>array(168,-1,729,729),10086=>array(62,21,724,702),10087=>array(78,169,759,564),10088=>array(196,-139,648,769),10089=>array(196,-139,648,769),10090=>array(264,-132,574,758),10091=>array(264,-132,574,758),10092=>array(215,-240,607,760),10093=>array(232,-240,623,760),10094=>array(142,-240,685,760),10095=>array(153,-240,696,760),10096=>array(167,-240,656,760),10097=>array(183,-240,672,760),10098=>array(346,-241,535,760),10099=>array(303,-241,492,760),10100=>array(175,-163,634,760),10101=>array(204,-163,663,760),10102=>array(59,-15,788,715),10103=>array(59,-15,788,715),10104=>array(59,-15,788,715),10105=>array(59,-15,788,715),10106=>array(59,-15,788,715),10107=>array(59,-15,788,715),10108=>array(59,-15,788,715),10109=>array(59,-15,788,715),10110=>array(59,-15,788,715),10111=>array(59,-15,788,715),10112=>array(4,-52,833,780),10113=>array(4,-52,833,780),10114=>array(4,-52,833,780),10115=>array(4,-52,833,780),10116=>array(4,-52,833,780),10117=>array(4,-52,833,780),10118=>array(4,-52,833,780),10119=>array(4,-52,833,780),10120=>array(4,-52,833,780),10121=>array(4,-52,833,780),10122=>array(4,-52,833,780),10123=>array(4,-52,833,780),10124=>array(4,-52,833,780),10125=>array(4,-52,833,780),10126=>array(4,-52,833,780),10127=>array(4,-52,833,780),10128=>array(4,-52,833,780),10129=>array(4,-52,833,780),10130=>array(4,-52,833,780),10131=>array(4,-52,833,780),10132=>array(57,75,789,552),10136=>array(123,55,682,614),10137=>array(57,100,789,527),10138=>array(123,13,682,572),10139=>array(57,129,789,498),10140=>array(57,57,764,570),10141=>array(57,100,789,527),10142=>array(57,100,789,527),10143=>array(57,100,789,527),10144=>array(57,100,789,527),10145=>array(57,46,811,581),10146=>array(111,94,789,533),10147=>array(111,94,789,533),10148=>array(111,-4,789,631),10149=>array(57,100,789,548),10150=>array(57,79,789,527),10151=>array(240,-7,606,634),10152=>array(57,100,789,527),10153=>array(57,75,765,552),10154=>array(57,75,765,552),10155=>array(21,12,794,586),10156=>array(21,12,794,586),10157=>array(135,0,774,574),10158=>array(135,0,774,574),10159=>array(62,49,799,574),10161=>array(62,49,799,574),10162=>array(154,-20,721,585),10163=>array(63,157,789,470),10164=>array(81,55,682,655),10165=>array(57,173,789,454),10166=>array(82,-29,682,572),10167=>array(82,55,682,655),10168=>array(57,172,789,455),10169=>array(82,-28,682,572),10170=>array(56,84,789,543),10171=>array(73,140,779,487),10172=>array(79,167,774,460),10173=>array(79,118,774,509),10174=>array(57,81,789,546),10181=>array(54,-163,405,769),10182=>array(52,-163,403,769),10208=>array(3,-233,491,807),10214=>array(86,-132,419,760),10215=>array(86,-132,419,760),10216=>array(104,-132,377,759),10217=>array(80,-132,353,759),10218=>array(104,-132,641,759),10219=>array(80,-132,616,759),10224=>array(41,0,797,732),10225=>array(42,-3,798,729),10226=>array(9,45,816,685),10227=>array(22,45,830,685),10228=>array(57,-14,1108,643),10229=>array(49,87,1376,540),10230=>array(57,87,1385,540),10231=>array(49,87,1385,540),10232=>array(49,87,1376,540),10233=>array(57,87,1385,540),10234=>array(49,87,1385,540),10235=>array(49,87,1376,540),10236=>array(57,87,1385,540),10237=>array(49,87,1376,540),10238=>array(57,87,1385,540),10239=>array(57,87,1385,540),10240=>array(146,586,342,781),10241=>array(146,586,342,781),10242=>array(146,325,342,521),10243=>array(146,325,342,781),10244=>array(146,65,342,261),10245=>array(146,65,342,781),10246=>array(146,65,342,521),10247=>array(146,65,342,781),10248=>array(439,586,635,781),10249=>array(146,586,635,781),10250=>array(146,325,635,781),10251=>array(146,325,635,781),10252=>array(146,65,635,781),10253=>array(146,65,635,781),10254=>array(146,65,635,781),10255=>array(146,65,635,781),10256=>array(439,325,635,521),10257=>array(146,325,635,781),10258=>array(146,325,635,521),10259=>array(146,325,635,781),10260=>array(146,65,635,521),10261=>array(146,65,635,781),10262=>array(146,65,635,521),10263=>array(146,65,635,781),10264=>array(439,325,635,781),10265=>array(146,325,635,781),10266=>array(146,325,635,781),10267=>array(146,325,635,781),10268=>array(146,65,635,781),10269=>array(146,65,635,781),10270=>array(146,65,635,781),10271=>array(146,65,635,781),10272=>array(439,65,635,261),10273=>array(146,65,635,781),10274=>array(146,65,635,521),10275=>array(146,65,635,781),10276=>array(146,65,635,261),10277=>array(146,65,635,781),10278=>array(146,65,635,521),10279=>array(146,65,635,781),10280=>array(439,65,635,781),10281=>array(146,65,635,781),10282=>array(146,65,635,781),10283=>array(146,65,635,781),10284=>array(146,65,635,781),10285=>array(146,65,635,781),10286=>array(146,65,635,781),10287=>array(146,65,635,781),10288=>array(439,65,635,521),10289=>array(146,65,635,781),10290=>array(146,65,635,521),10291=>array(146,65,635,781),10292=>array(146,65,635,521),10293=>array(146,65,635,781),10294=>array(146,65,635,521),10295=>array(146,65,635,781),10296=>array(439,65,635,781),10297=>array(146,65,635,781),10298=>array(146,65,635,781),10299=>array(146,65,635,781),10300=>array(146,65,635,781),10301=>array(146,65,635,781),10302=>array(146,65,635,781),10303=>array(146,65,635,781),10304=>array(146,-195,342,0),10305=>array(146,-195,342,781),10306=>array(146,-195,342,521),10307=>array(146,-195,342,781),10308=>array(146,-195,342,261),10309=>array(146,-195,342,781),10310=>array(146,-195,342,521),10311=>array(146,-195,342,781),10312=>array(146,-195,635,781),10313=>array(146,-195,635,781),10314=>array(146,-195,635,781),10315=>array(146,-195,635,781),10316=>array(146,-195,635,781),10317=>array(146,-195,635,781),10318=>array(146,-195,635,781),10319=>array(146,-195,635,781),10320=>array(146,-195,635,521),10321=>array(146,-195,635,781),10322=>array(146,-195,635,521),10323=>array(146,-195,635,781),10324=>array(146,-195,635,521),10325=>array(146,-195,635,781),10326=>array(146,-195,635,521),10327=>array(146,-195,635,781),10328=>array(146,-195,635,781),10329=>array(146,-195,635,781),10330=>array(146,-195,635,781),10331=>array(146,-195,635,781),10332=>array(146,-195,635,781),10333=>array(146,-195,635,781),10334=>array(146,-195,635,781),10335=>array(146,-195,635,781),10336=>array(146,-195,635,261),10337=>array(146,-195,635,781),10338=>array(146,-195,635,521),10339=>array(146,-195,635,781),10340=>array(146,-195,635,261),10341=>array(146,-195,635,781),10342=>array(146,-195,635,521),10343=>array(146,-195,635,781),10344=>array(146,-195,635,781),10345=>array(146,-195,635,781),10346=>array(146,-195,635,781),10347=>array(146,-195,635,781),10348=>array(146,-195,635,781),10349=>array(146,-195,635,781),10350=>array(146,-195,635,781),10351=>array(146,-195,635,781),10352=>array(146,-195,635,521),10353=>array(146,-195,635,781),10354=>array(146,-195,635,521),10355=>array(146,-195,635,781),10356=>array(146,-195,635,521),10357=>array(146,-195,635,781),10358=>array(146,-195,635,521),10359=>array(146,-195,635,781),10360=>array(146,-195,635,781),10361=>array(146,-195,635,781),10362=>array(146,-195,635,781),10363=>array(146,-195,635,781),10364=>array(146,-195,635,781),10365=>array(146,-195,635,781),10366=>array(146,-195,635,781),10367=>array(146,-195,635,781),10368=>array(439,-195,635,0),10369=>array(146,-195,635,781),10370=>array(146,-195,635,521),10371=>array(146,-195,635,781),10372=>array(146,-195,635,261),10373=>array(146,-195,635,781),10374=>array(146,-195,635,521),10375=>array(146,-195,635,781),10376=>array(439,-195,635,781),10377=>array(146,-195,635,781),10378=>array(146,-195,635,781),10379=>array(146,-195,635,781),10380=>array(146,-195,635,781),10381=>array(146,-195,635,781),10382=>array(146,-195,635,781),10383=>array(146,-195,635,781),10384=>array(439,-195,635,521),10385=>array(146,-195,635,781),10386=>array(146,-195,635,521),10387=>array(146,-195,635,781),10388=>array(146,-195,635,521),10389=>array(146,-195,635,781),10390=>array(146,-195,635,521),10391=>array(146,-195,635,781),10392=>array(439,-195,635,781),10393=>array(146,-195,635,781),10394=>array(146,-195,635,781),10395=>array(146,-195,635,781),10396=>array(146,-195,635,781),10397=>array(146,-195,635,781),10398=>array(146,-195,635,781),10399=>array(146,-195,635,781),10400=>array(439,-195,635,261),10401=>array(146,-195,635,781),10402=>array(146,-195,635,521),10403=>array(146,-195,635,781),10404=>array(146,-195,635,261),10405=>array(146,-195,635,781),10406=>array(146,-195,635,521),10407=>array(146,-195,635,781),10408=>array(439,-195,635,781),10409=>array(146,-195,635,781),10410=>array(146,-195,635,781),10411=>array(146,-195,635,781),10412=>array(146,-195,635,781),10413=>array(146,-195,635,781),10414=>array(146,-195,635,781),10415=>array(146,-195,635,781),10416=>array(439,-195,635,521),10417=>array(146,-195,635,781),10418=>array(146,-195,635,521),10419=>array(146,-195,635,781),10420=>array(146,-195,635,521),10421=>array(146,-195,635,781),10422=>array(146,-195,635,521),10423=>array(146,-195,635,781),10424=>array(439,-195,635,781),10425=>array(146,-195,635,781),10426=>array(146,-195,635,781),10427=>array(146,-195,635,781),10428=>array(146,-195,635,781),10429=>array(146,-195,635,781),10430=>array(146,-195,635,781),10431=>array(146,-195,635,781),10432=>array(146,-195,635,0),10433=>array(146,-195,635,781),10434=>array(146,-195,635,521),10435=>array(146,-195,635,781),10436=>array(146,-195,635,261),10437=>array(146,-195,635,781),10438=>array(146,-195,635,521),10439=>array(146,-195,635,781),10440=>array(146,-195,635,781),10441=>array(146,-195,635,781),10442=>array(146,-195,635,781),10443=>array(146,-195,635,781),10444=>array(146,-195,635,781),10445=>array(146,-195,635,781),10446=>array(146,-195,635,781),10447=>array(146,-195,635,781),10448=>array(146,-195,635,521),10449=>array(146,-195,635,781),10450=>array(146,-195,635,521),10451=>array(146,-195,635,781),10452=>array(146,-195,635,521),10453=>array(146,-195,635,781),10454=>array(146,-195,635,521),10455=>array(146,-195,635,781),10456=>array(146,-195,635,781),10457=>array(146,-195,635,781),10458=>array(146,-195,635,781),10459=>array(146,-195,635,781),10460=>array(146,-195,635,781),10461=>array(146,-195,635,781),10462=>array(146,-195,635,781),10463=>array(146,-195,635,781),10464=>array(146,-195,635,261),10465=>array(146,-195,635,781),10466=>array(146,-195,635,521),10467=>array(146,-195,635,781),10468=>array(146,-195,635,261),10469=>array(146,-195,635,781),10470=>array(146,-195,635,521),10471=>array(146,-195,635,781),10472=>array(146,-195,635,781),10473=>array(146,-195,635,781),10474=>array(146,-195,635,781),10475=>array(146,-195,635,781),10476=>array(146,-195,635,781),10477=>array(146,-195,635,781),10478=>array(146,-195,635,781),10479=>array(146,-195,635,781),10480=>array(146,-195,635,521),10481=>array(146,-195,635,781),10482=>array(146,-195,635,521),10483=>array(146,-195,635,781),10484=>array(146,-195,635,521),10485=>array(146,-195,635,781),10486=>array(146,-195,635,521),10487=>array(146,-195,635,781),10488=>array(146,-195,635,781),10489=>array(146,-195,635,781),10490=>array(146,-195,635,781),10491=>array(146,-195,635,781),10492=>array(146,-195,635,781),10493=>array(146,-195,635,781),10494=>array(146,-195,635,781),10495=>array(146,-195,635,781),10502=>array(49,87,781,540),10503=>array(57,87,789,540),10506=>array(132,0,707,732),10507=>array(132,0,707,732),10560=>array(86,45,726,853),10561=>array(86,45,726,853),10627=>array(125,-163,628,760),10628=>array(125,-163,628,760),10702=>array(106,-258,732,800),10703=>array(106,-1,940,628),10704=>array(106,-1,940,628),10705=>array(106,-48,894,674),10706=>array(106,-48,894,674),10707=>array(106,-48,894,674),10708=>array(106,-48,894,675),10709=>array(106,-48,894,675),10731=>array(3,-233,491,807),10746=>array(106,0,732,627),10747=>array(106,0,732,627),10752=>array(28,-211,972,734),10753=>array(28,-211,972,734),10754=>array(28,-211,972,734),10764=>array(15,-227,1646,754),10765=>array(14,-227,548,754),10766=>array(14,-227,548,754),10767=>array(14,-227,548,754),10768=>array(14,-227,548,754),10769=>array(14,-227,576,754),10770=>array(14,-227,548,754),10771=>array(14,-227,548,754),10772=>array(14,-228,651,754),10773=>array(14,-227,548,754),10774=>array(14,-227,548,754),10775=>array(-30,-227,556,754),10776=>array(14,-227,548,754),10777=>array(14,-227,548,754),10778=>array(14,-227,548,754),10779=>array(15,-227,548,898),10780=>array(15,-372,548,754),10799=>array(125,20,713,607),10858=>array(106,212,732,660),10859=>array(106,-34,732,660),10877=>array(106,-150,732,632),10878=>array(106,-150,732,632),10879=>array(106,-150,732,632),10880=>array(106,-150,732,632),10881=>array(106,-150,732,688),10882=>array(106,-150,732,688),10883=>array(106,-150,732,827),10884=>array(106,-150,732,827),10885=>array(106,-217,732,630),10886=>array(106,-217,732,630),10887=>array(106,-124,732,582),10888=>array(106,-124,732,582),10889=>array(106,-281,732,630),10890=>array(106,-281,732,630),10891=>array(106,-303,732,814),10892=>array(106,-303,732,814),10893=>array(106,-183,732,653),10894=>array(106,-183,732,653),10895=>array(106,-245,732,765),10896=>array(106,-245,732,765),10897=>array(106,-278,732,782),10898=>array(106,-278,732,782),10899=>array(106,-263,732,771),10900=>array(106,-263,732,771),10901=>array(106,-50,732,733),10902=>array(106,-50,732,733),10903=>array(106,-50,732,733),10904=>array(106,-50,732,733),10905=>array(106,-45,732,678),10906=>array(106,-45,732,678),10907=>array(106,-81,732,724),10908=>array(106,-81,732,724),10909=>array(106,13,732,680),10910=>array(106,13,732,680),10911=>array(106,-239,732,746),10912=>array(106,-239,732,746),10926=>array(106,22,732,656),10927=>array(106,-83,732,684),10928=>array(106,-83,732,684),10929=>array(106,-246,732,684),10930=>array(106,-246,732,684),10931=>array(106,-205,732,672),10932=>array(106,-205,732,672),10933=>array(106,-304,732,672),10934=>array(106,-304,732,672),10935=>array(106,-252,732,713),10936=>array(106,-252,732,713),10937=>array(106,-316,732,713),10938=>array(106,-316,732,713),11001=>array(106,-195,732,609),11002=>array(106,-195,732,609),11008=>array(123,-23,744,598),11009=>array(94,-23,715,598),11010=>array(123,-23,744,598),11011=>array(94,-23,715,598),11012=>array(27,46,789,581),11013=>array(27,46,781,581),11014=>array(151,0,687,754),11015=>array(151,-25,687,729),11016=>array(123,-23,744,598),11017=>array(94,-23,715,598),11018=>array(123,-23,744,598),11019=>array(94,-23,715,598),11020=>array(27,46,789,581),11021=>array(151,-25,687,754),11022=>array(57,-25,800,372),11023=>array(57,255,800,652),11024=>array(38,-25,781,372),11025=>array(38,255,781,652),11026=>array(91,-124,854,643),11027=>array(91,-124,854,643),11028=>array(91,-124,854,643),11029=>array(91,-124,854,643),11030=>array(3,-124,766,643),11031=>array(3,-124,766,643),11032=>array(3,-124,766,643),11033=>array(3,-124,766,643),11034=>array(91,-124,854,643),11039=>array(18,-26,852,767),11040=>array(18,-26,852,767),11041=>array(73,-91,800,748),11042=>array(73,-91,800,748),11043=>array(17,-35,856,692),11044=>array(55,-250,1064,770),11091=>array(38,-47,832,788),11092=>array(38,-47,832,788),11360=>array(5,0,610,729),11361=>array(5,0,355,760),11362=>array(-17,0,610,729),11363=>array(6,0,692,729),11364=>array(92,-200,750,729),11365=>array(32,-46,639,594),11366=>array(13,-93,455,822),11367=>array(92,-157,932,729),11368=>array(84,-138,809,760),11369=>array(92,-157,805,729),11370=>array(84,-138,684,760),11371=>array(45,-157,768,729),11372=>array(45,-138,622,547),11373=>array(48,-14,769,741),11374=>array(92,-200,903,729),11375=>array(5,0,769,729),11376=>array(48,-14,769,741),11377=>array(15,0,778,560),11378=>array(30,0,1221,742),11379=>array(35,0,1056,560),11380=>array(38,0,637,586),11381=>array(92,0,606,729),11382=>array(84,0,481,547),11383=>array(64,0,725,552),11385=>array(84,-13,490,760),11386=>array(43,-14,644,560),11387=>array(78,0,467,547),11388=>array(-21,-121,166,425),11389=>array(3,326,484,734),11390=>array(72,-240,670,742),11391=>array(45,-240,680,729),11520=>array(45,-64,609,547),11521=>array(16,-232,625,546),11522=>array(41,-232,629,547),11523=>array(42,-10,585,807),11524=>array(40,-228,613,546),11525=>array(41,-228,988,546),11526=>array(20,-8,668,816),11527=>array(42,-9,974,547),11528=>array(39,0,589,547),11529=>array(41,-227,614,816),11530=>array(39,-9,985,546),11531=>array(42,-8,649,816),11532=>array(39,0,627,816),11533=>array(41,-8,988,546),11534=>array(41,-8,629,546),11535=>array(41,-228,846,816),11536=>array(42,-9,976,816),11537=>array(41,-9,630,816),11538=>array(46,-232,610,546),11539=>array(41,-228,984,661),11540=>array(45,-228,958,546),11541=>array(39,-228,978,816),11542=>array(44,0,628,546),11543=>array(41,-228,630,547),11544=>array(41,-232,627,546),11545=>array(44,-228,628,816),11546=>array(42,-232,610,547),11547=>array(43,-9,658,816),11548=>array(44,-228,989,547),11549=>array(44,-232,619,546),11550=>array(46,-232,639,546),11551=>array(44,-228,615,567),11552=>array(44,-9,1004,546),11553=>array(44,-228,619,816),11554=>array(42,-9,601,626),11555=>array(44,-228,622,816),11556=>array(42,-228,684,546),11557=>array(45,-8,959,816),11568=>array(55,-14,636,380),11569=>array(50,-14,892,742),11570=>array(50,-14,892,742),11571=>array(51,0,674,729),11572=>array(51,0,674,729),11573=>array(56,0,669,729),11574=>array(48,0,627,729),11575=>array(5,0,769,729),11576=>array(5,0,769,729),11577=>array(92,0,610,729),11578=>array(92,0,610,729),11579=>array(73,-14,729,742),11580=>array(73,0,916,729),11581=>array(92,0,754,729),11582=>array(92,0,549,729),11583=>array(92,0,754,729),11584=>array(50,-14,892,742),11585=>array(50,-84,892,815),11586=>array(92,0,281,729),11587=>array(21,0,720,729),11588=>array(92,0,745,729),11589=>array(-30,0,944,729),11590=>array(92,0,598,729),11591=>array(92,0,709,729),11592=>array(73,256,607,445),11593=>array(92,0,610,729),11594=>array(73,0,529,729),11595=>array(64,-14,892,742),11596=>array(82,0,695,729),11597=>array(92,0,745,729),11598=>array(92,0,610,729),11599=>array(92,0,280,729),11600=>array(82,0,695,729),11601=>array(92,0,281,729),11602=>array(42,-14,684,729),11603=>array(55,-14,636,742),11604=>array(50,-14,892,742),11605=>array(50,-95,892,742),11606=>array(92,0,745,729),11607=>array(92,0,281,729),11608=>array(92,0,744,729),11609=>array(50,-14,892,742),11610=>array(50,-14,892,823),11611=>array(50,-14,718,742),11612=>array(79,0,797,729),11613=>array(19,0,751,729),11614=>array(50,-14,718,742),11615=>array(92,0,610,729),11616=>array(5,0,769,729),11617=>array(92,0,745,729),11618=>array(92,0,599,729),11619=>array(50,0,800,729),11620=>array(92,0,654,729),11621=>array(50,0,800,729),11631=>array(64,490,651,729),11800=>array(69,-14,515,728),11807=>array(106,-34,732,415),11810=>array(86,403,389,760),11811=>array(68,403,371,760),11812=>array(86,-132,389,225),11813=>array(68,-132,371,225),11822=>array(69,0,515,742),19904=>array(83,-158,813,729),19905=>array(83,-158,813,729),19906=>array(83,-158,813,729),19907=>array(83,-158,813,729),19908=>array(83,-158,813,729),19909=>array(83,-158,813,729),19910=>array(83,-158,813,729),19911=>array(83,-158,813,729),19912=>array(83,-158,813,729),19913=>array(83,-158,814,729),19914=>array(83,-158,813,729),19915=>array(83,-158,813,729),19916=>array(83,-158,813,729),19917=>array(83,-158,813,729),19918=>array(83,-158,813,729),19919=>array(83,-158,813,729),19920=>array(83,-158,814,729),19921=>array(83,-158,813,729),19922=>array(83,-158,814,729),19923=>array(83,-158,813,729),19924=>array(83,-158,813,729),19925=>array(83,-158,813,729),19926=>array(83,-158,813,729),19927=>array(83,-158,813,729),19928=>array(83,-158,813,729),19929=>array(83,-158,813,729),19930=>array(83,-158,813,729),19931=>array(83,-158,814,729),19932=>array(83,-158,813,729),19933=>array(83,-158,813,729),19934=>array(83,-158,814,729),19935=>array(83,-158,813,729),19936=>array(83,-158,813,729),19937=>array(83,-158,813,729),19938=>array(83,-158,813,729),19939=>array(83,-158,813,729),19940=>array(83,-158,813,729),19941=>array(83,-158,814,729),19942=>array(83,-158,813,729),19943=>array(83,-158,813,729),19944=>array(83,-158,814,729),19945=>array(83,-158,813,729),19946=>array(83,-158,814,729),19947=>array(83,-158,813,729),19948=>array(83,-158,814,729),19949=>array(83,-158,813,729),19950=>array(83,-158,814,729),19951=>array(83,-158,813,729),19952=>array(83,-158,814,729),19953=>array(83,-158,813,729),19954=>array(83,-158,813,729),19955=>array(83,-158,813,729),19956=>array(83,-158,813,729),19957=>array(83,-158,814,729),19958=>array(83,-158,813,729),19959=>array(83,-158,813,729),19960=>array(83,-158,813,729),19961=>array(83,-158,814,729),19962=>array(83,-158,813,729),19963=>array(83,-158,814,729),19964=>array(83,-158,814,729),19965=>array(83,-158,813,729),19966=>array(83,-158,813,729),19967=>array(83,-158,813,729),42192=>array(92,0,692,729),42193=>array(92,0,692,729),42194=>array(41,0,641,729),42195=>array(92,0,778,729),42196=>array(5,0,677,729),42197=>array(5,0,677,729),42198=>array(50,-14,747,742),42199=>array(92,0,805,729),42200=>array(-30,0,683,729),42201=>array(0,-14,439,729),42202=>array(50,-14,670,742),42203=>array(50,-14,670,742),42204=>array(45,0,680,729),42205=>array(92,0,599,729),42206=>array(92,0,599,729),42207=>array(92,0,903,729),42208=>array(92,0,745,729),42209=>array(92,0,610,729),42210=>array(72,-14,647,742),42211=>array(92,0,750,729),42212=>array(20,0,678,729),42213=>array(5,0,769,729),42214=>array(5,0,769,729),42215=>array(92,0,745,729),42216=>array(25,-14,723,742),42217=>array(91,0,530,743),42218=>array(30,0,1072,729),42219=>array(19,0,751,729),42220=>array(-10,0,734,729),42221=>array(70,0,670,729),42222=>array(5,0,769,729),42223=>array(5,0,769,729),42224=>array(92,0,610,729),42225=>array(73,0,591,729),42226=>array(92,0,280,729),42227=>array(50,-14,800,742),42228=>array(92,-14,720,729),42229=>array(92,0,720,743),42230=>array(9,0,527,729),42231=>array(52,0,738,729),42232=>array(73,0,249,189),42233=>array(24,-142,249,189),42234=>array(73,0,601,189),42235=>array(73,-142,601,189),42236=>array(24,-142,249,547),42237=>array(73,0,249,547),42238=>array(73,0,515,405),42239=>array(73,134,515,492),42564=>array(26,-14,601,742),42565=>array(15,-14,511,560),42566=>array(92,0,428,729),42567=>array(83,0,356,547),42572=>array(57,-14,1348,654),42573=>array(47,-13,1126,547),42576=>array(49,0,1142,729),42577=>array(20,0,946,547),42580=>array(55,-14,1082,742),42581=>array(44,-14,888,560),42582=>array(92,0,1088,729),42583=>array(84,-14,880,560),42594=>array(60,-157,1058,729),42595=>array(56,-138,900,547),42596=>array(46,0,1069,729),42597=>array(55,0,888,547),42598=>array(92,0,1233,729),42599=>array(84,0,973,547),42600=>array(50,-14,800,742),42601=>array(43,-14,644,560),42602=>array(50,-14,987,742),42603=>array(43,-14,825,560),42604=>array(50,-14,1356,742),42605=>array(43,-14,1063,560),42606=>array(28,-208,933,743),42634=>array(5,-200,883,729),42635=>array(4,-216,709,547),42636=>array(5,0,677,729),42637=>array(4,0,575,547),42644=>array(81,0,716,729),42645=>array(84,0,634,760),42760=>array(96,0,404,693),42761=>array(96,0,404,693),42762=>array(96,0,404,693),42763=>array(96,0,404,693),42764=>array(96,0,404,693),42765=>array(96,0,404,693),42766=>array(96,0,404,693),42767=>array(96,0,404,693),42768=>array(96,0,404,693),42769=>array(96,0,404,693),42770=>array(96,0,404,693),42771=>array(96,0,404,693),42772=>array(96,0,404,693),42773=>array(96,0,404,693),42774=>array(96,0,404,693),42779=>array(58,326,342,736),42780=>array(58,324,342,734),42781=>array(88,326,199,734),42782=>array(88,326,199,734),42783=>array(88,0,199,408),42786=>array(67,0,409,729),42787=>array(67,0,355,547),42788=>array(56,224,479,742),42789=>array(56,42,479,560),42790=>array(92,-200,745,729),42791=>array(84,-216,634,760),42792=>array(5,-216,986,729),42793=>array(13,-215,810,702),42794=>array(67,-14,616,742),42795=>array(54,-202,493,560),42800=>array(92,0,473,547),42801=>array(52,-14,548,560),42802=>array(5,0,1344,729),42803=>array(43,-14,973,560),42804=>array(5,-14,1234,742),42805=>array(43,-14,1021,560),42806=>array(5,-14,1124,729),42807=>array(43,-14,970,560),42808=>array(5,0,1074,729),42809=>array(43,-14,907,560),42810=>array(5,0,1074,729),42811=>array(43,-14,907,560),42812=>array(5,-216,1030,729),42813=>array(43,-216,907,560),42814=>array(33,-14,653,742),42815=>array(43,-14,526,560),42816=>array(5,0,812,729),42817=>array(6,0,708,760),42822=>array(92,0,822,729),42823=>array(84,0,458,760),42824=>array(41,0,655,729),42825=>array(59,0,473,760),42826=>array(16,-14,902,742),42827=>array(5,-14,809,560),42830=>array(50,-14,1356,742),42831=>array(43,-14,1063,560),42832=>array(16,0,692,729),42833=>array(5,-208,671,560),42834=>array(34,0,907,729),42835=>array(34,-208,892,560),42838=>array(50,-188,800,742),42839=>array(45,-208,711,559),42852=>array(16,0,692,729),42853=>array(5,-208,671,760),42854=>array(16,0,692,729),42855=>array(5,-208,671,760),42880=>array(27,0,545,729),42881=>array(84,-208,259,547),42882=>array(84,-208,730,742),42883=>array(84,-208,634,560),42889=>array(112,0,288,547),42890=>array(83,141,303,405),42891=>array(140,245,316,729),42892=>array(95,458,211,729),42893=>array(81,0,716,729),42894=>array(84,-216,680,760),42896=>array(92,-157,868,729),42897=>array(84,-138,725,560),42912=>array(-11,-14,832,742),42913=>array(-11,-216,727,559),42914=>array(-11,0,805,729),42915=>array(-11,0,684,760),42916=>array(-11,0,848,729),42917=>array(-11,0,723,560),42918=>array(-11,0,781,729),42919=>array(-11,0,504,560),42920=>array(-11,-14,731,742),42921=>array(-11,-14,606,560),42922=>array(-68,0,794,729),43002=>array(84,0,972,547),43003=>array(84,0,591,729),43004=>array(41,0,641,729),43005=>array(92,0,903,729),43006=>array(92,0,280,928),43007=>array(31,0,1294,729),61184=>array(91,602,317,693),61185=>array(48,451,338,693),61186=>array(26,301,363,693),61187=>array(17,150,373,693),61188=>array(13,0,378,693),61189=>array(48,451,338,693),61190=>array(91,451,317,543),61191=>array(48,301,338,543),61192=>array(26,150,363,543),61193=>array(17,0,373,543),61194=>array(26,301,363,693),61195=>array(48,301,338,543),61196=>array(91,301,317,393),61197=>array(48,150,338,393),61198=>array(26,0,363,393),61199=>array(17,150,373,693),61200=>array(26,149,363,542),61201=>array(48,150,338,393),61202=>array(91,150,317,242),61203=>array(48,0,338,242),61204=>array(13,0,378,693),61205=>array(17,0,373,543),61206=>array(26,0,363,393),61207=>array(48,0,338,242),61208=>array(91,0,317,92),61209=>array(96,0,188,693),62464=>array(49,-14,563,819),62465=>array(49,-15,563,823),62466=>array(49,-14,604,828),62467=>array(49,0,853,828),62468=>array(49,-15,563,828),62469=>array(49,-15,563,828),62470=>array(29,-15,612,828),62471=>array(49,-14,846,828),62472=>array(49,0,541,828),62473=>array(49,-14,563,820),62474=>array(49,-6,1114,828),62475=>array(49,-14,563,828),62476=>array(63,-15,578,820),62477=>array(54,0,839,828),62478=>array(49,-15,563,819),62479=>array(49,-15,563,840),62480=>array(49,0,875,828),62481=>array(63,-14,578,819),62482=>array(44,-14,699,828),62483=>array(34,-14,570,828),62484=>array(49,-14,837,828),62485=>array(49,-14,563,819),62486=>array(49,0,858,828),62487=>array(49,-14,563,820),62488=>array(44,-14,558,828),62489=>array(64,0,579,828),62490=>array(50,-15,628,820),62491=>array(49,-14,563,819),62492=>array(63,-14,577,828),62493=>array(49,-14,581,820),62494=>array(63,-14,578,819),62495=>array(24,-14,546,828),62496=>array(49,-15,563,828),62497=>array(63,-15,577,828),62498=>array(49,-73,563,828),62499=>array(49,-15,563,830),62500=>array(49,-15,569,828),62501=>array(49,-14,627,828),62502=>array(49,-14,914,828),62504=>array(45,-228,960,816),62505=>array(54,-223,791,843),62506=>array(54,-14,510,761),62507=>array(54,-14,510,773),62508=>array(54,-14,510,866),62509=>array(54,-14,510,812),62510=>array(54,-14,510,877),62511=>array(54,-14,510,803),62512=>array(54,-232,501,761),62513=>array(54,-232,501,793),62514=>array(54,-232,501,891),62515=>array(54,-232,501,803),62516=>array(54,0,520,761),62517=>array(54,0,520,793),62518=>array(54,0,520,803),62519=>array(54,-0,770,761),62520=>array(54,-0,770,773),62521=>array(54,-0,770,884),62522=>array(54,-0,770,793),62523=>array(54,-0,770,803),62524=>array(54,-232,557,761),62525=>array(54,-232,557,773),62526=>array(54,-232,557,894),62527=>array(54,-232,557,793),62528=>array(54,-232,557,803),62529=>array(54,-232,557,844),63173=>array(43,-14,644,760),64256=>array(19,0,819,760),64257=>array(21,0,657,760),64258=>array(19,0,657,760),64259=>array(19,0,1031,760),64260=>array(19,0,1032,760),64261=>array(19,0,785,760),64262=>array(52,-14,997,742),64275=>array(74,-14,1300,760),64276=>array(78,-14,1301,760),64277=>array(78,-208,1300,760),64278=>array(78,-208,1300,760),64279=>array(78,-208,1629,760),64285=>array(66,32,228,547),64286=>array(182,635,510,780),64287=>array(66,32,500,547),64288=>array(38,0,590,547),64289=>array(85,0,855,547),64290=>array(43,0,731,547),64291=>array(91,0,778,547),64292=>array(43,0,730,547),64293=>array(43,0,730,739),64294=>array(91,0,778,547),64295=>array(43,0,730,547),64296=>array(47,-4,730,547),64297=>array(106,256,732,627),64298=>array(20,0,750,710),64299=>array(20,0,750,723),64300=>array(20,0,750,710),64301=>array(20,0,750,710),64302=>array(84,-171,644,547),64303=>array(84,-217,644,547),64304=>array(84,-171,644,547),64305=>array(43,0,567,547),64306=>array(43,-9,418,547),64307=>array(43,0,545,547),64308=>array(91,0,596,547),64309=>array(43,0,346,547),64310=>array(43,0,442,547),64312=>array(90,-13,624,553),64313=>array(43,164,369,547),64314=>array(43,-240,487,547),64315=>array(43,0,511,547),64316=>array(43,0,527,711),64318=>array(43,0,633,554),64320=>array(43,0,362,547),64321=>array(90,-13,624,547),64323=>array(91,-240,584,547),64324=>array(91,0,603,547),64326=>array(33,0,564,547),64327=>array(91,-240,660,546),64328=>array(43,0,511,547),64329=>array(20,0,750,547),64330=>array(10,-4,592,547),64331=>array(91,0,252,710),64332=>array(43,0,567,710),64333=>array(43,0,511,710),64334=>array(91,0,603,710),64335=>array(43,0,652,729),64338=>array(63,-244,921,327),64339=>array(63,-244,1068,327),64340=>array(-10,-244,292,293),64341=>array(-10,-244,418,293),64342=>array(63,-244,921,327),64343=>array(63,-244,1068,327),64344=>array(-10,-244,302,293),64345=>array(-10,-244,418,293),64346=>array(63,-244,921,327),64347=>array(63,-244,1068,327),64348=>array(-10,-244,302,293),64349=>array(-10,-244,418,293),64350=>array(63,-5,921,566),64351=>array(63,-5,1068,566),64352=>array(-10,0,292,640),64353=>array(-10,0,418,640),64354=>array(63,-5,921,566),64355=>array(63,-5,1068,566),64356=>array(-10,0,302,640),64357=>array(-10,0,418,640),64358=>array(63,-5,921,599),64359=>array(63,-5,1068,599),64360=>array(-10,0,333,672),64361=>array(-10,0,418,672),64362=>array(63,-24,1082,786),64363=>array(63,-29,1201,786),64364=>array(-10,0,575,786),64365=>array(-10,0,729,786),64366=>array(63,-24,1082,786),64367=>array(63,-29,1201,786),64368=>array(-10,0,575,786),64369=>array(-10,0,729,786),64370=>array(77,-244,720,425),64371=>array(77,-244,730,425),64372=>array(-10,-244,628,405),64373=>array(-10,-244,730,405),64374=>array(77,-244,720,425),64375=>array(77,-244,730,425),64376=>array(-10,-117,628,405),64377=>array(-10,-117,730,405),64378=>array(77,-244,720,425),64379=>array(77,-244,730,425),64380=>array(-10,-244,628,405),64381=>array(-10,-244,730,405),64382=>array(77,-244,720,425),64383=>array(77,-244,730,425),64384=>array(-10,-244,628,405),64385=>array(-10,-244,730,405),64386=>array(61,-146,442,415),64387=>array(61,-146,587,415),64388=>array(61,-15,442,586),64389=>array(61,-15,587,586),64390=>array(61,-15,442,708),64391=>array(61,-15,587,708),64392=>array(61,-15,442,746),64393=>array(61,-15,587,746),64394=>array(-42,-244,508,615),64395=>array(-42,-244,632,615),64396=>array(-42,-244,520,648),64397=>array(-42,-244,632,648),64398=>array(63,-39,1024,760),64399=>array(63,-39,1034,760),64400=>array(-10,0,582,760),64401=>array(-10,0,591,760),64402=>array(63,-39,1024,910),64403=>array(63,-39,1034,910),64404=>array(-10,0,582,910),64405=>array(-10,0,591,910),64406=>array(63,-293,1024,910),64407=>array(63,-293,1034,910),64408=>array(-10,-269,582,910),64409=>array(-10,-269,591,910),64410=>array(63,-39,1024,910),64411=>array(63,-39,1034,910),64412=>array(-10,0,582,910),64413=>array(-10,0,591,910),64414=>array(62,-165,779,366),64415=>array(62,-244,910,287),64416=>array(62,-165,779,636),64417=>array(62,-244,910,514),64418=>array(-10,0,333,672),64419=>array(-10,0,418,672),64426=>array(70,-33,877,506),64427=>array(70,-244,890,369),64428=>array(-10,-33,633,506),64429=>array(-10,-244,670,369),64467=>array(70,-27,814,854),64468=>array(70,-27,941,854),64469=>array(-10,0,582,928),64470=>array(-10,0,591,928),64473=>array(-42,-244,547,556),64474=>array(-42,-244,637,556),64488=>array(-10,0,292,293),64489=>array(-10,0,418,293),64508=>array(63,-107,863,462),64509=>array(63,-126,1021,291),64510=>array(-10,-166,302,293),64511=>array(-10,-166,418,293),65024=>array(-419,735,0,880),65025=>array(-419,735,0,880),65026=>array(-419,735,0,880),65027=>array(-419,735,0,880),65028=>array(-419,735,0,880),65029=>array(-419,735,0,880),65030=>array(-419,735,0,880),65031=>array(-419,735,0,880),65032=>array(-419,735,0,880),65033=>array(-419,735,0,880),65034=>array(-419,735,0,880),65035=>array(-419,735,0,880),65036=>array(-419,735,0,880),65037=>array(-419,735,0,880),65038=>array(-419,735,0,880),65039=>array(-419,735,0,880),65056=>array(-419,735,0,880),65057=>array(0,735,419,880),65058=>array(-362,756,0,894),65059=>array(0,756,362,894),65136=>array(28,591,313,825),65137=>array(-10,0,352,825),65138=>array(28,591,313,881),65139=>array(51,0,356,177),65140=>array(28,-239,313,-5),65142=>array(28,591,313,723),65143=>array(-10,0,352,723),65144=>array(28,590,313,881),65145=>array(-10,0,352,881),65146=>array(28,-137,313,-5),65147=>array(-10,-137,352,125),65148=>array(9,599,333,869),65149=>array(-10,0,352,869),65150=>array(36,610,304,878),65151=>array(-10,0,352,878),65152=>array(73,20,437,493),65153=>array(-20,0,362,955),65154=>array(-20,0,385,955),65155=>array(75,0,259,993),65156=>array(75,0,385,993),65157=>array(-42,-244,547,603),65158=>array(-42,-244,637,603),65159=>array(76,-245,259,760),65160=>array(76,-245,385,760),65161=>array(63,-107,863,603),65162=>array(63,-126,1021,480),65163=>array(-10,0,292,627),65164=>array(-10,0,418,627),65165=>array(84,0,259,760),65166=>array(84,0,385,760),65167=>array(63,-149,921,327),65168=>array(63,-149,1068,327),65169=>array(-10,-173,292,293),65170=>array(-10,-173,418,293),65171=>array(48,-30,540,513),65172=>array(65,0,616,513),65173=>array(63,-5,921,415),65174=>array(63,-5,1068,415),65175=>array(-10,0,302,488),65176=>array(-10,0,418,488),65177=>array(63,-5,921,537),65178=>array(63,-5,1068,537),65179=>array(-10,0,302,610),65180=>array(-10,0,418,610),65181=>array(77,-244,720,425),65182=>array(77,-244,730,425),65183=>array(-10,-173,628,405),65184=>array(-10,-173,730,405),65185=>array(77,-244,720,425),65186=>array(77,-244,730,425),65187=>array(-10,0,628,405),65188=>array(-10,0,730,405),65189=>array(77,-244,720,579),65190=>array(77,-244,730,579),65191=>array(-10,0,628,530),65192=>array(-10,0,730,530),65193=>array(61,-15,442,415),65194=>array(61,-15,587,415),65195=>array(61,-15,442,579),65196=>array(61,-15,587,579),65197=>array(-42,-244,508,269),65198=>array(-42,-244,632,269),65199=>array(-42,-244,508,457),65200=>array(-42,-244,632,457),65201=>array(63,-244,1297,366),65202=>array(63,-244,1423,366),65203=>array(-10,-14,901,366),65204=>array(-10,-14,1027,366),65205=>array(63,-244,1297,586),65206=>array(63,-244,1423,586),65207=>array(-10,-14,901,586),65208=>array(-10,-14,1027,586),65209=>array(63,-244,1265,362),65210=>array(63,-244,1374,362),65211=>array(-10,0,886,362),65212=>array(-10,0,995,362),65213=>array(63,-244,1265,457),65214=>array(63,-244,1374,457),65215=>array(-10,0,886,481),65216=>array(-10,0,995,481),65217=>array(70,0,971,760),65218=>array(70,0,1081,760),65219=>array(-10,0,875,760),65220=>array(-10,0,984,760),65221=>array(70,0,971,760),65222=>array(70,0,1081,760),65223=>array(-10,0,875,760),65224=>array(-10,0,984,760),65225=>array(87,-244,720,521),65226=>array(57,-244,693,382),65227=>array(-10,0,583,521),65228=>array(-10,0,574,382),65229=>array(87,-244,720,652),65230=>array(57,-244,693,530),65231=>array(-10,0,583,652),65232=>array(-10,0,574,530),65233=>array(63,-24,1082,627),65234=>array(63,-29,1201,627),65235=>array(-10,0,575,627),65236=>array(-10,0,729,627),65237=>array(52,-215,825,635),65238=>array(52,-244,911,476),65239=>array(-10,0,575,635),65240=>array(-10,0,729,635),65241=>array(70,-27,814,760),65242=>array(70,-27,941,760),65243=>array(-10,0,582,760),65244=>array(-10,0,591,760),65245=>array(70,-142,778,760),65246=>array(70,-142,902,760),65247=>array(-10,0,292,760),65248=>array(-10,0,418,760),65249=>array(68,-244,660,369),65250=>array(68,-244,794,311),65251=>array(-10,-23,546,311),65252=>array(-10,-23,680,311),65253=>array(62,-165,779,457),65254=>array(62,-244,910,383),65255=>array(-10,0,292,481),65256=>array(-10,0,418,481),65257=>array(48,-30,540,358),65258=>array(65,0,616,366),65259=>array(-10,-33,633,506),65260=>array(-10,-244,670,369),65261=>array(-42,-244,547,322),65262=>array(-42,-244,637,322),65263=>array(63,-107,863,462),65264=>array(63,-126,1021,291),65265=>array(63,-244,863,462),65266=>array(63,-244,1021,291),65267=>array(-10,-166,302,293),65268=>array(-10,-166,418,293),65269=>array(-62,-15,643,882),65270=>array(-62,-15,769,882),65271=>array(33,-15,643,944),65272=>array(33,-15,769,944),65273=>array(41,-245,643,760),65274=>array(41,-245,769,760),65275=>array(41,-15,643,760),65276=>array(41,-15,769,760),65279=>array(24,-139,1089,926),65529=>array(24,-139,1089,926),65530=>array(24,-139,1089,926),65531=>array(24,-139,1089,926),65532=>array(24,-139,1089,926),65533=>array(24,-139,1089,926),65535=>array(50,-177,550,705));
15
+ $cw=array(0=>600,32=>348,33=>456,34=>521,35=>838,36=>696,37=>1002,38=>872,39=>306,40=>457,41=>457,42=>523,43=>838,44=>380,45=>415,46=>380,47=>365,48=>696,49=>696,50=>696,51=>696,52=>696,53=>696,54=>696,55=>696,56=>696,57=>696,58=>400,59=>400,60=>838,61=>838,62=>838,63=>580,64=>1000,65=>774,66=>762,67=>734,68=>830,69=>683,70=>683,71=>821,72=>837,73=>372,74=>372,75=>775,76=>637,77=>995,78=>837,79=>850,80=>733,81=>850,82=>770,83=>720,84=>682,85=>812,86=>774,87=>1103,88=>771,89=>724,90=>725,91=>457,92=>365,93=>457,94=>838,95=>500,96=>500,97=>675,98=>716,99=>593,100=>716,101=>678,102=>435,103=>716,104=>712,105=>343,106=>343,107=>665,108=>343,109=>1042,110=>712,111=>687,112=>716,113=>716,114=>493,115=>595,116=>478,117=>712,118=>652,119=>924,120=>645,121=>652,122=>582,123=>712,124=>365,125=>712,126=>838,160=>348,161=>456,162=>696,163=>696,164=>636,165=>696,166=>365,167=>500,168=>500,169=>1000,170=>564,171=>646,172=>838,173=>415,174=>1000,175=>500,176=>500,177=>838,178=>438,179=>438,180=>500,181=>736,182=>636,183=>380,184=>500,185=>438,186=>564,187=>646,188=>1035,189=>1035,190=>1035,191=>580,192=>774,193=>774,194=>774,195=>774,196=>774,197=>774,198=>1085,199=>734,200=>683,201=>683,202=>683,203=>683,204=>372,205=>372,206=>372,207=>372,208=>838,209=>837,210=>850,211=>850,212=>850,213=>850,214=>850,215=>838,216=>850,217=>812,218=>812,219=>812,220=>812,221=>724,222=>738,223=>719,224=>675,225=>675,226=>675,227=>675,228=>675,229=>675,230=>1048,231=>593,232=>678,233=>678,234=>678,235=>678,236=>343,237=>343,238=>343,239=>343,240=>687,241=>712,242=>687,243=>687,244=>687,245=>687,246=>687,247=>838,248=>687,249=>712,250=>712,251=>712,252=>712,253=>652,254=>716,255=>652,256=>774,257=>675,258=>774,259=>675,260=>774,261=>675,262=>734,263=>593,264=>734,265=>593,266=>734,267=>593,268=>734,269=>593,270=>830,271=>716,272=>838,273=>716,274=>683,275=>678,276=>683,277=>678,278=>683,279=>678,280=>683,281=>678,282=>683,283=>678,284=>821,285=>716,286=>821,287=>716,288=>821,289=>716,290=>821,291=>716,292=>837,293=>712,294=>974,295=>790,296=>372,297=>343,298=>372,299=>343,300=>372,301=>343,302=>372,303=>343,304=>372,305=>343,306=>744,307=>686,308=>372,309=>343,310=>775,311=>665,312=>665,313=>637,314=>343,315=>637,316=>343,317=>637,318=>479,319=>637,320=>557,321=>642,322=>371,323=>837,324=>712,325=>837,326=>712,327=>837,328=>712,329=>983,330=>837,331=>712,332=>850,333=>687,334=>850,335=>687,336=>850,337=>687,338=>1167,339=>1094,340=>770,341=>493,342=>770,343=>493,344=>770,345=>493,346=>720,347=>595,348=>720,349=>595,350=>720,351=>595,352=>720,353=>595,354=>682,355=>478,356=>682,357=>478,358=>682,359=>478,360=>812,361=>712,362=>812,363=>712,364=>812,365=>712,366=>812,367=>712,368=>812,369=>712,370=>812,371=>712,372=>1103,373=>924,374=>724,375=>652,376=>724,377=>725,378=>582,379=>725,380=>582,381=>725,382=>582,383=>435,384=>716,385=>811,386=>762,387=>716,388=>762,389=>716,390=>734,391=>734,392=>593,393=>838,394=>879,395=>757,396=>716,397=>688,398=>683,399=>849,400=>696,401=>683,402=>435,403=>821,404=>793,405=>1045,406=>436,407=>389,408=>775,409=>665,410=>360,411=>592,412=>1042,413=>837,414=>712,415=>850,416=>874,417=>687,418=>1083,419=>912,420=>782,421=>716,422=>770,423=>720,424=>595,425=>683,426=>552,427=>478,428=>707,429=>478,430=>682,431=>835,432=>712,433=>850,434=>813,435=>797,436=>778,437=>725,438=>582,439=>772,440=>772,441=>641,442=>582,443=>696,444=>772,445=>641,446=>573,447=>716,448=>372,449=>659,450=>544,451=>372,452=>1555,453=>1412,454=>1298,455=>1009,456=>980,457=>686,458=>1209,459=>1180,460=>1055,461=>774,462=>675,463=>372,464=>343,465=>850,466=>687,467=>812,468=>712,469=>812,470=>712,471=>812,472=>712,473=>812,474=>712,475=>812,476=>712,477=>678,478=>774,479=>675,480=>774,481=>675,482=>1085,483=>1048,484=>821,485=>716,486=>821,487=>716,488=>775,489=>665,490=>850,491=>687,492=>850,493=>687,494=>772,495=>582,496=>343,497=>1555,498=>1412,499=>1298,500=>821,501=>716,502=>1289,503=>787,504=>837,505=>712,506=>774,507=>675,508=>1085,509=>1048,510=>850,511=>687,512=>774,513=>675,514=>774,515=>675,516=>683,517=>678,518=>683,519=>678,520=>372,521=>343,522=>372,523=>343,524=>850,525=>687,526=>850,527=>687,528=>770,529=>493,530=>770,531=>493,532=>812,533=>712,534=>812,535=>712,536=>720,537=>595,538=>682,539=>478,540=>690,541=>607,542=>837,543=>712,544=>837,545=>865,546=>809,547=>659,548=>725,549=>582,550=>774,551=>675,552=>683,553=>678,554=>850,555=>687,556=>850,557=>687,558=>850,559=>687,560=>850,561=>687,562=>724,563=>652,564=>492,565=>867,566=>512,567=>343,568=>1088,569=>1088,570=>774,571=>734,572=>593,573=>637,574=>682,575=>595,576=>582,577=>782,578=>614,579=>762,580=>812,581=>774,582=>683,583=>678,584=>372,585=>343,586=>860,587=>791,588=>770,589=>493,590=>724,591=>652,592=>675,593=>716,594=>716,595=>716,596=>593,597=>593,598=>717,599=>792,600=>678,601=>678,602=>876,603=>557,604=>545,605=>815,606=>731,607=>343,608=>792,609=>716,610=>627,611=>644,612=>635,613=>712,614=>712,615=>712,616=>545,617=>440,618=>545,619=>559,620=>693,621=>343,622=>841,623=>1042,624=>1042,625=>1042,626=>712,627=>793,628=>707,629=>687,630=>909,631=>681,632=>796,633=>538,634=>538,635=>650,636=>493,637=>493,638=>596,639=>596,640=>642,641=>642,642=>595,643=>415,644=>435,645=>605,646=>552,647=>478,648=>478,649=>920,650=>772,651=>670,652=>652,653=>924,654=>652,655=>724,656=>694,657=>684,658=>641,659=>641,660=>573,661=>573,662=>573,663=>573,664=>850,665=>633,666=>731,667=>685,668=>691,669=>343,670=>732,671=>539,672=>792,673=>573,674=>573,675=>1156,676=>1214,677=>1155,678=>975,679=>769,680=>929,681=>1026,682=>862,683=>780,684=>591,685=>415,686=>677,687=>789,688=>456,689=>456,690=>219,691=>315,692=>315,693=>315,694=>411,695=>591,696=>417,697=>302,698=>521,699=>380,700=>380,701=>380,702=>366,703=>366,704=>326,705=>326,706=>500,707=>500,708=>500,709=>500,710=>500,711=>500,712=>306,713=>500,714=>500,715=>500,716=>306,717=>500,718=>500,719=>500,720=>337,721=>337,722=>366,723=>366,724=>500,725=>500,726=>416,727=>328,728=>500,729=>500,730=>500,731=>500,732=>500,733=>500,734=>351,735=>500,736=>412,737=>219,738=>381,739=>413,740=>326,741=>500,742=>500,743=>500,744=>500,745=>500,748=>500,749=>500,750=>657,755=>500,759=>500,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,827=>0,828=>0,829=>0,830=>0,831=>0,832=>0,833=>0,834=>0,835=>0,836=>0,837=>0,838=>0,839=>0,840=>0,841=>0,842=>0,843=>0,844=>0,845=>0,846=>0,847=>0,849=>0,850=>0,851=>0,855=>0,856=>0,858=>0,860=>0,861=>0,862=>0,863=>0,864=>0,865=>0,866=>0,880=>698,881=>565,882=>1022,883=>836,884=>302,885=>302,886=>837,887=>701,890=>500,891=>593,892=>550,893=>549,894=>400,900=>441,901=>500,902=>797,903=>380,904=>846,905=>1009,906=>563,908=>891,910=>980,911=>894,912=>390,913=>774,914=>762,915=>637,916=>774,917=>683,918=>725,919=>837,920=>850,921=>372,922=>775,923=>774,924=>995,925=>837,926=>632,927=>850,928=>837,929=>733,931=>683,932=>682,933=>724,934=>850,935=>771,936=>850,937=>850,938=>372,939=>724,940=>687,941=>557,942=>712,943=>390,944=>675,945=>687,946=>716,947=>681,948=>687,949=>557,950=>591,951=>712,952=>687,953=>390,954=>710,955=>633,956=>736,957=>681,958=>591,959=>687,960=>791,961=>716,962=>593,963=>779,964=>638,965=>675,966=>782,967=>645,968=>794,969=>869,970=>390,971=>675,972=>687,973=>675,974=>869,975=>775,976=>651,977=>661,978=>746,979=>981,980=>746,981=>796,982=>869,983=>744,984=>850,985=>687,986=>734,987=>593,988=>683,989=>494,990=>702,991=>660,992=>919,993=>627,994=>1093,995=>837,996=>832,997=>716,998=>928,999=>744,1000=>733,1001=>650,1002=>789,1003=>671,1004=>752,1005=>716,1006=>682,1007=>590,1008=>744,1009=>716,1010=>593,1011=>343,1012=>850,1013=>645,1014=>644,1015=>738,1016=>716,1017=>734,1018=>995,1019=>732,1020=>716,1021=>698,1022=>734,1023=>698,1024=>683,1025=>683,1026=>878,1027=>637,1028=>734,1029=>720,1030=>372,1031=>372,1032=>372,1033=>1154,1034=>1130,1035=>878,1036=>817,1037=>837,1038=>771,1039=>837,1040=>774,1041=>762,1042=>762,1043=>637,1044=>891,1045=>683,1046=>1224,1047=>710,1048=>837,1049=>837,1050=>817,1051=>831,1052=>995,1053=>837,1054=>850,1055=>837,1056=>733,1057=>734,1058=>682,1059=>771,1060=>992,1061=>771,1062=>928,1063=>808,1064=>1235,1065=>1326,1066=>939,1067=>1036,1068=>762,1069=>734,1070=>1174,1071=>770,1072=>675,1073=>698,1074=>633,1075=>522,1076=>808,1077=>678,1078=>995,1079=>581,1080=>701,1081=>701,1082=>679,1083=>732,1084=>817,1085=>691,1086=>687,1087=>691,1088=>716,1089=>593,1090=>580,1091=>652,1092=>992,1093=>645,1094=>741,1095=>687,1096=>1062,1097=>1105,1098=>751,1099=>904,1100=>632,1101=>593,1102=>972,1103=>642,1104=>678,1105=>678,1106=>714,1107=>522,1108=>593,1109=>595,1110=>343,1111=>343,1112=>343,1113=>991,1114=>956,1115=>734,1116=>679,1117=>701,1118=>652,1119=>691,1120=>1093,1121=>869,1122=>840,1123=>736,1124=>1012,1125=>839,1126=>992,1127=>832,1128=>1358,1129=>1121,1130=>850,1131=>687,1132=>1236,1133=>1007,1134=>696,1135=>557,1136=>1075,1137=>1061,1138=>850,1139=>687,1140=>850,1141=>695,1142=>850,1143=>695,1144=>1148,1145=>1043,1146=>1074,1147=>863,1148=>1405,1149=>1173,1150=>1093,1151=>869,1152=>734,1153=>593,1154=>652,1155=>0,1156=>0,1157=>0,1158=>0,1159=>0,1160=>418,1161=>418,1162=>957,1163=>807,1164=>762,1165=>611,1166=>733,1167=>716,1168=>637,1169=>522,1170=>666,1171=>543,1172=>808,1173=>669,1174=>1224,1175=>995,1176=>710,1177=>581,1178=>775,1179=>679,1180=>817,1181=>679,1182=>817,1183=>679,1184=>1015,1185=>826,1186=>956,1187=>808,1188=>1103,1189=>874,1190=>1273,1191=>1017,1192=>952,1193=>858,1194=>734,1195=>593,1196=>682,1197=>580,1198=>724,1199=>652,1200=>724,1201=>652,1202=>771,1203=>645,1204=>1112,1205=>1000,1206=>808,1207=>687,1208=>808,1209=>687,1210=>808,1211=>712,1212=>1026,1213=>810,1214=>1026,1215=>810,1216=>372,1217=>1224,1218=>995,1219=>775,1220=>630,1221=>951,1222=>805,1223=>837,1224=>691,1225=>957,1226=>807,1227=>808,1228=>687,1229=>1115,1230=>933,1231=>343,1232=>774,1233=>675,1234=>774,1235=>675,1236=>1085,1237=>1048,1238=>683,1239=>678,1240=>849,1241=>678,1242=>849,1243=>678,1244=>1224,1245=>995,1246=>710,1247=>581,1248=>772,1249=>641,1250=>837,1251=>701,1252=>837,1253=>701,1254=>850,1255=>687,1256=>850,1257=>687,1258=>850,1259=>687,1260=>734,1261=>593,1262=>771,1263=>652,1264=>771,1265=>652,1266=>771,1267=>652,1268=>808,1269=>687,1270=>637,1271=>522,1272=>1036,1273=>904,1274=>666,1275=>543,1276=>771,1277=>645,1278=>771,1279=>645,1280=>762,1281=>608,1282=>1159,1283=>893,1284=>1119,1285=>920,1286=>828,1287=>693,1288=>1242,1289=>1017,1290=>1289,1291=>1013,1292=>839,1293=>638,1294=>938,1295=>803,1296=>696,1297=>557,1298=>831,1299=>732,1300=>1286,1301=>1068,1302=>1065,1303=>979,1304=>1082,1305=>1013,1306=>850,1307=>716,1308=>1103,1309=>924,1310=>817,1311=>679,1312=>1267,1313=>1059,1314=>1273,1315=>1017,1316=>957,1317=>807,1329=>813,1330=>729,1331=>728,1332=>731,1333=>729,1334=>733,1335=>652,1336=>720,1337=>903,1338=>728,1339=>666,1340=>558,1341=>961,1342=>788,1343=>713,1344=>651,1345=>730,1346=>715,1347=>704,1348=>780,1349=>689,1350=>715,1351=>708,1352=>731,1353=>677,1354=>867,1355=>711,1356=>780,1357=>731,1358=>715,1359=>693,1360=>666,1361=>698,1362=>576,1363=>833,1364=>698,1365=>763,1366=>855,1369=>330,1370=>342,1371=>308,1372=>374,1373=>313,1374=>461,1375=>468,1377=>938,1378=>642,1379=>704,1380=>708,1381=>642,1382=>644,1383=>565,1384=>642,1385=>756,1386=>704,1387=>643,1388=>310,1389=>984,1390=>638,1391=>643,1392=>643,1393=>603,1394=>643,1395=>642,1396=>643,1397=>309,1398=>643,1399=>486,1400=>643,1401=>366,1402=>938,1403=>573,1404=>666,1405=>643,1406=>643,1407=>934,1408=>643,1409=>643,1410=>479,1411=>934,1412=>648,1413=>620,1414=>813,1415=>812,1417=>360,1418=>374,1456=>0,1457=>0,1458=>0,1459=>0,1460=>0,1461=>0,1462=>0,1463=>0,1464=>0,1465=>0,1466=>0,1467=>0,1468=>0,1469=>0,1470=>415,1471=>0,1472=>372,1473=>0,1474=>0,1475=>372,1478=>497,1479=>0,1488=>728,1489=>610,1490=>447,1491=>588,1492=>687,1493=>343,1494=>400,1495=>687,1496=>679,1497=>294,1498=>578,1499=>566,1500=>605,1501=>696,1502=>724,1503=>343,1504=>453,1505=>680,1506=>666,1507=>675,1508=>658,1509=>661,1510=>653,1511=>736,1512=>602,1513=>758,1514=>683,1520=>664,1521=>567,1522=>519,1523=>444,1524=>710,1542=>667,1543=>667,1545=>884,1546=>1157,1548=>380,1557=>0,1563=>400,1567=>580,1569=>511,1570=>343,1571=>343,1572=>622,1573=>343,1574=>917,1575=>343,1576=>1005,1577=>590,1578=>1005,1579=>1005,1580=>721,1581=>721,1582=>721,1583=>513,1584=>513,1585=>576,1586=>576,1587=>1380,1588=>1380,1589=>1345,1590=>1345,1591=>1039,1592=>1039,1593=>683,1594=>683,1600=>342,1601=>1162,1602=>894,1603=>917,1604=>868,1605=>733,1606=>854,1607=>590,1608=>622,1609=>917,1610=>917,1611=>0,1612=>0,1613=>0,1614=>0,1615=>0,1616=>0,1617=>0,1618=>0,1619=>0,1620=>0,1621=>0,1623=>0,1626=>500,1632=>610,1633=>610,1634=>610,1635=>610,1636=>610,1637=>610,1638=>610,1639=>610,1640=>610,1641=>610,1642=>610,1643=>374,1644=>380,1645=>545,1646=>1005,1647=>894,1648=>0,1652=>292,1657=>1005,1658=>1005,1659=>1005,1660=>1005,1661=>1005,1662=>1005,1663=>1005,1664=>1005,1665=>721,1666=>721,1667=>721,1668=>721,1669=>721,1670=>721,1671=>721,1672=>445,1673=>445,1674=>445,1675=>445,1676=>445,1677=>445,1678=>445,1679=>445,1680=>445,1681=>576,1682=>576,1683=>576,1684=>576,1685=>681,1686=>576,1687=>576,1688=>576,1689=>576,1690=>1380,1691=>1380,1692=>1380,1693=>1345,1694=>1345,1695=>1039,1696=>683,1697=>1162,1698=>1162,1699=>1162,1700=>1162,1701=>1162,1702=>1162,1703=>894,1704=>894,1705=>1024,1706=>1271,1707=>1024,1708=>917,1709=>917,1710=>917,1711=>1024,1712=>1024,1713=>1024,1714=>1024,1715=>1024,1716=>1024,1717=>868,1718=>868,1719=>868,1720=>868,1721=>854,1722=>854,1723=>854,1724=>854,1725=>854,1726=>938,1727=>721,1734=>622,1740=>917,1742=>917,1749=>590,1776=>610,1777=>610,1778=>610,1779=>610,1780=>610,1781=>610,1782=>610,1783=>610,1784=>610,1785=>610,1984=>696,1985=>696,1986=>696,1987=>696,1988=>696,1989=>696,1990=>696,1991=>696,1992=>696,1993=>696,1994=>343,1995=>547,1996=>543,1997=>652,1998=>691,1999=>691,2000=>594,2001=>691,2002=>904,2003=>551,2004=>551,2005=>627,2006=>688,2007=>444,2008=>1022,2009=>506,2010=>826,2011=>691,2012=>652,2013=>912,2014=>627,2015=>707,2016=>506,2017=>652,2018=>574,2019=>627,2020=>627,2021=>627,2022=>574,2023=>574,2027=>0,2028=>0,2029=>0,2030=>0,2031=>0,2032=>0,2033=>0,2034=>0,2035=>0,2036=>380,2037=>380,2040=>691,2041=>691,2042=>415,3647=>696,3713=>790,3714=>748,3716=>749,3719=>569,3720=>742,3722=>744,3725=>761,3732=>706,3733=>704,3734=>747,3735=>819,3737=>730,3738=>727,3739=>727,3740=>922,3741=>827,3742=>866,3743=>866,3745=>836,3746=>761,3747=>770,3749=>769,3751=>713,3754=>827,3755=>1031,3757=>724,3758=>784,3759=>934,3760=>688,3761=>0,3762=>610,3763=>610,3764=>0,3765=>0,3766=>0,3767=>0,3768=>0,3769=>0,3771=>0,3772=>0,3773=>670,3776=>516,3777=>860,3778=>516,3779=>650,3780=>632,3782=>759,3784=>0,3785=>0,3786=>0,3787=>0,3788=>0,3789=>0,3792=>771,3793=>771,3794=>693,3795=>836,3796=>729,3797=>729,3798=>849,3799=>790,3800=>759,3801=>910,3804=>1363,3805=>1363,4256=>874,4257=>733,4258=>679,4259=>834,4260=>615,4261=>768,4262=>753,4263=>914,4264=>453,4265=>620,4266=>843,4267=>882,4268=>625,4269=>854,4270=>781,4271=>629,4272=>912,4273=>621,4274=>620,4275=>854,4276=>866,4277=>724,4278=>630,4279=>621,4280=>625,4281=>620,4282=>818,4283=>874,4284=>615,4285=>623,4286=>625,4287=>725,4288=>844,4289=>596,4290=>688,4291=>596,4292=>594,4293=>738,4304=>554,4305=>563,4306=>622,4307=>834,4308=>555,4309=>564,4310=>551,4311=>828,4312=>563,4313=>556,4314=>1074,4315=>568,4316=>568,4317=>814,4318=>554,4319=>563,4320=>823,4321=>568,4322=>700,4323=>591,4324=>852,4325=>560,4326=>814,4327=>563,4328=>553,4329=>568,4330=>622,4331=>568,4332=>553,4333=>566,4334=>568,4335=>540,4336=>554,4337=>559,4338=>553,4339=>554,4340=>553,4341=>587,4342=>853,4343=>604,4344=>563,4345=>622,4346=>554,4347=>448,4348=>324,5121=>774,5122=>774,5123=>774,5124=>774,5125=>905,5126=>905,5127=>905,5129=>905,5130=>905,5131=>905,5132=>1018,5133=>1009,5134=>1018,5135=>1009,5136=>1018,5137=>1009,5138=>1149,5139=>1140,5140=>1149,5141=>1140,5142=>905,5143=>1149,5144=>1142,5145=>1149,5146=>1142,5147=>905,5149=>310,5150=>529,5151=>425,5152=>425,5153=>395,5154=>395,5155=>395,5156=>395,5157=>564,5158=>470,5159=>310,5160=>395,5161=>395,5162=>395,5163=>1213,5164=>986,5165=>1216,5166=>1297,5167=>774,5168=>774,5169=>774,5170=>774,5171=>886,5172=>886,5173=>886,5175=>886,5176=>886,5177=>886,5178=>1018,5179=>1009,5180=>1018,5181=>1009,5182=>1018,5183=>1009,5184=>1149,5185=>1140,5186=>1149,5187=>1140,5188=>1149,5189=>1142,5190=>1149,5191=>1142,5192=>886,5193=>576,5194=>229,5196=>812,5197=>812,5198=>812,5199=>812,5200=>815,5201=>815,5202=>815,5204=>815,5205=>815,5206=>815,5207=>1056,5208=>1048,5209=>1056,5210=>1048,5211=>1056,5212=>1048,5213=>1060,5214=>1054,5215=>1060,5216=>1054,5217=>1060,5218=>1052,5219=>1060,5220=>1052,5221=>1060,5222=>483,5223=>1005,5224=>1005,5225=>1023,5226=>1017,5227=>743,5228=>743,5229=>743,5230=>743,5231=>743,5232=>743,5233=>743,5234=>743,5235=>743,5236=>1029,5237=>975,5238=>980,5239=>975,5240=>980,5241=>975,5242=>1029,5243=>975,5244=>1029,5245=>975,5246=>980,5247=>975,5248=>980,5249=>975,5250=>980,5251=>501,5252=>501,5253=>938,5254=>938,5255=>938,5256=>938,5257=>743,5258=>743,5259=>743,5260=>743,5261=>743,5262=>743,5263=>743,5264=>743,5265=>743,5266=>1029,5267=>975,5268=>1029,5269=>975,5270=>1029,5271=>975,5272=>1029,5273=>975,5274=>1029,5275=>975,5276=>1029,5277=>975,5278=>1029,5279=>975,5280=>1029,5281=>501,5282=>501,5283=>626,5284=>626,5285=>626,5286=>626,5287=>626,5288=>626,5289=>626,5290=>626,5291=>626,5292=>881,5293=>854,5294=>863,5295=>874,5296=>863,5297=>874,5298=>881,5299=>874,5300=>881,5301=>874,5302=>863,5303=>874,5304=>863,5305=>874,5306=>863,5307=>436,5308=>548,5309=>436,5312=>988,5313=>988,5314=>988,5315=>988,5316=>931,5317=>931,5318=>931,5319=>931,5320=>931,5321=>1238,5322=>1247,5323=>1200,5324=>1228,5325=>1200,5326=>1228,5327=>931,5328=>660,5329=>497,5330=>660,5331=>988,5332=>988,5333=>988,5334=>988,5335=>931,5336=>931,5337=>931,5338=>931,5339=>931,5340=>1231,5341=>1247,5342=>1283,5343=>1228,5344=>1283,5345=>1228,5346=>1228,5347=>1214,5348=>1228,5349=>1214,5350=>1283,5351=>1228,5352=>1283,5353=>1228,5354=>660,5356=>886,5357=>730,5358=>730,5359=>730,5360=>730,5361=>730,5362=>730,5363=>730,5364=>730,5365=>730,5366=>998,5367=>958,5368=>967,5369=>989,5370=>967,5371=>989,5372=>998,5373=>958,5374=>998,5375=>958,5376=>967,5377=>989,5378=>967,5379=>989,5380=>967,5381=>493,5382=>460,5383=>493,5392=>923,5393=>923,5394=>923,5395=>1136,5396=>1136,5397=>1136,5398=>1136,5399=>1209,5400=>1202,5401=>1209,5402=>1202,5403=>1209,5404=>1202,5405=>1431,5406=>1420,5407=>1431,5408=>1420,5409=>1431,5410=>1420,5411=>1431,5412=>1420,5413=>746,5414=>776,5415=>776,5416=>776,5417=>776,5418=>776,5419=>776,5420=>776,5421=>776,5422=>776,5423=>1003,5424=>1003,5425=>1013,5426=>996,5427=>1013,5428=>996,5429=>1003,5430=>1003,5431=>1003,5432=>1003,5433=>1013,5434=>996,5435=>1013,5436=>996,5437=>1013,5438=>495,5440=>395,5441=>510,5442=>1033,5443=>1033,5444=>976,5445=>976,5446=>976,5447=>976,5448=>733,5449=>733,5450=>733,5451=>733,5452=>733,5453=>733,5454=>1003,5455=>959,5456=>495,5458=>886,5459=>774,5460=>774,5461=>774,5462=>774,5463=>928,5464=>928,5465=>928,5466=>928,5467=>1172,5468=>1142,5469=>602,5470=>812,5471=>812,5472=>812,5473=>812,5474=>812,5475=>812,5476=>815,5477=>815,5478=>815,5479=>815,5480=>1060,5481=>1052,5482=>548,5492=>977,5493=>977,5494=>977,5495=>977,5496=>977,5497=>977,5498=>977,5499=>618,5500=>837,5501=>510,5502=>1238,5503=>1238,5504=>1238,5505=>1238,5506=>1238,5507=>1238,5508=>1238,5509=>989,5514=>977,5515=>977,5516=>977,5517=>977,5518=>1591,5519=>1591,5520=>1591,5521=>1295,5522=>1295,5523=>1591,5524=>1591,5525=>848,5526=>1273,5536=>988,5537=>988,5538=>931,5539=>931,5540=>931,5541=>931,5542=>660,5543=>776,5544=>776,5545=>776,5546=>776,5547=>776,5548=>776,5549=>776,5550=>495,5551=>743,5598=>830,5601=>830,5702=>496,5703=>496,5742=>413,5743=>1238,5744=>1591,5745=>2016,5746=>2016,5747=>1720,5748=>1678,5749=>2016,5750=>2016,5760=>543,5761=>637,5762=>945,5763=>1254,5764=>1563,5765=>1871,5766=>627,5767=>936,5768=>1254,5769=>1559,5770=>1871,5771=>569,5772=>877,5773=>1187,5774=>1497,5775=>1807,5776=>637,5777=>945,5778=>1240,5779=>1555,5780=>1871,5781=>569,5782=>569,5783=>789,5784=>1234,5785=>1559,5786=>740,5787=>638,5788=>638,7424=>652,7425=>833,7426=>1048,7427=>608,7428=>593,7429=>676,7430=>676,7431=>559,7432=>557,7433=>343,7434=>494,7435=>665,7436=>539,7437=>817,7438=>701,7439=>687,7440=>593,7441=>660,7442=>660,7443=>660,7444=>1094,7446=>687,7447=>687,7448=>556,7449=>642,7450=>642,7451=>580,7452=>634,7453=>737,7454=>948,7455=>695,7456=>652,7457=>924,7458=>582,7459=>646,7462=>539,7463=>652,7464=>691,7465=>556,7466=>781,7467=>732,7468=>487,7469=>683,7470=>480,7472=>523,7473=>430,7474=>430,7475=>517,7476=>527,7477=>234,7478=>234,7479=>488,7480=>401,7481=>626,7482=>527,7483=>527,7484=>535,7485=>509,7486=>461,7487=>485,7488=>430,7489=>511,7490=>695,7491=>458,7492=>458,7493=>479,7494=>712,7495=>479,7496=>479,7497=>479,7498=>479,7499=>386,7500=>386,7501=>479,7502=>219,7503=>487,7504=>664,7505=>456,7506=>488,7507=>414,7508=>488,7509=>488,7510=>479,7511=>388,7512=>456,7513=>462,7514=>664,7515=>501,7517=>451,7518=>429,7519=>433,7520=>493,7521=>406,7522=>219,7523=>315,7524=>456,7525=>501,7526=>451,7527=>429,7528=>451,7529=>493,7530=>406,7543=>716,7544=>527,7547=>545,7549=>747,7557=>514,7579=>479,7580=>414,7581=>414,7582=>488,7583=>386,7584=>377,7585=>348,7586=>479,7587=>456,7588=>347,7589=>281,7590=>347,7591=>347,7592=>431,7593=>326,7594=>330,7595=>370,7596=>664,7597=>664,7598=>562,7599=>562,7600=>448,7601=>488,7602=>542,7603=>422,7604=>396,7605=>388,7606=>583,7607=>494,7608=>399,7609=>451,7610=>501,7611=>417,7612=>523,7613=>470,7614=>455,7615=>425,7620=>0,7621=>0,7622=>0,7623=>0,7624=>0,7625=>0,7680=>774,7681=>675,7682=>762,7683=>716,7684=>762,7685=>716,7686=>762,7687=>716,7688=>734,7689=>593,7690=>830,7691=>716,7692=>830,7693=>716,7694=>830,7695=>716,7696=>830,7697=>716,7698=>830,7699=>716,7700=>683,7701=>678,7702=>683,7703=>678,7704=>683,7705=>678,7706=>683,7707=>678,7708=>683,7709=>678,7710=>683,7711=>435,7712=>821,7713=>716,7714=>837,7715=>712,7716=>837,7717=>712,7718=>837,7719=>712,7720=>837,7721=>712,7722=>837,7723=>712,7724=>372,7725=>343,7726=>372,7727=>343,7728=>775,7729=>665,7730=>775,7731=>665,7732=>775,7733=>665,7734=>637,7735=>343,7736=>637,7737=>343,7738=>637,7739=>343,7740=>637,7741=>343,7742=>995,7743=>1042,7744=>995,7745=>1042,7746=>995,7747=>1042,7748=>837,7749=>712,7750=>837,7751=>712,7752=>837,7753=>712,7754=>837,7755=>712,7756=>850,7757=>687,7758=>850,7759=>687,7760=>850,7761=>687,7762=>850,7763=>687,7764=>733,7765=>716,7766=>733,7767=>716,7768=>770,7769=>493,7770=>770,7771=>493,7772=>770,7773=>493,7774=>770,7775=>493,7776=>720,7777=>595,7778=>720,7779=>595,7780=>720,7781=>595,7782=>720,7783=>595,7784=>720,7785=>595,7786=>682,7787=>478,7788=>682,7789=>478,7790=>682,7791=>478,7792=>682,7793=>478,7794=>812,7795=>712,7796=>812,7797=>712,7798=>812,7799=>712,7800=>812,7801=>712,7802=>812,7803=>712,7804=>774,7805=>652,7806=>774,7807=>652,7808=>1103,7809=>924,7810=>1103,7811=>924,7812=>1103,7813=>924,7814=>1103,7815=>924,7816=>1103,7817=>924,7818=>771,7819=>645,7820=>771,7821=>645,7822=>724,7823=>652,7824=>725,7825=>582,7826=>725,7827=>582,7828=>725,7829=>582,7830=>712,7831=>478,7832=>924,7833=>652,7834=>675,7835=>435,7836=>435,7837=>435,7838=>896,7839=>687,7840=>774,7841=>675,7842=>774,7843=>675,7844=>774,7845=>675,7846=>774,7847=>675,7848=>774,7849=>675,7850=>774,7851=>675,7852=>774,7853=>675,7854=>774,7855=>675,7856=>774,7857=>675,7858=>774,7859=>675,7860=>774,7861=>675,7862=>774,7863=>675,7864=>683,7865=>678,7866=>683,7867=>678,7868=>683,7869=>678,7870=>683,7871=>678,7872=>683,7873=>678,7874=>683,7875=>678,7876=>683,7877=>678,7878=>683,7879=>678,7880=>372,7881=>343,7882=>372,7883=>343,7884=>850,7885=>687,7886=>850,7887=>687,7888=>850,7889=>687,7890=>850,7891=>687,7892=>850,7893=>687,7894=>850,7895=>687,7896=>850,7897=>687,7898=>874,7899=>687,7900=>874,7901=>687,7902=>874,7903=>687,7904=>874,7905=>687,7906=>874,7907=>687,7908=>812,7909=>712,7910=>812,7911=>712,7912=>835,7913=>712,7914=>835,7915=>712,7916=>835,7917=>712,7918=>835,7919=>712,7920=>835,7921=>712,7922=>724,7923=>652,7924=>724,7925=>652,7926=>724,7927=>652,7928=>724,7929=>652,7930=>953,7931=>644,7936=>687,7937=>687,7938=>687,7939=>687,7940=>687,7941=>687,7942=>687,7943=>687,7944=>774,7945=>774,7946=>1041,7947=>1043,7948=>935,7949=>963,7950=>835,7951=>859,7952=>557,7953=>557,7954=>557,7955=>557,7956=>557,7957=>557,7960=>792,7961=>794,7962=>1100,7963=>1096,7964=>1023,7965=>1052,7968=>712,7969=>712,7970=>712,7971=>712,7972=>712,7973=>712,7974=>712,7975=>712,7976=>945,7977=>951,7978=>1250,7979=>1250,7980=>1180,7981=>1206,7982=>1054,7983=>1063,7984=>390,7985=>390,7986=>390,7987=>390,7988=>390,7989=>390,7990=>390,7991=>390,7992=>483,7993=>489,7994=>777,7995=>785,7996=>712,7997=>738,7998=>604,7999=>604,8000=>687,8001=>687,8002=>687,8003=>687,8004=>687,8005=>687,8008=>892,8009=>933,8010=>1221,8011=>1224,8012=>1053,8013=>1082,8016=>675,8017=>675,8018=>675,8019=>675,8020=>675,8021=>675,8022=>675,8023=>675,8025=>930,8027=>1184,8029=>1199,8031=>1049,8032=>869,8033=>869,8034=>869,8035=>869,8036=>869,8037=>869,8038=>869,8039=>869,8040=>909,8041=>958,8042=>1246,8043=>1251,8044=>1076,8045=>1105,8046=>1028,8047=>1076,8048=>687,8049=>687,8050=>557,8051=>557,8052=>712,8053=>712,8054=>390,8055=>390,8056=>687,8057=>687,8058=>675,8059=>675,8060=>869,8061=>869,8064=>687,8065=>687,8066=>687,8067=>687,8068=>687,8069=>687,8070=>687,8071=>687,8072=>774,8073=>774,8074=>1041,8075=>1043,8076=>935,8077=>963,8078=>835,8079=>859,8080=>712,8081=>712,8082=>712,8083=>712,8084=>712,8085=>712,8086=>712,8087=>712,8088=>945,8089=>951,8090=>1250,8091=>1250,8092=>1180,8093=>1206,8094=>1054,8095=>1063,8096=>869,8097=>869,8098=>869,8099=>869,8100=>869,8101=>869,8102=>869,8103=>869,8104=>909,8105=>958,8106=>1246,8107=>1251,8108=>1076,8109=>1105,8110=>1028,8111=>1076,8112=>687,8113=>687,8114=>687,8115=>687,8116=>687,8118=>687,8119=>687,8120=>774,8121=>774,8122=>876,8123=>797,8124=>774,8125=>500,8126=>500,8127=>500,8128=>500,8129=>500,8130=>712,8131=>712,8132=>712,8134=>712,8135=>712,8136=>929,8137=>846,8138=>1080,8139=>1009,8140=>837,8141=>500,8142=>500,8143=>500,8144=>390,8145=>390,8146=>390,8147=>390,8150=>390,8151=>390,8152=>372,8153=>372,8154=>621,8155=>563,8157=>500,8158=>500,8159=>500,8160=>675,8161=>675,8162=>675,8163=>675,8164=>716,8165=>716,8166=>675,8167=>675,8168=>724,8169=>724,8170=>1020,8171=>980,8172=>838,8173=>500,8174=>500,8175=>500,8178=>869,8179=>869,8180=>869,8182=>869,8183=>869,8184=>1065,8185=>891,8186=>1084,8187=>894,8188=>850,8189=>500,8190=>500,8192=>500,8193=>1000,8194=>500,8195=>1000,8196=>330,8197=>250,8198=>167,8199=>696,8200=>380,8201=>200,8202=>100,8203=>0,8204=>0,8205=>0,8206=>0,8207=>0,8208=>415,8209=>415,8210=>696,8211=>500,8212=>1000,8213=>1000,8214=>500,8215=>500,8216=>380,8217=>380,8218=>380,8219=>380,8220=>657,8221=>657,8222=>657,8223=>657,8224=>500,8225=>500,8226=>639,8227=>639,8228=>333,8229=>667,8230=>1000,8231=>348,8232=>0,8233=>0,8234=>0,8235=>0,8236=>0,8237=>0,8238=>0,8239=>200,8240=>1440,8241=>1887,8242=>264,8243=>447,8244=>630,8245=>264,8246=>447,8247=>630,8248=>733,8249=>412,8250=>412,8251=>972,8252=>627,8253=>580,8254=>500,8255=>828,8256=>828,8257=>329,8258=>1023,8259=>500,8260=>167,8261=>457,8262=>457,8263=>1030,8264=>829,8265=>829,8266=>513,8267=>636,8268=>500,8269=>500,8270=>523,8271=>400,8272=>828,8273=>523,8274=>556,8275=>1000,8276=>828,8277=>838,8278=>684,8279=>813,8280=>838,8281=>838,8282=>380,8283=>872,8284=>838,8285=>380,8286=>380,8287=>222,8288=>0,8289=>0,8290=>0,8291=>0,8292=>0,8298=>0,8299=>0,8300=>0,8301=>0,8302=>0,8303=>0,8304=>438,8305=>219,8308=>438,8309=>438,8310=>438,8311=>438,8312=>438,8313=>438,8314=>528,8315=>528,8316=>528,8317=>288,8318=>288,8319=>456,8320=>438,8321=>438,8322=>438,8323=>438,8324=>438,8325=>438,8326=>438,8327=>438,8328=>438,8329=>438,8330=>528,8331=>528,8332=>528,8333=>288,8334=>288,8336=>458,8337=>479,8338=>488,8339=>413,8340=>479,8341=>456,8342=>487,8343=>219,8344=>664,8345=>456,8346=>479,8347=>381,8348=>388,8352=>929,8353=>696,8354=>696,8355=>696,8356=>696,8357=>1042,8358=>837,8359=>1518,8360=>1205,8361=>1103,8362=>904,8363=>696,8364=>696,8365=>696,8366=>696,8367=>1392,8368=>696,8369=>696,8370=>696,8371=>696,8372=>859,8373=>696,8376=>696,8377=>696,8378=>769,8400=>0,8401=>0,8406=>0,8407=>0,8411=>0,8412=>0,8417=>0,8448=>1120,8449=>1170,8450=>734,8451=>1211,8452=>896,8453=>1091,8454=>1144,8455=>614,8456=>698,8457=>1086,8459=>1073,8460=>913,8461=>888,8462=>712,8463=>712,8464=>597,8465=>697,8466=>856,8467=>472,8468=>974,8469=>837,8470=>1203,8471=>1000,8472=>697,8473=>750,8474=>850,8475=>938,8476=>814,8477=>801,8478=>896,8479=>710,8480=>1020,8481=>1281,8482=>1000,8483=>755,8484=>754,8485=>578,8486=>850,8487=>850,8488=>763,8489=>338,8490=>775,8491=>774,8492=>928,8493=>818,8494=>854,8495=>636,8496=>729,8497=>808,8498=>683,8499=>1184,8500=>465,8501=>794,8502=>731,8503=>494,8504=>684,8505=>380,8506=>945,8507=>1348,8508=>790,8509=>737,8510=>654,8511=>863,8512=>840,8513=>775,8514=>557,8515=>637,8516=>760,8517=>830,8518=>716,8519=>678,8520=>343,8521=>343,8523=>872,8526=>547,8528=>1035,8529=>1035,8530=>1483,8531=>1035,8532=>1035,8533=>1035,8534=>1035,8535=>1035,8536=>1035,8537=>1035,8538=>1035,8539=>1035,8540=>1035,8541=>1035,8542=>1035,8543=>615,8544=>372,8545=>659,8546=>945,8547=>1099,8548=>774,8549=>1099,8550=>1386,8551=>1672,8552=>1121,8553=>771,8554=>1120,8555=>1407,8556=>637,8557=>734,8558=>830,8559=>995,8560=>343,8561=>607,8562=>872,8563=>984,8564=>652,8565=>962,8566=>1227,8567=>1491,8568=>969,8569=>645,8570=>969,8571=>1233,8572=>343,8573=>593,8574=>716,8575=>1042,8576=>1289,8577=>830,8578=>1289,8579=>734,8580=>593,8581=>734,8585=>1035,8592=>838,8593=>838,8594=>838,8595=>838,8596=>838,8597=>838,8598=>838,8599=>838,8600=>838,8601=>838,8602=>838,8603=>838,8604=>838,8605=>838,8606=>838,8607=>838,8608=>838,8609=>838,8610=>838,8611=>838,8612=>838,8613=>838,8614=>838,8615=>838,8616=>838,8617=>838,8618=>838,8619=>838,8620=>838,8621=>838,8622=>838,8623=>838,8624=>838,8625=>838,8626=>838,8627=>838,8628=>838,8629=>838,8630=>838,8631=>838,8632=>838,8633=>838,8634=>838,8635=>838,8636=>838,8637=>838,8638=>838,8639=>838,8640=>838,8641=>838,8642=>838,8643=>838,8644=>838,8645=>838,8646=>838,8647=>838,8648=>838,8649=>838,8650=>838,8651=>838,8652=>838,8653=>838,8654=>838,8655=>838,8656=>838,8657=>838,8658=>838,8659=>838,8660=>838,8661=>838,8662=>838,8663=>838,8664=>838,8665=>838,8666=>838,8667=>838,8668=>838,8669=>838,8670=>838,8671=>838,8672=>838,8673=>838,8674=>838,8675=>838,8676=>838,8677=>838,8678=>838,8679=>838,8680=>838,8681=>838,8682=>838,8683=>838,8684=>838,8685=>838,8686=>838,8687=>838,8688=>838,8689=>838,8690=>838,8691=>838,8692=>838,8693=>838,8694=>838,8695=>838,8696=>838,8697=>838,8698=>838,8699=>838,8700=>838,8701=>838,8702=>838,8703=>838,8704=>774,8705=>696,8706=>544,8707=>683,8708=>683,8709=>856,8710=>697,8711=>697,8712=>896,8713=>896,8714=>750,8715=>896,8716=>896,8717=>750,8718=>636,8719=>787,8720=>787,8721=>718,8722=>838,8723=>838,8724=>696,8725=>365,8726=>696,8727=>838,8728=>626,8729=>380,8730=>667,8731=>667,8732=>667,8733=>712,8734=>833,8735=>838,8736=>896,8737=>896,8738=>838,8739=>500,8740=>500,8741=>500,8742=>500,8743=>812,8744=>812,8745=>812,8746=>812,8747=>610,8748=>929,8749=>1295,8750=>563,8751=>977,8752=>1313,8753=>563,8754=>563,8755=>563,8756=>696,8757=>696,8758=>294,8759=>696,8760=>838,8761=>838,8762=>838,8763=>838,8764=>838,8765=>838,8766=>838,8767=>838,8768=>375,8769=>838,8770=>838,8771=>838,8772=>838,8773=>838,8774=>838,8775=>838,8776=>838,8777=>838,8778=>838,8779=>838,8780=>838,8781=>838,8782=>838,8783=>838,8784=>838,8785=>838,8786=>838,8787=>838,8788=>1063,8789=>1063,8790=>838,8791=>838,8792=>838,8793=>838,8794=>838,8795=>838,8796=>838,8797=>838,8798=>838,8799=>838,8800=>838,8801=>838,8802=>838,8803=>838,8804=>838,8805=>838,8806=>838,8807=>838,8808=>841,8809=>841,8810=>1047,8811=>1047,8812=>500,8813=>838,8814=>838,8815=>838,8816=>838,8817=>838,8818=>838,8819=>838,8820=>838,8821=>838,8822=>838,8823=>838,8824=>838,8825=>838,8826=>838,8827=>838,8828=>838,8829=>838,8830=>838,8831=>838,8832=>838,8833=>838,8834=>838,8835=>838,8836=>838,8837=>838,8838=>838,8839=>838,8840=>838,8841=>838,8842=>838,8843=>838,8844=>812,8845=>812,8846=>812,8847=>838,8848=>838,8849=>838,8850=>838,8851=>796,8852=>796,8853=>838,8854=>838,8855=>838,8856=>838,8857=>838,8858=>838,8859=>838,8860=>838,8861=>838,8862=>838,8863=>838,8864=>838,8865=>838,8866=>914,8867=>914,8868=>914,8869=>914,8870=>542,8871=>542,8872=>914,8873=>914,8874=>914,8875=>914,8876=>914,8877=>914,8878=>914,8879=>914,8880=>838,8881=>838,8882=>838,8883=>838,8884=>838,8885=>838,8886=>1000,8887=>1000,8888=>838,8889=>838,8890=>542,8891=>812,8892=>812,8893=>812,8894=>838,8895=>838,8896=>843,8897=>843,8898=>843,8899=>843,8900=>494,8901=>380,8902=>626,8903=>838,8904=>1000,8905=>1000,8906=>1000,8907=>1000,8908=>1000,8909=>838,8910=>812,8911=>812,8912=>838,8913=>838,8914=>838,8915=>838,8916=>838,8917=>838,8918=>838,8919=>838,8920=>1422,8921=>1422,8922=>838,8923=>838,8924=>838,8925=>838,8926=>838,8927=>838,8928=>838,8929=>838,8930=>838,8931=>838,8932=>838,8933=>838,8934=>838,8935=>838,8936=>838,8937=>838,8938=>838,8939=>838,8940=>838,8941=>838,8942=>1000,8943=>1000,8944=>1000,8945=>1000,8946=>1158,8947=>896,8948=>750,8949=>896,8950=>896,8951=>750,8952=>896,8953=>896,8954=>1158,8955=>896,8956=>750,8957=>896,8958=>750,8959=>896,8960=>602,8961=>602,8962=>716,8963=>838,8964=>838,8965=>838,8966=>838,8967=>488,8968=>457,8969=>457,8970=>457,8971=>457,8972=>809,8973=>809,8974=>809,8975=>809,8976=>838,8977=>539,8984=>928,8985=>838,8988=>469,8989=>469,8990=>469,8991=>469,8992=>610,8993=>610,8996=>1152,8997=>1152,8998=>1414,8999=>1152,9000=>1443,9003=>1414,9004=>873,9075=>390,9076=>716,9077=>869,9082=>687,9085=>863,9095=>1152,9108=>873,9115=>500,9116=>500,9117=>500,9118=>500,9119=>500,9120=>500,9121=>500,9122=>500,9123=>500,9124=>500,9125=>500,9126=>500,9127=>750,9128=>750,9129=>750,9130=>750,9131=>750,9132=>750,9133=>750,9134=>610,9166=>838,9167=>945,9187=>873,9189=>769,9192=>696,9250=>716,9251=>716,9312=>847,9313=>847,9314=>847,9315=>847,9316=>847,9317=>847,9318=>847,9319=>847,9320=>847,9321=>847,9600=>769,9601=>769,9602=>769,9603=>769,9604=>769,9605=>769,9606=>769,9607=>769,9608=>769,9609=>769,9610=>769,9611=>769,9612=>769,9613=>769,9614=>769,9615=>769,9616=>769,9617=>769,9618=>769,9619=>769,9620=>769,9621=>769,9622=>769,9623=>769,9624=>769,9625=>769,9626=>769,9627=>769,9628=>769,9629=>769,9630=>769,9631=>769,9632=>945,9633=>945,9634=>945,9635=>945,9636=>945,9637=>945,9638=>945,9639=>945,9640=>945,9641=>945,9642=>678,9643=>678,9644=>945,9645=>945,9646=>550,9647=>550,9648=>769,9649=>769,9650=>769,9651=>769,9652=>502,9653=>502,9654=>769,9655=>769,9656=>502,9657=>502,9658=>769,9659=>769,9660=>769,9661=>769,9662=>502,9663=>502,9664=>769,9665=>769,9666=>502,9667=>502,9668=>769,9669=>769,9670=>769,9671=>769,9672=>769,9673=>873,9674=>494,9675=>873,9676=>873,9677=>873,9678=>873,9679=>873,9680=>873,9681=>873,9682=>873,9683=>873,9684=>873,9685=>873,9686=>527,9687=>527,9688=>840,9689=>970,9690=>970,9691=>970,9692=>387,9693=>387,9694=>387,9695=>387,9696=>769,9697=>769,9698=>769,9699=>769,9700=>769,9701=>769,9702=>639,9703=>945,9704=>945,9705=>945,9706=>945,9707=>945,9708=>769,9709=>769,9710=>769,9711=>1119,9712=>945,9713=>945,9714=>945,9715=>945,9716=>873,9717=>873,9718=>873,9719=>873,9720=>769,9721=>769,9722=>769,9723=>830,9724=>830,9725=>732,9726=>732,9727=>769,9728=>896,9729=>1000,9730=>896,9731=>896,9732=>896,9733=>896,9734=>896,9735=>573,9736=>896,9737=>896,9738=>888,9739=>888,9740=>671,9741=>1013,9742=>1246,9743=>1250,9744=>896,9745=>896,9746=>896,9747=>532,9748=>896,9749=>896,9750=>896,9751=>896,9752=>896,9753=>896,9754=>896,9755=>896,9756=>896,9757=>609,9758=>896,9759=>609,9760=>896,9761=>896,9762=>896,9763=>896,9764=>669,9765=>746,9766=>649,9767=>784,9768=>545,9769=>896,9770=>896,9771=>896,9772=>710,9773=>896,9774=>896,9775=>896,9776=>896,9777=>896,9778=>896,9779=>896,9780=>896,9781=>896,9782=>896,9783=>896,9784=>896,9785=>1042,9786=>1042,9787=>1042,9788=>896,9789=>896,9790=>896,9791=>614,9792=>732,9793=>732,9794=>896,9795=>896,9796=>896,9797=>896,9798=>896,9799=>896,9800=>896,9801=>896,9802=>896,9803=>896,9804=>896,9805=>896,9806=>896,9807=>896,9808=>896,9809=>896,9810=>896,9811=>896,9812=>896,9813=>896,9814=>896,9815=>896,9816=>896,9817=>896,9818=>896,9819=>896,9820=>896,9821=>896,9822=>896,9823=>896,9824=>896,9825=>896,9826=>896,9827=>896,9828=>896,9829=>896,9830=>896,9831=>896,9832=>896,9833=>472,9834=>638,9835=>896,9836=>896,9837=>472,9838=>357,9839=>484,9840=>748,9841=>766,9842=>896,9843=>896,9844=>896,9845=>896,9846=>896,9847=>896,9848=>896,9849=>896,9850=>896,9851=>896,9852=>896,9853=>896,9854=>896,9855=>896,9856=>869,9857=>869,9858=>869,9859=>869,9860=>869,9861=>869,9862=>896,9863=>896,9864=>896,9865=>896,9866=>896,9867=>896,9868=>896,9869=>896,9870=>896,9871=>896,9872=>896,9873=>896,9874=>896,9875=>896,9876=>896,9877=>541,9878=>896,9879=>896,9880=>896,9881=>896,9882=>896,9883=>896,9884=>896,9888=>896,9889=>702,9890=>1004,9891=>1089,9892=>1175,9893=>903,9894=>838,9895=>838,9896=>838,9897=>838,9898=>838,9899=>838,9900=>838,9901=>838,9902=>838,9903=>838,9904=>844,9905=>838,9906=>732,9907=>732,9908=>732,9909=>732,9910=>850,9911=>732,9912=>732,9920=>838,9921=>838,9922=>838,9923=>838,9954=>732,9985=>838,9986=>838,9987=>838,9988=>838,9990=>838,9991=>838,9992=>838,9993=>838,9996=>838,9997=>838,9998=>838,9999=>838,10000=>838,10001=>838,10002=>838,10003=>838,10004=>838,10005=>838,10006=>838,10007=>838,10008=>838,10009=>838,10010=>838,10011=>838,10012=>838,10013=>838,10014=>838,10015=>838,10016=>838,10017=>838,10018=>838,10019=>838,10020=>838,10021=>838,10022=>838,10023=>838,10025=>838,10026=>838,10027=>838,10028=>838,10029=>838,10030=>838,10031=>838,10032=>838,10033=>838,10034=>838,10035=>838,10036=>838,10037=>838,10038=>838,10039=>838,10040=>838,10041=>838,10042=>838,10043=>838,10044=>838,10045=>838,10046=>838,10047=>838,10048=>838,10049=>838,10050=>838,10051=>838,10052=>838,10053=>838,10054=>838,10055=>838,10056=>838,10057=>838,10058=>838,10059=>838,10061=>896,10063=>896,10064=>896,10065=>896,10066=>896,10070=>896,10072=>838,10073=>838,10074=>838,10075=>347,10076=>347,10077=>587,10078=>587,10081=>838,10082=>838,10083=>838,10084=>838,10085=>838,10086=>838,10087=>838,10088=>838,10089=>838,10090=>838,10091=>838,10092=>838,10093=>838,10094=>838,10095=>838,10096=>838,10097=>838,10098=>838,10099=>838,10100=>838,10101=>838,10102=>847,10103=>847,10104=>847,10105=>847,10106=>847,10107=>847,10108=>847,10109=>847,10110=>847,10111=>847,10112=>838,10113=>838,10114=>838,10115=>838,10116=>838,10117=>838,10118=>838,10119=>838,10120=>838,10121=>838,10122=>838,10123=>838,10124=>838,10125=>838,10126=>838,10127=>838,10128=>838,10129=>838,10130=>838,10131=>838,10132=>838,10136=>838,10137=>838,10138=>838,10139=>838,10140=>838,10141=>838,10142=>838,10143=>838,10144=>838,10145=>838,10146=>838,10147=>838,10148=>838,10149=>838,10150=>838,10151=>838,10152=>838,10153=>838,10154=>838,10155=>838,10156=>838,10157=>838,10158=>838,10159=>838,10161=>838,10162=>838,10163=>838,10164=>838,10165=>838,10166=>838,10167=>838,10168=>838,10169=>838,10170=>838,10171=>838,10172=>838,10173=>838,10174=>838,10181=>457,10182=>457,10208=>494,10214=>487,10215=>487,10216=>457,10217=>457,10218=>721,10219=>721,10224=>838,10225=>838,10226=>838,10227=>838,10228=>1157,10229=>1434,10230=>1434,10231=>1434,10232=>1434,10233=>1434,10234=>1434,10235=>1434,10236=>1434,10237=>1434,10238=>1434,10239=>1434,10240=>781,10241=>781,10242=>781,10243=>781,10244=>781,10245=>781,10246=>781,10247=>781,10248=>781,10249=>781,10250=>781,10251=>781,10252=>781,10253=>781,10254=>781,10255=>781,10256=>781,10257=>781,10258=>781,10259=>781,10260=>781,10261=>781,10262=>781,10263=>781,10264=>781,10265=>781,10266=>781,10267=>781,10268=>781,10269=>781,10270=>781,10271=>781,10272=>781,10273=>781,10274=>781,10275=>781,10276=>781,10277=>781,10278=>781,10279=>781,10280=>781,10281=>781,10282=>781,10283=>781,10284=>781,10285=>781,10286=>781,10287=>781,10288=>781,10289=>781,10290=>781,10291=>781,10292=>781,10293=>781,10294=>781,10295=>781,10296=>781,10297=>781,10298=>781,10299=>781,10300=>781,10301=>781,10302=>781,10303=>781,10304=>781,10305=>781,10306=>781,10307=>781,10308=>781,10309=>781,10310=>781,10311=>781,10312=>781,10313=>781,10314=>781,10315=>781,10316=>781,10317=>781,10318=>781,10319=>781,10320=>781,10321=>781,10322=>781,10323=>781,10324=>781,10325=>781,10326=>781,10327=>781,10328=>781,10329=>781,10330=>781,10331=>781,10332=>781,10333=>781,10334=>781,10335=>781,10336=>781,10337=>781,10338=>781,10339=>781,10340=>781,10341=>781,10342=>781,10343=>781,10344=>781,10345=>781,10346=>781,10347=>781,10348=>781,10349=>781,10350=>781,10351=>781,10352=>781,10353=>781,10354=>781,10355=>781,10356=>781,10357=>781,10358=>781,10359=>781,10360=>781,10361=>781,10362=>781,10363=>781,10364=>781,10365=>781,10366=>781,10367=>781,10368=>781,10369=>781,10370=>781,10371=>781,10372=>781,10373=>781,10374=>781,10375=>781,10376=>781,10377=>781,10378=>781,10379=>781,10380=>781,10381=>781,10382=>781,10383=>781,10384=>781,10385=>781,10386=>781,10387=>781,10388=>781,10389=>781,10390=>781,10391=>781,10392=>781,10393=>781,10394=>781,10395=>781,10396=>781,10397=>781,10398=>781,10399=>781,10400=>781,10401=>781,10402=>781,10403=>781,10404=>781,10405=>781,10406=>781,10407=>781,10408=>781,10409=>781,10410=>781,10411=>781,10412=>781,10413=>781,10414=>781,10415=>781,10416=>781,10417=>781,10418=>781,10419=>781,10420=>781,10421=>781,10422=>781,10423=>781,10424=>781,10425=>781,10426=>781,10427=>781,10428=>781,10429=>781,10430=>781,10431=>781,10432=>781,10433=>781,10434=>781,10435=>781,10436=>781,10437=>781,10438=>781,10439=>781,10440=>781,10441=>781,10442=>781,10443=>781,10444=>781,10445=>781,10446=>781,10447=>781,10448=>781,10449=>781,10450=>781,10451=>781,10452=>781,10453=>781,10454=>781,10455=>781,10456=>781,10457=>781,10458=>781,10459=>781,10460=>781,10461=>781,10462=>781,10463=>781,10464=>781,10465=>781,10466=>781,10467=>781,10468=>781,10469=>781,10470=>781,10471=>781,10472=>781,10473=>781,10474=>781,10475=>781,10476=>781,10477=>781,10478=>781,10479=>781,10480=>781,10481=>781,10482=>781,10483=>781,10484=>781,10485=>781,10486=>781,10487=>781,10488=>781,10489=>781,10490=>781,10491=>781,10492=>781,10493=>781,10494=>781,10495=>781,10502=>838,10503=>838,10506=>838,10507=>838,10560=>838,10561=>838,10627=>753,10628=>753,10702=>838,10703=>1046,10704=>1046,10705=>1000,10706=>1000,10707=>1000,10708=>1000,10709=>1000,10731=>494,10746=>838,10747=>838,10752=>1000,10753=>1000,10754=>1000,10764=>1661,10765=>563,10766=>563,10767=>563,10768=>563,10769=>563,10770=>563,10771=>563,10772=>563,10773=>563,10774=>563,10775=>563,10776=>563,10777=>563,10778=>563,10779=>563,10780=>563,10799=>838,10858=>838,10859=>838,10877=>838,10878=>838,10879=>838,10880=>838,10881=>838,10882=>838,10883=>838,10884=>838,10885=>838,10886=>838,10887=>838,10888=>838,10889=>838,10890=>838,10891=>838,10892=>838,10893=>838,10894=>838,10895=>838,10896=>838,10897=>838,10898=>838,10899=>838,10900=>838,10901=>838,10902=>838,10903=>838,10904=>838,10905=>838,10906=>838,10907=>838,10908=>838,10909=>838,10910=>838,10911=>838,10912=>838,10926=>838,10927=>838,10928=>838,10929=>838,10930=>838,10931=>838,10932=>838,10933=>838,10934=>838,10935=>838,10936=>838,10937=>838,10938=>838,11001=>838,11002=>838,11008=>838,11009=>838,11010=>838,11011=>838,11012=>838,11013=>838,11014=>838,11015=>838,11016=>838,11017=>838,11018=>838,11019=>838,11020=>838,11021=>838,11022=>838,11023=>838,11024=>838,11025=>838,11026=>945,11027=>945,11028=>945,11029=>945,11030=>769,11031=>769,11032=>769,11033=>769,11034=>945,11039=>869,11040=>869,11041=>873,11042=>873,11043=>873,11044=>1119,11091=>869,11092=>869,11360=>637,11361=>360,11362=>637,11363=>733,11364=>770,11365=>675,11366=>478,11367=>956,11368=>712,11369=>775,11370=>665,11371=>725,11372=>582,11373=>860,11374=>995,11375=>774,11376=>860,11377=>778,11378=>1221,11379=>1056,11380=>652,11381=>698,11382=>565,11383=>782,11385=>538,11386=>687,11387=>559,11388=>219,11389=>487,11390=>720,11391=>725,11520=>663,11521=>676,11522=>661,11523=>629,11524=>661,11525=>1032,11526=>718,11527=>1032,11528=>648,11529=>667,11530=>1032,11531=>673,11532=>677,11533=>1036,11534=>680,11535=>886,11536=>1032,11537=>683,11538=>674,11539=>1035,11540=>1033,11541=>1027,11542=>676,11543=>673,11544=>667,11545=>667,11546=>660,11547=>671,11548=>1039,11549=>673,11550=>692,11551=>659,11552=>1048,11553=>660,11554=>654,11555=>670,11556=>733,11557=>1017,11568=>691,11569=>941,11570=>941,11571=>725,11572=>725,11573=>725,11574=>676,11575=>774,11576=>774,11577=>683,11578=>683,11579=>802,11580=>989,11581=>761,11582=>623,11583=>761,11584=>941,11585=>941,11586=>373,11587=>740,11588=>837,11589=>914,11590=>672,11591=>737,11592=>680,11593=>683,11594=>602,11595=>1039,11596=>778,11597=>837,11598=>683,11599=>372,11600=>778,11601=>373,11602=>725,11603=>691,11604=>941,11605=>941,11606=>837,11607=>373,11608=>836,11609=>941,11610=>941,11611=>734,11612=>876,11613=>771,11614=>734,11615=>683,11616=>774,11617=>837,11618=>683,11619=>850,11620=>697,11621=>850,11631=>716,11800=>580,11807=>838,11810=>457,11811=>457,11812=>457,11813=>457,11822=>580,19904=>896,19905=>896,19906=>896,19907=>896,19908=>896,19909=>896,19910=>896,19911=>896,19912=>896,19913=>896,19914=>896,19915=>896,19916=>896,19917=>896,19918=>896,19919=>896,19920=>896,19921=>896,19922=>896,19923=>896,19924=>896,19925=>896,19926=>896,19927=>896,19928=>896,19929=>896,19930=>896,19931=>896,19932=>896,19933=>896,19934=>896,19935=>896,19936=>896,19937=>896,19938=>896,19939=>896,19940=>896,19941=>896,19942=>896,19943=>896,19944=>896,19945=>896,19946=>896,19947=>896,19948=>896,19949=>896,19950=>896,19951=>896,19952=>896,19953=>896,19954=>896,19955=>896,19956=>896,19957=>896,19958=>896,19959=>896,19960=>896,19961=>896,19962=>896,19963=>896,19964=>896,19965=>896,19966=>896,19967=>896,42192=>762,42193=>733,42194=>733,42195=>830,42196=>682,42197=>682,42198=>821,42199=>775,42200=>775,42201=>530,42202=>734,42203=>734,42204=>725,42205=>683,42206=>683,42207=>995,42208=>837,42209=>637,42210=>720,42211=>770,42212=>770,42213=>774,42214=>774,42215=>837,42216=>775,42217=>530,42218=>1103,42219=>771,42220=>724,42221=>762,42222=>774,42223=>774,42224=>683,42225=>683,42226=>372,42227=>850,42228=>812,42229=>812,42230=>557,42231=>830,42232=>322,42233=>322,42234=>674,42235=>674,42236=>322,42237=>322,42238=>588,42239=>588,42564=>720,42565=>595,42566=>436,42567=>440,42572=>1405,42573=>1173,42576=>1234,42577=>1027,42580=>1174,42581=>972,42582=>1093,42583=>958,42594=>1085,42595=>924,42596=>1096,42597=>912,42598=>1260,42599=>997,42600=>850,42601=>687,42602=>1037,42603=>868,42604=>1406,42605=>1106,42606=>961,42634=>963,42635=>787,42636=>682,42637=>580,42644=>808,42645=>712,42760=>500,42761=>500,42762=>500,42763=>500,42764=>500,42765=>500,42766=>500,42767=>500,42768=>500,42769=>500,42770=>500,42771=>500,42772=>500,42773=>500,42774=>500,42779=>400,42780=>400,42781=>287,42782=>287,42783=>287,42786=>444,42787=>390,42788=>540,42789=>540,42790=>837,42791=>712,42792=>1031,42793=>857,42794=>696,42795=>557,42800=>559,42801=>595,42802=>1349,42803=>1052,42804=>1284,42805=>1064,42806=>1216,42807=>1054,42808=>1079,42809=>922,42810=>1079,42811=>922,42812=>1035,42813=>922,42814=>698,42815=>549,42816=>656,42817=>688,42822=>850,42823=>542,42824=>683,42825=>531,42826=>918,42827=>814,42830=>1406,42831=>1106,42832=>733,42833=>716,42834=>948,42835=>937,42838=>850,42839=>716,42852=>738,42853=>716,42854=>738,42855=>716,42880=>637,42881=>343,42882=>837,42883=>712,42889=>400,42890=>386,42891=>456,42892=>306,42893=>808,42894=>693,42896=>928,42897=>768,42912=>821,42913=>716,42914=>775,42915=>665,42916=>837,42917=>712,42918=>770,42919=>493,42920=>720,42921=>595,42922=>886,43002=>1062,43003=>683,43004=>733,43005=>995,43006=>372,43007=>1325,61184=>216,61185=>242,61186=>267,61187=>277,61188=>282,61189=>242,61190=>216,61191=>242,61192=>267,61193=>277,61194=>267,61195=>242,61196=>216,61197=>242,61198=>267,61199=>277,61200=>267,61201=>242,61202=>216,61203=>242,61204=>282,61205=>277,61206=>267,61207=>242,61208=>216,61209=>282,62464=>612,62465=>612,62466=>653,62467=>902,62468=>622,62469=>622,62470=>661,62471=>895,62472=>589,62473=>622,62474=>1163,62475=>626,62476=>627,62477=>893,62478=>612,62479=>626,62480=>924,62481=>627,62482=>744,62483=>634,62484=>886,62485=>626,62486=>907,62487=>626,62488=>621,62489=>628,62490=>677,62491=>626,62492=>621,62493=>630,62494=>627,62495=>571,62496=>622,62497=>631,62498=>612,62499=>611,62500=>618,62501=>671,62502=>963,62504=>1023,62505=>844,62506=>563,62507=>563,62508=>563,62509=>563,62510=>563,62511=>563,62512=>555,62513=>555,62514=>555,62515=>555,62516=>573,62517=>573,62518=>573,62519=>824,62520=>824,62521=>824,62522=>824,62523=>824,62524=>611,62525=>611,62526=>611,62527=>611,62528=>611,62529=>611,63173=>687,64256=>810,64257=>741,64258=>741,64259=>1115,64260=>1116,64261=>808,64262=>1020,64275=>1388,64276=>1384,64277=>1378,64278=>1384,64279=>1713,64285=>294,64286=>0,64287=>519,64288=>665,64289=>939,64290=>788,64291=>920,64292=>786,64293=>857,64294=>869,64295=>821,64296=>890,64297=>838,64298=>758,64299=>758,64300=>758,64301=>758,64302=>728,64303=>728,64304=>728,64305=>610,64306=>447,64307=>588,64308=>687,64309=>437,64310=>485,64312=>679,64313=>435,64314=>578,64315=>566,64316=>605,64318=>724,64320=>453,64321=>680,64323=>675,64324=>658,64326=>653,64327=>736,64328=>602,64329=>758,64330=>683,64331=>343,64332=>610,64333=>566,64334=>658,64335=>710,64338=>1005,64339=>1059,64340=>375,64341=>408,64342=>1005,64343=>1059,64344=>375,64345=>408,64346=>1005,64347=>1059,64348=>375,64349=>408,64350=>1005,64351=>1059,64352=>375,64353=>408,64354=>1005,64355=>1059,64356=>375,64357=>408,64358=>1005,64359=>1059,64360=>375,64361=>408,64362=>1162,64363=>1191,64364=>655,64365=>720,64366=>1162,64367=>1191,64368=>655,64369=>720,64370=>721,64371=>721,64372=>721,64373=>721,64374=>721,64375=>721,64376=>721,64377=>721,64378=>721,64379=>721,64380=>721,64381=>721,64382=>721,64383=>721,64384=>721,64385=>721,64386=>513,64387=>578,64388=>513,64389=>578,64390=>513,64391=>578,64392=>513,64393=>578,64394=>576,64395=>622,64396=>576,64397=>622,64398=>1024,64399=>1024,64400=>582,64401=>582,64402=>1024,64403=>1024,64404=>582,64405=>582,64406=>1024,64407=>1024,64408=>582,64409=>582,64410=>1024,64411=>1024,64412=>582,64413=>582,64414=>854,64415=>900,64416=>854,64417=>900,64418=>375,64419=>408,64426=>938,64427=>880,64428=>693,64429=>660,64467=>824,64468=>843,64469=>476,64470=>552,64473=>622,64474=>627,64488=>375,64489=>408,64508=>917,64509=>1012,64510=>375,64511=>408,65024=>0,65025=>0,65026=>0,65027=>0,65028=>0,65029=>0,65030=>0,65031=>0,65032=>0,65033=>0,65034=>0,65035=>0,65036=>0,65037=>0,65038=>0,65039=>0,65056=>0,65057=>0,65058=>0,65059=>0,65136=>342,65137=>342,65138=>342,65139=>346,65140=>342,65142=>342,65143=>342,65144=>342,65145=>342,65146=>342,65147=>342,65148=>342,65149=>342,65150=>342,65151=>342,65152=>511,65153=>343,65154=>375,65155=>343,65156=>375,65157=>622,65158=>627,65159=>343,65160=>375,65161=>917,65162=>917,65163=>375,65164=>408,65165=>343,65166=>375,65167=>1005,65168=>1059,65169=>375,65170=>408,65171=>590,65172=>606,65173=>1005,65174=>1059,65175=>375,65176=>408,65177=>1005,65178=>1059,65179=>375,65180=>408,65181=>721,65182=>721,65183=>721,65184=>721,65185=>721,65186=>721,65187=>721,65188=>721,65189=>721,65190=>721,65191=>721,65192=>721,65193=>513,65194=>578,65195=>513,65196=>578,65197=>576,65198=>622,65199=>576,65200=>622,65201=>1380,65202=>1414,65203=>983,65204=>1018,65205=>1380,65206=>1414,65207=>983,65208=>1018,65209=>1345,65210=>1364,65211=>966,65212=>985,65213=>1345,65214=>1364,65215=>966,65216=>985,65217=>1039,65218=>1071,65219=>942,65220=>974,65221=>1039,65222=>1071,65223=>942,65224=>974,65225=>683,65226=>683,65227=>683,65228=>564,65229=>683,65230=>683,65231=>683,65232=>564,65233=>1162,65234=>1191,65235=>655,65236=>720,65237=>894,65238=>901,65239=>655,65240=>720,65241=>917,65242=>931,65243=>582,65244=>582,65245=>868,65246=>893,65247=>375,65248=>408,65249=>733,65250=>784,65251=>619,65252=>670,65253=>854,65254=>900,65255=>375,65256=>408,65257=>590,65258=>606,65259=>693,65260=>660,65261=>622,65262=>627,65263=>917,65264=>1012,65265=>917,65266=>1012,65267=>375,65268=>408,65269=>745,65270=>759,65271=>745,65272=>759,65273=>745,65274=>759,65275=>745,65276=>759,65279=>0,65529=>0,65530=>0,65531=>0,65532=>0,65533=>1113,65535=>600);
16
+ // --- EOF ---
includes/tcpdf_min/fonts/dejavusansb.z ADDED
Binary file
includes/tcpdf_min/fonts/dejavusansbi.ctg.z ADDED
Binary file
includes/tcpdf_min/fonts/dejavusansbi.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='TrueTypeUnicode';
4
+ $name='DejaVuSans-BoldOblique';
5
+ $up=-63;
6
+ $ut=44;
7
+ $dw=600;
8
+ $diff='';
9
+ $originalsize=632168;
10
+ $enc='';
11
+ $file='dejavusansbi.z';
12
+ $ctg='dejavusansbi.ctg.z';
13
+ $desc=array('Flags'=>96,'FontBBox'=>'[-1067 -385 1999 1121]','ItalicAngle'=>-11,'Ascent'=>928,'Descent'=>-236,'Leading'=>0,'CapHeight'=>729,'XHeight'=>547,'StemV'=>60,'StemH'=>26,'AvgWidth'=>573,'MaxWidth'=>2016,'MissingWidth'=>600);
14
+ $cbbox=array(0=>array(50,-177,550,705),32=>array(69,0,387,729),33=>array(69,0,387,729),34=>array(95,458,426,729),35=>array(65,0,780,718),36=>array(27,-147,630,760),37=>array(55,-14,947,742),38=>array(28,-14,813,742),39=>array(95,458,211,729),40=>array(77,-132,468,759),41=>array(-27,-132,364,759),42=>array(20,278,503,742),43=>array(106,0,732,627),44=>array(-34,-142,256,189),45=>array(25,217,360,359),46=>array(46,0,259,189),47=>array(-96,-93,434,729),48=>array(36,-14,660,742),49=>array(43,0,578,729),50=>array(8,0,640,742),51=>array(0,-14,637,742),52=>array(-1,0,635,729),53=>array(13,-14,644,729),54=>array(50,-15,660,741),55=>array(78,0,694,729),56=>array(22,-14,659,742),57=>array(41,-15,652,741),58=>array(41,0,323,547),59=>array(-35,-142,323,547),60=>array(106,30,732,597),61=>array(106,144,732,482),62=>array(106,30,732,597),63=>array(104,0,554,742),64=>array(45,-172,927,703),65=>array(-65,0,691,729),66=>array(21,0,699,729),67=>array(36,-14,724,742),68=>array(21,0,786,729),69=>array(21,0,670,729),70=>array(21,0,670,729),71=>array(36,-14,778,742),72=>array(21,0,816,729),73=>array(21,0,351,729),74=>array(-166,-200,351,729),75=>array(21,0,837,729),76=>array(21,0,566,729),77=>array(21,0,974,729),78=>array(21,0,816,729),79=>array(36,-14,814,742),80=>array(21,0,719,729),81=>array(36,-146,814,742),82=>array(21,0,685,729),83=>array(15,-14,665,742),84=>array(48,0,748,729),85=>array(68,-14,791,729),86=>array(76,0,840,729),87=>array(107,0,1143,729),88=>array(-51,0,812,729),89=>array(63,0,809,729),90=>array(-26,0,740,729),91=>array(-10,-132,466,760),92=>array(71,-93,276,729),93=>array(-28,-132,448,760),94=>array(101,457,737,729),95=>array(-10,-236,510,-143),96=>array(131,616,371,800),97=>array(17,-14,611,560),98=>array(31,-14,677,760),99=>array(37,-14,581,560),100=>array(36,-14,724,760),101=>array(36,-14,640,560),102=>array(50,0,540,760),103=>array(20,-216,682,559),104=>array(31,0,654,760),105=>array(31,0,354,760),106=>array(-128,-216,354,760),107=>array(31,0,716,760),108=>array(31,0,354,760),109=>array(31,0,984,560),110=>array(31,0,654,560),111=>array(36,-14,651,560),112=>array(-10,-208,677,560),113=>array(36,-208,682,560),114=>array(31,0,545,560),115=>array(10,-14,560,560),116=>array(43,0,509,702),117=>array(60,-14,681,547),118=>array(63,0,678,547),119=>array(87,0,927,547),120=>array(-41,0,671,547),121=>array(0,-216,687,547),122=>array(-9,0,586,547),123=>array(106,-163,669,760),124=>array(127,-236,238,764),125=>array(44,-163,606,760),126=>array(106,212,732,415),160=>array(69,0,387,729),161=>array(69,0,387,729),162=>array(67,-153,610,699),163=>array(7,0,691,742),164=>array(36,30,601,596),165=>array(6,0,755,729),166=>array(127,-171,238,699),167=>array(-33,-95,494,742),168=>array(152,654,484,774),169=>array(138,0,862,725),170=>array(43,182,527,742),171=>array(61,67,594,519),172=>array(106,140,732,444),173=>array(25,217,360,359),174=>array(138,0,862,725),175=>array(155,668,481,760),176=>array(87,424,412,749),177=>array(106,0,732,627),178=>array(45,326,431,742),179=>array(40,319,427,742),180=>array(227,616,539,800),181=>array(-27,-209,670,547),182=>array(74,-96,603,729),183=>array(84,253,297,442),184=>array(22,-196,259,0),185=>array(67,326,395,734),186=>array(46,182,545,742),187=>array(57,66,589,519),188=>array(56,-14,948,742),189=>array(56,-14,1036,742),190=>array(47,-14,948,742),191=>array(37,-13,488,729),192=>array(-65,0,691,927),193=>array(-65,0,691,927),194=>array(-65,0,691,927),195=>array(-65,0,691,928),196=>array(-65,0,691,927),197=>array(-65,0,691,928),198=>array(-78,0,1072,729),199=>array(36,-196,724,742),200=>array(21,0,670,927),201=>array(21,0,670,927),202=>array(21,0,670,927),203=>array(21,0,670,927),204=>array(21,0,351,927),205=>array(21,0,448,927),206=>array(21,0,440,927),207=>array(21,0,442,927),208=>array(-2,0,803,729),209=>array(21,0,816,928),210=>array(36,-14,814,927),211=>array(36,-14,814,927),212=>array(36,-14,814,927),213=>array(36,-14,814,928),214=>array(36,-14,814,927),215=>array(125,20,713,607),216=>array(-47,-38,896,771),217=>array(68,-14,791,927),218=>array(68,-14,791,927),219=>array(68,-14,791,927),220=>array(68,-14,791,927),221=>array(63,0,809,927),222=>array(21,0,695,729),223=>array(31,-14,666,760),224=>array(17,-14,611,800),225=>array(17,-14,627,800),226=>array(17,-14,611,800),227=>array(17,-14,611,778),228=>array(17,-14,611,774),229=>array(17,-14,611,883),230=>array(17,-14,1008,560),231=>array(37,-196,581,560),232=>array(36,-14,640,800),233=>array(36,-14,650,800),234=>array(36,-14,640,800),235=>array(36,-14,640,774),236=>array(31,0,313,800),237=>array(31,0,470,800),238=>array(31,0,414,800),239=>array(31,0,415,774),240=>array(36,-14,678,760),241=>array(31,0,654,778),242=>array(36,-14,651,800),243=>array(36,-14,651,800),244=>array(36,-14,651,800),245=>array(36,-14,651,778),246=>array(36,-14,651,774),247=>array(106,42,732,585),248=>array(-17,-50,700,597),249=>array(60,-14,681,800),250=>array(60,-14,681,800),251=>array(60,-14,681,800),252=>array(60,-14,681,774),253=>array(0,-216,687,800),254=>array(-10,-208,677,760),255=>array(0,-216,687,774),256=>array(-65,0,691,914),257=>array(17,-14,611,763),258=>array(-65,0,691,936),259=>array(17,-14,611,772),260=>array(-65,-196,691,729),261=>array(17,-196,611,560),262=>array(36,-14,724,927),263=>array(37,-14,645,800),264=>array(36,-14,724,927),265=>array(37,-14,589,800),266=>array(36,-14,724,927),267=>array(37,-14,581,759),268=>array(36,-14,732,927),269=>array(37,-14,634,800),270=>array(21,0,786,927),271=>array(36,-14,947,760),272=>array(-2,0,803,729),273=>array(36,-14,817,760),274=>array(21,0,670,914),275=>array(36,-14,640,763),276=>array(21,0,670,927),277=>array(36,-14,640,784),278=>array(21,0,670,927),279=>array(36,-14,640,759),280=>array(21,-196,670,729),281=>array(36,-196,640,560),282=>array(21,0,670,927),283=>array(36,-14,640,800),284=>array(36,-14,778,927),285=>array(20,-216,682,800),286=>array(36,-14,778,927),287=>array(20,-216,682,784),288=>array(36,-14,778,927),289=>array(20,-216,682,759),290=>array(36,-224,778,742),291=>array(20,-216,682,765),292=>array(21,0,816,927),293=>array(31,0,654,927),294=>array(89,0,935,729),295=>array(85,0,708,760),296=>array(21,0,456,928),297=>array(31,0,431,778),298=>array(21,0,417,914),299=>array(31,0,402,763),300=>array(21,0,453,927),301=>array(31,0,427,784),302=>array(21,-196,351,729),303=>array(31,-196,354,760),304=>array(21,0,355,927),305=>array(31,0,313,547),306=>array(21,-200,723,729),307=>array(31,-216,697,760),308=>array(-166,-200,453,927),309=>array(-128,-216,428,800),310=>array(21,-209,837,729),311=>array(31,-209,716,760),312=>array(31,0,716,547),313=>array(21,0,566,928),314=>array(31,0,478,928),315=>array(21,-209,566,729),316=>array(-23,-209,354,760),317=>array(21,0,623,729),318=>array(31,0,582,760),319=>array(21,0,624,729),320=>array(31,0,555,760),321=>array(-23,0,603,729),322=>array(-7,0,456,760),323=>array(21,0,816,928),324=>array(31,0,654,803),325=>array(21,-209,816,729),326=>array(31,-209,654,560),327=>array(21,0,816,927),328=>array(31,0,654,800),329=>array(61,0,911,729),330=>array(31,-200,775,742),331=>array(50,-216,673,560),332=>array(36,-14,814,914),333=>array(36,-14,651,763),334=>array(36,-14,814,927),335=>array(36,-14,651,784),336=>array(36,-14,814,927),337=>array(36,-14,657,800),338=>array(42,0,1154,729),339=>array(36,-14,1054,560),340=>array(21,0,685,928),341=>array(31,0,618,803),342=>array(21,-209,685,729),343=>array(-23,-209,545,560),344=>array(21,0,685,927),345=>array(31,0,602,800),346=>array(15,-14,665,928),347=>array(10,-14,618,803),348=>array(15,-14,665,927),349=>array(10,-14,560,800),350=>array(15,-196,665,742),351=>array(10,-196,560,560),352=>array(15,-14,665,927),353=>array(10,-14,576,800),354=>array(48,-196,748,729),355=>array(43,-196,509,702),356=>array(48,0,748,927),357=>array(43,0,615,800),358=>array(48,0,748,729),359=>array(-11,0,493,702),360=>array(68,-14,791,928),361=>array(60,-14,681,778),362=>array(68,-14,791,914),363=>array(60,-14,681,763),364=>array(68,-14,791,927),365=>array(60,-14,681,784),366=>array(68,-14,791,923),367=>array(60,-14,681,873),368=>array(68,-14,791,927),369=>array(60,-14,681,800),370=>array(68,-196,791,729),371=>array(60,-196,681,547),372=>array(107,0,1143,931),373=>array(87,0,927,800),374=>array(63,0,809,931),375=>array(0,-216,687,800),376=>array(63,0,809,927),377=>array(-26,0,740,928),378=>array(-9,0,618,803),379=>array(-26,0,740,918),380=>array(-9,0,586,759),381=>array(-26,0,740,927),382=>array(-9,0,586,800),383=>array(50,0,540,760),384=>array(12,-14,651,760),385=>array(-37,0,744,729),386=>array(21,0,714,729),387=>array(12,-14,662,760),388=>array(61,0,704,729),389=>array(37,-14,677,760),390=>array(-13,-14,675,742),391=>array(32,-14,909,924),392=>array(27,-14,715,724),393=>array(-2,0,803,729),394=>array(-37,0,830,729),395=>array(65,0,763,729),396=>array(25,-14,707,760),397=>array(57,-208,662,548),398=>array(21,0,681,729),399=>array(36,-14,819,742),400=>array(37,-14,652,742),401=>array(-146,-200,689,729),402=>array(-151,-208,538,760),403=>array(32,-14,959,924),404=>array(94,-210,882,729),405=>array(10,-1,980,760),406=>array(74,0,384,729),407=>array(-7,0,397,729),408=>array(20,0,827,742),409=>array(10,0,695,760),410=>array(-10,0,365,760),411=>array(-44,0,536,760),412=>array(55,-13,1035,729),413=>array(-146,-200,835,729),414=>array(50,-208,664,560),415=>array(36,-14,814,742),416=>array(39,-14,907,760),417=>array(40,-14,771,570),418=>array(50,-14,1056,742),419=>array(63,-216,891,560),420=>array(-37,0,765,729),421=>array(-10,-208,670,760),422=>array(35,-146,684,729),423=>array(-1,-14,631,742),424=>array(-7,-14,534,560),425=>array(21,0,670,729),426=>array(34,-217,539,759),427=>array(48,-216,514,702),428=>array(36,0,772,729),429=>array(21,0,512,760),430=>array(67,-200,767,729),431=>array(67,-14,938,761),432=>array(57,-14,795,570),433=>array(42,-14,813,723),434=>array(74,0,764,729),435=>array(60,0,841,742),436=>array(24,-216,822,560),437=>array(-26,0,740,729),438=>array(-8,0,587,547),439=>array(21,-33,743,729),440=>array(10,-33,771,729),441=>array(6,-215,647,547),442=>array(-11,-208,585,547),443=>array(7,0,634,742),444=>array(11,-33,696,729),445=>array(-30,-215,573,547),446=>array(-27,-15,508,702),447=>array(-12,-208,693,560),448=>array(0,-208,371,729),449=>array(0,-208,658,729),450=>array(-23,-208,574,729),451=>array(27,0,346,729),452=>array(21,0,1570,927),453=>array(21,0,1416,800),454=>array(36,-14,1302,800),455=>array(21,-200,988,729),456=>array(21,-216,991,760),457=>array(31,-216,697,760),458=>array(21,-200,1188,729),459=>array(21,-216,1191,760),460=>array(31,-216,1066,760),461=>array(-65,0,691,927),462=>array(17,-14,615,800),463=>array(21,0,473,927),464=>array(31,0,457,800),465=>array(36,-14,814,927),466=>array(36,-14,651,800),467=>array(68,-14,791,927),468=>array(60,-14,681,800),469=>array(68,-14,791,1040),470=>array(60,-14,681,914),471=>array(68,-14,791,1057),472=>array(60,-14,681,917),473=>array(68,-14,791,1058),474=>array(60,-14,681,917),475=>array(68,-14,791,1057),476=>array(60,-14,681,917),477=>array(42,-14,630,560),478=>array(-65,0,691,1040),479=>array(17,-14,611,914),480=>array(-65,0,691,1040),481=>array(17,-14,620,881),482=>array(-78,0,1072,914),483=>array(17,-14,1008,758),484=>array(36,-14,778,742),485=>array(20,-216,682,559),486=>array(36,-14,778,927),487=>array(20,-216,682,799),488=>array(21,0,837,926),489=>array(31,0,716,926),490=>array(36,-196,814,742),491=>array(36,-196,651,560),492=>array(36,-196,814,914),493=>array(36,-196,651,763),494=>array(21,-33,743,927),495=>array(-44,-215,588,793),496=>array(-128,-216,466,800),497=>array(21,0,1570,729),498=>array(21,0,1416,729),499=>array(36,-14,1302,760),500=>array(36,-14,778,928),501=>array(20,-216,682,798),502=>array(22,-14,1222,729),503=>array(-20,-208,775,742),504=>array(21,0,816,927),505=>array(31,0,654,798),506=>array(-65,0,867,986),507=>array(17,-14,814,931),508=>array(-78,0,1072,928),509=>array(17,-14,1008,799),510=>array(-47,-38,896,928),511=>array(-17,-50,700,800),512=>array(-65,0,691,930),513=>array(17,-14,611,800),514=>array(-65,0,691,947),515=>array(17,-14,611,784),516=>array(21,0,670,930),517=>array(36,-14,640,800),518=>array(21,0,670,947),519=>array(36,-14,640,784),520=>array(21,0,437,930),521=>array(31,0,409,799),522=>array(21,0,447,947),523=>array(31,0,417,784),524=>array(36,-14,814,930),525=>array(36,-14,651,800),526=>array(36,-14,814,947),527=>array(36,-14,651,784),528=>array(21,0,685,930),529=>array(31,0,545,800),530=>array(21,0,685,947),531=>array(31,0,545,784),532=>array(68,-14,791,930),533=>array(60,-14,681,800),534=>array(68,-14,791,947),535=>array(60,-14,681,784),536=>array(15,-236,665,742),537=>array(10,-236,560,560),538=>array(48,-236,748,729),539=>array(43,-236,509,702),540=>array(-45,-210,649,742),541=>array(-47,-211,564,560),542=>array(21,0,816,926),543=>array(31,0,654,926),544=>array(32,-208,764,742),545=>array(31,-75,786,760),546=>array(25,-14,769,742),547=>array(22,-14,656,646),548=>array(-5,-216,761,729),549=>array(13,-216,608,547),550=>array(-65,0,691,927),551=>array(17,-14,611,759),552=>array(21,-192,670,729),553=>array(36,-196,640,560),554=>array(36,-14,814,1040),555=>array(36,-14,651,914),556=>array(36,-14,814,1040),557=>array(36,-14,651,914),558=>array(36,-14,814,928),559=>array(36,-14,651,759),560=>array(36,-14,814,1040),561=>array(36,-14,651,914),562=>array(63,0,809,914),563=>array(0,-216,687,763),564=>array(32,-75,413,760),565=>array(37,-75,808,560),566=>array(34,-76,500,702),567=>array(-128,-216,313,547),568=>array(25,-14,1023,760),569=>array(64,-208,1062,560),570=>array(-81,-36,854,765),571=>array(-101,-36,834,765),572=>array(-61,-46,652,594),573=>array(-13,0,566,729),574=>array(-127,-36,809,765),575=>array(33,-240,583,560),576=>array(15,-240,611,547),577=>array(69,0,765,729),578=>array(56,0,582,560),579=>array(-35,0,695,729),580=>array(20,-14,804,729),581=>array(-66,0,698,729),582=>array(21,-93,681,822),583=>array(36,-93,638,640),584=>array(-166,-200,368,729),585=>array(-128,-216,368,760),586=>array(66,-200,863,741),587=>array(64,-216,747,560),588=>array(-12,0,685,729),589=>array(-33,0,543,560),590=>array(30,0,805,729),591=>array(10,-216,708,547),592=>array(66,-14,660,560),593=>array(45,-14,685,560),594=>array(-8,-14,632,560),595=>array(12,-14,651,760),596=>array(-7,-14,537,560),597=>array(48,-69,581,560),598=>array(45,-216,727,760),599=>array(25,-14,876,760),600=>array(22,-14,630,560),601=>array(42,-14,630,560),602=>array(38,-14,890,560),603=>array(27,-14,520,560),604=>array(-50,-11,509,560),605=>array(-50,-11,788,560),606=>array(54,-14,679,560),607=>array(-107,-216,388,547),608=>array(23,-216,896,760),609=>array(44,-216,706,547),610=>array(43,-14,573,546),611=>array(87,-211,692,547),612=>array(80,-21,674,547),613=>array(88,-214,703,546),614=>array(10,0,625,760),615=>array(31,-216,646,760),616=>array(52,0,448,760),617=>array(74,-1,326,547),618=>array(31,0,515,547),619=>array(70,0,488,760),620=>array(93,0,613,760),621=>array(32,-216,356,760),622=>array(31,-215,788,760),623=>array(69,-14,1013,546),624=>array(88,-209,1032,546),625=>array(49,-216,994,560),626=>array(-160,-216,665,560),627=>array(50,-216,749,560),628=>array(-32,0,613,547),629=>array(36,-14,651,560),630=>array(43,-1,871,547),631=>array(-9,0,580,574),632=>array(60,-208,729,760),633=>array(31,-13,544,547),634=>array(10,-13,565,760),635=>array(50,-216,607,547),636=>array(9,-208,563,560),637=>array(51,-216,564,560),638=>array(31,0,583,547),639=>array(99,0,499,547),640=>array(-32,0,509,547),641=>array(-32,0,613,547),642=>array(28,-216,581,560),643=>array(-126,-216,519,760),644=>array(-106,-216,539,760),645=>array(137,-216,486,560),646=>array(-97,-217,655,760),647=>array(-25,-155,441,547),648=>array(48,-216,514,702),649=>array(74,-14,845,547),650=>array(22,-51,690,547),651=>array(74,-1,626,547),652=>array(-38,0,584,547),653=>array(-18,0,836,547),654=>array(-62,0,620,763),655=>array(53,0,648,547),656=>array(13,-216,651,547),657=>array(-1,-69,599,547),658=>array(-23,-215,608,547),659=>array(25,-215,608,547),660=>array(59,0,546,759),661=>array(57,0,592,759),662=>array(-31,0,504,759),663=>array(-5,-208,612,759),664=>array(50,-14,800,742),665=>array(31,0,593,547),666=>array(31,-14,665,560),667=>array(22,0,768,760),668=>array(28,0,658,547),669=>array(-235,-217,354,760),670=>array(73,-213,758,547),671=>array(31,0,473,547),672=>array(44,-208,895,760),673=>array(-3,0,546,759),674=>array(57,0,592,759),675=>array(25,-14,1142,760),676=>array(45,-215,1161,760),677=>array(29,-55,1145,760),678=>array(27,0,926,702),679=>array(42,-216,872,760),680=>array(34,-69,923,702),681=>array(48,-216,990,760),682=>array(10,0,808,760),683=>array(10,0,764,760),684=>array(20,0,631,641),685=>array(-31,86,399,641),686=>array(-18,-214,682,760),687=>array(-16,-216,724,760),688=>array(12,326,401,751),689=>array(12,326,400,751),690=>array(-75,205,219,751),691=>array(23,326,344,640),692=>array(24,319,344,632),693=>array(35,205,392,632),694=>array(-16,326,388,632),695=>array(52,326,599,632),696=>array(22,205,447,632),697=>array(78,557,218,800),698=>array(78,557,437,800),699=>array(113,418,389,729),700=>array(73,418,348,729),701=>array(198,616,347,856),702=>array(168,481,334,760),703=>array(159,481,325,760),704=>array(43,326,348,751),705=>array(35,326,374,751),706=>array(184,517,463,843),707=>array(161,517,440,843),708=>array(125,561,452,800),709=>array(172,561,499,800),710=>array(106,616,483,800),711=>array(151,616,528,800),712=>array(81,488,226,759),713=>array(155,668,481,760),714=>array(227,616,539,800),715=>array(131,616,371,800),716=>array(81,-81,226,190),717=>array(-11,-185,315,-93),718=>array(131,-238,371,-54),719=>array(227,-238,539,-54),720=>array(-8,0,299,547),721=>array(63,361,264,547),722=>array(126,269,292,547),723=>array(118,269,284,547),724=>array(116,238,353,458),725=>array(145,238,382,458),726=>array(46,119,370,427),727=>array(46,229,282,317),728=>array(166,639,496,784),729=>array(239,654,397,774),730=>array(184,605,462,883),731=>array(73,-196,284,0),732=>array(133,638,500,778),733=>array(143,616,563,800),734=>array(-12,213,347,524),735=>array(163,616,474,800),736=>array(36,213,458,637),737=>array(12,326,207,751),738=>array(11,318,355,640),739=>array(-20,326,427,632),740=>array(35,326,374,751),741=>array(146,0,471,693),742=>array(117,0,471,693),743=>array(87,0,471,693),744=>array(58,0,471,693),745=>array(29,0,471,693),748=>array(14,-260,340,-21),749=>array(143,605,492,822),750=>array(73,418,612,729),755=>array(91,-240,369,38),759=>array(88,-221,455,-109),768=>array(-259,616,-19,800),769=>array(-160,616,152,800),770=>array(-287,616,90,800),771=>array(-257,638,110,778),772=>array(-235,668,91,760),773=>array(-346,663,174,755),774=>array(-221,639,109,784),775=>array(-184,617,18,760),776=>array(-238,654,94,774),777=>array(-363,616,-117,843),778=>array(-200,605,78,883),779=>array(-244,616,176,800),780=>array(-236,616,141,800),781=>array(-130,615,4,832),782=>array(-223,615,97,832),783=>array(-279,616,70,800),784=>array(-221,642,109,882),785=>array(-250,639,80,784),786=>array(-264,418,-34,563),787=>array(-313,595,-130,844),788=>array(-288,595,-130,844),789=>array(-102,616,102,800),790=>array(-474,-276,-233,-93),791=>array(-406,-276,-94,-93),792=>array(-388,-240,-188,-6),793=>array(-318,-240,-118,-6),794=>array(-216,658,73,929),795=>array(-132,361,83,570),796=>array(-331,-240,-193,-11),797=>array(-403,-240,-114,-59),798=>array(-389,-240,-100,-59),799=>array(-378,-240,-128,-6),800=>array(-296,-202,-7,-110),801=>array(-514,-216,-105,117),802=>array(-310,-216,13,117),803=>array(-412,-212,-253,-92),804=>array(-442,-212,-110,-92),805=>array(-366,-240,-136,-11),806=>array(-392,-236,-162,-91),807=>array(-478,-196,-241,0),808=>array(-427,-196,-216,0),809=>array(-363,-310,-228,-93),810=>array(-422,-237,-80,-54),811=>array(-477,-239,-75,-94),812=>array(-414,-240,-37,-57),813=>array(-458,-240,-82,-57),814=>array(-424,-239,-94,-94),815=>array(-491,-240,-161,-95),816=>array(-480,-234,-113,-94),817=>array(-440,-185,-114,-93),818=>array(-565,-236,-28,-143),819=>array(-568,-236,-4,-9),820=>array(-625,212,1,415),821=>array(-480,214,-84,309),822=>array(-847,214,-77,309),823=>array(-709,-46,4,594),824=>array(-893,-36,43,765),825=>array(-308,-240,-170,-11),826=>array(-422,-238,-80,-55),827=>array(-355,-241,-75,-6),828=>array(-501,-239,-100,-94),829=>array(-392,562,-110,819),830=>array(-292,595,-101,867),831=>array(-510,528,10,755),832=>array(-259,616,-19,800),833=>array(-160,616,152,800),834=>array(-257,638,110,778),835=>array(-313,595,-130,844),836=>array(-344,654,94,978),837=>array(-365,-208,-244,-45),838=>array(-418,639,-82,786),839=>array(-378,-226,-122,-35),840=>array(-398,-240,-102,-47),841=>array(-363,-240,-111,-21),842=>array(-434,616,-68,800),843=>array(-434,567,-66,850),844=>array(-438,573,-31,835),845=>array(-459,-230,-41,-30),846=>array(-371,-240,-141,-45),847=>array(-321,610,-152,888),849=>array(-321,610,-152,888),850=>array(-250,604,80,882),851=>array(-378,-240,-124,-9),855=>array(-348,610,-179,888),856=>array(0,654,159,774),858=>array(-445,-240,-58,-11),860=>array(-471,-237,419,-79),861=>array(-278,802,613,960),862=>array(-291,797,618,889),863=>array(-481,-185,427,-93),864=>array(-291,756,459,894),865=>array(-278,769,613,927),866=>array(-533,-230,376,-30),880=>array(21,0,623,729),881=>array(31,0,494,547),882=>array(88,0,1001,729),883=>array(88,0,815,729),884=>array(78,557,218,800),885=>array(54,-208,242,35),886=>array(21,0,816,729),887=>array(31,0,670,547),890=>array(132,-208,253,-45),891=>array(-7,-14,537,560),892=>array(37,-14,581,560),893=>array(-7,-14,537,560),894=>array(-35,-142,323,547),900=>array(216,616,528,800),901=>array(152,654,589,978),902=>array(-42,0,714,800),903=>array(84,253,297,442),904=>array(22,0,831,800),905=>array(28,0,986,800),906=>array(25,0,521,800),908=>array(28,-14,851,800),910=>array(20,0,1067,800),911=>array(-1,0,855,800),912=>array(50,-19,516,978),913=>array(-65,0,691,729),914=>array(21,0,699,729),915=>array(21,0,681,729),916=>array(-66,0,698,729),917=>array(21,0,670,729),918=>array(-26,0,740,729),919=>array(21,0,816,729),920=>array(40,-14,810,742),921=>array(21,0,351,729),922=>array(21,0,837,729),923=>array(-66,0,698,729),924=>array(21,0,974,729),925=>array(21,0,816,729),926=>array(27,0,619,729),927=>array(36,-14,814,742),928=>array(21,0,816,729),929=>array(21,0,719,729),931=>array(21,0,670,729),932=>array(48,0,748,729),933=>array(63,0,809,729),934=>array(43,0,806,729),935=>array(-51,0,812,729),936=>array(78,0,866,729),937=>array(-45,0,812,742),938=>array(21,0,450,927),939=>array(63,0,809,927),940=>array(38,-12,692,800),941=>array(27,-14,567,800),942=>array(50,-208,664,800),943=>array(42,-19,436,800),944=>array(54,-10,660,978),945=>array(38,-12,692,559),946=>array(-11,-208,660,773),947=>array(66,-208,740,547),948=>array(16,-14,634,768),949=>array(27,-14,520,560),950=>array(32,-208,627,760),951=>array(50,-208,664,560),952=>array(28,-11,659,768),953=>array(42,-19,313,547),954=>array(31,0,679,547),955=>array(-44,0,529,760),956=>array(-27,-209,670,547),957=>array(68,0,653,547),958=>array(26,-208,627,760),959=>array(36,-14,651,560),960=>array(73,-19,787,547),961=>array(9,-208,699,562),962=>array(55,-208,595,560),963=>array(37,-14,781,547),964=>array(52,-19,667,547),965=>array(54,-10,645,547),966=>array(76,-208,752,552),967=>array(-48,-208,693,547),968=>array(79,-208,797,547),969=>array(33,-13,834,547),970=>array(50,-19,407,774),971=>array(54,-10,645,774),972=>array(36,-14,651,800),973=>array(54,-10,645,800),974=>array(33,-13,834,800),975=>array(41,-208,860,729),976=>array(55,-11,601,768),977=>array(46,-11,612,768),978=>array(63,0,751,729),979=>array(22,0,989,800),980=>array(63,0,751,927),981=>array(60,-208,729,760),982=>array(33,-13,897,547),983=>array(38,-188,743,547),984=>array(68,-208,818,742),985=>array(62,-208,663,560),986=>array(70,-208,769,729),987=>array(63,-208,614,547),988=>array(21,0,670,729),989=>array(-146,-208,525,760),990=>array(21,2,682,729),991=>array(68,0,585,759),992=>array(102,-208,825,742),993=>array(-15,-180,500,559),994=>array(33,-213,1048,729),995=>array(81,-208,797,547),996=>array(37,-208,811,742),997=>array(34,-208,683,560),998=>array(21,-213,861,729),999=>array(-17,-14,736,575),1000=>array(-29,-208,721,745),1001=>array(-16,-208,626,560),1002=>array(-14,0,807,742),1003=>array(-7,0,674,560),1004=>array(26,-14,791,758),1005=>array(75,-14,739,758),1006=>array(23,-208,689,729),1007=>array(42,-208,614,726),1008=>array(19,-6,723,547),1009=>array(50,-216,690,560),1010=>array(37,-14,581,560),1011=>array(-128,-216,354,760),1012=>array(36,-14,814,742),1013=>array(67,-14,602,560),1014=>array(-26,-14,509,560),1015=>array(21,0,695,729),1016=>array(-10,-208,677,760),1017=>array(36,-14,724,742),1018=>array(21,0,974,729),1019=>array(0,-208,723,547),1020=>array(-31,-208,689,560),1021=>array(-13,-14,670,742),1022=>array(36,-14,724,742),1023=>array(-13,-14,670,742),1024=>array(21,0,670,927),1025=>array(21,0,670,927),1026=>array(67,-200,798,729),1027=>array(21,0,681,927),1028=>array(41,-14,733,742),1029=>array(15,-14,665,742),1030=>array(21,0,351,729),1031=>array(21,0,468,927),1032=>array(-166,-200,351,729),1033=>array(-25,0,1081,729),1034=>array(21,0,1039,729),1035=>array(48,0,778,729),1036=>array(21,0,857,927),1037=>array(21,0,816,927),1038=>array(77,0,812,927),1039=>array(36,-157,831,729),1040=>array(-65,0,691,729),1041=>array(21,0,714,729),1042=>array(21,0,699,729),1043=>array(21,0,681,729),1044=>array(-26,-157,813,729),1045=>array(21,0,670,729),1046=>array(-56,0,1249,729),1047=>array(-0,-14,668,742),1048=>array(21,0,816,729),1049=>array(21,0,816,927),1050=>array(21,0,857,729),1051=>array(-25,0,810,729),1052=>array(21,0,974,729),1053=>array(21,0,816,729),1054=>array(36,-14,814,742),1055=>array(21,0,816,729),1056=>array(21,0,719,729),1057=>array(36,-14,724,742),1058=>array(48,0,748,729),1059=>array(77,0,812,729),1060=>array(44,0,950,729),1061=>array(-51,0,812,729),1062=>array(36,-157,840,729),1063=>array(100,0,787,729),1064=>array(21,0,1214,729),1065=>array(36,-157,1238,729),1066=>array(92,0,869,729),1067=>array(21,0,1016,729),1068=>array(21,0,671,729),1069=>array(1,-14,693,742),1070=>array(21,-14,1129,742),1071=>array(-7,0,749,729),1072=>array(17,-14,611,560),1073=>array(24,-14,640,792),1074=>array(31,0,593,547),1075=>array(28,0,549,547),1076=>array(-10,-138,736,547),1077=>array(36,-14,640,560),1078=>array(-39,0,1015,547),1079=>array(-1,-14,535,560),1080=>array(31,0,670,547),1081=>array(31,0,670,765),1082=>array(31,0,698,547),1083=>array(2,0,702,547),1084=>array(28,0,784,547),1085=>array(28,0,658,547),1086=>array(36,-14,651,560),1087=>array(28,0,658,547),1088=>array(-10,-208,677,560),1089=>array(37,-14,581,560),1090=>array(34,0,626,547),1091=>array(0,-216,687,547),1092=>array(46,-208,945,760),1093=>array(-41,0,671,547),1094=>array(44,-138,682,547),1095=>array(80,0,626,547),1096=>array(31,0,1025,547),1097=>array(44,-138,1047,547),1098=>array(52,0,695,547),1099=>array(31,0,877,547),1100=>array(31,0,572,547),1101=>array(17,-14,557,560),1102=>array(31,-14,936,560),1103=>array(-22,0,613,547),1104=>array(36,-14,640,803),1105=>array(36,-14,640,774),1106=>array(52,-216,648,760),1107=>array(28,0,604,803),1108=>array(36,-14,576,560),1109=>array(10,-14,560,560),1110=>array(31,0,354,760),1111=>array(31,0,405,774),1112=>array(-128,-216,354,760),1113=>array(-9,0,926,547),1114=>array(31,0,896,547),1115=>array(31,0,622,760),1116=>array(31,0,698,803),1117=>array(31,0,670,803),1118=>array(0,-216,687,765),1119=>array(44,-138,673,547),1120=>array(33,-14,1048,729),1121=>array(33,-13,834,547),1122=>array(77,0,770,729),1123=>array(36,0,658,731),1124=>array(21,-14,1011,742),1125=>array(31,-14,810,560),1126=>array(-63,0,914,729),1127=>array(-28,0,754,547),1128=>array(21,0,1280,729),1129=>array(31,0,1044,547),1130=>array(-21,0,851,729),1131=>array(-13,0,683,547),1132=>array(21,0,1188,729),1133=>array(28,0,1003,547),1134=>array(-25,-208,640,938),1135=>array(-24,-193,525,756),1136=>array(74,0,1126,729),1137=>array(62,-208,1100,759),1138=>array(36,-14,814,742),1139=>array(36,-14,651,560),1140=>array(75,0,896,742),1141=>array(60,0,732,560),1142=>array(75,0,896,930),1143=>array(60,0,732,800),1144=>array(57,-216,1186,742),1145=>array(63,-216,1098,565),1146=>array(40,-14,1033,742),1147=>array(35,-14,823,560),1148=>array(37,-14,1348,928),1149=>array(31,-13,1129,828),1150=>array(33,-14,1048,910),1151=>array(33,-13,834,746),1152=>array(40,-208,732,742),1153=>array(33,-208,573,560),1154=>array(19,-33,530,488),1155=>array(-608,606,-79,822),1156=>array(-427,638,-12,784),1157=>array(-356,595,-213,785),1158=>array(-384,595,-213,785),1159=>array(-811,592,1,788),1160=>array(-1067,-179,388,928),1161=>array(-973,-280,323,1022),1162=>array(21,-208,890,927),1163=>array(28,-208,748,765),1164=>array(21,0,671,729),1165=>array(27,0,549,702),1166=>array(21,0,717,729),1167=>array(-10,-208,670,560),1168=>array(21,0,710,878),1169=>array(28,0,579,700),1170=>array(17,0,709,729),1171=>array(10,0,572,547),1172=>array(21,-200,708,729),1173=>array(28,-216,554,547),1174=>array(-41,-157,1264,729),1175=>array(-25,-138,1028,547),1176=>array(-0,-196,668,742),1177=>array(-1,-196,535,560),1178=>array(36,-157,873,729),1179=>array(44,-138,711,547),1180=>array(21,0,857,729),1181=>array(31,0,698,547),1182=>array(21,0,857,729),1183=>array(10,0,677,760),1184=>array(68,0,1055,729),1185=>array(52,0,846,547),1186=>array(36,-157,904,729),1187=>array(44,-138,765,547),1188=>array(21,0,1146,729),1189=>array(28,0,897,547),1190=>array(21,-200,1174,729),1191=>array(28,-216,902,547),1192=>array(40,-14,875,743),1193=>array(40,-14,798,560),1194=>array(36,-196,724,742),1195=>array(37,-196,581,560),1196=>array(63,-157,763,729),1197=>array(49,-138,642,547),1198=>array(63,0,809,729),1199=>array(66,-216,688,547),1200=>array(61,0,805,729),1201=>array(63,-216,708,547),1202=>array(-37,-157,827,729),1203=>array(-25,-138,687,547),1204=>array(63,-157,1060,729),1205=>array(49,-138,957,547),1206=>array(129,-157,876,729),1207=>array(103,-138,730,547),1208=>array(114,0,787,729),1209=>array(87,0,624,547),1210=>array(106,0,793,729),1211=>array(31,0,654,760),1212=>array(42,-14,984,742),1213=>array(30,-14,769,560),1214=>array(42,-184,984,742),1215=>array(30,-161,769,560),1216=>array(21,0,351,729),1217=>array(-56,0,1249,927),1218=>array(-39,0,1015,784),1219=>array(21,-200,840,729),1220=>array(31,-216,679,547),1221=>array(-46,-208,885,729),1222=>array(-38,-208,746,547),1223=>array(21,-200,816,729),1224=>array(28,-216,658,547),1225=>array(21,-208,889,729),1226=>array(28,-208,748,547),1227=>array(129,-157,803,729),1228=>array(103,-138,640,547),1229=>array(21,-208,1047,729),1230=>array(28,-208,874,547),1231=>array(31,0,354,760),1232=>array(-65,0,691,936),1233=>array(17,-14,611,772),1234=>array(-65,0,691,927),1235=>array(17,-14,611,774),1236=>array(-78,0,1072,729),1237=>array(17,-14,1008,560),1238=>array(21,0,670,927),1239=>array(36,-14,640,784),1240=>array(36,-14,819,742),1241=>array(42,-14,630,560),1242=>array(36,-14,819,927),1243=>array(42,-14,630,774),1244=>array(-56,0,1249,927),1245=>array(-39,0,1015,774),1246=>array(-0,-14,668,927),1247=>array(-1,-14,540,774),1248=>array(21,-33,743,729),1249=>array(-23,-215,608,547),1250=>array(21,0,816,914),1251=>array(31,0,670,763),1252=>array(21,0,816,927),1253=>array(31,0,670,774),1254=>array(36,-14,814,927),1255=>array(36,-14,651,774),1256=>array(36,-14,814,742),1257=>array(36,-14,651,560),1258=>array(36,-14,814,927),1259=>array(36,-14,651,774),1260=>array(1,-14,693,927),1261=>array(17,-14,557,774),1262=>array(77,0,812,914),1263=>array(0,-216,687,763),1264=>array(77,0,812,927),1265=>array(0,-216,687,774),1266=>array(77,0,812,927),1267=>array(0,-216,687,800),1268=>array(100,0,787,927),1269=>array(80,0,626,774),1270=>array(36,-157,696,729),1271=>array(44,-138,565,547),1272=>array(21,0,1016,927),1273=>array(31,0,877,774),1274=>array(38,-216,730,729),1275=>array(31,-217,593,547),1276=>array(-32,-200,832,729),1277=>array(-17,-216,694,547),1278=>array(-52,0,812,729),1279=>array(-38,0,673,547),1280=>array(37,0,741,729),1281=>array(17,0,575,547),1282=>array(35,-14,1116,729),1283=>array(16,-14,868,547),1284=>array(138,-14,1063,742),1285=>array(104,-14,854,560),1286=>array(138,-208,760,742),1287=>array(104,-208,634,560),1288=>array(-48,-14,1185,729),1289=>array(-38,-14,950,547),1290=>array(22,-14,1222,729),1291=>array(28,-14,957,547),1292=>array(41,-14,783,742),1293=>array(35,-14,573,546),1294=>array(47,-14,881,729),1295=>array(34,-14,727,547),1296=>array(37,-14,652,742),1297=>array(27,-14,520,560),1298=>array(-5,-200,829,729),1299=>array(23,-216,723,547),1300=>array(-25,0,1327,729),1301=>array(2,0,1096,547),1302=>array(21,0,1106,729),1303=>array(-10,-208,1008,560),1304=>array(-7,0,1068,729),1305=>array(-22,-14,965,560),1306=>array(36,-146,814,742),1307=>array(36,-208,682,560),1308=>array(107,0,1143,729),1309=>array(87,0,927,547),1310=>array(21,0,857,729),1311=>array(31,0,698,547),1312=>array(-25,-200,1167,729),1313=>array(2,-216,946,547),1314=>array(21,-200,1173,729),1315=>array(28,-216,902,547),1316=>array(36,-157,905,729),1317=>array(44,-138,764,547),1329=>array(75,-38,849,729),1330=>array(21,0,741,743),1331=>array(50,0,805,743),1332=>array(37,0,809,743),1333=>array(78,-14,763,729),1334=>array(18,0,753,743),1335=>array(21,0,730,729),1336=>array(21,0,741,743),1337=>array(21,-13,1020,742),1338=>array(11,-14,844,729),1339=>array(21,0,705,729),1340=>array(21,0,566,729),1341=>array(21,-14,1021,729),1342=>array(93,-12,864,741),1343=>array(97,0,746,729),1344=>array(-16,-46,694,729),1345=>array(33,-48,753,743),1346=>array(32,0,748,743),1347=>array(-22,0,733,735),1348=>array(78,-14,938,729),1349=>array(42,-14,709,743),1350=>array(46,-14,763,729),1351=>array(49,-14,762,729),1352=>array(21,0,734,743),1353=>array(51,-48,724,743),1354=>array(32,0,890,743),1355=>array(7,0,742,743),1356=>array(21,0,863,743),1357=>array(68,-14,791,729),1358=>array(35,0,748,729),1359=>array(37,-14,703,743),1360=>array(21,0,741,743),1361=>array(42,-14,709,743),1362=>array(21,0,666,729),1363=>array(24,0,901,729),1364=>array(-49,0,741,743),1365=>array(36,-14,813,742),1366=>array(30,-14,909,729),1369=>array(159,481,325,760),1370=>array(73,418,349,729),1371=>array(120,616,500,800),1372=>array(115,595,590,893),1373=>array(-1,616,315,849),1374=>array(117,586,652,878),1375=>array(164,618,622,893),1377=>array(74,-13,1018,547),1378=>array(-10,-208,654,560),1379=>array(43,-208,748,559),1380=>array(31,-208,752,560),1381=>array(59,-14,683,760),1382=>array(38,-208,708,559),1383=>array(31,0,644,760),1384=>array(-10,-208,653,560),1385=>array(-10,-208,843,560),1386=>array(43,-14,830,760),1387=>array(-10,-208,646,760),1388=>array(-10,-208,385,547),1389=>array(-10,-208,1063,760),1390=>array(40,-14,719,760),1391=>array(67,-208,683,760),1392=>array(31,0,646,760),1393=>array(10,-13,593,760),1394=>array(31,-208,711,560),1395=>array(52,-13,729,768),1396=>array(67,-13,871,760),1397=>array(-128,-216,313,547),1398=>array(2,-13,683,760),1399=>array(-60,-208,520,560),1400=>array(31,0,646,560),1401=>array(-67,-208,366,547),1402=>array(59,-208,1012,547),1403=>array(-26,-208,605,560),1404=>array(31,0,665,560),1405=>array(67,-13,683,547),1406=>array(67,-208,724,760),1407=>array(63,-13,975,560),1408=>array(-10,-208,646,560),1409=>array(19,-216,681,559),1410=>array(31,0,498,547),1411=>array(63,-208,975,760),1412=>array(-151,-208,671,560),1413=>array(37,-14,652,560),1414=>array(31,-190,865,760),1415=>array(67,-14,868,760),1417=>array(41,0,323,547),1418=>array(96,179,430,359),1456=>array(275,-229,416,-10),1457=>array(149,-229,523,-10),1458=>array(140,-229,513,-10),1459=>array(127,-229,513,-10),1460=>array(287,-171,404,-73),1461=>array(213,-171,477,-73),1462=>array(237,-229,477,-10),1463=>array(89,-171,451,0),1464=>array(109,-217,446,0),1465=>array(-34,625,83,723),1466=>array(-34,625,83,723),1467=>array(190,-239,525,-5),1468=>array(293,225,411,322),1469=>array(277,-217,413,-22),1470=>array(40,413,375,555),1471=>array(132,547,469,710),1472=>array(26,-98,345,645),1473=>array(816,613,934,710),1474=>array(204,613,321,710),1475=>array(45,0,326,547),1478=>array(25,0,490,547),1479=>array(188,-229,525,-10),1488=>array(104,0,730,547),1489=>array(43,0,590,547),1490=>array(44,-9,428,547),1491=>array(126,0,651,547),1492=>array(100,0,661,547),1493=>array(91,0,359,547),1494=>array(94,0,464,547),1495=>array(91,0,654,547),1496=>array(142,-13,676,553),1497=>array(98,164,334,547),1498=>array(126,-240,549,547),1499=>array(43,0,570,547),1500=>array(126,0,633,711),1501=>array(91,0,663,547),1502=>array(84,0,690,554),1503=>array(44,-240,359,547),1504=>array(43,0,430,547),1505=>array(144,-13,678,547),1506=>array(35,-101,682,547),1507=>array(158,-240,642,547),1508=>array(91,0,656,547),1509=>array(118,-240,649,548),1510=>array(54,0,670,547),1511=>array(51,-240,767,546),1512=>array(126,0,575,547),1513=>array(89,0,856,547),1514=>array(11,-4,650,547),1520=>array(91,0,680,547),1521=>array(98,0,680,547),1522=>array(98,164,655,547),1523=>array(66,361,378,547),1524=>array(66,361,644,547),3647=>array(2,-147,642,760),3713=>array(14,-14,752,560),3714=>array(12,-14,727,560),3716=>array(13,-14,699,558),3719=>array(2,-241,548,593),3720=>array(44,0,711,561),3722=>array(45,-269,747,584),3725=>array(14,-24,767,610),3732=>array(18,-14,671,593),3733=>array(17,-19,670,603),3734=>array(35,-240,729,593),3735=>array(-1,-14,784,560),3737=>array(-9,-33,735,593),3738=>array(13,-15,716,613),3739=>array(-1,-15,739,760),3740=>array(29,-12,952,665),3741=>array(24,-14,837,760),3742=>array(50,-14,825,604),3743=>array(35,-14,848,760),3745=>array(-7,-14,826,547),3746=>array(-0,-23,789,760),3747=>array(18,-10,768,615),3749=>array(9,-33,717,593),3751=>array(5,-33,668,593),3754=>array(8,-21,860,724),3755=>array(32,-21,961,620),3757=>array(27,-20,689,606),3758=>array(15,-14,880,698),3759=>array(79,-259,932,648),3760=>array(5,27,682,606),3761=>array(-649,610,-29,896),3762=>array(51,0,578,593),3763=>array(-479,0,578,875),3764=>array(-656,622,-63,950),3765=>array(-656,633,-1,962),3766=>array(-656,622,-63,950),3767=>array(-656,633,-1,962),3768=>array(-413,-385,-165,-55),3769=>array(-479,-316,-150,-28),3771=>array(-657,610,-33,896),3772=>array(-689,-311,17,-48),3773=>array(-25,-220,758,776),3776=>array(53,-13,469,561),3777=>array(53,-13,843,561),3778=>array(25,-14,486,936),3779=>array(67,-14,640,879),3780=>array(47,-35,552,809),3782=>array(33,-240,731,582),3784=>array(-431,659,-279,844),3785=>array(-636,622,-19,918),3786=>array(-672,621,37,965),3787=>array(-530,612,-178,917),3788=>array(-511,603,194,866),3789=>array(-479,668,-229,875),3792=>array(66,-29,723,563),3793=>array(55,-139,731,586),3794=>array(1,-80,612,711),3795=>array(-49,-14,953,981),3796=>array(31,-156,647,711),3797=>array(31,-156,647,711),3798=>array(5,-14,962,950),3799=>array(36,-240,748,560),3800=>array(86,-269,766,582),3801=>array(38,-14,875,564),3804=>array(32,-21,1356,620),3805=>array(32,-21,1361,620),4256=>array(111,-14,929,819),4257=>array(139,-0,736,819),4258=>array(150,-138,672,828),4259=>array(97,-15,902,819),4260=>array(133,0,665,828),4261=>array(136,0,832,828),4262=>array(144,-14,752,819),4263=>array(117,-14,993,828),4264=>array(127,0,562,862),4265=>array(108,0,653,819),4266=>array(95,-14,834,820),4267=>array(89,-14,942,819),4268=>array(24,0,689,819),4269=>array(106,-157,886,829),4270=>array(141,-14,886,822),4271=>array(141,0,741,823),4272=>array(76,-15,969,820),4273=>array(83,-15,626,820),4274=>array(23,-0,685,828),4275=>array(106,-170,886,828),4276=>array(127,0,918,825),4277=>array(101,0,794,820),4278=>array(24,0,685,828),4279=>array(127,0,731,820),4280=>array(66,-14,736,820),4281=>array(24,0,632,819),4282=>array(113,-14,880,827),4283=>array(89,-15,926,820),4284=>array(23,-0,698,819),4285=>array(75,-15,648,828),4286=>array(23,-0,741,819),4287=>array(27,0,880,819),4288=>array(110,-14,901,820),4289=>array(24,0,647,820),4290=>array(78,-15,692,828),4291=>array(95,0,707,820),4292=>array(131,0,715,820),4293=>array(43,-14,833,828),4304=>array(76,-14,531,599),4305=>array(86,-14,552,823),4306=>array(31,-232,565,561),4307=>array(41,-225,826,557),4308=>array(26,-232,551,557),4309=>array(25,-232,562,557),4310=>array(75,-14,537,828),4311=>array(84,-14,821,557),4312=>array(75,0,556,557),4313=>array(24,-232,554,542),4314=>array(96,-225,1077,562),4315=>array(87,-14,622,828),4316=>array(89,-14,629,819),4317=>array(92,-0,808,557),4318=>array(78,-14,589,818),4319=>array(25,-232,604,560),4320=>array(91,0,816,830),4321=>array(92,-14,560,818),4322=>array(62,-232,664,670),4323=>array(47,-232,591,604),4324=>array(94,-232,844,558),4325=>array(25,-232,650,818),4326=>array(88,-225,815,557),4327=>array(25,-232,602,549),4328=>array(63,-14,609,828),4329=>array(39,0,561,828),4330=>array(65,-232,612,548),4331=>array(86,-14,659,818),4332=>array(91,-15,685,828),4333=>array(35,-232,616,818),4334=>array(95,-14,553,818),4335=>array(-7,-232,542,580),4336=>array(73,-15,602,823),4337=>array(79,-14,609,823),4338=>array(17,-146,543,557),4339=>array(25,-232,604,558),4340=>array(26,-232,618,828),4341=>array(65,-14,656,828),4342=>array(87,-232,842,557),4343=>array(29,-232,551,557),4344=>array(25,-232,548,549),4345=>array(93,-232,627,561),4346=>array(68,-111,558,557),4347=>array(29,0,446,500),4348=>array(124,400,424,828),5121=>array(76,0,840,729),5122=>array(-66,0,698,1050),5123=>array(-66,0,698,729),5124=>array(-66,0,698,928),5125=>array(21,0,843,729),5126=>array(21,0,843,928),5127=>array(21,0,843,927),5129=>array(21,0,843,729),5130=>array(62,0,884,729),5131=>array(62,0,884,928),5132=>array(80,0,1084,729),5133=>array(76,0,937,729),5134=>array(80,0,942,729),5135=>array(-66,0,937,729),5136=>array(80,0,942,928),5137=>array(-66,0,937,928),5138=>array(80,0,1087,729),5139=>array(21,0,1067,729),5140=>array(80,0,1087,928),5141=>array(21,0,1067,928),5142=>array(21,0,843,928),5143=>array(80,0,1128,729),5144=>array(62,0,1070,729),5145=>array(80,0,1128,928),5146=>array(62,0,1070,928),5147=>array(62,0,884,928),5149=>array(80,607,237,728),5150=>array(20,326,434,734),5151=>array(8,338,402,722),5152=>array(54,338,356,722),5153=>array(53,392,370,711),5154=>array(29,352,345,670),5155=>array(33,392,341,670),5156=>array(57,392,341,670),5157=>array(-2,327,552,749),5158=>array(21,326,454,734),5159=>array(80,304,237,424),5160=>array(53,494,346,569),5161=>array(53,392,346,670),5162=>array(75,392,368,693),5163=>array(76,0,1145,729),5164=>array(-66,0,917,729),5165=>array(21,0,1147,729),5166=>array(62,0,1229,729),5167=>array(76,0,840,729),5168=>array(-66,0,698,1050),5169=>array(-66,0,698,729),5170=>array(-66,0,698,928),5171=>array(2,0,824,729),5172=>array(2,0,824,928),5173=>array(2,0,824,927),5175=>array(2,0,824,729),5176=>array(51,0,873,729),5177=>array(51,0,873,928),5178=>array(80,0,1084,729),5179=>array(76,0,937,729),5180=>array(80,0,942,729),5181=>array(-66,0,937,729),5182=>array(80,0,942,928),5183=>array(-66,0,937,928),5184=>array(80,0,1068,729),5185=>array(2,0,1067,729),5186=>array(80,0,1068,928),5187=>array(2,0,1067,928),5188=>array(80,0,1117,729),5189=>array(51,0,1070,729),5190=>array(80,0,1117,928),5191=>array(51,0,1070,928),5192=>array(51,0,873,927),5193=>array(48,326,559,727),5194=>array(20,326,212,734),5196=>array(79,-14,792,729),5197=>array(20,0,733,1050),5198=>array(20,0,733,743),5199=>array(20,0,733,928),5200=>array(2,0,763,729),5201=>array(2,0,763,928),5202=>array(2,0,763,927),5204=>array(2,0,763,729),5205=>array(52,0,813,729),5206=>array(52,0,813,928),5207=>array(80,-14,1037,729),5208=>array(79,-14,976,729),5209=>array(80,0,977,743),5210=>array(20,0,976,743),5211=>array(80,0,977,928),5212=>array(20,0,976,928),5213=>array(80,0,1007,729),5214=>array(2,0,982,729),5215=>array(80,0,1007,928),5216=>array(2,0,982,928),5217=>array(80,0,1057,729),5218=>array(52,0,979,729),5219=>array(80,0,1057,928),5220=>array(52,0,979,928),5221=>array(52,0,1057,729),5222=>array(59,326,466,733),5223=>array(79,-14,989,734),5224=>array(20,0,989,743),5225=>array(2,0,1007,734),5226=>array(52,0,1000,734),5227=>array(64,0,675,743),5228=>array(20,0,726,1050),5229=>array(20,0,726,743),5230=>array(20,0,726,928),5231=>array(18,-14,724,729),5232=>array(18,-14,731,928),5233=>array(18,-14,818,927),5234=>array(68,-14,679,729),5235=>array(68,-14,679,928),5236=>array(80,0,960,743),5237=>array(64,0,902,743),5238=>array(80,0,962,743),5239=>array(20,0,902,743),5240=>array(80,0,962,928),5241=>array(20,0,902,928),5242=>array(80,-14,1009,729),5243=>array(18,-14,902,729),5244=>array(80,-14,1017,928),5245=>array(18,-14,902,928),5246=>array(80,-14,916,729),5247=>array(68,-14,902,729),5248=>array(80,-14,916,928),5249=>array(68,-14,902,928),5250=>array(52,-14,916,729),5251=>array(47,319,432,734),5252=>array(43,319,485,734),5253=>array(64,0,921,743),5254=>array(20,0,921,743),5255=>array(18,-14,921,734),5256=>array(68,-14,921,734),5257=>array(64,0,675,743),5258=>array(20,0,726,1050),5259=>array(20,0,726,743),5260=>array(20,0,726,928),5261=>array(18,-14,724,729),5262=>array(18,-14,737,928),5263=>array(18,-14,824,927),5264=>array(68,-14,679,729),5265=>array(68,-14,679,928),5266=>array(80,0,960,743),5267=>array(64,0,902,743),5268=>array(80,0,1011,743),5269=>array(20,0,902,743),5270=>array(80,0,1011,928),5271=>array(20,0,902,928),5272=>array(80,-14,1009,729),5273=>array(18,-14,902,729),5274=>array(80,-14,1023,928),5275=>array(18,-14,902,928),5276=>array(80,-14,964,729),5277=>array(68,-14,902,729),5278=>array(80,-14,964,928),5279=>array(68,-14,902,928),5280=>array(52,-14,964,729),5281=>array(47,319,432,734),5282=>array(46,319,485,734),5283=>array(71,0,605,729),5284=>array(21,0,670,1050),5285=>array(21,0,670,729),5286=>array(21,0,670,928),5287=>array(-43,0,605,729),5288=>array(-43,0,621,928),5289=>array(-43,0,708,927),5290=>array(21,0,556,729),5291=>array(21,0,556,928),5292=>array(80,0,860,729),5293=>array(71,0,782,729),5294=>array(80,0,907,729),5295=>array(21,0,801,729),5296=>array(80,0,907,928),5297=>array(21,0,801,928),5298=>array(80,0,860,729),5299=>array(-43,0,801,729),5300=>array(80,0,875,928),5301=>array(-43,0,801,928),5302=>array(80,0,792,729),5303=>array(21,0,801,729),5304=>array(80,0,792,928),5305=>array(21,0,801,928),5306=>array(52,0,792,729),5307=>array(21,326,355,734),5308=>array(55,326,532,733),5309=>array(20,326,420,734),5312=>array(103,-14,946,468),5313=>array(41,-14,951,781),5314=>array(41,-14,951,468),5315=>array(41,-14,951,667),5316=>array(-20,0,891,482),5317=>array(-20,0,891,667),5318=>array(-20,0,891,667),5319=>array(42,0,885,482),5320=>array(42,0,885,667),5321=>array(80,-14,1196,468),5322=>array(103,-14,1175,468),5323=>array(80,0,1153,482),5324=>array(42,0,1156,482),5325=>array(80,0,1153,667),5326=>array(42,0,1156,667),5327=>array(42,0,885,667),5328=>array(61,477,593,742),5329=>array(43,319,481,734),5330=>array(34,477,607,742),5331=>array(102,0,945,468),5332=>array(39,0,949,781),5333=>array(39,0,949,468),5334=>array(39,0,949,667),5335=>array(-18,0,892,468),5336=>array(-18,0,892,667),5337=>array(-18,0,892,667),5338=>array(43,0,886,468),5339=>array(43,0,886,667),5340=>array(80,0,1188,468),5341=>array(102,0,1175,468),5342=>array(80,0,1245,468),5343=>array(39,0,1156,468),5344=>array(80,0,1245,667),5345=>array(39,0,1156,667),5346=>array(80,0,1189,468),5347=>array(-18,0,1142,468),5348=>array(80,0,1189,667),5349=>array(-18,0,1142,667),5350=>array(80,0,1181,468),5351=>array(43,0,1156,468),5352=>array(80,0,1181,667),5353=>array(43,0,1156,667),5354=>array(61,477,593,734),5356=>array(26,0,874,729),5357=>array(92,0,643,729),5358=>array(21,0,841,1050),5359=>array(21,0,760,729),5360=>array(21,0,773,928),5361=>array(-30,0,709,729),5362=>array(-30,0,717,928),5363=>array(-30,0,804,927),5364=>array(87,0,638,729),5365=>array(87,0,638,928),5366=>array(80,0,911,729),5367=>array(92,0,886,729),5368=>array(80,0,997,729),5369=>array(21,0,917,729),5370=>array(80,0,1010,928),5371=>array(21,0,917,928),5372=>array(80,0,977,729),5373=>array(-30,0,886,729),5374=>array(80,0,985,928),5375=>array(-30,0,886,928),5376=>array(80,0,875,729),5377=>array(87,0,917,729),5378=>array(80,0,875,928),5379=>array(87,0,917,928),5380=>array(52,0,875,729),5381=>array(57,326,406,734),5382=>array(28,319,413,742),5383=>array(20,326,477,734),5392=>array(65,-14,858,743),5393=>array(7,-14,917,743),5394=>array(7,-14,917,928),5395=>array(33,-14,1103,482),5396=>array(33,-14,1103,667),5397=>array(36,-14,1100,482),5398=>array(36,-14,1100,667),5399=>array(80,-14,1144,743),5400=>array(65,-14,1129,743),5401=>array(80,-14,1202,743),5402=>array(7,-14,1129,743),5403=>array(80,-14,1202,928),5404=>array(7,-14,1129,928),5405=>array(80,-14,1398,482),5406=>array(33,-14,1348,482),5407=>array(80,-14,1398,667),5408=>array(33,-14,1348,667),5409=>array(80,-14,1395,482),5410=>array(36,-14,1348,482),5411=>array(80,-14,1395,667),5412=>array(36,-14,1348,667),5413=>array(58,469,693,747),5414=>array(63,0,689,729),5415=>array(21,0,697,1050),5416=>array(21,0,697,729),5417=>array(21,0,697,928),5418=>array(79,0,755,729),5419=>array(79,0,772,928),5420=>array(79,0,859,927),5421=>array(87,0,713,729),5422=>array(87,0,713,928),5423=>array(80,0,916,729),5424=>array(63,0,931,729),5425=>array(80,0,934,729),5426=>array(21,0,923,729),5427=>array(80,0,934,928),5428=>array(21,0,923,928),5429=>array(80,0,982,729),5430=>array(79,0,931,729),5431=>array(80,0,1000,928),5432=>array(79,0,931,928),5433=>array(80,0,950,729),5434=>array(87,0,923,729),5435=>array(80,0,950,928),5436=>array(87,0,923,928),5437=>array(52,0,950,928),5438=>array(57,326,450,734),5440=>array(53,392,346,670),5441=>array(20,326,487,734),5442=>array(91,-14,996,468),5443=>array(103,-14,988,468),5444=>array(-20,0,885,482),5445=>array(45,0,930,781),5446=>array(45,0,930,482),5447=>array(45,0,930,667),5448=>array(21,0,716,729),5449=>array(21,0,716,928),5450=>array(21,0,667,729),5451=>array(65,0,712,729),5452=>array(65,0,712,928),5453=>array(17,0,712,729),5454=>array(80,0,982,928),5455=>array(65,0,887,928),5456=>array(74,326,478,727),5458=>array(2,0,849,729),5459=>array(99,0,838,743),5460=>array(2,-14,700,1050),5461=>array(2,-14,700,729),5462=>array(2,-14,700,928),5463=>array(51,0,873,663),5464=>array(51,0,873,928),5465=>array(69,0,896,663),5466=>array(69,0,896,928),5467=>array(80,0,1140,928),5468=>array(69,0,1070,928),5469=>array(52,311,568,675),5470=>array(68,-14,791,743),5471=>array(68,-14,772,743),5472=>array(40,-14,744,743),5473=>array(21,-14,744,743),5474=>array(40,-14,744,928),5475=>array(21,-14,744,928),5476=>array(2,0,769,729),5477=>array(2,0,769,928),5478=>array(47,0,811,729),5479=>array(47,0,811,928),5480=>array(80,0,1055,928),5481=>array(47,0,979,928),5482=>array(55,326,540,733),5492=>array(58,0,871,743),5493=>array(62,0,966,743),5494=>array(62,0,966,928),5495=>array(11,-14,915,729),5496=>array(11,-14,915,928),5497=>array(106,-14,919,729),5498=>array(106,-14,919,928),5499=>array(69,319,551,734),5500=>array(21,0,816,729),5501=>array(20,326,487,734),5502=>array(74,0,1220,1050),5503=>array(74,0,1220,743),5504=>array(74,0,1220,928),5505=>array(74,-14,1218,729),5506=>array(74,-14,1226,928),5507=>array(74,-14,1173,729),5508=>array(74,-14,1173,928),5509=>array(74,319,926,734),5514=>array(64,0,871,743),5515=>array(62,0,966,743),5516=>array(11,-14,916,729),5517=>array(106,-14,913,729),5518=>array(77,0,1573,1050),5519=>array(77,0,1573,743),5520=>array(77,0,1573,928),5521=>array(77,-14,1275,741),5522=>array(77,-14,1289,928),5523=>array(77,-14,1526,741),5524=>array(77,-14,1526,928),5525=>array(77,335,795,741),5526=>array(77,335,1220,741),5536=>array(16,0,939,709),5537=>array(16,0,939,709),5538=>array(-8,-242,916,468),5539=>array(-8,-242,916,667),5540=>array(66,-242,910,468),5541=>array(66,-242,910,667),5542=>array(74,344,606,734),5543=>array(62,0,739,729),5544=>array(-49,0,697,729),5545=>array(-49,0,697,928),5546=>array(79,0,825,729),5547=>array(79,0,825,928),5548=>array(37,0,714,729),5549=>array(37,0,714,928),5550=>array(36,326,450,734),5551=>array(22,-14,686,729),5598=>array(21,0,782,729),5601=>array(48,0,809,729),5702=>array(20,326,473,734),5703=>array(20,240,473,820),5742=>array(-20,0,427,306),5743=>array(74,0,1169,743),5744=>array(77,0,1522,743),5745=>array(77,0,1999,743),5746=>array(77,0,1999,928),5747=>array(77,-14,1701,741),5748=>array(77,-14,1672,928),5749=>array(77,-14,1952,741),5750=>array(77,-14,1952,928),7424=>array(-38,0,584,547),7425=>array(-53,0,800,547),7426=>array(42,-14,1021,560),7427=>array(-9,0,565,547),7428=>array(37,-14,581,560),7429=>array(31,-1,614,547),7430=>array(11,-1,611,547),7431=>array(39,0,526,547),7432=>array(27,-14,516,560),7433=>array(10,-213,333,547),7434=>array(-4,-14,471,547),7435=>array(31,0,716,547),7436=>array(-26,0,473,547),7437=>array(28,0,784,547),7438=>array(31,0,670,547),7439=>array(36,-14,651,560),7440=>array(-7,-14,537,560),7441=>array(42,-27,617,573),7442=>array(20,31,603,515),7443=>array(44,-28,619,579),7444=>array(42,-14,1046,560),7446=>array(15,273,616,560),7447=>array(72,-14,673,273),7448=>array(-2,0,533,547),7449=>array(-32,0,613,547),7450=>array(71,0,613,547),7451=>array(34,0,626,547),7452=>array(75,-14,662,547),7453=>array(32,10,685,560),7454=>array(39,11,896,561),7455=>array(-59,-238,715,560),7456=>array(63,0,678,547),7457=>array(87,0,927,547),7458=>array(-9,0,586,547),7459=>array(19,-14,588,547),7462=>array(31,0,552,547),7463=>array(-38,0,584,547),7464=>array(31,0,660,547),7465=>array(-2,0,533,547),7466=>array(98,0,751,547),7467=>array(2,0,702,547),7468=>array(-37,326,445,734),7469=>array(-40,326,670,734),7470=>array(18,326,436,734),7472=>array(18,326,490,734),7473=>array(18,326,417,734),7474=>array(18,326,424,734),7475=>array(31,318,489,742),7476=>array(18,326,509,734),7477=>array(18,326,216,734),7478=>array(-86,214,227,734),7479=>array(18,326,524,734),7480=>array(18,326,360,734),7481=>array(18,326,608,734),7482=>array(18,326,509,734),7483=>array(18,326,509,734),7484=>array(31,318,504,742),7485=>array(21,318,480,742),7486=>array(18,326,450,734),7487=>array(18,326,433,734),7488=>array(27,326,466,734),7489=>array(50,318,494,734),7490=>array(58,326,715,734),7491=>array(37,318,411,640),7492=>array(48,318,415,640),7493=>array(53,318,457,640),7494=>array(53,318,669,640),7495=>array(20,318,427,751),7496=>array(48,318,481,751),7497=>array(49,318,429,640),7498=>array(53,318,423,640),7499=>array(39,318,347,640),7500=>array(37,318,345,640),7501=>array(38,205,455,639),7502=>array(7,207,210,632),7503=>array(20,326,451,751),7504=>array(21,326,621,640),7505=>array(32,205,424,640),7506=>array(49,318,436,640),7507=>array(22,318,357,640),7508=>array(108,479,487,640),7509=>array(108,318,487,479),7510=>array(-6,209,427,640),7511=>array(72,326,365,719),7512=>array(42,318,433,632),7513=>array(55,332,466,640),7514=>array(47,318,642,632),7515=>array(83,326,471,632),7517=>array(-0,209,414,759),7518=>array(39,209,461,632),7519=>array(16,318,395,756),7520=>array(52,209,468,635),7521=>array(-25,209,432,632),7522=>array(12,0,205,425),7523=>array(23,0,344,313),7524=>array(42,-8,433,306),7525=>array(83,0,471,306),7526=>array(-0,-117,414,433),7527=>array(39,-117,461,306),7528=>array(-0,-117,427,314),7529=>array(52,-117,468,309),7530=>array(-25,-117,432,306),7543=>array(11,-216,673,559),7544=>array(18,326,509,734),7547=>array(31,0,515,547),7549=>array(-10,-208,753,560),7557=>array(84,-216,458,760),7579=>array(23,318,423,640),7580=>array(53,318,385,640),7581=>array(56,288,388,640),7582=>array(42,318,432,751),7583=>array(25,318,337,640),7584=>array(58,326,362,751),7585=>array(12,205,288,632),7586=>array(57,205,464,632),7587=>array(58,207,441,632),7588=>array(35,326,283,751),7589=>array(48,326,208,632),7590=>array(23,326,321,632),7591=>array(23,326,321,632),7592=>array(17,205,376,751),7593=>array(23,205,229,751),7594=>array(23,205,258,751),7595=>array(23,326,300,632),7596=>array(35,205,625,640),7597=>array(58,209,648,632),7598=>array(11,205,523,640),7599=>array(35,205,476,640),7600=>array(23,326,422,632),7601=>array(53,318,432,640),7602=>array(53,209,485,751),7603=>array(41,205,382,640),7604=>array(0,205,393,751),7605=>array(73,205,365,719),7606=>array(47,318,532,632),7607=>array(54,298,471,632),7608=>array(47,318,413,632),7609=>array(48,326,395,632),7610=>array(23,326,416,632),7611=>array(23,326,391,632),7612=>array(35,205,439,632),7613=>array(27,288,403,632),7614=>array(16,206,404,632),7615=>array(53,320,370,756),7620=>array(-483,616,-19,800),7621=>array(-451,616,-35,800),7622=>array(-467,616,-51,800),7623=>array(-483,616,-19,800),7624=>array(-495,616,-7,800),7625=>array(-531,616,29,800),7680=>array(-65,-240,691,729),7681=>array(17,-240,611,560),7682=>array(21,0,699,927),7683=>array(31,-14,677,941),7684=>array(21,-212,699,729),7685=>array(31,-212,677,760),7686=>array(21,-185,699,729),7687=>array(31,-185,677,760),7688=>array(36,-196,724,927),7689=>array(37,-196,581,800),7690=>array(21,0,786,927),7691=>array(36,-14,757,941),7692=>array(21,-212,786,729),7693=>array(36,-212,724,760),7694=>array(21,-185,786,729),7695=>array(36,-185,724,760),7696=>array(21,-194,786,729),7697=>array(34,-196,724,760),7698=>array(21,-240,786,729),7699=>array(36,-240,724,760),7700=>array(21,0,670,1057),7701=>array(36,-14,640,898),7702=>array(21,0,670,1057),7703=>array(36,-14,640,900),7704=>array(44,-203,693,729),7705=>array(36,-203,640,560),7706=>array(21,-221,670,729),7707=>array(36,-221,640,560),7708=>array(21,-196,670,927),7709=>array(36,-196,640,783),7710=>array(21,0,670,928),7711=>array(50,0,540,941),7712=>array(36,-14,778,899),7713=>array(20,-216,682,760),7714=>array(21,0,816,928),7715=>array(31,0,654,941),7716=>array(21,-212,816,729),7717=>array(31,-212,654,760),7718=>array(21,0,816,927),7719=>array(31,0,654,927),7720=>array(-61,-196,816,729),7721=>array(-43,-196,654,760),7722=>array(21,-239,816,729),7723=>array(31,-239,654,760),7724=>array(-108,-221,351,729),7725=>array(-108,-221,354,760),7726=>array(21,0,511,1057),7727=>array(31,0,477,903),7728=>array(21,0,837,927),7729=>array(31,0,716,982),7730=>array(21,-212,837,729),7731=>array(31,-212,716,760),7732=>array(21,-185,837,729),7733=>array(31,-185,716,760),7734=>array(21,-212,566,729),7735=>array(10,-212,354,760),7736=>array(21,-212,566,942),7737=>array(10,-212,450,914),7738=>array(21,-185,566,729),7739=>array(-68,-185,354,760),7740=>array(21,-240,566,729),7741=>array(-113,-240,354,760),7742=>array(21,0,974,927),7743=>array(31,0,984,800),7744=>array(21,0,974,928),7745=>array(31,0,984,759),7746=>array(21,-212,974,729),7747=>array(31,-212,984,560),7748=>array(21,0,816,927),7749=>array(31,0,654,759),7750=>array(21,-212,816,729),7751=>array(31,-212,654,560),7752=>array(21,-185,816,729),7753=>array(31,-185,654,560),7754=>array(21,-240,816,729),7755=>array(31,-240,654,560),7756=>array(36,-14,814,1057),7757=>array(36,-14,651,917),7758=>array(36,-14,814,1061),7759=>array(36,-14,651,900),7760=>array(36,-14,814,1057),7761=>array(36,-14,651,898),7762=>array(36,-14,814,1057),7763=>array(36,-14,651,900),7764=>array(21,0,719,927),7765=>array(-10,-208,677,800),7766=>array(21,0,719,928),7767=>array(-10,-208,677,759),7768=>array(21,0,685,928),7769=>array(31,0,545,759),7770=>array(21,-212,685,729),7771=>array(10,-212,545,560),7772=>array(21,-212,685,914),7773=>array(10,-212,545,759),7774=>array(21,-185,685,729),7775=>array(-69,-185,545,560),7776=>array(15,-14,665,928),7777=>array(10,-14,560,759),7778=>array(15,-212,665,742),7779=>array(10,-212,560,560),7780=>array(15,-14,719,928),7781=>array(10,-14,682,816),7782=>array(15,-14,690,1053),7783=>array(10,-14,605,875),7784=>array(15,-212,665,928),7785=>array(10,-212,560,762),7786=>array(48,0,748,928),7787=>array(43,0,509,941),7788=>array(48,-212,748,729),7789=>array(43,-212,509,702),7790=>array(48,-185,748,729),7791=>array(27,-185,509,702),7792=>array(38,-240,748,729),7793=>array(-20,-240,509,702),7794=>array(68,-212,791,729),7795=>array(60,-212,681,547),7796=>array(68,-221,791,729),7797=>array(60,-221,681,547),7798=>array(68,-203,791,729),7799=>array(60,-203,681,547),7800=>array(68,-14,791,1057),7801=>array(60,-14,681,917),7802=>array(68,-14,791,1043),7803=>array(60,-14,681,885),7804=>array(76,0,840,928),7805=>array(63,0,678,778),7806=>array(76,-212,840,729),7807=>array(63,-212,678,547),7808=>array(107,0,1143,931),7809=>array(87,0,927,803),7810=>array(107,0,1143,931),7811=>array(87,0,927,803),7812=>array(107,0,1143,927),7813=>array(87,0,927,774),7814=>array(107,0,1143,927),7815=>array(87,0,927,759),7816=>array(107,-212,1143,729),7817=>array(87,-212,927,547),7818=>array(-51,0,812,927),7819=>array(-41,0,671,759),7820=>array(-51,0,812,927),7821=>array(-41,0,671,774),7822=>array(63,0,809,928),7823=>array(0,-216,687,759),7824=>array(-26,0,740,927),7825=>array(-9,0,586,800),7826=>array(-26,-212,740,729),7827=>array(-9,-212,586,547),7828=>array(-26,-185,740,729),7829=>array(-9,-185,586,547),7830=>array(31,-185,654,760),7831=>array(43,0,509,927),7832=>array(87,0,927,883),7833=>array(0,-216,687,883),7834=>array(17,-14,825,760),7835=>array(50,0,540,941),7836=>array(-39,0,518,760),7837=>array(17,0,518,760),7838=>array(38,-14,808,743),7839=>array(16,-14,634,768),7840=>array(-65,-212,691,729),7841=>array(17,-212,611,560),7842=>array(-65,0,691,1025),7843=>array(17,-14,611,844),7844=>array(-65,0,853,1057),7845=>array(17,-14,795,876),7846=>array(-65,0,759,1057),7847=>array(17,-14,704,876),7848=>array(-65,0,840,1093),7849=>array(17,-14,773,913),7850=>array(-65,0,691,1068),7851=>array(17,-14,631,888),7852=>array(-65,-212,691,927),7853=>array(17,-212,611,800),7854=>array(-65,0,702,1057),7855=>array(17,-14,646,889),7856=>array(-65,0,691,1057),7857=>array(17,-14,611,889),7858=>array(-65,0,691,1121),7859=>array(17,-14,611,953),7860=>array(-65,0,693,1068),7861=>array(17,-14,630,900),7862=>array(-65,-212,691,936),7863=>array(17,-212,611,772),7864=>array(21,-212,670,729),7865=>array(36,-212,640,560),7866=>array(21,0,670,1025),7867=>array(36,-14,640,844),7868=>array(21,0,670,928),7869=>array(36,-14,640,778),7870=>array(21,0,805,1057),7871=>array(36,-14,814,876),7872=>array(21,0,772,1057),7873=>array(36,-14,721,876),7874=>array(21,0,799,1093),7875=>array(36,-14,797,913),7876=>array(21,0,670,1068),7877=>array(36,-14,648,888),7878=>array(21,-212,670,927),7879=>array(36,-212,640,800),7880=>array(21,0,417,1025),7881=>array(31,0,395,844),7882=>array(6,-212,351,729),7883=>array(10,-212,354,760),7884=>array(36,-212,814,742),7885=>array(36,-212,651,560),7886=>array(36,-14,814,1025),7887=>array(36,-14,651,844),7888=>array(36,-14,884,1057),7889=>array(36,-14,815,876),7890=>array(36,-14,814,1057),7891=>array(36,-14,724,876),7892=>array(36,-14,890,1093),7893=>array(36,-14,802,913),7894=>array(36,-14,814,1068),7895=>array(36,-14,655,888),7896=>array(36,-212,814,927),7897=>array(36,-212,651,800),7898=>array(39,-14,907,927),7899=>array(40,-14,771,800),7900=>array(39,-14,907,927),7901=>array(40,-14,771,798),7902=>array(39,-14,907,1025),7903=>array(40,-14,771,844),7904=>array(39,-14,907,928),7905=>array(40,-14,771,778),7906=>array(39,-212,907,760),7907=>array(40,-212,771,570),7908=>array(68,-212,791,729),7909=>array(60,-212,681,547),7910=>array(68,-14,791,1025),7911=>array(60,-14,681,844),7912=>array(67,-14,938,927),7913=>array(57,-14,795,799),7914=>array(67,-14,938,927),7915=>array(57,-14,795,800),7916=>array(67,-14,938,1025),7917=>array(57,-14,795,844),7918=>array(67,-14,938,928),7919=>array(57,-14,795,778),7920=>array(67,-212,938,761),7921=>array(57,-212,795,570),7922=>array(63,0,809,931),7923=>array(0,-216,687,803),7924=>array(63,-212,809,729),7925=>array(0,-216,687,547),7926=>array(63,0,809,1025),7927=>array(0,-216,687,844),7928=>array(63,0,809,928),7929=>array(0,-216,687,778),7930=>array(21,0,882,729),7931=>array(10,0,698,760),7936=>array(38,-12,692,785),7937=>array(38,-12,692,785),7938=>array(38,-12,692,800),7939=>array(38,-12,692,800),7940=>array(38,-12,692,800),7941=>array(38,-12,692,800),7942=>array(38,-12,692,928),7943=>array(38,-12,692,928),7944=>array(-65,0,691,785),7945=>array(-65,0,691,785),7946=>array(29,0,958,800),7947=>array(69,0,960,800),7948=>array(29,0,852,800),7949=>array(67,0,880,800),7950=>array(-3,0,752,928),7951=>array(20,0,776,928),7952=>array(27,-14,520,785),7953=>array(27,-14,520,785),7954=>array(27,-14,547,800),7955=>array(27,-14,541,800),7956=>array(27,-14,616,800),7957=>array(27,-14,601,800),7960=>array(31,0,778,785),7961=>array(69,0,781,785),7962=>array(29,0,1086,800),7963=>array(69,0,1083,800),7964=>array(29,0,1010,800),7965=>array(67,0,1039,800),7968=>array(50,-208,664,785),7969=>array(50,-208,664,785),7970=>array(50,-208,664,800),7971=>array(50,-208,664,800),7972=>array(50,-208,664,800),7973=>array(50,-208,684,800),7974=>array(50,-208,664,928),7975=>array(50,-208,664,928),7976=>array(31,0,924,785),7977=>array(69,0,930,785),7978=>array(29,0,1229,800),7979=>array(69,0,1229,800),7980=>array(29,0,1159,800),7981=>array(67,0,1185,800),7982=>array(98,0,1033,928),7983=>array(97,0,1042,928),7984=>array(42,-19,313,785),7985=>array(42,-19,313,785),7986=>array(0,-19,457,800),7987=>array(7,-19,426,800),7988=>array(42,-19,531,800),7989=>array(42,-19,523,800),7990=>array(42,-19,458,928),7991=>array(42,-19,455,928),7992=>array(31,0,462,785),7993=>array(69,0,468,785),7994=>array(29,0,756,800),7995=>array(69,0,764,800),7996=>array(29,0,691,800),7997=>array(67,0,717,800),7998=>array(98,0,583,928),7999=>array(97,0,583,928),8000=>array(36,-14,651,785),8001=>array(36,-14,651,785),8002=>array(36,-14,651,800),8003=>array(36,-14,651,800),8004=>array(36,-14,667,800),8005=>array(36,-14,680,800),8008=>array(31,-14,855,785),8009=>array(69,-14,897,785),8010=>array(29,-14,1185,800),8011=>array(69,-14,1188,800),8012=>array(29,-14,1017,800),8013=>array(67,-14,1046,800),8016=>array(54,-10,645,785),8017=>array(54,-10,645,785),8018=>array(54,-10,645,800),8019=>array(54,-10,645,800),8020=>array(54,-10,677,800),8021=>array(54,-10,683,800),8022=>array(54,-10,645,928),8023=>array(54,-10,645,928),8025=>array(69,0,1015,785),8027=>array(69,0,1269,800),8029=>array(67,0,1284,800),8031=>array(97,0,1134,928),8032=>array(33,-13,834,785),8033=>array(33,-13,834,785),8034=>array(33,-13,834,800),8035=>array(33,-13,834,800),8036=>array(33,-13,834,800),8037=>array(33,-13,834,800),8038=>array(33,-13,834,928),8039=>array(33,-13,834,928),8040=>array(13,0,870,785),8041=>array(63,0,920,785),8042=>array(29,0,1208,800),8043=>array(69,-3,1213,800),8044=>array(29,0,1037,800),8045=>array(67,0,1066,800),8046=>array(98,0,989,928),8047=>array(97,0,1037,928),8048=>array(38,-12,692,800),8049=>array(38,-12,692,800),8050=>array(27,-14,520,800),8051=>array(27,-14,567,800),8052=>array(50,-208,664,800),8053=>array(50,-208,664,800),8054=>array(42,-19,313,800),8055=>array(42,-19,436,800),8056=>array(36,-14,651,800),8057=>array(36,-14,651,800),8058=>array(54,-10,645,800),8059=>array(54,-10,645,800),8060=>array(33,-13,834,800),8061=>array(33,-13,834,800),8064=>array(38,-208,692,785),8065=>array(38,-208,692,785),8066=>array(38,-208,692,800),8067=>array(38,-208,692,800),8068=>array(38,-208,692,800),8069=>array(38,-208,692,800),8070=>array(38,-208,692,928),8071=>array(38,-208,692,928),8072=>array(-65,-208,691,785),8073=>array(-65,-208,691,785),8074=>array(29,-208,958,800),8075=>array(69,-208,960,800),8076=>array(29,-208,852,800),8077=>array(67,-208,880,800),8078=>array(-3,-208,752,928),8079=>array(20,-208,776,928),8080=>array(50,-208,664,785),8081=>array(50,-208,664,785),8082=>array(50,-208,664,800),8083=>array(50,-208,664,800),8084=>array(50,-208,664,800),8085=>array(50,-208,684,800),8086=>array(50,-208,664,928),8087=>array(50,-208,664,928),8088=>array(31,-208,924,785),8089=>array(69,-208,930,785),8090=>array(29,-208,1229,800),8091=>array(69,-208,1229,800),8092=>array(29,-208,1159,800),8093=>array(67,-208,1185,800),8094=>array(98,-208,1033,928),8095=>array(97,-208,1042,928),8096=>array(33,-208,834,785),8097=>array(33,-208,834,785),8098=>array(33,-208,834,800),8099=>array(33,-208,834,800),8100=>array(33,-208,834,800),8101=>array(33,-208,834,800),8102=>array(33,-208,834,928),8103=>array(33,-208,834,928),8104=>array(13,-208,870,785),8105=>array(63,-208,920,785),8106=>array(29,-208,1208,800),8107=>array(69,-208,1213,800),8108=>array(29,-208,1037,800),8109=>array(67,-208,1066,800),8110=>array(98,-208,989,928),8111=>array(97,-208,1037,928),8112=>array(38,-12,692,784),8113=>array(38,-12,692,760),8114=>array(38,-208,692,800),8115=>array(38,-208,692,559),8116=>array(38,-208,692,800),8118=>array(38,-12,692,778),8119=>array(38,-208,692,778),8120=>array(-65,0,691,927),8121=>array(-65,0,691,914),8122=>array(38,0,793,800),8123=>array(-42,0,714,800),8124=>array(-65,-208,691,729),8125=>array(210,595,381,785),8126=>array(132,-208,253,-45),8127=>array(210,595,381,785),8128=>array(133,638,500,778),8129=>array(152,654,540,928),8130=>array(50,-208,664,800),8131=>array(50,-208,664,560),8132=>array(50,-208,664,800),8134=>array(50,-208,664,778),8135=>array(50,-208,664,778),8136=>array(84,0,916,800),8137=>array(22,0,831,800),8138=>array(84,0,1059,800),8139=>array(28,0,986,800),8140=>array(21,-208,816,729),8141=>array(61,595,518,800),8142=>array(90,595,563,800),8143=>array(174,595,540,928),8144=>array(42,-19,413,784),8145=>array(42,-19,405,760),8146=>array(42,-19,402,978),8147=>array(50,-19,516,978),8150=>array(42,-19,424,778),8151=>array(42,-19,454,928),8152=>array(21,0,424,927),8153=>array(21,0,417,914),8154=>array(84,0,600,800),8155=>array(25,0,521,800),8157=>array(105,595,523,800),8158=>array(111,595,574,800),8159=>array(174,595,540,928),8160=>array(54,-10,645,784),8161=>array(54,-10,645,760),8162=>array(54,-10,645,978),8163=>array(54,-10,660,978),8164=>array(9,-208,699,785),8165=>array(9,-208,699,785),8166=>array(54,-10,645,778),8167=>array(54,-10,645,928),8168=>array(63,0,809,927),8169=>array(63,0,809,914),8170=>array(84,0,1105,800),8171=>array(20,0,1067,800),8172=>array(69,0,825,785),8173=>array(152,654,484,978),8174=>array(152,654,589,978),8175=>array(131,616,371,800),8178=>array(33,-208,834,800),8179=>array(33,-208,834,547),8180=>array(33,-208,834,800),8182=>array(33,-13,834,778),8183=>array(33,-208,834,778),8184=>array(84,-14,1029,800),8185=>array(28,-14,851,800),8186=>array(84,0,1046,800),8187=>array(-1,0,855,800),8188=>array(-45,-208,812,742),8189=>array(227,616,539,800),8190=>array(249,595,392,785),8192=>array(25,217,360,359),8193=>array(25,217,360,359),8194=>array(25,217,360,359),8195=>array(25,217,360,359),8196=>array(25,217,360,359),8197=>array(25,217,360,359),8198=>array(25,217,360,359),8199=>array(25,217,360,359),8200=>array(25,217,360,359),8201=>array(25,217,360,359),8202=>array(25,217,360,359),8203=>array(25,217,360,359),8204=>array(25,217,360,359),8205=>array(25,217,360,359),8206=>array(25,217,360,359),8207=>array(25,217,360,359),8208=>array(25,217,360,359),8209=>array(25,217,360,359),8210=>array(24,211,637,337),8211=>array(24,211,441,337),8212=>array(24,211,941,337),8213=>array(-30,211,995,337),8214=>array(127,-236,399,764),8215=>array(-10,-236,510,-9),8216=>array(113,418,389,729),8217=>array(73,418,349,729),8218=>array(-34,-122,242,189),8219=>array(107,418,302,729),8220=>array(113,418,652,729),8221=>array(73,418,612,729),8222=>array(-34,-122,505,189),8223=>array(95,418,535,729),8224=>array(38,-96,504,729),8225=>array(-28,-96,504,729),8226=>array(144,196,495,547),8227=>array(144,157,534,586),8228=>array(46,0,259,189),8229=>array(46,0,569,189),8230=>array(46,0,879,189),8231=>array(124,304,282,424),8232=>array(55,-14,1401,742),8233=>array(55,-14,1401,742),8234=>array(55,-14,1401,742),8235=>array(55,-14,1401,742),8236=>array(55,-14,1401,742),8237=>array(55,-14,1401,742),8238=>array(55,-14,1401,742),8239=>array(55,-14,1401,742),8240=>array(55,-14,1401,742),8241=>array(55,-14,1855,742),8242=>array(2,547,257,729),8243=>array(2,547,440,729),8244=>array(2,547,624,729),8245=>array(161,547,346,729),8246=>array(161,547,532,729),8247=>array(161,547,712,729),8248=>array(101,-238,632,29),8249=>array(61,67,355,519),8250=>array(38,66,331,519),8251=>array(72,0,900,829),8252=>array(-2,0,629,729),8253=>array(98,0,550,742),8254=>array(-10,663,510,755),8255=>array(-31,-237,859,-79),8256=>array(-31,769,859,927),8257=>array(-52,-235,296,231),8258=>array(20,-37,1003,832),8259=>array(102,188,428,325),8260=>array(-278,-14,445,742),8261=>array(-10,-132,466,760),8262=>array(-28,-132,448,760),8263=>array(69,0,1035,742),8264=>array(104,0,831,742),8265=>array(-2,0,799,742),8266=>array(87,-125,530,546),8267=>array(57,-96,666,729),8268=>array(75,189,425,541),8269=>array(75,189,425,541),8270=>array(20,-37,503,427),8271=>array(56,-142,327,547),8272=>array(-31,-237,859,927),8273=>array(68,-3,455,830),8274=>array(3,-93,548,729),8275=>array(49,212,951,415),8276=>array(-31,-351,859,-192),8277=>array(142,98,694,631),8278=>array(95,93,628,645),8279=>array(2,547,807,729),8280=>array(61,21,776,708),8281=>array(80,71,768,657),8282=>array(31,0,350,729),8283=>array(30,-170,839,898),8284=>array(43,0,794,729),8285=>array(31,0,339,683),8286=>array(31,0,339,683),8287=>array(29,319,398,742),8288=>array(29,319,398,742),8289=>array(29,319,398,742),8290=>array(29,319,398,742),8291=>array(29,319,398,742),8292=>array(29,319,398,742),8298=>array(29,319,398,742),8299=>array(29,319,398,742),8300=>array(29,319,398,742),8301=>array(29,319,398,742),8302=>array(29,319,398,742),8303=>array(29,319,398,742),8304=>array(29,319,398,742),8305=>array(12,326,205,751),8308=>array(3,326,388,734),8309=>array(12,319,393,734),8310=>array(37,319,403,742),8311=>array(51,326,418,734),8312=>array(20,319,400,742),8313=>array(23,319,389,742),8314=>array(67,326,461,677),8315=>array(67,469,461,534),8316=>array(67,407,461,596),8317=>array(48,252,282,751),8318=>array(-1,252,232,751),8319=>array(23,326,412,640),8320=>array(29,-7,398,416),8321=>array(67,0,395,408),8322=>array(45,0,431,416),8323=>array(40,-7,427,416),8324=>array(3,0,388,408),8325=>array(12,-7,393,408),8326=>array(37,-7,403,416),8327=>array(51,0,418,408),8328=>array(20,-7,400,416),8329=>array(23,-7,389,416),8330=>array(67,0,461,351),8331=>array(67,143,461,208),8332=>array(67,81,461,270),8333=>array(48,-74,282,425),8334=>array(-1,-74,232,425),8336=>array(37,-8,411,313),8337=>array(49,-8,429,313),8338=>array(49,-8,436,313),8339=>array(-20,0,427,306),8340=>array(53,-8,423,313),8341=>array(12,0,401,425),8342=>array(20,0,451,425),8343=>array(12,0,207,425),8344=>array(21,0,621,313),8345=>array(23,0,412,313),8346=>array(-6,-117,427,313),8347=>array(11,-8,355,313),8348=>array(72,0,365,393),8352=>array(53,0,919,729),8353=>array(36,-44,693,778),8354=>array(36,-14,697,742),8355=>array(3,0,690,729),8356=>array(7,0,691,742),8357=>array(30,-93,975,640),8358=>array(14,0,823,729),8359=>array(21,-14,1453,729),8360=>array(22,-14,1154,729),8361=>array(23,0,1143,729),8362=>array(-32,-14,870,729),8363=>array(36,-185,817,760),8364=>array(-41,-14,687,742),8365=>array(12,0,735,729),8366=>array(55,0,754,729),8367=>array(37,-223,1220,742),8368=>array(1,-14,660,742),8369=>array(21,0,697,729),8370=>array(38,-81,682,809),8371=>array(-66,0,685,729),8372=>array(16,-14,844,742),8373=>array(76,-147,688,760),8376=>array(18,0,754,729),8377=>array(61,0,718,729),8378=>array(-10,0,745,729),8400=>array(-510,628,-26,760),8401=>array(-483,628,-11,760),8406=>array(-470,560,-20,760),8407=>array(-477,560,-26,760),8411=>array(-335,654,190,774),8412=>array(-432,654,287,774),8417=>array(-470,560,-26,760),8448=>array(15,-23,1106,752),8449=>array(15,-23,1106,752),8450=>array(50,-14,670,742),8451=>array(87,-14,1201,749),8452=>array(64,0,832,729),8453=>array(25,-24,1097,752),8454=>array(25,-24,1169,752),8455=>array(37,-14,652,742),8456=>array(1,-146,693,611),8457=>array(87,0,999,749),8459=>array(36,-14,1063,746),8460=>array(6,-125,809,747),8461=>array(100,0,788,729),8462=>array(31,0,654,760),8463=>array(10,0,625,760),8464=>array(36,-14,533,742),8465=>array(52,-14,659,743),8466=>array(37,-14,787,742),8467=>array(-14,-14,401,742),8468=>array(12,-14,935,760),8469=>array(92,0,745,729),8470=>array(-37,0,1156,729),8471=>array(138,0,862,725),8472=>array(54,-221,658,495),8473=>array(92,0,709,729),8474=>array(50,-146,800,742),8475=>array(31,-14,904,768),8476=>array(41,-14,803,743),8477=>array(98,0,793,729),8478=>array(53,0,844,729),8479=>array(53,-112,666,887),8480=>array(126,443,770,730),8481=>array(40,0,1223,547),8482=>array(144,447,790,729),8483=>array(22,-113,877,885),8484=>array(45,0,709,729),8485=>array(-11,-230,648,777),8486=>array(-45,0,812,742),8487=>array(42,-14,813,723),8488=>array(-5,-159,670,729),8489=>array(36,0,306,566),8490=>array(21,0,837,729),8491=>array(-65,0,691,928),8492=>array(41,-1,853,772),8493=>array(63,-19,767,742),8494=>array(61,-12,793,647),8495=>array(41,-14,591,533),8496=>array(72,-14,668,742),8497=>array(37,-14,860,773),8498=>array(21,0,670,729),8499=>array(38,-18,1156,751),8500=>array(29,-12,436,420),8501=>array(50,-14,761,742),8502=>array(19,-14,687,742),8503=>array(31,-35,439,742),8504=>array(63,-41,633,742),8505=>array(34,0,355,760),8506=>array(44,-27,994,723),8507=>array(0,0,1384,547),8508=>array(34,-14,765,547),8509=>array(-40,-208,700,561),8510=>array(92,0,627,729),8511=>array(92,0,771,729),8512=>array(12,-192,820,719),8513=>array(5,-14,747,742),8514=>array(9,0,554,729),8515=>array(11,0,671,729),8516=>array(2,0,749,729),8517=>array(21,0,786,729),8518=>array(34,-14,752,760),8519=>array(33,-14,635,560),8520=>array(15,0,353,760),8521=>array(-143,-216,354,760),8523=>array(60,-14,838,742),8526=>array(1,0,523,547),8528=>array(56,-14,1023,742),8529=>array(56,-14,994,742),8530=>array(56,-14,1441,742),8531=>array(56,-14,1032,742),8532=>array(45,-14,1032,742),8533=>array(56,-14,998,742),8534=>array(45,-14,998,742),8535=>array(40,-14,998,742),8536=>array(3,-14,998,742),8537=>array(56,-14,1008,742),8538=>array(12,-14,1008,742),8539=>array(56,-14,1005,742),8540=>array(40,-14,1005,742),8541=>array(12,-14,1005,742),8542=>array(51,-14,1005,742),8543=>array(56,-14,893,742),8544=>array(21,0,351,729),8545=>array(21,0,638,729),8546=>array(21,0,924,729),8547=>array(21,0,1165,729),8548=>array(76,0,840,729),8549=>array(76,0,1078,729),8550=>array(76,0,1365,729),8551=>array(76,0,1651,729),8552=>array(21,0,1162,729),8553=>array(-51,0,812,729),8554=>array(-51,0,1099,729),8555=>array(-51,0,1386,729),8556=>array(21,0,566,729),8557=>array(36,-14,724,742),8558=>array(21,0,786,729),8559=>array(21,0,974,729),8560=>array(31,0,354,760),8561=>array(31,0,619,760),8562=>array(31,0,883,760),8563=>array(31,0,987,760),8564=>array(63,0,678,547),8565=>array(63,0,973,760),8566=>array(63,0,1238,760),8567=>array(63,0,1502,760),8568=>array(31,0,995,760),8569=>array(-41,0,671,547),8570=>array(-41,0,980,760),8571=>array(-41,0,1245,760),8572=>array(31,0,354,760),8573=>array(37,-14,581,560),8574=>array(36,-14,724,760),8575=>array(31,0,984,560),8576=>array(48,0,1240,729),8577=>array(21,0,782,729),8578=>array(48,0,1240,729),8579=>array(-13,-14,675,742),8580=>array(-7,-14,537,560),8581=>array(68,-208,752,742),8585=>array(29,-14,1032,742),8592=>array(49,87,781,540),8593=>array(193,0,646,732),8594=>array(57,87,789,540),8595=>array(193,-3,646,729),8596=>array(49,87,789,540),8597=>array(193,-3,646,732),8598=>array(136,66,720,650),8599=>array(136,66,720,650),8600=>array(136,66,720,650),8601=>array(136,66,720,650),8602=>array(49,87,781,540),8603=>array(57,87,789,540),8604=>array(13,84,833,431),8605=>array(5,84,825,431),8606=>array(49,87,781,540),8607=>array(189,0,641,732),8608=>array(57,87,789,540),8609=>array(194,-3,646,729),8610=>array(49,87,793,540),8611=>array(45,87,789,540),8612=>array(49,87,781,540),8613=>array(193,0,646,732),8614=>array(57,87,789,540),8615=>array(193,0,646,732),8616=>array(193,0,646,732),8617=>array(49,87,781,565),8618=>array(57,87,789,565),8619=>array(49,87,781,565),8620=>array(57,87,789,565),8621=>array(49,87,789,540),8622=>array(49,86,789,541),8623=>array(123,-4,714,733),8624=>array(169,0,646,755),8625=>array(192,0,669,755),8626=>array(169,-26,646,729),8627=>array(192,-26,669,729),8628=>array(233,-3,772,621),8629=>array(49,87,673,626),8630=>array(11,198,816,685),8631=>array(22,198,828,685),8632=>array(118,13,788,729),8633=>array(49,-108,789,735),8634=>array(86,45,767,691),8635=>array(71,45,751,691),8636=>array(49,255,781,540),8637=>array(49,87,781,372),8638=>array(361,0,646,732),8639=>array(193,0,478,732),8640=>array(57,255,789,540),8641=>array(57,87,789,372),8642=>array(361,0,646,732),8643=>array(193,0,478,732),8644=>array(49,-59,789,686),8645=>array(47,-3,792,732),8646=>array(49,-59,789,686),8647=>array(49,-59,781,686),8648=>array(46,0,792,732),8649=>array(57,-59,789,686),8650=>array(46,-3,792,729),8651=>array(49,-5,789,632),8652=>array(49,-5,789,632),8653=>array(49,87,781,540),8654=>array(49,87,789,540),8655=>array(57,87,789,540),8656=>array(49,87,781,540),8657=>array(193,0,645,732),8658=>array(57,87,789,540),8659=>array(193,-3,645,729),8660=>array(49,87,789,540),8661=>array(193,-8,645,732),8662=>array(132,-26,755,596),8663=>array(88,-26,711,597),8664=>array(88,16,711,639),8665=>array(132,16,755,639),8666=>array(49,87,781,540),8667=>array(57,87,789,540),8668=>array(44,87,776,540),8669=>array(57,87,789,540),8670=>array(193,0,646,732),8671=>array(193,-3,646,729),8672=>array(49,87,781,540),8673=>array(193,0,646,732),8674=>array(57,87,789,540),8675=>array(193,-3,646,729),8676=>array(49,87,781,540),8677=>array(57,87,789,540),8678=>array(27,46,781,581),8679=>array(151,0,687,754),8680=>array(35,46,789,581),8681=>array(151,-25,687,729),8682=>array(151,0,687,754),8683=>array(151,0,687,754),8684=>array(151,0,687,754),8685=>array(151,0,687,754),8686=>array(151,0,687,754),8687=>array(151,0,687,754),8688=>array(35,46,789,581),8689=>array(60,0,788,729),8690=>array(60,0,788,729),8691=>array(151,-25,687,754),8692=>array(57,87,789,540),8693=>array(47,-3,792,732),8694=>array(57,-223,789,850),8695=>array(49,87,781,540),8696=>array(57,87,789,540),8697=>array(49,87,789,540),8698=>array(49,87,781,540),8699=>array(57,87,789,540),8700=>array(49,87,789,540),8701=>array(27,96,781,531),8702=>array(57,96,811,531),8703=>array(27,96,811,531),8704=>array(5,0,769,729),8705=>array(48,-14,629,742),8706=>array(29,-14,515,674),8707=>array(92,0,610,729),8708=>array(92,-46,610,775),8709=>array(47,-15,810,715),8710=>array(0,0,697,719),8711=>array(0,0,697,719),8712=>array(73,-2,824,730),8713=>array(73,-46,824,775),8714=>array(106,58,644,568),8715=>array(73,-2,824,730),8716=>array(73,-46,824,775),8717=>array(106,58,644,568),8718=>array(98,0,539,553),8719=>array(73,-192,712,719),8720=>array(73,-193,712,718),8721=>array(20,-192,697,719),8722=>array(106,256,732,371),8723=>array(106,0,732,627),8724=>array(49,0,647,729),8725=>array(-96,-93,434,729),8726=>array(165,-49,530,772),8727=>array(118,0,720,626),8728=>array(150,151,475,477),8729=>array(102,253,278,442),8730=>array(37,-20,669,837),8731=>array(37,-20,669,933),8732=>array(36,-20,669,924),8733=>array(92,89,617,505),8734=>array(92,89,741,505),8735=>array(106,67,732,693),8736=>array(77,0,820,729),8737=>array(77,-44,820,729),8738=>array(116,-0,732,726),8739=>array(207,-207,322,773),8740=>array(48,-207,482,773),8741=>array(112,-207,417,773),8742=>array(48,-207,482,773),8743=>array(151,0,661,579),8744=>array(151,0,661,579),8745=>array(151,0,661,579),8746=>array(151,0,661,579),8747=>array(15,-227,548,754),8748=>array(15,-227,914,754),8749=>array(15,-227,1280,754),8750=>array(14,-227,548,754),8751=>array(38,-227,938,754),8752=>array(23,-227,1290,754),8753=>array(15,-227,616,754),8754=>array(14,-227,600,754),8755=>array(14,-227,588,754),8756=>array(60,78,637,647),8757=>array(60,78,637,647),8758=>array(59,79,235,647),8759=>array(60,78,637,647),8760=>array(106,256,732,631),8761=>array(106,45,800,584),8762=>array(106,-4,732,631),8763=>array(106,-34,732,660),8764=>array(106,212,732,415),8765=>array(106,212,732,415),8766=>array(65,131,772,497),8767=>array(106,42,732,584),8768=>array(85,0,289,626),8769=>array(106,76,732,551),8770=>array(106,110,732,482),8771=>array(106,144,732,517),8772=>array(106,0,732,637),8773=>array(106,37,732,628),8774=>array(106,-31,732,628),8775=>array(106,-86,732,726),8776=>array(106,110,732,517),8777=>array(106,8,732,614),8778=>array(106,37,732,628),8779=>array(106,-13,732,628),8780=>array(106,37,732,628),8781=>array(105,105,732,585),8782=>array(106,26,732,656),8783=>array(106,172,732,656),8784=>array(106,144,732,744),8785=>array(106,-117,732,743),8786=>array(105,-92,732,719),8787=>array(104,-92,731,719),8788=>array(98,102,965,520),8789=>array(96,102,966,520),8790=>array(106,144,732,482),8791=>array(106,144,732,839),8792=>array(106,144,732,704),8793=>array(106,144,732,840),8794=>array(106,144,732,840),8795=>array(106,144,732,959),8796=>array(106,144,732,952),8797=>array(106,144,732,762),8798=>array(106,144,732,786),8799=>array(106,144,732,903),8800=>array(106,-5,732,631),8801=>array(106,38,732,588),8802=>array(106,-69,732,695),8803=>array(106,-74,732,700),8804=>array(106,0,732,582),8805=>array(106,0,732,582),8806=>array(106,-106,732,617),8807=>array(106,-106,732,617),8808=>array(106,-185,732,617),8809=>array(106,-185,732,617),8810=>array(72,-34,974,660),8811=>array(72,-34,974,660),8812=>array(86,-132,414,759),8813=>array(105,-10,732,700),8814=>array(106,-4,732,690),8815=>array(106,-63,732,631),8816=>array(106,-112,732,645),8817=>array(106,-112,732,645),8818=>array(106,-84,732,582),8819=>array(106,-84,732,582),8820=>array(106,-112,732,645),8821=>array(106,-112,732,645),8822=>array(102,-119,732,678),8823=>array(102,-119,732,678),8824=>array(102,-221,732,779),8825=>array(102,-221,732,779),8826=>array(106,-55,732,681),8827=>array(106,-55,732,681),8828=>array(106,-177,732,684),8829=>array(106,-177,732,684),8830=>array(106,-132,732,684),8831=>array(106,-132,732,684),8832=>array(106,-89,732,781),8833=>array(106,-89,732,781),8834=>array(99,67,739,559),8835=>array(99,65,739,559),8836=>array(99,-96,739,726),8837=>array(99,-100,739,722),8838=>array(99,0,739,636),8839=>array(99,0,739,635),8840=>array(99,-124,739,759),8841=>array(99,-124,739,759),8842=>array(99,-97,739,636),8843=>array(99,-97,739,635),8844=>array(151,0,661,579),8845=>array(151,0,661,579),8846=>array(151,0,661,579),8847=>array(106,0,732,584),8848=>array(106,0,732,584),8849=>array(106,-115,732,667),8850=>array(106,-115,732,667),8851=>array(106,0,690,626),8852=>array(106,0,690,626),8853=>array(91,-14,747,643),8854=>array(91,-14,747,643),8855=>array(91,-14,747,643),8856=>array(91,-13,747,642),8857=>array(91,-14,747,643),8858=>array(91,-14,747,643),8859=>array(91,-14,747,643),8860=>array(91,-14,747,643),8861=>array(91,-14,747,643),8862=>array(77,-29,761,657),8863=>array(77,-29,761,657),8864=>array(77,-29,761,657),8865=>array(77,-29,761,657),8866=>array(85,0,829,705),8867=>array(85,0,829,705),8868=>array(85,0,829,705),8869=>array(85,0,829,705),8870=>array(85,0,457,705),8871=>array(85,0,457,705),8872=>array(85,0,829,705),8873=>array(85,0,829,705),8874=>array(85,0,829,705),8875=>array(85,0,829,705),8876=>array(85,-100,829,805),8877=>array(85,-100,829,805),8878=>array(85,-100,829,805),8879=>array(85,-100,829,805),8880=>array(106,-54,724,681),8881=>array(114,-54,732,681),8882=>array(106,-1,732,628),8883=>array(106,-1,732,628),8884=>array(106,-80,732,706),8885=>array(106,-80,732,706),8886=>array(60,151,940,477),8887=>array(60,151,940,477),8888=>array(60,151,778,477),8889=>array(43,-63,794,689),8890=>array(63,0,480,705),8891=>array(103,0,709,759),8892=>array(103,0,709,759),8893=>array(103,0,709,759),8894=>array(106,0,732,626),8895=>array(106,0,732,626),8896=>array(0,-192,843,719),8897=>array(0,-192,843,719),8898=>array(48,-192,794,719),8899=>array(48,-192,794,719),8900=>array(3,-233,491,807),8901=>array(102,253,278,442),8902=>array(83,112,543,549),8903=>array(106,-56,732,683),8904=>array(106,-48,894,674),8905=>array(106,-48,894,675),8906=>array(106,-48,894,675),8907=>array(106,-48,894,675),8908=>array(106,-48,894,675),8909=>array(106,144,732,517),8910=>array(49,0,763,579),8911=>array(49,0,763,579),8912=>array(93,-22,732,649),8913=>array(106,-22,745,649),8914=>array(83,0,755,639),8915=>array(83,-14,755,625),8916=>array(186,0,652,729),8917=>array(106,-100,732,729),8918=>array(106,30,732,597),8919=>array(106,30,732,597),8920=>array(72,-34,1350,660),8921=>array(72,-34,1350,660),8922=>array(106,-211,732,837),8923=>array(106,-211,732,837),8924=>array(106,0,732,582),8925=>array(106,0,732,582),8926=>array(106,-177,732,684),8927=>array(106,-177,732,684),8928=>array(106,-197,732,808),8929=>array(106,-263,732,742),8930=>array(106,-191,732,817),8931=>array(106,-191,732,817),8932=>array(106,-146,732,636),8933=>array(106,-146,732,636),8934=>array(106,-168,732,582),8935=>array(106,-168,732,582),8936=>array(106,-216,732,684),8937=>array(106,-216,732,684),8938=>array(106,-138,732,808),8939=>array(106,-138,732,808),8940=>array(106,-224,732,894),8941=>array(106,-224,732,894),8942=>array(412,-40,588,735),8943=>array(79,253,921,442),8944=>array(79,-40,921,735),8945=>array(79,-40,921,735),8946=>array(72,-2,1085,730),8947=>array(73,-2,824,730),8948=>array(106,58,644,568),8949=>array(73,-2,824,984),8950=>array(73,-2,824,919),8951=>array(106,58,644,741),8952=>array(73,-207,824,730),8953=>array(73,-2,824,730),8954=>array(72,-2,1085,730),8955=>array(73,-2,824,730),8956=>array(106,58,644,568),8957=>array(72,-2,824,919),8958=>array(106,58,644,741),8959=>array(106,0,791,732),8960=>array(31,-22,572,519),8961=>array(56,152,540,453),8962=>array(64,0,651,596),8963=>array(193,470,646,732),8964=>array(193,0,646,263),8965=>array(193,-12,646,423),8966=>array(193,-12,646,552),8967=>array(194,-42,443,802),8968=>array(-1,-132,476,760),8969=>array(118,-132,458,760),8970=>array(-1,-132,339,760),8971=>array(-19,-132,458,760),8972=>array(352,-77,759,331),8973=>array(49,-77,457,331),8974=>array(352,226,759,634),8975=>array(49,226,457,634),8976=>array(106,140,732,444),8977=>array(3,113,536,646),8984=>array(84,0,843,759),8985=>array(106,140,732,444),8988=>array(86,425,469,760),8989=>array(127,425,469,760),8990=>array(62,-126,403,208),8991=>array(41,-126,423,208),8992=>array(235,-250,586,926),8993=>array(22,-240,373,940),8996=>array(76,215,1076,575),8997=>array(76,0,1076,575),8998=>array(76,0,1414,760),8999=>array(76,0,1076,760),9000=>array(59,0,1385,729),9003=>array(0,0,1338,760),9004=>array(73,-91,800,748),9075=>array(78,-19,348,547),9076=>array(84,-208,671,562),9077=>array(43,-13,826,547),9082=>array(48,-13,645,559),9085=>array(1,-228,862,99),9095=>array(76,0,1100,743),9108=>array(17,0,856,727),9115=>array(63,-252,438,928),9116=>array(63,-252,205,940),9117=>array(63,-240,438,940),9118=>array(63,-252,438,928),9119=>array(295,-252,438,940),9120=>array(63,-240,438,940),9121=>array(63,-252,438,928),9122=>array(63,-252,205,940),9123=>array(63,-240,438,940),9124=>array(63,-252,438,928),9125=>array(295,-252,438,940),9126=>array(63,-240,438,940),9127=>array(306,-261,668,928),9128=>array(82,-247,444,934),9129=>array(306,-240,668,934),9130=>array(306,-256,444,934),9131=>array(82,-261,444,928),9132=>array(306,-247,668,934),9133=>array(82,-240,444,934),9134=>array(235,-250,373,940),9166=>array(27,46,781,729),9167=>array(91,0,854,596),9187=>array(73,-91,800,748),9189=>array(3,75,766,444),9192=>array(-5,-129,623,294),9250=>array(-34,-14,652,760),9251=>array(21,-228,672,99),9312=>array(59,-15,788,715),9313=>array(59,-15,788,715),9314=>array(59,-15,788,715),9315=>array(59,-15,788,715),9316=>array(59,-15,788,715),9317=>array(59,-15,788,715),9318=>array(59,-15,788,715),9319=>array(59,-15,788,715),9320=>array(59,-15,788,715),9321=>array(59,-15,788,715),9600=>array(-10,260,779,770),9601=>array(-10,-250,779,-123),9602=>array(-10,-250,779,-5),9603=>array(-10,-250,779,132),9604=>array(-10,-250,779,260),9605=>array(-10,-250,779,387),9606=>array(-10,-250,779,515),9607=>array(-10,-250,779,642),9608=>array(-10,-250,779,770),9609=>array(-10,-250,680,770),9610=>array(-10,-250,582,770),9611=>array(-10,-250,483,770),9612=>array(-10,-250,384,770),9613=>array(-10,-250,286,770),9614=>array(-10,-250,187,770),9615=>array(-10,-250,88,770),9616=>array(384,-250,778,770),9617=>array(-10,-250,680,770),9618=>array(-10,-250,779,770),9619=>array(-10,-250,779,770),9620=>array(-10,642,779,770),9621=>array(680,-250,778,770),9622=>array(-10,-250,385,260),9623=>array(384,-250,779,260),9624=>array(-10,260,385,770),9625=>array(-10,-250,779,770),9626=>array(-10,-250,779,770),9627=>array(-10,-250,779,770),9628=>array(-10,-250,779,770),9629=>array(384,260,779,770),9630=>array(-10,-250,779,770),9631=>array(-10,-250,779,770),9632=>array(91,-124,854,643),9633=>array(91,-124,854,643),9634=>array(91,-124,854,643),9635=>array(91,-124,854,643),9636=>array(91,-124,854,643),9637=>array(91,-124,854,643),9638=>array(91,-124,854,643),9639=>array(91,-124,854,643),9640=>array(91,-124,854,643),9641=>array(91,-124,854,643),9642=>array(91,11,587,509),9643=>array(91,11,587,509),9644=>array(91,75,854,444),9645=>array(91,75,854,444),9646=>array(91,-122,459,642),9647=>array(91,-122,459,642),9648=>array(3,75,766,444),9649=>array(3,75,766,444),9650=>array(3,-124,766,643),9651=>array(3,-124,766,643),9652=>array(3,11,499,509),9653=>array(3,11,499,509),9654=>array(3,-124,766,643),9655=>array(3,-124,766,643),9656=>array(3,11,499,509),9657=>array(3,11,499,509),9658=>array(3,11,766,509),9659=>array(3,11,766,509),9660=>array(3,-124,766,643),9661=>array(3,-124,766,643),9662=>array(3,11,499,509),9663=>array(3,11,499,509),9664=>array(3,-124,766,643),9665=>array(3,-124,766,643),9666=>array(3,11,499,509),9667=>array(3,11,499,509),9668=>array(3,11,766,509),9669=>array(3,11,766,509),9670=>array(3,-124,766,643),9671=>array(3,-124,766,643),9672=>array(3,-124,766,643),9673=>array(55,-125,818,645),9674=>array(3,-233,491,807),9675=>array(55,-125,818,645),9676=>array(56,-125,817,644),9677=>array(55,-125,818,645),9678=>array(55,-125,818,645),9679=>array(55,-123,818,641),9680=>array(55,-123,818,641),9681=>array(55,-123,818,641),9682=>array(55,-123,818,641),9683=>array(55,-123,818,641),9684=>array(55,-123,818,641),9685=>array(55,-123,818,641),9686=>array(55,-125,436,645),9687=>array(91,-125,472,645),9688=>array(91,-10,750,770),9689=>array(91,-250,879,770),9690=>array(91,260,879,770),9691=>array(91,-250,879,260),9692=>array(3,260,385,645),9693=>array(3,260,384,645),9694=>array(3,-125,384,260),9695=>array(3,-125,385,260),9696=>array(3,260,766,645),9697=>array(3,-125,766,260),9698=>array(3,-124,766,643),9699=>array(3,-124,766,643),9700=>array(3,-124,766,643),9701=>array(3,-124,766,643),9702=>array(144,196,495,547),9703=>array(91,-124,854,643),9704=>array(91,-124,854,643),9705=>array(91,-124,854,643),9706=>array(91,-124,854,643),9707=>array(91,-124,854,643),9708=>array(3,-124,766,643),9709=>array(3,-124,766,643),9710=>array(3,-124,766,643),9711=>array(55,-250,1064,770),9712=>array(91,-124,854,643),9713=>array(91,-124,854,643),9714=>array(91,-124,854,643),9715=>array(91,-124,854,643),9716=>array(55,-123,818,641),9717=>array(55,-123,818,641),9718=>array(55,-123,818,641),9719=>array(55,-123,818,641),9720=>array(3,-124,766,643),9721=>array(3,-124,766,643),9722=>array(3,-124,766,643),9723=>array(91,-66,739,585),9724=>array(91,-66,739,585),9725=>array(91,-17,642,537),9726=>array(91,-17,642,537),9727=>array(3,-124,766,643),9728=>array(83,0,813,729),9729=>array(51,-2,949,360),9730=>array(49,0,848,729),9731=>array(83,-0,813,927),9732=>array(64,0,833,880),9733=>array(65,-4,832,723),9734=>array(65,-4,832,723),9735=>array(83,2,490,729),9736=>array(83,0,813,731),9737=>array(83,0,813,730),9738=>array(61,0,828,727),9739=>array(61,0,828,723),9740=>array(61,-1,610,722),9741=>array(61,0,952,723),9742=>array(68,0,1177,729),9743=>array(71,0,1180,729),9744=>array(90,0,807,729),9745=>array(89,0,808,729),9746=>array(89,0,808,729),9747=>array(75,78,457,656),9748=>array(49,0,870,933),9749=>array(74,0,822,731),9750=>array(84,0,813,731),9751=>array(84,0,813,727),9752=>array(78,0,819,729),9753=>array(83,140,813,574),9754=>array(84,113,813,569),9755=>array(84,113,813,569),9756=>array(87,104,810,569),9757=>array(72,0,537,724),9758=>array(86,103,810,569),9759=>array(72,-3,537,720),9760=>array(61,0,835,730),9761=>array(84,0,813,730),9762=>array(83,0,813,730),9763=>array(49,0,848,730),9764=>array(49,-2,620,727),9765=>array(83,0,663,731),9766=>array(83,-1,566,731),9767=>array(83,0,701,911),9768=>array(83,0,462,730),9769=>array(83,-1,813,729),9770=>array(87,0,810,730),9771=>array(83,0,814,731),9772=>array(83,0,627,731),9773=>array(83,0,813,730),9774=>array(83,0,813,730),9775=>array(83,0,813,730),9776=>array(83,0,813,729),9777=>array(83,0,814,729),9778=>array(83,0,813,729),9779=>array(83,0,813,729),9780=>array(83,0,813,729),9781=>array(83,0,813,729),9782=>array(83,0,813,729),9783=>array(83,0,813,729),9784=>array(80,3,817,721),9785=>array(83,-73,959,804),9786=>array(83,-73,959,804),9787=>array(83,-73,959,804),9788=>array(83,0,813,730),9789=>array(358,0,814,730),9790=>array(83,0,539,730),9791=>array(85,-102,528,732),9792=>array(85,-125,647,731),9793=>array(85,-14,647,843),9794=>array(79,-14,831,720),9795=>array(166,0,730,730),9796=>array(219,0,677,730),9797=>array(121,0,774,730),9798=>array(127,0,769,730),9799=>array(240,0,656,730),9800=>array(45,0,851,731),9801=>array(89,0,807,730),9802=>array(94,0,802,731),9803=>array(113,31,784,679),9804=>array(140,0,756,730),9805=>array(53,-180,843,730),9806=>array(83,52,813,653),9807=>array(34,-96,863,730),9808=>array(83,-0,813,730),9809=>array(94,0,802,730),9810=>array(86,153,810,579),9811=>array(157,0,739,730),9812=>array(98,0,798,730),9813=>array(110,0,786,730),9814=>array(167,-1,729,729),9815=>array(214,0,683,730),9816=>array(165,0,732,730),9817=>array(148,-0,748,730),9818=>array(98,0,798,730),9819=>array(110,0,786,730),9820=>array(167,-1,729,729),9821=>array(214,0,683,730),9822=>array(162,0,734,730),9823=>array(148,-0,748,730),9824=>array(158,0,738,729),9825=>array(90,0,806,727),9826=>array(168,0,728,729),9827=>array(111,0,785,729),9828=>array(157,0,739,729),9829=>array(89,0,808,729),9830=>array(168,0,728,729),9831=>array(111,0,785,732),9832=>array(105,-1,791,729),9833=>array(84,-5,339,729),9834=>array(84,-5,554,729),9835=>array(184,-102,712,729),9836=>array(92,-5,804,729),9837=>array(88,-3,392,731),9838=>array(84,0,273,731),9839=>array(84,0,400,731),9840=>array(84,0,664,731),9841=>array(64,0,701,731),9842=>array(84,0,813,709),9843=>array(76,16,820,731),9844=>array(76,16,820,731),9845=>array(76,16,820,731),9846=>array(76,16,820,731),9847=>array(76,16,820,731),9848=>array(76,16,820,731),9849=>array(76,16,820,731),9850=>array(76,16,820,731),9851=>array(84,0,812,704),9852=>array(83,0,814,731),9853=>array(83,0,814,731),9854=>array(83,0,814,731),9855=>array(149,1,747,731),9856=>array(73,0,797,725),9857=>array(73,0,797,725),9858=>array(73,0,797,725),9859=>array(73,0,797,725),9860=>array(73,0,797,725),9861=>array(73,0,797,725),9862=>array(83,0,813,731),9863=>array(83,0,813,731),9864=>array(83,0,813,731),9865=>array(83,0,813,731),9866=>array(83,0,813,98),9867=>array(83,0,813,98),9868=>array(83,0,813,413),9869=>array(83,0,813,413),9870=>array(83,0,813,413),9871=>array(83,0,813,413),9872=>array(168,3,728,731),9873=>array(168,3,728,731),9874=>array(52,0,844,731),9875=>array(97,-10,799,732),9876=>array(131,0,765,729),9877=>array(61,-10,479,732),9878=>array(59,-10,837,732),9879=>array(61,0,835,732),9880=>array(145,0,750,732),9881=>array(95,-17,802,727),9882=>array(128,-9,768,733),9883=>array(127,0,769,728),9884=>array(127,0,769,729),9888=>array(49,0,848,729),9889=>array(83,2,619,730),9890=>array(85,-125,919,731),9891=>array(79,-206,1023,720),9892=>array(85,-186,1109,856),9893=>array(85,-125,837,917),9894=>array(131,-14,727,869),9895=>array(101,-170,741,884),9896=>array(188,-14,650,869),9897=>array(4,133,829,596),9898=>array(188,133,650,597),9899=>array(188,133,650,597),9900=>array(249,194,589,536),9901=>array(175,194,663,536),9902=>array(41,169,797,560),9903=>array(5,194,833,536),9904=>array(103,237,757,540),9905=>array(211,42,626,698),9906=>array(85,-125,647,731),9907=>array(168,-125,646,731),9908=>array(86,-125,646,731),9909=>array(86,-125,646,731),9910=>array(59,-118,791,643),9911=>array(194,-104,595,710),9912=>array(158,-125,543,731),9920=>array(42,4,796,553),9921=>array(42,4,796,724),9922=>array(42,4,796,553),9923=>array(42,4,796,724),9954=>array(85,-14,647,843),9985=>array(11,190,803,635),9986=>array(42,141,784,588),9987=>array(11,94,803,539),9988=>array(36,119,824,613),9990=>array(42,-14,796,742),9991=>array(42,-14,796,742),9992=>array(59,21,782,708),9993=>array(64,107,773,622),9996=>array(212,0,561,742),9997=>array(21,83,802,678),9998=>array(89,75,724,710),9999=>array(26,198,819,530),10000=>array(89,75,724,710),10001=>array(43,185,757,544),10002=>array(67,209,757,520),10003=>array(150,97,667,630),10004=>array(116,87,721,631),10005=>array(126,72,711,657),10006=>array(85,31,752,698),10007=>array(118,-9,701,732),10008=>array(123,0,754,739),10009=>array(55,0,783,729),10010=>array(55,0,783,729),10011=>array(55,0,783,729),10012=>array(55,0,783,729),10013=>array(165,0,673,729),10014=>array(131,0,678,729),10015=>array(155,0,683,729),10016=>array(55,0,783,729),10017=>array(91,-13,747,744),10018=>array(41,-14,797,742),10019=>array(42,-12,796,742),10020=>array(41,-14,797,742),10021=>array(41,-13,797,743),10022=>array(42,-14,796,745),10023=>array(42,-14,796,745),10025=>array(23,-9,814,743),10026=>array(42,-14,796,742),10027=>array(23,-9,814,743),10028=>array(23,-9,814,743),10029=>array(23,-9,814,743),10030=>array(23,-9,814,743),10031=>array(23,-9,814,743),10032=>array(24,12,815,714),10033=>array(64,0,773,729),10034=>array(74,0,764,729),10035=>array(55,0,783,729),10036=>array(31,-14,787,742),10037=>array(41,-14,797,742),10038=>array(91,-14,747,742),10039=>array(41,-14,797,742),10040=>array(41,-14,797,742),10041=>array(41,-14,797,742),10042=>array(55,0,783,729),10043=>array(82,-14,756,742),10044=>array(82,-14,756,742),10045=>array(84,-14,753,742),10046=>array(79,-14,759,742),10047=>array(54,0,784,709),10048=>array(54,0,784,709),10049=>array(41,-14,797,742),10050=>array(42,-14,796,742),10051=>array(79,-14,759,742),10052=>array(89,0,749,729),10053=>array(76,0,762,729),10054=>array(63,2,773,729),10055=>array(79,-13,759,742),10056=>array(47,-13,791,730),10057=>array(47,-13,791,730),10058=>array(41,-13,797,743),10059=>array(41,-13,797,743),10061=>array(50,-10,847,738),10063=>array(60,-49,837,729),10064=>array(60,0,837,777),10065=>array(60,-49,837,729),10066=>array(60,0,837,777),10070=>array(83,-2,813,728),10072=>array(377,-240,460,760),10073=>array(336,-240,502,760),10074=>array(253,-240,585,760),10075=>array(85,395,264,729),10076=>array(59,395,237,729),10077=>array(85,395,479,729),10078=>array(59,395,453,729),10081=>array(155,-93,772,851),10082=>array(202,-17,636,742),10083=>array(163,-17,675,742),10084=>array(54,83,784,645),10085=>array(168,-1,729,729),10086=>array(62,21,724,702),10087=>array(78,169,759,564),10088=>array(196,-139,648,769),10089=>array(196,-139,648,769),10090=>array(264,-132,574,758),10091=>array(264,-132,574,758),10092=>array(215,-240,607,760),10093=>array(232,-240,623,760),10094=>array(142,-240,685,760),10095=>array(153,-240,696,760),10096=>array(167,-240,656,760),10097=>array(183,-240,672,760),10098=>array(346,-241,535,760),10099=>array(303,-241,492,760),10100=>array(175,-163,634,760),10101=>array(204,-163,663,760),10102=>array(59,-15,788,715),10103=>array(59,-15,788,715),10104=>array(59,-15,788,715),10105=>array(59,-15,788,715),10106=>array(59,-15,788,715),10107=>array(59,-15,788,715),10108=>array(59,-15,788,715),10109=>array(59,-15,788,715),10110=>array(59,-15,788,715),10111=>array(59,-15,788,715),10112=>array(4,-52,833,780),10113=>array(4,-52,833,780),10114=>array(4,-52,833,780),10115=>array(4,-52,833,780),10116=>array(4,-52,833,780),10117=>array(4,-52,833,780),10118=>array(4,-52,833,780),10119=>array(4,-52,833,780),10120=>array(4,-52,833,780),10121=>array(4,-52,833,780),10122=>array(4,-52,833,780),10123=>array(4,-52,833,780),10124=>array(4,-52,833,780),10125=>array(4,-52,833,780),10126=>array(4,-52,833,780),10127=>array(4,-52,833,780),10128=>array(4,-52,833,780),10129=>array(4,-52,833,780),10130=>array(4,-52,833,780),10131=>array(4,-52,833,780),10132=>array(57,75,789,552),10136=>array(123,55,682,614),10137=>array(57,100,789,527),10138=>array(123,13,682,572),10139=>array(57,129,789,498),10140=>array(57,57,764,570),10141=>array(57,100,789,527),10142=>array(57,100,789,527),10143=>array(57,100,789,527),10144=>array(57,100,789,527),10145=>array(57,46,811,581),10146=>array(111,94,789,533),10147=>array(111,94,789,533),10148=>array(111,-4,789,631),10149=>array(57,100,789,548),10150=>array(57,79,789,527),10151=>array(240,-7,606,634),10152=>array(57,100,789,527),10153=>array(57,75,765,552),10154=>array(57,75,765,552),10155=>array(21,12,794,586),10156=>array(21,12,794,586),10157=>array(135,0,774,574),10158=>array(135,0,774,574),10159=>array(62,49,799,574),10161=>array(62,49,799,574),10162=>array(154,-20,721,585),10163=>array(63,157,789,470),10164=>array(81,55,682,655),10165=>array(57,173,789,454),10166=>array(82,-29,682,572),10167=>array(82,55,682,655),10168=>array(57,172,789,455),10169=>array(82,-28,682,572),10170=>array(56,84,789,543),10171=>array(73,140,779,487),10172=>array(79,167,774,460),10173=>array(79,118,774,509),10174=>array(57,81,789,546),10181=>array(0,-163,438,769),10182=>array(-39,-163,474,769),10208=>array(3,-233,491,807),10214=>array(7,-132,498,760),10215=>array(7,-132,498,760),10216=>array(104,-132,464,759),10217=>array(-7,-132,353,759),10218=>array(104,-132,728,759),10219=>array(-7,-132,616,759),10224=>array(41,0,797,732),10225=>array(42,-3,798,729),10226=>array(9,45,816,685),10227=>array(22,45,830,685),10228=>array(57,-14,1108,643),10229=>array(49,87,1376,540),10230=>array(57,87,1385,540),10231=>array(49,87,1385,540),10232=>array(49,87,1376,540),10233=>array(57,87,1385,540),10234=>array(49,87,1385,540),10235=>array(49,87,1376,540),10236=>array(57,87,1385,540),10237=>array(49,87,1376,540),10238=>array(57,87,1385,540),10239=>array(57,87,1385,540),10240=>array(146,586,342,781),10241=>array(146,586,342,781),10242=>array(146,325,342,521),10243=>array(146,325,342,781),10244=>array(146,65,342,261),10245=>array(146,65,342,781),10246=>array(146,65,342,521),10247=>array(146,65,342,781),10248=>array(439,586,635,781),10249=>array(146,586,635,781),10250=>array(146,325,635,781),10251=>array(146,325,635,781),10252=>array(146,65,635,781),10253=>array(146,65,635,781),10254=>array(146,65,635,781),10255=>array(146,65,635,781),10256=>array(439,325,635,521),10257=>array(146,325,635,781),10258=>array(146,325,635,521),10259=>array(146,325,635,781),10260=>array(146,65,635,521),10261=>array(146,65,635,781),10262=>array(146,65,635,521),10263=>array(146,65,635,781),10264=>array(439,325,635,781),10265=>array(146,325,635,781),10266=>array(146,325,635,781),10267=>array(146,325,635,781),10268=>array(146,65,635,781),10269=>array(146,65,635,781),10270=>array(146,65,635,781),10271=>array(146,65,635,781),10272=>array(439,65,635,261),10273=>array(146,65,635,781),10274=>array(146,65,635,521),10275=>array(146,65,635,781),10276=>array(146,65,635,261),10277=>array(146,65,635,781),10278=>array(146,65,635,521),10279=>array(146,65,635,781),10280=>array(439,65,635,781),10281=>array(146,65,635,781),10282=>array(146,65,635,781),10283=>array(146,65,635,781),10284=>array(146,65,635,781),10285=>array(146,65,635,781),10286=>array(146,65,635,781),10287=>array(146,65,635,781),10288=>array(439,65,635,521),10289=>array(146,65,635,781),10290=>array(146,65,635,521),10291=>array(146,65,635,781),10292=>array(146,65,635,521),10293=>array(146,65,635,781),10294=>array(146,65,635,521),10295=>array(146,65,635,781),10296=>array(439,65,635,781),10297=>array(146,65,635,781),10298=>array(146,65,635,781),10299=>array(146,65,635,781),10300=>array(146,65,635,781),10301=>array(146,65,635,781),10302=>array(146,65,635,781),10303=>array(146,65,635,781),10304=>array(146,-195,342,0),10305=>array(146,-195,342,781),10306=>array(146,-195,342,521),10307=>array(146,-195,342,781),10308=>array(146,-195,342,261),10309=>array(146,-195,342,781),10310=>array(146,-195,342,521),10311=>array(146,-195,342,781),10312=>array(146,-195,635,781),10313=>array(146,-195,635,781),10314=>array(146,-195,635,781),10315=>array(146,-195,635,781),10316=>array(146,-195,635,781),10317=>array(146,-195,635,781),10318=>array(146,-195,635,781),10319=>array(146,-195,635,781),10320=>array(146,-195,635,521),10321=>array(146,-195,635,781),10322=>array(146,-195,635,521),10323=>array(146,-195,635,781),10324=>array(146,-195,635,521),10325=>array(146,-195,635,781),10326=>array(146,-195,635,521),10327=>array(146,-195,635,781),10328=>array(146,-195,635,781),10329=>array(146,-195,635,781),10330=>array(146,-195,635,781),10331=>array(146,-195,635,781),10332=>array(146,-195,635,781),10333=>array(146,-195,635,781),10334=>array(146,-195,635,781),10335=>array(146,-195,635,781),10336=>array(146,-195,635,261),10337=>array(146,-195,635,781),10338=>array(146,-195,635,521),10339=>array(146,-195,635,781),10340=>array(146,-195,635,261),10341=>array(146,-195,635,781),10342=>array(146,-195,635,521),10343=>array(146,-195,635,781),10344=>array(146,-195,635,781),10345=>array(146,-195,635,781),10346=>array(146,-195,635,781),10347=>array(146,-195,635,781),10348=>array(146,-195,635,781),10349=>array(146,-195,635,781),10350=>array(146,-195,635,781),10351=>array(146,-195,635,781),10352=>array(146,-195,635,521),10353=>array(146,-195,635,781),10354=>array(146,-195,635,521),10355=>array(146,-195,635,781),10356=>array(146,-195,635,521),10357=>array(146,-195,635,781),10358=>array(146,-195,635,521),10359=>array(146,-195,635,781),10360=>array(146,-195,635,781),10361=>array(146,-195,635,781),10362=>array(146,-195,635,781),10363=>array(146,-195,635,781),10364=>array(146,-195,635,781),10365=>array(146,-195,635,781),10366=>array(146,-195,635,781),10367=>array(146,-195,635,781),10368=>array(439,-195,635,0),10369=>array(146,-195,635,781),10370=>array(146,-195,635,521),10371=>array(146,-195,635,781),10372=>array(146,-195,635,261),10373=>array(146,-195,635,781),10374=>array(146,-195,635,521),10375=>array(146,-195,635,781),10376=>array(439,-195,635,781),10377=>array(146,-195,635,781),10378=>array(146,-195,635,781),10379=>array(146,-195,635,781),10380=>array(146,-195,635,781),10381=>array(146,-195,635,781),10382=>array(146,-195,635,781),10383=>array(146,-195,635,781),10384=>array(439,-195,635,521),10385=>array(146,-195,635,781),10386=>array(146,-195,635,521),10387=>array(146,-195,635,781),10388=>array(146,-195,635,521),10389=>array(146,-195,635,781),10390=>array(146,-195,635,521),10391=>array(146,-195,635,781),10392=>array(439,-195,635,781),10393=>array(146,-195,635,781),10394=>array(146,-195,635,781),10395=>array(146,-195,635,781),10396=>array(146,-195,635,781),10397=>array(146,-195,635,781),10398=>array(146,-195,635,781),10399=>array(146,-195,635,781),10400=>array(439,-195,635,261),10401=>array(146,-195,635,781),10402=>array(146,-195,635,521),10403=>array(146,-195,635,781),10404=>array(146,-195,635,261),10405=>array(146,-195,635,781),10406=>array(146,-195,635,521),10407=>array(146,-195,635,781),10408=>array(439,-195,635,781),10409=>array(146,-195,635,781),10410=>array(146,-195,635,781),10411=>array(146,-195,635,781),10412=>array(146,-195,635,781),10413=>array(146,-195,635,781),10414=>array(146,-195,635,781),10415=>array(146,-195,635,781),10416=>array(439,-195,635,521),10417=>array(146,-195,635,781),10418=>array(146,-195,635,521),10419=>array(146,-195,635,781),10420=>array(146,-195,635,521),10421=>array(146,-195,635,781),10422=>array(146,-195,635,521),10423=>array(146,-195,635,781),10424=>array(439,-195,635,781),10425=>array(146,-195,635,781),10426=>array(146,-195,635,781),10427=>array(146,-195,635,781),10428=>array(146,-195,635,781),10429=>array(146,-195,635,781),10430=>array(146,-195,635,781),10431=>array(146,-195,635,781),10432=>array(146,-195,635,0),10433=>array(146,-195,635,781),10434=>array(146,-195,635,521),10435=>array(146,-195,635,781),10436=>array(146,-195,635,261),10437=>array(146,-195,635,781),10438=>array(146,-195,635,521),10439=>array(146,-195,635,781),10440=>array(146,-195,635,781),10441=>array(146,-195,635,781),10442=>array(146,-195,635,781),10443=>array(146,-195,635,781),10444=>array(146,-195,635,781),10445=>array(146,-195,635,781),10446=>array(146,-195,635,781),10447=>array(146,-195,635,781),10448=>array(146,-195,635,521),10449=>array(146,-195,635,781),10450=>array(146,-195,635,521),10451=>array(146,-195,635,781),10452=>array(146,-195,635,521),10453=>array(146,-195,635,781),10454=>array(146,-195,635,521),10455=>array(146,-195,635,781),10456=>array(146,-195,635,781),10457=>array(146,-195,635,781),10458=>array(146,-195,635,781),10459=>array(146,-195,635,781),10460=>array(146,-195,635,781),10461=>array(146,-195,635,781),10462=>array(146,-195,635,781),10463=>array(146,-195,635,781),10464=>array(146,-195,635,261),10465=>array(146,-195,635,781),10466=>array(146,-195,635,521),10467=>array(146,-195,635,781),10468=>array(146,-195,635,261),10469=>array(146,-195,635,781),10470=>array(146,-195,635,521),10471=>array(146,-195,635,781),10472=>array(146,-195,635,781),10473=>array(146,-195,635,781),10474=>array(146,-195,635,781),10475=>array(146,-195,635,781),10476=>array(146,-195,635,781),10477=>array(146,-195,635,781),10478=>array(146,-195,635,781),10479=>array(146,-195,635,781),10480=>array(146,-195,635,521),10481=>array(146,-195,635,781),10482=>array(146,-195,635,521),10483=>array(146,-195,635,781),10484=>array(146,-195,635,521),10485=>array(146,-195,635,781),10486=>array(146,-195,635,521),10487=>array(146,-195,635,781),10488=>array(146,-195,635,781),10489=>array(146,-195,635,781),10490=>array(146,-195,635,781),10491=>array(146,-195,635,781),10492=>array(146,-195,635,781),10493=>array(146,-195,635,781),10494=>array(146,-195,635,781),10495=>array(146,-195,635,781),10502=>array(49,87,781,540),10503=>array(57,87,789,540),10506=>array(132,0,707,732),10507=>array(132,0,707,732),10560=>array(86,45,726,853),10561=>array(86,45,726,853),10627=>array(117,-163,718,760),10628=>array(35,-163,636,760),10702=>array(106,-258,732,800),10703=>array(106,-1,940,628),10704=>array(106,-1,940,628),10705=>array(106,-48,894,674),10706=>array(106,-48,894,674),10707=>array(106,-48,894,674),10708=>array(106,-48,894,675),10709=>array(106,-48,894,675),10731=>array(3,-233,491,807),10746=>array(106,0,732,627),10747=>array(106,0,732,627),10752=>array(28,-211,972,734),10753=>array(28,-211,972,734),10754=>array(28,-211,972,734),10764=>array(15,-227,1646,754),10765=>array(14,-227,548,754),10766=>array(14,-227,548,754),10767=>array(14,-227,548,754),10768=>array(14,-227,548,754),10769=>array(14,-227,576,754),10770=>array(14,-227,548,754),10771=>array(14,-227,548,754),10772=>array(14,-228,651,754),10773=>array(14,-227,548,754),10774=>array(14,-227,548,754),10775=>array(-30,-227,556,754),10776=>array(14,-227,548,754),10777=>array(14,-227,548,754),10778=>array(14,-227,548,754),10779=>array(15,-227,548,898),10780=>array(15,-372,548,754),10799=>array(125,20,713,607),10858=>array(106,212,732,660),10859=>array(106,-34,732,660),10877=>array(106,-150,732,632),10878=>array(106,-150,732,632),10879=>array(106,-150,732,632),10880=>array(106,-150,732,632),10881=>array(106,-150,732,688),10882=>array(106,-150,732,688),10883=>array(106,-150,732,827),10884=>array(106,-150,732,827),10885=>array(106,-217,732,630),10886=>array(106,-217,732,630),10887=>array(106,-124,732,582),10888=>array(106,-124,732,582),10889=>array(106,-281,732,630),10890=>array(106,-281,732,630),10891=>array(106,-303,732,814),10892=>array(106,-303,732,814),10893=>array(106,-183,732,653),10894=>array(106,-183,732,653),10895=>array(106,-245,732,765),10896=>array(106,-245,732,765),10897=>array(106,-278,732,782),10898=>array(106,-278,732,782),10899=>array(106,-263,732,771),10900=>array(106,-263,732,771),10901=>array(106,-50,732,733),10902=>array(106,-50,732,733),10903=>array(106,-50,732,733),10904=>array(106,-50,732,733),10905=>array(106,-45,732,678),10906=>array(106,-45,732,678),10907=>array(106,-81,732,724),10908=>array(106,-81,732,724),10909=>array(106,13,732,680),10910=>array(106,13,732,680),10911=>array(106,-239,732,746),10912=>array(106,-239,732,746),10926=>array(106,22,732,656),10927=>array(106,-83,732,684),10928=>array(106,-83,732,684),10929=>array(106,-246,732,684),10930=>array(106,-246,732,684),10931=>array(106,-205,732,672),10932=>array(106,-205,732,672),10933=>array(106,-304,732,672),10934=>array(106,-304,732,672),10935=>array(106,-252,732,713),10936=>array(106,-252,732,713),10937=>array(106,-316,732,713),10938=>array(106,-316,732,713),11001=>array(106,-195,732,609),11002=>array(106,-195,732,609),11008=>array(123,-23,744,598),11009=>array(94,-23,715,598),11010=>array(123,-23,744,598),11011=>array(94,-23,715,598),11012=>array(27,46,789,581),11013=>array(27,46,781,581),11014=>array(151,0,687,754),11015=>array(151,-25,687,729),11016=>array(123,-23,744,598),11017=>array(94,-23,715,598),11018=>array(123,-23,744,598),11019=>array(94,-23,715,598),11020=>array(27,46,789,581),11021=>array(151,-25,687,754),11022=>array(57,-25,800,372),11023=>array(57,255,800,652),11024=>array(38,-25,781,372),11025=>array(38,255,781,652),11026=>array(91,-124,854,643),11027=>array(91,-124,854,643),11028=>array(91,-124,854,643),11029=>array(91,-124,854,643),11030=>array(3,-124,766,643),11031=>array(3,-124,766,643),11032=>array(3,-124,766,643),11033=>array(3,-124,766,643),11034=>array(91,-124,854,643),11039=>array(18,-26,852,767),11040=>array(18,-26,852,767),11041=>array(73,-91,800,748),11042=>array(73,-91,800,748),11043=>array(17,-35,856,692),11044=>array(55,-250,1064,770),11091=>array(38,-47,832,788),11092=>array(38,-47,832,788),11360=>array(-24,0,566,729),11361=>array(-35,0,390,760),11362=>array(-28,0,566,729),11363=>array(18,0,716,729),11364=>array(54,-200,708,729),11365=>array(-21,-46,692,594),11366=>array(-6,-93,531,822),11367=>array(36,-157,904,729),11368=>array(23,-138,770,760),11369=>array(36,-157,855,729),11370=>array(23,-138,709,760),11371=>array(-11,-157,755,729),11372=>array(5,-138,606,547),11373=>array(48,-14,840,741),11374=>array(41,-200,993,729),11375=>array(76,0,840,729),11376=>array(-23,-14,780,741),11377=>array(67,0,797,560),11378=>array(99,0,1263,742),11379=>array(87,0,1075,560),11380=>array(44,0,687,586),11381=>array(21,0,623,729),11382=>array(31,0,494,547),11383=>array(64,0,724,552),11385=>array(10,-13,529,760),11386=>array(43,-14,644,560),11387=>array(25,0,520,547),11388=>array(-75,-121,219,425),11389=>array(42,326,524,734),11390=>array(37,-240,688,742),11391=>array(-2,-240,763,729),11520=>array(41,-64,638,547),11521=>array(-12,-232,663,546),11522=>array(28,-232,635,547),11523=>array(42,-10,646,807),11524=>array(29,-228,642,546),11525=>array(21,-228,1017,546),11526=>array(74,-8,697,816),11527=>array(31,-9,1003,547),11528=>array(42,0,617,547),11529=>array(29,-227,643,816),11530=>array(20,-9,1014,546),11531=>array(35,-8,687,816),11532=>array(20,0,656,816),11533=>array(30,-8,1025,546),11534=>array(29,-8,667,546),11535=>array(55,-228,875,816),11536=>array(30,-9,1005,816),11537=>array(29,-9,668,816),11538=>array(26,-232,632,546),11539=>array(29,-228,1024,661),11540=>array(40,-228,980,546),11541=>array(26,-228,1009,816),11542=>array(24,0,657,546),11543=>array(29,-228,668,547),11544=>array(29,-232,665,546),11545=>array(27,-228,657,816),11546=>array(26,-232,632,547),11547=>array(41,-9,695,816),11548=>array(24,-228,1018,547),11549=>array(23,-232,641,546),11550=>array(31,-232,677,546),11551=>array(16,-228,653,567),11552=>array(24,-9,1042,546),11553=>array(31,-228,648,816),11554=>array(38,-9,625,626),11555=>array(40,-228,659,816),11556=>array(30,-228,721,546),11557=>array(40,-8,982,816),11800=>array(37,-13,494,729),11807=>array(106,-34,732,415),11810=>array(77,314,466,760),11811=>array(124,314,448,760),11812=>array(-10,-132,314,314),11813=>array(-28,-132,362,314),11822=>array(104,0,580,742),19904=>array(83,-158,813,729),19905=>array(83,-158,813,729),19906=>array(83,-158,813,729),19907=>array(83,-158,813,729),19908=>array(83,-158,813,729),19909=>array(83,-158,813,729),19910=>array(83,-158,813,729),19911=>array(83,-158,813,729),19912=>array(83,-158,813,729),19913=>array(83,-158,814,729),19914=>array(83,-158,813,729),19915=>array(83,-158,813,729),19916=>array(83,-158,813,729),19917=>array(83,-158,813,729),19918=>array(83,-158,813,729),19919=>array(83,-158,813,729),19920=>array(83,-158,814,729),19921=>array(83,-158,813,729),19922=>array(83,-158,814,729),19923=>array(83,-158,813,729),19924=>array(83,-158,813,729),19925=>array(83,-158,813,729),19926=>array(83,-158,813,729),19927=>array(83,-158,813,729),19928=>array(83,-158,813,729),19929=>array(83,-158,813,729),19930=>array(83,-158,813,729),19931=>array(83,-158,814,729),19932=>array(83,-158,813,729),19933=>array(83,-158,813,729),19934=>array(83,-158,814,729),19935=>array(83,-158,813,729),19936=>array(83,-158,813,729),19937=>array(83,-158,813,729),19938=>array(83,-158,813,729),19939=>array(83,-158,813,729),19940=>array(83,-158,813,729),19941=>array(83,-158,814,729),19942=>array(83,-158,813,729),19943=>array(83,-158,813,729),19944=>array(83,-158,814,729),19945=>array(83,-158,813,729),19946=>array(83,-158,814,729),19947=>array(83,-158,813,729),19948=>array(83,-158,814,729),19949=>array(83,-158,813,729),19950=>array(83,-158,814,729),19951=>array(83,-158,813,729),19952=>array(83,-158,814,729),19953=>array(83,-158,813,729),19954=>array(83,-158,813,729),19955=>array(83,-158,813,729),19956=>array(83,-158,813,729),19957=>array(83,-158,814,729),19958=>array(83,-158,813,729),19959=>array(83,-158,813,729),19960=>array(83,-158,813,729),19961=>array(83,-158,814,729),19962=>array(83,-158,813,729),19963=>array(83,-158,814,729),19964=>array(83,-158,814,729),19965=>array(83,-158,813,729),19966=>array(83,-158,813,729),19967=>array(83,-158,813,729),42192=>array(21,0,699,729),42193=>array(21,0,719,729),42194=>array(17,0,712,729),42195=>array(21,0,786,729),42196=>array(48,0,748,729),42197=>array(-65,0,634,729),42198=>array(36,-14,778,742),42199=>array(21,0,837,729),42200=>array(-65,0,754,729),42201=>array(7,-14,581,729),42202=>array(36,-14,724,742),42203=>array(-13,-14,675,742),42204=>array(-26,0,740,729),42205=>array(21,0,670,729),42206=>array(21,0,670,729),42207=>array(21,0,974,729),42208=>array(21,0,816,729),42209=>array(21,0,566,729),42210=>array(15,-14,665,742),42211=>array(21,0,685,729),42212=>array(81,0,749,729),42213=>array(-66,0,698,729),42214=>array(76,0,840,729),42215=>array(21,0,816,729),42216=>array(5,-14,747,742),42217=>array(19,0,592,743),42218=>array(107,0,1143,729),42219=>array(-51,0,812,729),42220=>array(63,0,809,729),42221=>array(67,0,741,729),42222=>array(-65,0,691,729),42223=>array(76,0,840,729),42224=>array(21,0,670,729),42225=>array(13,0,662,729),42226=>array(21,0,351,729),42227=>array(36,-14,814,742),42228=>array(68,-14,791,729),42229=>array(20,0,733,743),42230=>array(9,0,554,729),42231=>array(48,0,809,729),42232=>array(17,0,230,189),42233=>array(-63,-142,227,189),42234=>array(17,0,582,189),42235=>array(17,-142,579,189),42236=>array(-74,-142,284,547),42237=>array(2,0,284,547),42238=>array(88,0,554,405),42239=>array(39,134,549,492),42564=>array(-1,-14,631,742),42565=>array(-7,-14,534,560),42566=>array(74,0,384,729),42567=>array(74,-1,326,547),42572=>array(37,-14,1348,654),42573=>array(31,-13,1129,547),42576=>array(92,0,1213,729),42577=>array(52,0,1000,547),42580=>array(45,-14,1153,742),42581=>array(37,-14,941,560),42582=>array(21,0,1017,729),42583=>array(31,-14,905,560),42594=>array(-26,-157,1144,729),42595=>array(-10,-138,967,547),42596=>array(-25,0,1140,729),42597=>array(2,0,941,547),42598=>array(21,0,1304,729),42599=>array(28,0,1023,547),42600=>array(36,-14,814,742),42601=>array(36,-14,651,560),42602=>array(50,-14,987,742),42603=>array(43,-14,825,560),42604=>array(50,-14,1356,742),42605=>array(43,-14,1063,560),42606=>array(28,-208,933,743),42634=>array(48,-200,863,729),42635=>array(34,-216,672,547),42636=>array(48,0,748,729),42637=>array(34,0,626,547),42644=>array(106,0,793,729),42645=>array(10,0,625,760),42760=>array(146,0,471,693),42761=>array(117,0,471,693),42762=>array(87,0,471,693),42763=>array(58,0,471,693),42764=>array(29,0,471,693),42765=>array(29,0,471,693),42766=>array(29,0,442,693),42767=>array(29,0,413,693),42768=>array(29,0,383,693),42769=>array(29,0,354,693),42770=>array(29,0,471,693),42771=>array(29,0,442,693),42772=>array(29,0,413,693),42773=>array(29,0,383,693),42774=>array(29,0,354,693),42779=>array(180,326,464,736),42780=>array(142,324,426,734),42781=>array(152,326,342,734),42782=>array(152,326,342,734),42783=>array(88,0,278,408),42786=>array(30,0,432,729),42787=>array(38,0,369,547),42788=>array(55,224,530,742),42789=>array(55,42,530,560),42790=>array(41,-200,835,729),42791=>array(31,-216,646,760),42792=>array(69,-216,984,729),42793=>array(48,-215,810,702),42794=>array(37,-14,652,742),42795=>array(-2,-202,517,560),42800=>array(39,0,526,547),42801=>array(10,-14,560,560),42802=>array(-66,0,1273,729),42803=>array(22,-14,981,560),42804=>array(-65,-14,1249,742),42805=>array(17,-14,1029,560),42806=>array(-65,-14,1224,729),42807=>array(17,-14,1021,560),42808=>array(-66,0,1145,729),42809=>array(22,-14,960,560),42810=>array(-66,0,1145,729),42811=>array(22,-14,960,560),42812=>array(-45,-216,1122,729),42813=>array(42,-216,979,560),42814=>array(-13,-14,670,742),42815=>array(-7,-14,537,560),42816=>array(21,0,837,729),42817=>array(31,0,716,760),42822=>array(81,0,779,729),42823=>array(68,0,472,760),42824=>array(65,0,612,729),42825=>array(81,0,520,760),42826=>array(4,-14,915,742),42827=>array(-4,-14,821,560),42830=>array(50,-14,1356,742),42831=>array(43,-14,1063,560),42832=>array(-42,0,723,729),42833=>array(-81,-208,679,560),42834=>array(-1,0,938,729),42835=>array(0,-208,900,560),42838=>array(40,-188,811,742),42839=>array(34,-208,682,559),42852=>array(21,0,698,729),42853=>array(-11,-208,678,760),42854=>array(-50,0,698,729),42855=>array(-82,-208,678,760),42880=>array(71,0,616,729),42881=>array(11,-208,332,547),42882=>array(-8,-208,776,742),42883=>array(-10,-208,654,560),42889=>array(41,0,323,547),42890=>array(63,141,333,405),42891=>array(142,245,387,729),42892=>array(69,458,237,729),42893=>array(100,0,787,729),42894=>array(93,-216,613,760),42896=>array(21,-157,824,729),42897=>array(31,-138,695,560),42912=>array(-17,-14,837,742),42913=>array(-19,-216,735,559),42914=>array(-16,0,837,729),42915=>array(-18,0,716,760),42916=>array(-17,0,854,729),42917=>array(-19,0,731,560),42918=>array(-15,0,785,729),42919=>array(-15,0,545,560),42920=>array(-14,-14,734,742),42921=>array(-17,-14,612,560),42922=>array(-37,0,865,729),43002=>array(31,0,1025,547),43003=>array(92,0,662,729),43004=>array(65,0,712,729),43005=>array(21,0,974,729),43006=>array(1,0,370,928),43007=>array(-40,0,1365,729),61184=>array(141,602,384,693),61185=>array(83,451,406,693),61186=>array(29,301,430,693),61187=>array(-12,150,440,693),61188=>array(-47,0,446,693),61189=>array(100,451,376,693),61190=>array(112,451,355,543),61191=>array(54,301,376,543),61192=>array(0,150,401,543),61193=>array(-41,0,411,543),61194=>array(82,301,372,693),61195=>array(71,301,347,543),61196=>array(83,301,326,393),61197=>array(25,150,347,393),61198=>array(-29,0,372,393),61199=>array(75,150,353,693),61200=>array(53,149,342,542),61201=>array(42,150,318,393),61202=>array(53,150,296,242),61203=>array(-4,0,318,242),61204=>array(73,0,329,693),61205=>array(46,0,323,543),61206=>array(23,0,313,393),61207=>array(12,0,289,242),61208=>array(24,0,268,92),61209=>array(29,0,255,693),62464=>array(84,-14,614,819),62465=>array(90,-15,610,823),62466=>array(86,-14,652,828),62467=>array(124,0,954,828),62468=>array(80,-15,679,828),62469=>array(81,-15,657,828),62470=>array(129,-15,677,828),62471=>array(92,-14,949,828),62472=>array(98,0,644,828),62473=>array(80,-14,684,820),62474=>array(139,-6,1218,828),62475=>array(81,-14,674,828),62476=>array(88,-15,675,820),62477=>array(107,0,938,828),62478=>array(78,-15,654,819),62479=>array(87,-15,722,840),62480=>array(99,0,938,828),62481=>array(99,-14,618,819),62482=>array(97,-14,785,828),62483=>array(80,-14,680,828),62484=>array(136,-14,947,828),62485=>array(79,-14,717,819),62486=>array(113,0,963,828),62487=>array(74,-14,717,820),62488=>array(72,-14,672,828),62489=>array(40,0,626,828),62490=>array(100,-15,715,820),62491=>array(86,-14,717,819),62492=>array(90,-14,729,828),62493=>array(79,-14,719,820),62494=>array(94,-14,619,819),62495=>array(29,-14,623,828),62496=>array(81,-15,658,828),62497=>array(88,-15,677,828),62498=>array(14,-73,658,828),62499=>array(77,-15,719,830),62500=>array(78,-15,726,828),62501=>array(76,-14,732,828),62502=>array(126,-14,1016,828),62504=>array(40,-228,982,816),62505=>array(48,-223,821,843),62506=>array(81,-14,565,761),62507=>array(81,-14,567,773),62508=>array(81,-14,586,866),62509=>array(81,-14,623,812),62510=>array(81,-14,604,877),62511=>array(81,-14,577,803),62512=>array(31,-232,574,761),62513=>array(31,-232,631,793),62514=>array(31,-232,649,891),62515=>array(31,-232,601,803),62516=>array(80,0,589,761),62517=>array(80,0,637,793),62518=>array(80,0,601,803),62519=>array(97,-0,813,761),62520=>array(97,-0,813,773),62521=>array(97,-0,813,884),62522=>array(97,-0,813,793),62523=>array(97,-0,813,803),62524=>array(76,-232,621,761),62525=>array(76,-232,621,773),62526=>array(76,-232,630,894),62527=>array(76,-232,636,793),62528=>array(76,-232,621,803),62529=>array(76,-232,621,844),62917=>array(16,-14,648,760),64256=>array(50,0,916,760),64257=>array(50,0,798,760),64258=>array(50,0,798,760),64259=>array(50,0,1128,760),64260=>array(50,0,1129,760),64261=>array(45,0,836,760),64262=>array(8,-14,1047,742),64275=>array(47,-14,1334,760),64276=>array(47,-14,1335,760),64277=>array(65,-208,1311,760),64278=>array(65,-208,1353,760),64279=>array(65,-208,1682,760),64285=>array(98,38,334,547),64286=>array(194,635,524,780),64287=>array(98,36,655,547),64288=>array(38,0,697,547),64289=>array(120,0,926,547),64290=>array(126,0,838,547),64291=>array(100,0,840,547),64292=>array(43,0,791,547),64293=>array(126,0,837,739),64294=>array(91,0,842,547),64295=>array(126,0,794,547),64296=>array(48,-4,798,547),64297=>array(155,256,804,627),64298=>array(89,0,857,710),64299=>array(89,0,856,723),64300=>array(89,0,856,710),64301=>array(89,0,856,710),64302=>array(104,-171,730,547),64303=>array(104,-217,730,547),64304=>array(104,-171,730,547),64305=>array(43,0,590,547),64306=>array(44,-9,428,547),64307=>array(126,0,651,547),64308=>array(100,0,661,547),64309=>array(73,0,452,547),64310=>array(73,0,548,547),64311=>array(142,-13,676,553),64312=>array(142,-13,676,553),64313=>array(101,164,476,547),64314=>array(126,-240,549,547),64315=>array(43,0,570,547),64316=>array(126,0,633,711),64317=>array(84,0,690,554),64318=>array(84,0,690,554),64319=>array(43,0,430,547),64320=>array(43,0,430,547),64321=>array(144,-13,678,547),64322=>array(158,-240,642,547),64323=>array(158,-240,642,547),64324=>array(91,0,656,547),64325=>array(54,0,670,547),64326=>array(54,0,670,547),64327=>array(51,-240,767,546),64328=>array(126,0,575,547),64329=>array(89,0,856,547),64330=>array(11,-4,650,547),64331=>array(91,0,359,710),64332=>array(43,0,590,710),64333=>array(43,0,570,710),64334=>array(91,0,656,710),64335=>array(47,0,732,729),65024=>array(-276,735,171,880),65025=>array(-276,735,171,880),65026=>array(-276,735,171,880),65027=>array(-276,735,171,880),65028=>array(-276,735,171,880),65029=>array(-276,735,171,880),65030=>array(-276,735,171,880),65031=>array(-276,735,171,880),65032=>array(-276,735,171,880),65033=>array(-276,735,171,880),65034=>array(-276,735,171,880),65035=>array(-276,735,171,880),65036=>array(-276,735,171,880),65037=>array(-276,735,171,880),65038=>array(-276,735,171,880),65039=>array(-276,735,171,880),65056=>array(-276,735,171,880),65057=>array(157,735,564,880),65058=>array(-215,756,169,894),65059=>array(152,756,536,894),65529=>array(100,-139,1164,926),65530=>array(100,-139,1164,926),65531=>array(100,-139,1164,926),65532=>array(100,-139,1164,926),65533=>array(100,-139,1164,926),65535=>array(50,-177,550,705));
15
+ $cw=array(0=>600,32=>348,33=>456,34=>521,35=>696,36=>696,37=>1002,38=>872,39=>306,40=>457,41=>457,42=>523,43=>838,44=>380,45=>415,46=>380,47=>365,48=>696,49=>696,50=>696,51=>696,52=>696,53=>696,54=>696,55=>696,56=>696,57=>696,58=>400,59=>400,60=>838,61=>838,62=>838,63=>580,64=>1000,65=>774,66=>762,67=>734,68=>830,69=>683,70=>683,71=>821,72=>837,73=>372,74=>372,75=>775,76=>637,77=>995,78=>837,79=>850,80=>733,81=>850,82=>770,83=>720,84=>682,85=>812,86=>774,87=>1103,88=>771,89=>724,90=>725,91=>457,92=>365,93=>457,94=>838,95=>500,96=>500,97=>675,98=>716,99=>593,100=>716,101=>678,102=>435,103=>716,104=>712,105=>343,106=>343,107=>665,108=>343,109=>1042,110=>712,111=>687,112=>716,113=>716,114=>493,115=>595,116=>478,117=>712,118=>652,119=>924,120=>645,121=>652,122=>582,123=>712,124=>365,125=>712,126=>838,160=>348,161=>456,162=>696,163=>696,164=>636,165=>696,166=>365,167=>500,168=>500,169=>1000,170=>564,171=>650,172=>838,173=>415,174=>1000,175=>500,176=>500,177=>838,178=>438,179=>438,180=>500,181=>736,182=>636,183=>380,184=>500,185=>438,186=>564,187=>650,188=>1035,189=>1035,190=>1035,191=>580,192=>774,193=>774,194=>774,195=>774,196=>774,197=>774,198=>1085,199=>734,200=>683,201=>683,202=>683,203=>683,204=>372,205=>372,206=>372,207=>372,208=>845,209=>837,210=>850,211=>850,212=>850,213=>850,214=>850,215=>838,216=>850,217=>812,218=>812,219=>812,220=>812,221=>724,222=>742,223=>719,224=>675,225=>675,226=>675,227=>675,228=>675,229=>675,230=>1048,231=>593,232=>678,233=>678,234=>678,235=>678,236=>343,237=>343,238=>343,239=>343,240=>687,241=>712,242=>687,243=>687,244=>687,245=>687,246=>687,247=>838,248=>687,249=>712,250=>712,251=>712,252=>712,253=>652,254=>716,255=>652,256=>774,257=>675,258=>774,259=>675,260=>774,261=>675,262=>734,263=>593,264=>734,265=>593,266=>734,267=>593,268=>734,269=>593,270=>830,271=>716,272=>845,273=>716,274=>683,275=>678,276=>683,277=>678,278=>683,279=>678,280=>683,281=>678,282=>683,283=>678,284=>821,285=>716,286=>821,287=>716,288=>821,289=>716,290=>821,291=>716,292=>837,293=>712,294=>974,295=>790,296=>372,297=>343,298=>372,299=>343,300=>372,301=>343,302=>372,303=>343,304=>372,305=>343,306=>744,307=>686,308=>372,309=>343,310=>775,311=>665,312=>665,313=>637,314=>343,315=>637,316=>343,317=>637,318=>343,319=>637,320=>343,321=>660,322=>375,323=>837,324=>712,325=>837,326=>712,327=>837,328=>712,329=>983,330=>837,331=>712,332=>850,333=>687,334=>850,335=>687,336=>850,337=>687,338=>1167,339=>1094,340=>770,341=>493,342=>770,343=>493,344=>770,345=>493,346=>720,347=>595,348=>720,349=>595,350=>720,351=>595,352=>720,353=>595,354=>682,355=>478,356=>682,357=>478,358=>682,359=>478,360=>812,361=>712,362=>812,363=>712,364=>812,365=>712,366=>812,367=>712,368=>812,369=>712,370=>812,371=>712,372=>1103,373=>924,374=>724,375=>652,376=>724,377=>725,378=>582,379=>725,380=>582,381=>725,382=>582,383=>435,384=>716,385=>811,386=>762,387=>716,388=>762,389=>716,390=>734,391=>734,392=>593,393=>845,394=>879,395=>762,396=>716,397=>687,398=>683,399=>850,400=>696,401=>683,402=>435,403=>821,404=>793,405=>1045,406=>436,407=>389,408=>775,409=>665,410=>360,411=>592,412=>1042,413=>837,414=>712,415=>850,416=>850,417=>687,418=>1114,419=>962,420=>782,421=>716,422=>770,423=>720,424=>595,425=>683,426=>552,427=>478,428=>707,429=>478,430=>682,431=>812,432=>712,433=>769,434=>813,435=>797,436=>778,437=>725,438=>582,439=>772,440=>772,441=>641,442=>582,443=>696,444=>772,445=>641,446=>573,447=>716,448=>372,449=>659,450=>544,451=>372,452=>1548,453=>1450,454=>1307,455=>977,456=>979,457=>670,458=>1193,459=>1213,460=>1063,461=>774,462=>675,463=>372,464=>343,465=>850,466=>687,467=>812,468=>712,469=>812,470=>712,471=>812,472=>712,473=>812,474=>712,475=>812,476=>712,477=>678,478=>774,479=>675,480=>774,481=>675,482=>1085,483=>1048,484=>821,485=>716,486=>821,487=>716,488=>775,489=>665,490=>850,491=>687,492=>850,493=>687,494=>772,495=>582,496=>343,497=>1548,498=>1450,499=>1307,500=>821,501=>716,502=>1289,503=>787,504=>837,505=>712,506=>774,507=>675,508=>1085,509=>1048,510=>850,511=>687,512=>774,513=>675,514=>774,515=>675,516=>683,517=>678,518=>683,519=>678,520=>372,521=>343,522=>372,523=>343,524=>850,525=>687,526=>850,527=>687,528=>770,529=>493,530=>770,531=>493,532=>812,533=>712,534=>812,535=>712,536=>720,537=>595,538=>682,539=>478,540=>690,541=>607,542=>837,543=>712,544=>837,545=>865,546=>809,547=>659,548=>725,549=>582,550=>774,551=>675,552=>683,553=>678,554=>850,555=>687,556=>850,557=>687,558=>850,559=>687,560=>850,561=>687,562=>724,563=>652,564=>492,565=>867,566=>512,567=>343,568=>1088,569=>1088,570=>774,571=>734,572=>593,573=>637,574=>682,575=>595,576=>582,577=>782,578=>614,579=>762,580=>812,581=>774,582=>683,583=>678,584=>372,585=>343,586=>860,587=>791,588=>770,589=>493,590=>724,591=>652,592=>675,593=>716,594=>716,595=>716,596=>593,597=>593,598=>791,599=>792,600=>678,601=>678,602=>876,603=>557,604=>545,605=>774,606=>731,607=>343,608=>792,609=>716,610=>627,611=>735,612=>635,613=>712,614=>712,615=>712,616=>545,617=>440,618=>545,619=>559,620=>693,621=>343,622=>841,623=>1042,624=>1042,625=>1042,626=>712,627=>793,628=>642,629=>687,630=>909,631=>682,632=>796,633=>538,634=>538,635=>650,636=>493,637=>493,638=>596,639=>596,640=>642,641=>642,642=>595,643=>415,644=>435,645=>605,646=>552,647=>478,648=>478,649=>920,650=>769,651=>670,652=>652,653=>924,654=>652,655=>724,656=>694,657=>684,658=>641,659=>641,660=>573,661=>573,662=>573,663=>573,664=>850,665=>633,666=>731,667=>685,668=>691,669=>343,670=>732,671=>539,672=>792,673=>573,674=>573,675=>1156,676=>1214,677=>1155,678=>975,679=>769,680=>929,681=>1026,682=>862,683=>780,684=>591,685=>415,686=>677,687=>789,688=>456,689=>456,690=>219,691=>315,692=>315,693=>315,694=>411,695=>591,696=>417,697=>302,698=>521,699=>380,700=>380,701=>380,702=>366,703=>366,704=>326,705=>326,706=>500,707=>500,708=>500,709=>500,710=>500,711=>500,712=>306,713=>500,714=>500,715=>500,716=>306,717=>500,718=>500,719=>500,720=>337,721=>337,722=>366,723=>366,724=>500,725=>500,726=>416,727=>328,728=>500,729=>500,730=>500,731=>500,732=>500,733=>500,734=>351,735=>500,736=>412,737=>219,738=>381,739=>413,740=>326,741=>500,742=>500,743=>500,744=>500,745=>500,748=>500,749=>500,750=>644,755=>500,759=>500,768=>0,769=>0,770=>0,771=>0,772=>0,773=>0,774=>0,775=>0,776=>0,777=>0,778=>0,779=>0,780=>0,781=>0,782=>0,783=>0,784=>0,785=>0,786=>0,787=>0,788=>0,789=>0,790=>0,791=>0,792=>0,793=>0,794=>0,795=>0,796=>0,797=>0,798=>0,799=>0,800=>0,801=>0,802=>0,803=>0,804=>0,805=>0,806=>0,807=>0,808=>0,809=>0,810=>0,811=>0,812=>0,813=>0,814=>0,815=>0,816=>0,817=>0,818=>0,819=>0,820=>0,821=>0,822=>0,823=>0,824=>0,825=>0,826=>0,827=>0,828=>0,829=>0,830=>0,831=>0,832=>0,833=>0,834=>0,835=>0,836=>0,837=>0,838=>0,839=>0,840=>0,841=>0,842=>0,843=>0,844=>0,845=>0,846=>0,847=>0,849=>0,850=>0,851=>0,855=>0,856=>0,858=>0,860=>0,861=>0,862=>0,863=>0,864=>0,865=>0,866=>0,880=>698,881=>565,882=>1022,883=>836,884=>302,885=>302,886=>837,887=>701,890=>500,891=>593,892=>550,893=>549,894=>400,900=>441,901=>500,902=>797,903=>380,904=>846,905=>1009,906=>563,908=>891,910=>980,911=>894,912=>390,913=>774,914=>762,915=>637,916=>774,917=>683,918=>725,919=>837,920=>850,921=>372,922=>775,923=>774,924=>995,925=>837,926=>632,927=>850,928=>837,929=>733,931=>683,932=>682,933=>724,934=>850,935=>771,936=>850,937=>850,938=>372,939=>724,940=>687,941=>557,942=>712,943=>390,944=>675,945=>687,946=>716,947=>681,948=>687,949=>557,950=>591,951=>712,952=>687,953=>390,954=>710,955=>633,956=>736,957=>681,958=>591,959=>687,960=>791,961=>716,962=>593,963=>779,964=>638,965=>675,966=>782,967=>645,968=>794,969=>869,970=>390,971=>675,972=>687,973=>675,974=>869,975=>775,976=>651,977=>661,978=>746,979=>981,980=>746,981=>796,982=>869,983=>744,984=>850,985=>687,986=>734,987=>593,988=>683,989=>494,990=>702,991=>660,992=>919,993=>627,994=>1093,995=>837,996=>832,997=>716,998=>928,999=>744,1000=>733,1001=>650,1002=>789,1003=>671,1004=>752,1005=>716,1006=>682,1007=>590,1008=>744,1009=>716,1010=>593,1011=>343,1012=>850,1013=>645,1014=>645,1015=>742,1016=>716,1017=>734,1018=>995,1019=>732,1020=>716,1021=>734,1022=>734,1023=>698,1024=>683,1025=>683,1026=>878,1027=>637,1028=>734,1029=>720,1030=>372,1031=>372,1032=>372,1033=>1154,1034=>1130,1035=>878,1036=>817,1037=>837,1038=>771,1039=>837,1040=>774,1041=>762,1042=>762,1043=>637,1044=>891,1045=>683,1046=>1224,1047=>710,1048=>837,1049=>837,1050=>817,1051=>831,1052=>995,1053=>837,1054=>850,1055=>837,1056=>733,1057=>734,1058=>682,1059=>771,1060=>992,1061=>771,1062=>928,1063=>808,1064=>1235,1065=>1326,1066=>939,1067=>1036,1068=>762,1069=>734,1070=>1174,1071=>770,1072=>675,1073=>698,1074=>633,1075=>522,1076=>808,1077=>678,1078=>995,1079=>581,1080=>701,1081=>701,1082=>679,1083=>732,1084=>817,1085=>691,1086=>687,1087=>691,1088=>716,1089=>593,1090=>580,1091=>652,1092=>992,1093=>645,1094=>741,1095=>687,1096=>1062,1097=>1105,1098=>751,1099=>904,1100=>632,1101=>593,1102=>972,1103=>642,1104=>678,1105=>678,1106=>714,1107=>522,1108=>593,1109=>595,1110=>343,1111=>343,1112=>343,1113=>991,1114=>956,1115=>734,1116=>679,1117=>701,1118=>652,1119=>691,1120=>1093,1121=>869,1122=>840,1123=>736,1124=>1012,1125=>839,1126=>992,1127=>832,1128=>1358,1129=>1121,1130=>850,1131=>687,1132=>1236,1133=>1007,1134=>696,1135=>557,1136=>1075,1137=>1061,1138=>850,1139=>687,1140=>850,1141=>695,1142=>850,1143=>695,1144=>1148,1145=>1043,1146=>1074,1147=>863,1148=>1405,1149=>1173,1150=>1093,1151=>869,1152=>734,1153=>593,1154=>652,1155=>0,1156=>0,1157=>0,1158=>0,1159=>0,1160=>418,1161=>418,1162=>938,1163=>806,1164=>762,1165=>611,1166=>736,1167=>718,1168=>637,1169=>522,1170=>666,1171=>543,1172=>789,1173=>522,1174=>1224,1175=>995,1176=>710,1177=>581,1178=>775,1179=>679,1180=>817,1181=>679,1182=>817,1183=>679,1184=>1015,1185=>826,1186=>837,1187=>691,1188=>1103,1189=>871,1190=>1254,1191=>979,1192=>946,1193=>859,1194=>734,1195=>593,1196=>682,1197=>580,1198=>724,1199=>652,1200=>724,1201=>652,1202=>771,1203=>645,1204=>1104,1205=>1001,1206=>808,1207=>687,1208=>808,1209=>687,1210=>808,1211=>712,1212=>1026,1213=>810,1214=>1026,1215=>810,1216=>372,1217=>1224,1218=>995,1219=>778,1220=>629,1221=>933,1222=>804,1223=>837,1224=>691,1225=>938,1226=>806,1227=>808,1228=>687,1229=>1096,1230=>932,1231=>343,1232=>774,1233=>675,1234=>774,1235=>675,1236=>1085,1237=>1048,1238=>683,1239=>678,1240=>850,1241=>678,1242=>850,1243=>678,1244=>1224,1245=>995,1246=>710,1247=>581,1248=>772,1249=>641,1250=>837,1251=>701,1252=>837,1253=>701,1254=>850,1255=>687,1256=>850,1257=>687,1258=>850,1259=>687,1260=>734,1261=>593,1262=>771,1263=>652,1264=>771,1265=>652,1266=>771,1267=>652,1268=>808,1269=>687,1270=>637,1271=>522,1272=>1036,1273=>904,1274=>666,1275=>543,1276=>771,1277=>645,1278=>771,1279=>645,1280=>762,1281=>608,1282=>1159,1283=>893,1284=>1119,1285=>920,1286=>828,1287=>693,1288=>1242,1289=>1017,1290=>1289,1291=>1013,1292=>839,1293=>638,1294=>938,1295=>803,1296=>696,1297=>557,1298=>831,1299=>732,1300=>1286,1301=>1070,1302=>1065,1303=>982,1304=>1082,1305=>960,1306=>850,1307=>716,1308=>1103,1309=>924,1310=>817,1311=>679,1312=>1248,1313=>1022,1314=>1254,1315=>979,1316=>957,1317=>807,1329=>904,1330=>810,1331=>809,1332=>813,1333=>810,1334=>815,1335=>724,1336=>800,1337=>1004,1338=>809,1339=>740,1340=>620,1341=>1068,1342=>875,1343=>792,1344=>723,1345=>811,1346=>794,1347=>782,1348=>867,1349=>766,1350=>794,1351=>787,1352=>812,1353=>752,1354=>963,1355=>790,1356=>867,1357=>812,1358=>794,1359=>771,1360=>740,1361=>775,1362=>640,1363=>926,1364=>775,1365=>848,1366=>951,1369=>366,1370=>380,1371=>342,1372=>415,1373=>348,1374=>513,1375=>521,1377=>1043,1378=>713,1379=>782,1380=>786,1381=>713,1382=>715,1383=>628,1384=>713,1385=>840,1386=>782,1387=>714,1388=>344,1389=>1094,1390=>708,1391=>714,1392=>714,1393=>670,1394=>714,1395=>713,1396=>714,1397=>343,1398=>714,1399=>541,1400=>714,1401=>407,1402=>1043,1403=>636,1404=>740,1405=>714,1406=>714,1407=>1038,1408=>714,1409=>714,1410=>532,1411=>1038,1412=>720,1413=>689,1414=>904,1415=>902,1417=>400,1418=>415,1456=>0,1457=>0,1458=>0,1459=>0,1460=>0,1461=>0,1462=>0,1463=>0,1464=>0,1465=>0,1466=>0,1467=>0,1468=>0,1469=>0,1470=>415,1471=>0,1472=>372,1473=>0,1474=>0,1475=>372,1478=>497,1479=>0,1488=>728,1489=>610,1490=>447,1491=>588,1492=>687,1493=>343,1494=>400,1495=>687,1496=>679,1497=>294,1498=>578,1499=>566,1500=>605,1501=>696,1502=>724,1503=>343,1504=>453,1505=>680,1506=>666,1507=>675,1508=>658,1509=>661,1510=>653,1511=>736,1512=>602,1513=>749,1514=>683,1520=>664,1521=>664,1522=>663,1523=>444,1524=>710,3647=>696,3713=>815,3714=>748,3716=>749,3719=>569,3720=>742,3722=>744,3725=>761,3732=>706,3733=>704,3734=>747,3735=>819,3737=>730,3738=>727,3739=>727,3740=>922,3741=>827,3742=>866,3743=>866,3745=>836,3746=>761,3747=>770,3749=>769,3751=>713,3754=>827,3755=>1031,3757=>724,3758=>784,3759=>934,3760=>688,3761=>0,3762=>610,3763=>610,3764=>0,3765=>0,3766=>0,3767=>0,3768=>0,3769=>0,3771=>0,3772=>0,3773=>670,3776=>516,3777=>860,3778=>516,3779=>650,3780=>632,3782=>759,3784=>0,3785=>0,3786=>0,3787=>0,3788=>0,3789=>0,3792=>771,3793=>771,3794=>693,3795=>836,3796=>729,3797=>729,3798=>849,3799=>790,3800=>759,3801=>910,3804=>1363,3805=>1363,4256=>874,4257=>733,4258=>679,4259=>834,4260=>615,4261=>768,4262=>753,4263=>914,4264=>453,4265=>620,4266=>843,4267=>882,4268=>625,4269=>854,4270=>781,4271=>629,4272=>912,4273=>621,4274=>620,4275=>854,4276=>866,4277=>724,4278=>630,4279=>621,4280=>625,4281=>620,4282=>818,4283=>874,4284=>615,4285=>623,4286=>625,4287=>725,4288=>844,4289=>596,4290=>688,4291=>596,4292=>594,4293=>738,4304=>554,4305=>563,4306=>622,4307=>834,4308=>550,4309=>559,4310=>546,4311=>828,4312=>563,4313=>556,4314=>1074,4315=>563,4316=>563,4317=>814,4318=>554,4319=>559,4320=>823,4321=>563,4322=>700,4323=>582,4324=>847,4325=>555,4326=>814,4327=>559,4328=>543,4329=>563,4330=>622,4331=>563,4332=>543,4333=>566,4334=>563,4335=>530,4336=>554,4337=>554,4338=>553,4339=>554,4340=>553,4341=>583,4342=>853,4343=>604,4344=>559,4345=>632,4346=>554,4347=>448,4348=>324,5121=>774,5122=>774,5123=>774,5124=>774,5125=>905,5126=>905,5127=>905,5129=>905,5130=>905,5131=>905,5132=>1018,5133=>1009,5134=>1018,5135=>1009,5136=>1018,5137=>1009,5138=>1149,5139=>1140,5140=>1149,5141=>1140,5142=>905,5143=>1149,5144=>1142,5145=>1149,5146=>1142,5147=>905,5149=>310,5150=>529,5151=>425,5152=>425,5153=>395,5154=>395,5155=>395,5156=>395,5157=>564,5158=>470,5159=>310,5160=>395,5161=>395,5162=>395,5163=>1213,5164=>986,5165=>1216,5166=>1297,5167=>774,5168=>774,5169=>774,5170=>774,5171=>886,5172=>886,5173=>886,5175=>886,5176=>886,5177=>886,5178=>1018,5179=>1009,5180=>1018,5181=>1009,5182=>1018,5183=>1009,5184=>1149,5185=>1140,5186=>1149,5187=>1140,5188=>1149,5189=>1142,5190=>1149,5191=>1142,5192=>886,5193=>576,5194=>229,5196=>812,5197=>812,5198=>812,5199=>812,5200=>815,5201=>815,5202=>815,5204=>815,5205=>815,5206=>815,5207=>1056,5208=>1048,5209=>1056,5210=>1048,5211=>1056,5212=>1048,5213=>1060,5214=>1054,5215=>1060,5216=>1054,5217=>1060,5218=>1052,5219=>1060,5220=>1052,5221=>1060,5222=>483,5223=>1005,5224=>1005,5225=>1023,5226=>1017,5227=>743,5228=>743,5229=>743,5230=>743,5231=>743,5232=>743,5233=>743,5234=>743,5235=>743,5236=>1029,5237=>975,5238=>980,5239=>975,5240=>980,5241=>975,5242=>1029,5243=>975,5244=>1029,5245=>975,5246=>980,5247=>975,5248=>980,5249=>975,5250=>980,5251=>501,5252=>501,5253=>938,5254=>938,5255=>938,5256=>938,5257=>743,5258=>743,5259=>743,5260=>743,5261=>743,5262=>743,5263=>743,5264=>743,5265=>743,5266=>1029,5267=>975,5268=>1029,5269=>975,5270=>1029,5271=>975,5272=>1029,5273=>975,5274=>1029,5275=>975,5276=>1029,5277=>975,5278=>1029,5279=>975,5280=>1029,5281=>501,5282=>501,5283=>626,5284=>626,5285=>626,5286=>626,5287=>626,5288=>626,5289=>626,5290=>626,5291=>626,5292=>881,5293=>854,5294=>863,5295=>874,5296=>863,5297=>874,5298=>881,5299=>874,5300=>881,5301=>874,5302=>863,5303=>874,5304=>863,5305=>874,5306=>863,5307=>436,5308=>548,5309=>436,5312=>988,5313=>988,5314=>988,5315=>988,5316=>931,5317=>931,5318=>931,5319=>931,5320=>931,5321=>1238,5322=>1247,5323=>1200,5324=>1228,5325=>1200,5326=>1228,5327=>931,5328=>660,5329=>497,5330=>660,5331=>988,5332=>988,5333=>988,5334=>988,5335=>931,5336=>931,5337=>931,5338=>931,5339=>931,5340=>1231,5341=>1247,5342=>1283,5343=>1228,5344=>1283,5345=>1228,5346=>1228,5347=>1214,5348=>1228,5349=>1214,5350=>1283,5351=>1228,5352=>1283,5353=>1228,5354=>660,5356=>886,5357=>730,5358=>730,5359=>730,5360=>730,5361=>730,5362=>730,5363=>730,5364=>730,5365=>730,5366=>998,5367=>958,5368=>967,5369=>989,5370=>967,5371=>989,5372=>998,5373=>958,5374=>998,5375=>958,5376=>967,5377=>989,5378=>967,5379=>989,5380=>967,5381=>493,5382=>460,5383=>493,5392=>923,5393=>923,5394=>923,5395=>1136,5396=>1136,5397=>1136,5398=>1136,5399=>1209,5400=>1202,5401=>1209,5402=>1202,5403=>1209,5404=>1202,5405=>1431,5406=>1420,5407=>1431,5408=>1420,5409=>1431,5410=>1420,5411=>1431,5412=>1420,5413=>746,5414=>776,5415=>776,5416=>776,5417=>776,5418=>776,5419=>776,5420=>776,5421=>776,5422=>776,5423=>1003,5424=>1003,5425=>1013,5426=>996,5427=>1013,5428=>996,5429=>1003,5430=>1003,5431=>1003,5432=>1003,5433=>1013,5434=>996,5435=>1013,5436=>996,5437=>1013,5438=>495,5440=>395,5441=>510,5442=>1033,5443=>1033,5444=>976,5445=>976,5446=>976,5447=>976,5448=>733,5449=>733,5450=>733,5451=>733,5452=>733,5453=>733,5454=>1003,5455=>959,5456=>495,5458=>886,5459=>774,5460=>774,5461=>774,5462=>774,5463=>928,5464=>928,5465=>928,5466=>928,5467=>1172,5468=>1142,5469=>602,5470=>812,5471=>812,5472=>812,5473=>812,5474=>812,5475=>812,5476=>815,5477=>815,5478=>815,5479=>815,5480=>1060,5481=>1052,5482=>548,5492=>977,5493=>977,5494=>977,5495=>977,5496=>977,5497=>977,5498=>977,5499=>618,5500=>837,5501=>510,5502=>1238,5503=>1238,5504=>1238,5505=>1238,5506=>1238,5507=>1238,5508=>1238,5509=>989,5514=>977,5515=>977,5516=>977,5517=>977,5518=>1591,5519=>1591,5520=>1591,5521=>1295,5522=>1295,5523=>1591,5524=>1591,5525=>848,5526=>1273,5536=>988,5537=>988,5538=>931,5539=>931,5540=>931,5541=>931,5542=>660,5543=>776,5544=>776,5545=>776,5546=>776,5547=>776,5548=>776,5549=>776,5550=>495,5551=>743,5598=>830,5601=>830,5702=>496,5703=>496,5742=>413,5743=>1238,5744=>1591,5745=>2016,5746=>2016,5747=>1720,5748=>1678,5749=>2016,5750=>2016,7424=>652,7425=>833,7426=>1048,7427=>608,7428=>593,7429=>676,7430=>676,7431=>559,7432=>557,7433=>343,7434=>494,7435=>665,7436=>539,7437=>817,7438=>701,7439=>687,7440=>593,7441=>660,7442=>660,7443=>660,7444=>1094,7446=>687,7447=>687,7448=>556,7449=>642,7450=>642,7451=>580,7452=>634,7453=>737,7454=>948,7455=>695,7456=>652,7457=>924,7458=>582,7459=>646,7462=>539,7463=>652,7464=>691,7465=>556,7466=>781,7467=>732,7468=>487,7469=>683,7470=>480,7472=>523,7473=>430,7474=>430,7475=>517,7476=>527,7477=>234,7478=>234,7479=>488,7480=>401,7481=>626,7482=>527,7483=>527,7484=>535,7485=>509,7486=>461,7487=>485,7488=>430,7489=>511,7490=>695,7491=>458,7492=>458,7493=>479,7494=>712,7495=>479,7496=>479,7497=>479,7498=>479,7499=>386,7500=>386,7501=>479,7502=>219,7503=>487,7504=>664,7505=>456,7506=>488,7507=>414,7508=>488,7509=>488,7510=>479,7511=>388,7512=>456,7513=>462,7514=>664,7515=>501,7517=>451,7518=>429,7519=>433,7520=>493,7521=>406,7522=>219,7523=>315,7524=>456,7525=>501,7526=>451,7527=>429,7528=>451,7529=>493,7530=>406,7543=>716,7544=>527,7547=>545,7549=>747,7557=>514,7579=>479,7580=>414,7581=>414,7582=>488,7583=>386,7584=>377,7585=>348,7586=>479,7587=>456,7588=>347,7589=>281,7590=>347,7591=>347,7592=>431,7593=>326,7594=>330,7595=>370,7596=>664,7597=>664,7598=>562,7599=>562,7600=>448,7601=>488,7602=>542,7603=>422,7604=>396,7605=>388,7606=>583,7607=>494,7608=>399,7609=>451,7610=>501,7611=>417,7612=>523,7613=>470,7614=>455,7615=>425,7620=>0,7621=>0,7622=>0,7623=>0,7624=>0,7625=>0,7680=>774,7681=>675,7682=>762,7683=>716,7684=>762,7685=>716,7686=>762,7687=>716,7688=>734,7689=>593,7690=>830,7691=>716,7692=>830,7693=>716,7694=>830,7695=>716,7696=>830,7697=>716,7698=>830,7699=>716,7700=>683,7701=>678,7702=>683,7703=>678,7704=>683,7705=>678,7706=>683,7707=>678,7708=>683,7709=>678,7710=>683,7711=>435,7712=>821,7713=>716,7714=>837,7715=>712,7716=>837,7717=>712,7718=>837,7719=>712,7720=>837,7721=>712,7722=>837,7723=>712,7724=>372,7725=>343,7726=>372,7727=>343,7728=>775,7729=>665,7730=>775,7731=>665,7732=>775,7733=>665,7734=>637,7735=>343,7736=>637,7737=>343,7738=>637,7739=>343,7740=>637,7741=>343,7742=>995,7743=>1042,7744=>995,7745=>1042,7746=>995,7747=>1042,7748=>837,7749=>712,7750=>837,7751=>712,7752=>837,7753=>712,7754=>837,7755=>712,7756=>850,7757=>687,7758=>850,7759=>687,7760=>850,7761=>687,7762=>850,7763=>687,7764=>733,7765=>716,7766=>733,7767=>716,7768=>770,7769=>493,7770=>770,7771=>493,7772=>770,7773=>493,7774=>770,7775=>493,7776=>720,7777=>595,7778=>720,7779=>595,7780=>720,7781=>595,7782=>720,7783=>595,7784=>720,7785=>595,7786=>682,7787=>478,7788=>682,7789=>478,7790=>682,7791=>478,7792=>682,7793=>478,7794=>812,7795=>712,7796=>812,7797=>712,7798=>812,7799=>712,7800=>812,7801=>712,7802=>812,7803=>712,7804=>774,7805=>652,7806=>774,7807=>652,7808=>1103,7809=>924,7810=>1103,7811=>924,7812=>1103,7813=>924,7814=>1103,7815=>924,7816=>1103,7817=>924,7818=>771,7819=>645,7820=>771,7821=>645,7822=>724,7823=>652,7824=>725,7825=>582,7826=>725,7827=>582,7828=>725,7829=>582,7830=>712,7831=>478,7832=>924,7833=>652,7834=>675,7835=>435,7836=>435,7837=>435,7838=>896,7839=>687,7840=>774,7841=>675,7842=>774,7843=>675,7844=>774,7845=>675,7846=>774,7847=>675,7848=>774,7849=>675,7850=>774,7851=>675,7852=>774,7853=>675,7854=>774,7855=>675,7856=>774,7857=>675,7858=>774,7859=>675,7860=>774,7861=>675,7862=>774,7863=>675,7864=>683,7865=>678,7866=>683,7867=>678,7868=>683,7869=>678,7870=>683,7871=>678,7872=>683,7873=>678,7874=>683,7875=>678,7876=>683,7877=>678,7878=>683,7879=>678,7880=>372,7881=>343,7882=>372,7883=>343,7884=>850,7885=>687,7886=>850,7887=>687,7888=>850,7889=>687,7890=>850,7891=>687,7892=>850,7893=>687,7894=>850,7895=>687,7896=>850,7897=>687,7898=>850,7899=>687,7900=>850,7901=>687,7902=>850,7903=>687,7904=>850,7905=>687,7906=>850,7907=>687,7908=>812,7909=>712,7910=>812,7911=>712,7912=>812,7913=>712,7914=>812,7915=>712,7916=>812,7917=>712,7918=>812,7919=>712,7920=>812,7921=>712,7922=>724,7923=>652,7924=>724,7925=>652,7926=>724,7927=>652,7928=>724,7929=>652,7930=>953,7931=>644,7936=>687,7937=>687,7938=>687,7939=>687,7940=>687,7941=>687,7942=>687,7943=>687,7944=>774,7945=>774,7946=>1041,7947=>1043,7948=>935,7949=>963,7950=>835,7951=>859,7952=>557,7953=>557,7954=>557,7955=>557,7956=>557,7957=>557,7960=>792,7961=>794,7962=>1100,7963=>1096,7964=>1023,7965=>1052,7968=>712,7969=>712,7970=>712,7971=>712,7972=>712,7973=>712,7974=>712,7975=>712,7976=>945,7977=>951,7978=>1250,7979=>1250,7980=>1180,7981=>1206,7982=>1054,7983=>1063,7984=>390,7985=>390,7986=>390,7987=>390,7988=>390,7989=>390,7990=>390,7991=>390,7992=>483,7993=>489,7994=>777,7995=>785,7996=>712,7997=>738,7998=>604,7999=>604,8000=>687,8001=>687,8002=>687,8003=>687,8004=>687,8005=>687,8008=>892,8009=>933,8010=>1221,8011=>1224,8012=>1053,8013=>1082,8016=>675,8017=>675,8018=>675,8019=>675,8020=>675,8021=>675,8022=>675,8023=>675,8025=>930,8027=>1184,8029=>1199,8031=>1049,8032=>869,8033=>869,8034=>869,8035=>869,8036=>869,8037=>869,8038=>869,8039=>869,8040=>909,8041=>958,8042=>1246,8043=>1251,8044=>1076,8045=>1105,8046=>1028,8047=>1076,8048=>687,8049=>687,8050=>557,8051=>557,8052=>712,8053=>712,8054=>390,8055=>390,8056=>687,8057=>687,8058=>675,8059=>675,8060=>869,8061=>869,8064=>687,8065=>687,8066=>687,8067=>687,8068=>687,8069=>687,8070=>687,8071=>687,8072=>774,8073=>774,8074=>1041,8075=>1043,8076=>935,8077=>963,8078=>835,8079=>859,8080=>712,8081=>712,8082=>712,8083=>712,8084=>712,8085=>712,8086=>712,8087=>712,8088=>945,8089=>951,8090=>1250,8091=>1250,8092=>1180,8093=>1206,8094=>1054,8095=>1063,8096=>869,8097=>869,8098=>869,8099=>869,8100=>869,8101=>869,8102=>869,8103=>869,8104=>909,8105=>958,8106=>1246,8107=>1251,8108=>1076,8109=>1105,8110=>1028,8111=>1076,8112=>687,8113=>687,8114=>687,8115=>687,8116=>687,8118=>687,8119=>687,8120=>774,8121=>774,8122=>876,8123=>797,8124=>774,8125=>500,8126=>500,8127=>500,8128=>500,8129=>500,8130=>712,8131=>712,8132=>712,8134=>712,8135=>712,8136=>929,8137=>846,8138=>1080,8139=>1009,8140=>837,8141=>500,8142=>500,8143=>500,8144=>390,8145=>390,8146=>390,8147=>390,8150=>390,8151=>390,8152=>372,8153=>372,8154=>621,8155=>563,8157=>500,8158=>500,8159=>500,8160=>675,8161=>675,8162=>675,8163=>675,8164=>716,8165=>716,8166=>675,8167=>675,8168=>724,8169=>724,8170=>1020,8171=>980,8172=>838,8173=>500,8174=>500,8175=>500,8178=>869,8179=>869,8180=>869,8182=>869,8183=>869,8184=>1065,8185=>891,8186=>1084,8187=>894,8188=>850,8189=>500,8190=>500,8192=>500,8193=>1000,8194=>500,8195=>1000,8196=>330,8197=>250,8198=>167,8199=>696,8200=>380,8201=>200,8202=>100,8203=>0,8204=>0,8205=>0,8206=>0,8207=>0,8208=>415,8209=>415,8210=>696,8211=>500,8212=>1000,8213=>1000,8214=>500,8215=>500,8216=>380,8217=>380,8218=>380,8219=>380,8220=>644,8221=>644,8222=>644,8223=>657,8224=>500,8225=>500,8226=>639,8227=>639,8228=>380,8229=>685,8230=>1000,8231=>348,8232=>0,8233=>0,8234=>0,8235=>0,8236=>0,8237=>0,8238=>0,8239=>200,8240=>1454,8241=>1908,8242=>264,8243=>447,8244=>630,8245=>264,8246=>447,8247=>630,8248=>733,8249=>412,8250=>412,8251=>972,8252=>627,8253=>580,8254=>500,8255=>828,8256=>828,8257=>329,8258=>1023,8259=>500,8260=>167,8261=>457,8262=>457,8263=>1030,8264=>829,8265=>829,8266=>513,8267=>687,8268=>500,8269=>500,8270=>523,8271=>400,8272=>828,8273=>523,8274=>556,8275=>838,8276=>828,8277=>838,8278=>684,8279=>813,8280=>838,8281=>838,8282=>380,8283=>872,8284=>838,8285=>380,8286=>380,8287=>222,8288=>0,8289=>0,8290=>0,8291=>0,8292=>0,8298=>0,8299=>0,8300=>0,8301=>0,8302=>0,8303=>0,8304=>438,8305=>219,8308=>438,8309=>438,8310=>438,8311=>438,8312=>438,8313=>438,8314=>528,8315=>528,8316=>528,8317=>288,8318=>288,8319=>456,8320=>438,8321=>438,8322=>438,8323=>438,8324=>438,8325=>438,8326=>438,8327=>438,8328=>438,8329=>438,8330=>528,8331=>528,8332=>528,8333=>288,8334=>288,8336=>458,8337=>479,8338=>488,8339=>413,8340=>479,8341=>456,8342=>487,8343=>219,8344=>664,8345=>456,8346=>479,8347=>381,8348=>388,8352=>929,8353=>696,8354=>696,8355=>696,8356=>696,8357=>1042,8358=>837,8359=>1488,8360=>1205,8361=>1103,8362=>854,8363=>696,8364=>696,8365=>696,8366=>696,8367=>1392,8368=>696,8369=>696,8370=>696,8371=>696,8372=>859,8373=>696,8376=>696,8377=>696,8378=>769,8400=>0,8401=>0,8406=>0,8407=>0,8411=>0,8412=>0,8417=>0,8448=>1106,8449=>1106,8450=>734,8451=>1211,8452=>896,8453=>1114,8454=>1148,8455=>696,8456=>698,8457=>952,8459=>1073,8460=>913,8461=>888,8462=>712,8463=>712,8464=>597,8465=>697,8466=>856,8467=>472,8468=>974,8469=>837,8470=>1203,8471=>1000,8472=>697,8473=>750,8474=>850,8475=>938,8476=>814,8477=>801,8478=>896,8479=>710,8480=>1020,8481=>1239,8482=>1000,8483=>834,8484=>754,8485=>622,8486=>850,8487=>769,8488=>763,8489=>303,8490=>775,8491=>774,8492=>928,8493=>818,8494=>854,8495=>636,8496=>729,8497=>808,8498=>683,8499=>1184,8500=>465,8501=>794,8502=>731,8503=>494,8504=>684,8505=>380,8506=>945,8507=>1370,8508=>790,8509=>737,8510=>654,8511=>863,8512=>840,8513=>786,8514=>576,8515=>637,8516=>760,8517=>830,8518=>716,8519=>678,8520=>343,8521=>343,8523=>872,8526=>547,8528=>1035,8529=>1035,8530=>1483,8531=>1035,8532=>1035,8533=>1035,8534=>1035,8535=>1035,8536=>1035,8537=>1035,8538=>1035,8539=>1035,8540=>1035,8541=>1035,8542=>1035,8543=>615,8544=>372,8545=>659,8546=>945,8547=>1099,8548=>774,8549=>1099,8550=>1386,8551=>1672,8552=>1121,8553=>771,8554=>1120,8555=>1407,8556=>637,8557=>734,8558=>830,8559=>995,8560=>343,8561=>607,8562=>872,8563=>984,8564=>652,8565=>962,8566=>1227,8567=>1491,8568=>969,8569=>645,8570=>969,8571=>1233,8572=>343,8573=>593,8574=>716,8575=>1042,8576=>1289,8577=>830,8578=>1289,8579=>734,8580=>593,8581=>734,8585=>1035,8592=>838,8593=>838,8594=>838,8595=>838,8596=>838,8597=>838,8598=>838,8599=>838,8600=>838,8601=>838,8602=>838,8603=>838,8604=>838,8605=>838,8606=>838,8607=>838,8608=>838,8609=>838,8610=>838,8611=>838,8612=>838,8613=>838,8614=>838,8615=>838,8616=>838,8617=>838,8618=>838,8619=>838,8620=>838,8621=>838,8622=>838,8623=>838,8624=>838,8625=>838,8626=>838,8627=>838,8628=>838,8629=>838,8630=>838,8631=>838,8632=>838,8633=>838,8634=>838,8635=>838,8636=>838,8637=>838,8638=>838,8639=>838,8640=>838,8641=>838,8642=>838,8643=>838,8644=>838,8645=>838,8646=>838,8647=>838,8648=>838,8649=>838,8650=>838,8651=>838,8652=>838,8653=>838,8654=>838,8655=>838,8656=>838,8657=>838,8658=>838,8659=>838,8660=>838,8661=>838,8662=>838,8663=>838,8664=>838,8665=>838,8666=>838,8667=>838,8668=>838,8669=>838,8670=>838,8671=>838,8672=>838,8673=>838,8674=>838,8675=>838,8676=>838,8677=>838,8678=>838,8679=>838,8680=>838,8681=>838,8682=>838,8683=>838,8684=>838,8685=>838,8686=>838,8687=>838,8688=>838,8689=>838,8690=>838,8691=>838,8692=>838,8693=>838,8694=>838,8695=>838,8696=>838,8697=>838,8698=>838,8699=>838,8700=>838,8701=>838,8702=>838,8703=>838,8704=>774,8705=>696,8706=>544,8707=>683,8708=>683,8709=>856,8710=>697,8711=>697,8712=>896,8713=>896,8714=>750,8715=>896,8716=>896,8717=>750,8718=>636,8719=>787,8720=>787,8721=>718,8722=>838,8723=>838,8724=>696,8725=>365,8726=>696,8727=>838,8728=>626,8729=>380,8730=>667,8731=>667,8732=>667,8733=>712,8734=>833,8735=>838,8736=>896,8737=>896,8738=>838,8739=>500,8740=>500,8741=>500,8742=>500,8743=>812,8744=>812,8745=>812,8746=>812,8747=>610,8748=>929,8749=>1295,8750=>563,8751=>977,8752=>1313,8753=>563,8754=>563,8755=>563,8756=>696,8757=>696,8758=>294,8759=>696,8760=>838,8761=>838,8762=>838,8763=>838,8764=>838,8765=>838,8766=>838,8767=>838,8768=>375,8769=>838,8770=>838,8771=>838,8772=>838,8773=>838,8774=>838,8775=>838,8776=>838,8777=>838,8778=>838,8779=>838,8780=>838,8781=>838,8782=>838,8783=>838,8784=>838,8785=>838,8786=>838,8787=>838,8788=>1063,8789=>1063,8790=>838,8791=>838,8792=>838,8793=>838,8794=>838,8795=>838,8796=>838,8797=>838,8798=>838,8799=>838,8800=>838,8801=>838,8802=>838,8803=>838,8804=>838,8805=>838,8806=>838,8807=>838,8808=>841,8809=>841,8810=>1047,8811=>1047,8812=>500,8813=>838,8814=>838,8815=>838,8816=>838,8817=>838,8818=>838,8819=>838,8820=>838,8821=>838,8822=>838,8823=>838,8824=>838,8825=>838,8826=>838,8827=>838,8828=>838,8829=>838,8830=>838,8831=>838,8832=>838,8833=>838,8834=>838,8835=>838,8836=>838,8837=>838,8838=>838,8839=>838,8840=>838,8841=>838,8842=>838,8843=>838,8844=>812,8845=>812,8846=>812,8847=>838,8848=>838,8849=>838,8850=>838,8851=>796,8852=>796,8853=>838,8854=>838,8855=>838,8856=>838,8857=>838,8858=>838,8859=>838,8860=>838,8861=>838,8862=>838,8863=>838,8864=>838,8865=>838,8866=>914,8867=>914,8868=>914,8869=>914,8870=>542,8871=>542,8872=>914,8873=>914,8874=>914,8875=>914,8876=>914,8877=>914,8878=>914,8879=>914,8880=>838,8881=>838,8882=>838,8883=>838,8884=>838,8885=>838,8886=>1000,8887=>1000,8888=>838,8889=>838,8890=>542,8891=>812,8892=>812,8893=>812,8894=>838,8895=>838,8896=>843,8897=>843,8898=>843,8899=>843,8900=>494,8901=>380,8902=>626,8903=>838,8904=>1000,8905=>1000,8906=>1000,8907=>1000,8908=>1000,8909=>838,8910=>812,8911=>812,8912=>838,8913=>838,8914=>838,8915=>838,8916=>838,8917=>838,8918=>838,8919=>838,8920=>1422,8921=>1422,8922=>838,8923=>838,8924=>838,8925=>838,8926=>838,8927=>838,8928=>838,8929=>838,8930=>838,8931=>838,8932=>838,8933=>838,8934=>838,8935=>838,8936=>838,8937=>838,8938=>838,8939=>838,8940=>838,8941=>838,8942=>1000,8943=>1000,8944=>1000,8945=>1000,8946=>1158,8947=>896,8948=>750,8949=>896,8950=>896,8951=>750,8952=>896,8953=>896,8954=>1158,8955=>896,8956=>750,8957=>896,8958=>750,8959=>896,8960=>602,8961=>602,8962=>716,8963=>838,8964=>838,8965=>838,8966=>838,8967=>488,8968=>457,8969=>457,8970=>457,8971=>457,8972=>809,8973=>809,8974=>809,8975=>809,8976=>838,8977=>539,8984=>928,8985=>838,8988=>469,8989=>469,8990=>469,8991=>469,8992=>610,8993=>610,8996=>1152,8997=>1152,8998=>1414,8999=>1152,9000=>1443,9003=>1414,9004=>873,9075=>390,9076=>716,9077=>869,9082=>687,9085=>863,9095=>1152,9108=>873,9115=>500,9116=>500,9117=>500,9118=>500,9119=>500,9120=>500,9121=>500,9122=>500,9123=>500,9124=>500,9125=>500,9126=>500,9127=>750,9128=>750,9129=>750,9130=>750,9131=>750,9132=>750,9133=>750,9134=>610,9166=>838,9167=>945,9187=>873,9189=>769,9192=>696,9250=>716,9251=>716,9312=>847,9313=>847,9314=>847,9315=>847,9316=>847,9317=>847,9318=>847,9319=>847,9320=>847,9321=>847,9600=>769,9601=>769,9602=>769,9603=>769,9604=>769,9605=>769,9606=>769,9607=>769,9608=>769,9609=>769,9610=>769,9611=>769,9612=>769,9613=>769,9614=>769,9615=>769,9616=>769,9617=>769,9618=>769,9619=>769,9620=>769,9621=>769,9622=>769,9623=>769,9624=>769,9625=>769,9626=>769,9627=>769,9628=>769,9629=>769,9630=>769,9631=>769,9632=>945,9633=>945,9634=>945,9635=>945,9636=>945,9637=>945,9638=>945,9639=>945,9640=>945,9641=>945,9642=>678,9643=>678,9644=>945,9645=>945,9646=>550,9647=>550,9648=>769,9649=>769,9650=>769,9651=>769,9652=>502,9653=>502,9654=>769,9655=>769,9656=>502,9657=>502,9658=>769,9659=>769,9660=>769,9661=>769,9662=>502,9663=>502,9664=>769,9665=>769,9666=>502,9667=>502,9668=>769,9669=>769,9670=>769,9671=>769,9672=>769,9673=>873,9674=>494,9675=>873,9676=>873,9677=>873,9678=>873,9679=>873,9680=>873,9681=>873,9682=>873,9683=>873,9684=>873,9685=>873,9686=>527,9687=>527,9688=>840,9689=>970,9690=>970,9691=>970,9692=>387,9693=>387,9694=>387,9695=>387,9696=>769,9697=>769,9698=>769,9699=>769,9700=>769,9701=>769,9702=>639,9703=>945,9704=>945,9705=>945,9706=>945,9707=>945,9708=>769,9709=>769,9710=>769,9711=>1119,9712=>945,9713=>945,9714=>945,9715=>945,9716=>873,9717=>873,9718=>873,9719=>873,9720=>769,9721=>769,9722=>769,9723=>830,9724=>830,9725=>732,9726=>732,9727=>769,9728=>896,9729=>1000,9730=>896,9731=>896,9732=>896,9733=>896,9734=>896,9735=>573,9736=>896,9737=>896,9738=>888,9739=>888,9740=>671,9741=>1013,9742=>1246,9743=>1250,9744=>896,9745=>896,9746=>896,9747=>532,9748=>896,9749=>896,9750=>896,9751=>896,9752=>896,9753=>896,9754=>896,9755=>896,9756=>896,9757=>609,9758=>896,9759=>609,9760=>896,9761=>896,9762=>896,9763=>896,9764=>669,9765=>746,9766=>649,9767=>784,9768=>545,9769=>896,9770=>896,9771=>896,9772=>710,9773=>896,9774=>896,9775=>896,9776=>896,9777=>896,9778=>896,9779=>896,9780=>896,9781=>896,9782=>896,9783=>896,9784=>896,9785=>1042,9786=>1042,9787=>1042,9788=>896,9789=>896,9790=>896,9791=>614,9792=>732,9793=>732,9794=>896,9795=>896,9796=>896,9797=>896,9798=>896,9799=>896,9800=>896,9801=>896,9802=>896,9803=>896,9804=>896,9805=>896,9806=>896,9807=>896,9808=>896,9809=>896,9810=>896,9811=>896,9812=>896,9813=>896,9814=>896,9815=>896,9816=>896,9817=>896,9818=>896,9819=>896,9820=>896,9821=>896,9822=>896,9823=>896,9824=>896,9825=>896,9826=>896,9827=>896,9828=>896,9829=>896,9830=>896,9831=>896,9832=>896,9833=>472,9834=>638,9835=>896,9836=>896,9837=>472,9838=>357,9839=>484,9840=>748,9841=>766,9842=>896,9843=>896,9844=>896,9845=>896,9846=>896,9847=>896,9848=>896,9849=>896,9850=>896,9851=>896,9852=>896,9853=>896,9854=>896,9855=>896,9856=>869,9857=>869,9858=>869,9859=>869,9860=>869,9861=>869,9862=>896,9863=>896,9864=>896,9865=>896,9866=>896,9867=>896,9868=>896,9869=>896,9870=>896,9871=>896,9872=>896,9873=>896,9874=>896,9875=>896,9876=>896,9877=>541,9878=>896,9879=>896,9880=>896,9881=>896,9882=>896,9883=>896,9884=>896,9888=>896,9889=>702,9890=>1004,9891=>1089,9892=>1175,9893=>903,9894=>838,9895=>838,9896=>838,9897=>838,9898=>838,9899=>838,9900=>838,9901=>838,9902=>838,9903=>838,9904=>844,9905=>838,9906=>732,9907=>732,9908=>732,9909=>732,9910=>850,9911=>732,9912=>732,9920=>838,9921=>838,9922=>838,9923=>838,9954=>732,9985=>838,9986=>838,9987=>838,9988=>838,9990=>838,9991=>838,9992=>838,9993=>838,9996=>838,9997=>838,9998=>838,9999=>838,10000=>838,10001=>838,10002=>838,10003=>838,10004=>838,10005=>838,10006=>838,10007=>838,10008=>838,10009=>838,10010=>838,10011=>838,10012=>838,10013=>838,10014=>838,10015=>838,10016=>838,10017=>838,10018=>838,10019=>838,10020=>838,10021=>838,10022=>838,10023=>838,10025=>838,10026=>838,10027=>838,10028=>838,10029=>838,10030=>838,10031=>838,10032=>838,10033=>838,10034=>838,10035=>838,10036=>838,10037=>838,10038=>838,10039=>838,10040=>838,10041=>838,10042=>838,10043=>838,10044=>838,10045=>838,10046=>838,10047=>838,10048=>838,10049=>838,10050=>838,10051=>838,10052=>838,10053=>838,10054=>838,10055=>838,10056=>838,10057=>838,10058=>838,10059=>838,10061=>896,10063=>896,10064=>896,10065=>896,10066=>896,10070=>896,10072=>838,10073=>838,10074=>838,10075=>322,10076=>322,10077=>538,10078=>538,10081=>838,10082=>838,10083=>838,10084=>838,10085=>838,10086=>838,10087=>838,10088=>838,10089=>838,10090=>838,10091=>838,10092=>838,10093=>838,10094=>838,10095=>838,10096=>838,10097=>838,10098=>838,10099=>838,10100=>838,10101=>838,10102=>847,10103=>847,10104=>847,10105=>847,10106=>847,10107=>847,10108=>847,10109=>847,10110=>847,10111=>847,10112=>838,10113=>838,10114=>838,10115=>838,10116=>838,10117=>838,10118=>838,10119=>838,10120=>838,10121=>838,10122=>838,10123=>838,10124=>838,10125=>838,10126=>838,10127=>838,10128=>838,10129=>838,10130=>838,10131=>838,10132=>838,10136=>838,10137=>838,10138=>838,10139=>838,10140=>838,10141=>838,10142=>838,10143=>838,10144=>838,10145=>838,10146=>838,10147=>838,10148=>838,10149=>838,10150=>838,10151=>838,10152=>838,10153=>838,10154=>838,10155=>838,10156=>838,10157=>838,10158=>838,10159=>838,10161=>838,10162=>838,10163=>838,10164=>838,10165=>838,10166=>838,10167=>838,10168=>838,10169=>838,10170=>838,10171=>838,10172=>838,10173=>838,10174=>838,10181=>457,10182=>457,10208=>494,10214=>487,10215=>487,10216=>457,10217=>457,10218=>721,10219=>721,10224=>838,10225=>838,10226=>838,10227=>838,10228=>1157,10229=>1434,10230=>1434,10231=>1434,10232=>1434,10233=>1434,10234=>1434,10235=>1434,10236=>1434,10237=>1434,10238=>1434,10239=>1434,10240=>781,10241=>781,10242=>781,10243=>781,10244=>781,10245=>781,10246=>781,10247=>781,10248=>781,10249=>781,10250=>781,10251=>781,10252=>781,10253=>781,10254=>781,10255=>781,10256=>781,10257=>781,10258=>781,10259=>781,10260=>781,10261=>781,10262=>781,10263=>781,10264=>781,10265=>781,10266=>781,10267=>781,10268=>781,10269=>781,10270=>781,10271=>781,10272=>781,10273=>781,10274=>781,10275=>781,10276=>781,10277=>781,10278=>781,10279=>781,10280=>781,10281=>781,10282=>781,10283=>781,10284=>781,10285=>781,10286=>781,10287=>781,10288=>781,10289=>781,10290=>781,10291=>781,10292=>781,10293=>781,10294=>781,10295=>781,10296=>781,10297=>781,10298=>781,10299=>781,10300=>781,10301=>781,10302=>781,10303=>781,10304=>781,10305=>781,10306=>781,10307=>781,10308=>781,10309=>781,10310=>781,10311=>781,10312=>781,10313=>781,10314=>781,10315=>781,10316=>781,10317=>781,10318=>781,10319=>781,10320=>781,10321=>781,10322=>781,10323=>781,10324=>781,10325=>781,10326=>781,10327=>781,10328=>781,10329=>781,10330=>781,10331=>781,10332=>781,10333=>781,10334=>781,10335=>781,10336=>781,10337=>781,10338=>781,10339=>781,10340=>781,10341=>781,10342=>781,10343=>781,10344=>781,10345=>781,10346=>781,10347=>781,10348=>781,10349=>781,10350=>781,10351=>781,10352=>781,10353=>781,10354=>781,10355=>781,10356=>781,10357=>781,10358=>781,10359=>781,10360=>781,10361=>781,10362=>781,10363=>781,10364=>781,10365=>781,10366=>781,10367=>781,10368=>781,10369=>781,10370=>781,10371=>781,10372=>781,10373=>781,10374=>781,10375=>781,10376=>781,10377=>781,10378=>781,10379=>781,10380=>781,10381=>781,10382=>781,10383=>781,10384=>781,10385=>781,10386=>781,10387=>781,10388=>781,10389=>781,10390=>781,10391=>781,10392=>781,10393=>781,10394=>781,10395=>781,10396=>781,10397=>781,10398=>781,10399=>781,10400=>781,10401=>781,10402=>781,10403=>781,10404=>781,10405=>781,10406=>781,10407=>781,10408=>781,10409=>781,10410=>781,10411=>781,10412=>781,10413=>781,10414=>781,10415=>781,10416=>781,10417=>781,10418=>781,10419=>781,10420=>781,10421=>781,10422=>781,10423=>781,10424=>781,10425=>781,10426=>781,10427=>781,10428=>781,10429=>781,10430=>781,10431=>781,10432=>781,10433=>781,10434=>781,10435=>781,10436=>781,10437=>781,10438=>781,10439=>781,10440=>781,10441=>781,10442=>781,10443=>781,10444=>781,10445=>781,10446=>781,10447=>781,10448=>781,10449=>781,10450=>781,10451=>781,10452=>781,10453=>781,10454=>781,10455=>781,10456=>781,10457=>781,10458=>781,10459=>781,10460=>781,10461=>781,10462=>781,10463=>781,10464=>781,10465=>781,10466=>781,10467=>781,10468=>781,10469=>781,10470=>781,10471=>781,10472=>781,10473=>781,10474=>781,10475=>781,10476=>781,10477=>781,10478=>781,10479=>781,10480=>781,10481=>781,10482=>781,10483=>781,10484=>781,10485=>781,10486=>781,10487=>781,10488=>781,10489=>781,10490=>781,10491=>781,10492=>781,10493=>781,10494=>781,10495=>781,10502=>838,10503=>838,10506=>838,10507=>838,10560=>838,10561=>838,10627=>753,10628=>753,10702=>838,10703=>1046,10704=>1046,10705=>1000,10706=>1000,10707=>1000,10708=>1000,10709=>1000,10731=>494,10746=>838,10747=>838,10752=>1000,10753=>1000,10754=>1000,10764=>1661,10765=>563,10766=>563,10767=>563,10768=>563,10769=>563,10770=>563,10771=>563,10772=>563,10773=>563,10774=>563,10775=>563,10776=>563,10777=>563,10778=>563,10779=>563,10780=>563,10799=>838,10858=>838,10859=>838,10877=>838,10878=>838,10879=>838,10880=>838,10881=>838,10882=>838,10883=>838,10884=>838,10885=>838,10886=>838,10887=>838,10888=>838,10889=>838,10890=>838,10891=>838,10892=>838,10893=>838,10894=>838,10895=>838,10896=>838,10897=>838,10898=>838,10899=>838,10900=>838,10901=>838,10902=>838,10903=>838,10904=>838,10905=>838,10906=>838,10907=>838,10908=>838,10909=>838,10910=>838,10911=>838,10912=>838,10926=>838,10927=>838,10928=>838,10929=>838,10930=>838,10931=>838,10932=>838,10933=>838,10934=>838,10935=>838,10936=>838,10937=>838,10938=>838,11001=>838,11002=>838,11008=>838,11009=>838,11010=>838,11011=>838,11012=>838,11013=>838,11014=>838,11015=>838,11016=>838,11017=>838,11018=>838,11019=>838,11020=>838,11021=>838,11022=>838,11023=>838,11024=>838,11025=>838,11026=>945,11027=>945,11028=>945,11029=>945,11030=>769,11031=>769,11032=>769,11033=>769,11034=>945,11039=>869,11040=>869,11041=>873,11042=>873,11043=>873,11044=>1119,11091=>869,11092=>869,11360=>637,11361=>360,11362=>637,11363=>733,11364=>770,11365=>675,11366=>478,11367=>956,11368=>712,11369=>775,11370=>665,11371=>725,11372=>582,11373=>860,11374=>995,11375=>774,11376=>860,11377=>778,11378=>1221,11379=>1056,11380=>652,11381=>698,11382=>565,11383=>782,11385=>538,11386=>687,11387=>559,11388=>219,11389=>487,11390=>720,11391=>725,11520=>663,11521=>676,11522=>661,11523=>629,11524=>661,11525=>1032,11526=>718,11527=>1032,11528=>648,11529=>667,11530=>1032,11531=>673,11532=>677,11533=>1036,11534=>680,11535=>886,11536=>1032,11537=>683,11538=>674,11539=>1035,11540=>1033,11541=>1027,11542=>676,11543=>673,11544=>667,11545=>667,11546=>660,11547=>671,11548=>1039,11549=>673,11550=>692,11551=>659,11552=>1048,11553=>660,11554=>654,11555=>670,11556=>733,11557=>1017,11800=>586,11807=>838,11810=>457,11811=>457,11812=>457,11813=>457,11822=>580,19904=>896,19905=>896,19906=>896,19907=>896,19908=>896,19909=>896,19910=>896,19911=>896,19912=>896,19913=>896,19914=>896,19915=>896,19916=>896,19917=>896,19918=>896,19919=>896,19920=>896,19921=>896,19922=>896,19923=>896,19924=>896,19925=>896,19926=>896,19927=>896,19928=>896,19929=>896,19930=>896,19931=>896,19932=>896,19933=>896,19934=>896,19935=>896,19936=>896,19937=>896,19938=>896,19939=>896,19940=>896,19941=>896,19942=>896,19943=>896,19944=>896,19945=>896,19946=>896,19947=>896,19948=>896,19949=>896,19950=>896,19951=>896,19952=>896,19953=>896,19954=>896,19955=>896,19956=>896,19957=>896,19958=>896,19959=>896,19960=>896,19961=>896,19962=>896,19963=>896,19964=>896,19965=>896,19966=>896,19967=>896,42192=>762,42193=>733,42194=>733,42195=>830,42196=>682,42197=>682,42198=>821,42199=>775,42200=>775,42201=>530,42202=>734,42203=>734,42204=>725,42205=>683,42206=>683,42207=>995,42208=>837,42209=>637,42210=>720,42211=>770,42212=>770,42213=>774,42214=>774,42215=>837,42216=>786,42217=>530,42218=>1103,42219=>771,42220=>724,42221=>762,42222=>774,42223=>774,42224=>683,42225=>683,42226=>372,42227=>850,42228=>812,42229=>812,42230=>576,42231=>830,42232=>322,42233=>322,42234=>674,42235=>674,42236=>322,42237=>322,42238=>588,42239=>588,42564=>720,42565=>595,42566=>436,42567=>440,42572=>1405,42573=>1173,42576=>1234,42577=>1027,42580=>1174,42581=>972,42582=>1100,42583=>969,42594=>1100,42595=>940,42596=>1096,42597=>915,42598=>1260,42599=>997,42600=>850,42601=>687,42602=>1037,42603=>868,42604=>1406,42605=>1106,42606=>961,42634=>944,42635=>749,42636=>682,42637=>580,42644=>808,42645=>712,42760=>500,42761=>500,42762=>500,42763=>500,42764=>500,42765=>500,42766=>500,42767=>500,42768=>500,42769=>500,42770=>500,42771=>500,42772=>500,42773=>500,42774=>500,42779=>400,42780=>400,42781=>287,42782=>287,42783=>287,42786=>444,42787=>390,42788=>540,42789=>540,42790=>837,42791=>712,42792=>1031,42793=>857,42794=>696,42795=>557,42800=>559,42801=>595,42802=>1349,42803=>1052,42804=>1285,42805=>1065,42806=>1245,42807=>1052,42808=>1079,42809=>922,42810=>1079,42811=>922,42812=>1035,42813=>922,42814=>698,42815=>549,42816=>656,42817=>579,42822=>850,42823=>542,42824=>683,42825=>531,42826=>918,42827=>814,42830=>1406,42831=>1106,42832=>733,42833=>716,42834=>948,42835=>937,42838=>850,42839=>716,42852=>738,42853=>716,42854=>738,42855=>716,42880=>637,42881=>343,42882=>837,42883=>712,42889=>400,42890=>396,42891=>456,42892=>306,42893=>808,42894=>693,42896=>928,42897=>768,42912=>821,42913=>716,42914=>775,42915=>665,42916=>837,42917=>712,42918=>770,42919=>493,42920=>720,42921=>595,42922=>886,43002=>1062,43003=>683,43004=>733,43005=>995,43006=>372,43007=>1325,61184=>216,61185=>242,61186=>267,61187=>277,61188=>282,61189=>242,61190=>216,61191=>242,61192=>267,61193=>277,61194=>267,61195=>242,61196=>216,61197=>242,61198=>267,61199=>277,61200=>267,61201=>242,61202=>216,61203=>242,61204=>282,61205=>277,61206=>267,61207=>242,61208=>216,61209=>282,62464=>612,62465=>612,62466=>653,62467=>902,62468=>617,62469=>617,62470=>680,62471=>904,62472=>599,62473=>617,62474=>1163,62475=>621,62476=>622,62477=>893,62478=>612,62479=>622,62480=>924,62481=>622,62482=>754,62483=>624,62484=>886,62485=>622,62486=>907,62487=>621,62488=>611,62489=>624,62490=>677,62491=>621,62492=>611,62493=>630,62494=>622,62495=>561,62496=>612,62497=>626,62498=>612,62499=>611,62500=>618,62501=>667,62502=>963,62504=>1023,62505=>844,62506=>563,62507=>563,62508=>563,62509=>563,62510=>563,62511=>563,62512=>555,62513=>555,62514=>555,62515=>555,62516=>573,62517=>573,62518=>573,62519=>824,62520=>824,62521=>824,62522=>824,62523=>824,62524=>611,62525=>611,62526=>611,62527=>611,62528=>611,62529=>611,62917=>687,64256=>833,64257=>787,64258=>787,64259=>1138,64260=>1139,64261=>808,64262=>1020,64275=>1388,64276=>1384,64277=>1378,64278=>1384,64279=>1713,64285=>294,64286=>0,64287=>663,64288=>665,64289=>939,64290=>788,64291=>920,64292=>786,64293=>857,64294=>869,64295=>821,64296=>890,64297=>838,64298=>749,64299=>749,64300=>749,64301=>749,64302=>728,64303=>728,64304=>728,64305=>610,64306=>447,64307=>588,64308=>687,64309=>343,64310=>400,64311=>1000,64312=>679,64313=>436,64314=>578,64315=>566,64316=>605,64317=>1000,64318=>724,64319=>1000,64320=>453,64321=>680,64322=>1000,64323=>675,64324=>658,64325=>1000,64326=>653,64327=>736,64328=>602,64329=>749,64330=>683,64331=>343,64332=>610,64333=>566,64334=>658,64335=>710,65024=>0,65025=>0,65026=>0,65027=>0,65028=>0,65029=>0,65030=>0,65031=>0,65032=>0,65033=>0,65034=>0,65035=>0,65036=>0,65037=>0,65038=>0,65039=>0,65056=>0,65057=>0,65058=>0,65059=>0,65529=>0,65530=>0,65531=>0,65532=>0,65533=>1113,65535=>600);
16
+ // --- EOF ---
includes/tcpdf_min/fonts/dejavusansbi.z ADDED
Binary file
includes/tcpdf_min/fonts/helvetica.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Helvetica';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=513;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>32,'FontBBox'=>'[-166 -225 1000 931]','ItalicAngle'=>0,'Ascent'=>931,'Descent'=>-225,'Leading'=>0,'CapHeight'=>718,'XHeight'=>523,'StemV'=>88,'StemH'=>76,'AvgWidth'=>513,'MaxWidth'=>1015,'MissingWidth'=>513);
11
+ $cw=array(0=>500,1=>500,2=>500,3=>500,4=>500,5=>500,6=>500,7=>500,8=>500,9=>500,10=>500,11=>500,12=>500,13=>500,14=>500,15=>500,16=>500,17=>500,18=>500,19=>500,20=>500,21=>500,22=>500,23=>500,24=>500,25=>500,26=>500,27=>500,28=>500,29=>500,30=>500,31=>500,32=>278,33=>278,34=>355,35=>556,36=>556,37=>889,38=>667,39=>191,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>278,59=>278,60=>584,61=>584,62=>584,63=>556,64=>1015,65=>667,66=>667,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>500,75=>667,76=>556,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>278,92=>278,93=>277,94=>469,95=>556,96=>333,97=>556,98=>556,99=>500,100=>556,101=>556,102=>278,103=>556,104=>556,105=>222,106=>222,107=>500,108=>222,109=>833,110=>556,111=>556,112=>556,113=>556,114=>333,115=>500,116=>278,117=>556,118=>500,119=>722,120=>500,121=>500,122=>500,123=>334,124=>260,125=>334,126=>584,127=>500,128=>655,129=>500,130=>222,131=>278,132=>333,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>250,140=>1000,141=>500,142=>611,143=>500,144=>500,145=>222,146=>221,147=>333,148=>333,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>500,155=>250,156=>938,157=>500,158=>500,159=>667,160=>278,161=>278,162=>556,163=>556,164=>556,165=>556,166=>260,167=>556,168=>333,169=>737,170=>370,171=>448,172=>584,173=>333,174=>737,175=>333,176=>606,177=>584,178=>350,179=>350,180=>333,181=>556,182=>537,183=>278,184=>333,185=>350,186=>365,187=>448,188=>869,189=>869,190=>879,191=>556,192=>667,193=>667,194=>667,195=>667,196=>667,197=>667,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>666,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>896,231=>500,232=>556,233=>556,234=>556,235=>556,236=>251,237=>251,238=>251,239=>251,240=>556,241=>556,242=>556,243=>556,244=>556,245=>556,246=>556,247=>584,248=>611,249=>556,250=>556,251=>556,252=>556,253=>500,254=>555,255=>500);
12
+
13
+ // --- EOF ---
includes/tcpdf_min/fonts/helveticab.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Helvetica-Bold';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=535;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>32,'FontBBox'=>'[-170 -228 1003 962]','ItalicAngle'=>0,'Ascent'=>962,'Descent'=>-228,'Leading'=>0,'CapHeight'=>718,'XHeight'=>532,'StemV'=>140,'StemH'=>118,'AvgWidth'=>535,'MaxWidth'=>1000,'MissingWidth'=>535);
11
+ $cw=array(0=>278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>333,34=>474,35=>556,36=>556,37=>889,38=>722,39=>238,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>333,59=>333,60=>584,61=>584,62=>584,63=>611,64=>975,65=>722,66=>722,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>556,75=>722,76=>611,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>333,92=>278,93=>333,94=>584,95=>556,96=>333,97=>556,98=>611,99=>556,100=>611,101=>556,102=>333,103=>611,104=>611,105=>278,106=>278,107=>556,108=>278,109=>889,110=>611,111=>611,112=>611,113=>611,114=>389,115=>556,116=>333,117=>611,118=>556,119=>778,120=>556,121=>556,122=>500,123=>389,124=>280,125=>389,126=>584,127=>350,128=>556,129=>350,130=>278,131=>556,132=>500,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>278,146=>278,147=>500,148=>500,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>556,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>280,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>611,182=>556,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>722,193=>722,194=>722,195=>722,196=>722,197=>722,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>556,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>611,241=>611,242=>611,243=>611,244=>611,245=>611,246=>611,247=>584,248=>611,249=>611,250=>611,251=>611,252=>611,253=>556,254=>611,255=>556);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/helveticabi.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Helvetica-BoldOblique';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=535;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>96,'FontBBox'=>'[-174 -228 1114 962]','ItalicAngle'=>-12,'Ascent'=>962,'Descent'=>-228,'Leading'=>0,'CapHeight'=>718,'XHeight'=>532,'StemV'=>140,'StemH'=>118,'AvgWidth'=>535,'MaxWidth'=>1000,'MissingWidth'=>535);
11
+ $cw=array(0=>278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>333,34=>474,35=>556,36=>556,37=>889,38=>722,39=>238,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>333,59=>333,60=>584,61=>584,62=>584,63=>611,64=>975,65=>722,66=>722,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>556,75=>722,76=>611,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>333,92=>278,93=>333,94=>584,95=>556,96=>333,97=>556,98=>611,99=>556,100=>611,101=>556,102=>333,103=>611,104=>611,105=>278,106=>278,107=>556,108=>278,109=>889,110=>611,111=>611,112=>611,113=>611,114=>389,115=>556,116=>333,117=>611,118=>556,119=>778,120=>556,121=>556,122=>500,123=>389,124=>280,125=>389,126=>584,127=>350,128=>556,129=>350,130=>278,131=>556,132=>500,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>278,146=>278,147=>500,148=>500,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>556,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>280,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>611,182=>556,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>722,193=>722,194=>722,195=>722,196=>722,197=>722,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>556,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>611,241=>611,242=>611,243=>611,244=>611,245=>611,246=>611,247=>584,248=>611,249=>611,250=>611,251=>611,252=>611,253=>556,254=>611,255=>556);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/helveticai.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Helvetica-Oblique';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=513;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>96,'FontBBox'=>'[-170 -225 1116 931]','ItalicAngle'=>-12,'Ascent'=>931,'Descent'=>-225,'Leading'=>0,'CapHeight'=>718,'XHeight'=>523,'StemV'=>88,'StemH'=>76,'AvgWidth'=>513,'MaxWidth'=>1015,'MissingWidth'=>513);
11
+ $cw=array(0=>278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>278,34=>355,35=>556,36=>556,37=>889,38=>667,39=>191,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>278,59=>278,60=>584,61=>584,62=>584,63=>556,64=>1015,65=>667,66=>667,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>500,75=>667,76=>556,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>278,92=>278,93=>278,94=>469,95=>556,96=>333,97=>556,98=>556,99=>500,100=>556,101=>556,102=>278,103=>556,104=>556,105=>222,106=>222,107=>500,108=>222,109=>833,110=>556,111=>556,112=>556,113=>556,114=>333,115=>500,116=>278,117=>556,118=>500,119=>722,120=>500,121=>500,122=>500,123=>334,124=>260,125=>334,126=>584,127=>350,128=>556,129=>350,130=>222,131=>556,132=>333,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>222,146=>222,147=>333,148=>333,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>500,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>260,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>556,182=>537,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>667,193=>667,194=>667,195=>667,196=>667,197=>667,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>500,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>556,241=>556,242=>556,243=>556,244=>556,245=>556,246=>556,247=>584,248=>611,249=>556,250=>556,251=>556,252=>556,253=>500,254=>556,255=>500);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/symbol.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Symbol';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=587;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>4,'FontBBox'=>'[-180 -293 1090 1010]','ItalicAngle'=>0,'Ascent'=>1010,'Descent'=>-293,'Leading'=>0,'CapHeight'=>1010,'StemV'=>85,'StemH'=>92,'AvgWidth'=>587,'MaxWidth'=>1042,'MissingWidth'=>587);
11
+ $cw=array(0=>587,1=>587,2=>587,3=>587,4=>587,5=>587,6=>587,7=>587,8=>587,9=>587,10=>587,11=>587,12=>587,13=>587,14=>587,15=>587,16=>587,17=>587,18=>587,19=>587,20=>587,21=>587,22=>587,23=>587,24=>587,25=>587,26=>587,27=>587,28=>587,29=>587,30=>587,31=>587,32=>250,33=>333,34=>713,35=>500,36=>549,37=>833,38=>778,39=>439,40=>333,41=>333,42=>500,43=>549,44=>250,45=>549,46=>250,47=>278,48=>500,49=>500,50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>278,59=>278,60=>549,61=>549,62=>549,63=>444,64=>549,65=>722,66=>667,67=>722,68=>612,69=>611,70=>763,71=>603,72=>722,73=>333,74=>631,75=>722,76=>686,77=>889,78=>722,79=>722,80=>768,81=>741,82=>556,83=>592,84=>611,85=>690,86=>439,87=>768,88=>645,89=>795,90=>611,91=>333,92=>863,93=>333,94=>658,95=>500,96=>500,97=>631,98=>549,99=>549,100=>494,101=>439,102=>521,103=>411,104=>603,105=>329,106=>603,107=>549,108=>549,109=>576,110=>521,111=>549,112=>549,113=>521,114=>549,115=>603,116=>439,117=>576,118=>713,119=>686,120=>493,121=>686,122=>494,123=>480,124=>200,125=>480,126=>549,127=>587,128=>587,129=>587,130=>587,131=>587,132=>587,133=>587,134=>587,135=>587,136=>587,137=>587,138=>587,139=>587,140=>587,141=>587,142=>587,143=>587,144=>587,145=>587,146=>587,147=>587,148=>587,149=>587,150=>587,151=>587,152=>587,153=>587,154=>587,155=>587,156=>587,157=>587,158=>587,159=>587,160=>750,161=>620,162=>247,163=>549,164=>167,165=>713,166=>500,167=>753,168=>753,169=>753,170=>753,171=>1042,172=>987,173=>603,174=>987,175=>603,176=>400,177=>549,178=>411,179=>549,180=>549,181=>713,182=>494,183=>460,184=>549,185=>549,186=>549,187=>549,188=>1000,189=>603,190=>1000,191=>658,192=>823,193=>686,194=>795,195=>987,196=>768,197=>768,198=>823,199=>768,200=>768,201=>713,202=>713,203=>713,204=>713,205=>713,206=>713,207=>713,208=>768,209=>713,210=>790,211=>790,212=>890,213=>823,214=>549,215=>250,216=>713,217=>603,218=>603,219=>1042,220=>987,221=>603,222=>987,223=>603,224=>494,225=>329,226=>790,227=>790,228=>786,229=>713,230=>384,231=>384,232=>384,233=>384,234=>384,235=>384,236=>494,237=>494,238=>494,239=>494,240=>587,241=>329,242=>274,243=>686,244=>686,245=>686,246=>384,247=>384,248=>384,249=>384,250=>384,251=>384,252=>494,253=>494,254=>494,255=>587);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/times.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Times-Roman';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=495;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>32,'FontBBox'=>'[-168 -218 1000 898]','ItalicAngle'=>0,'Ascent'=>898,'Descent'=>-218,'Leading'=>0,'CapHeight'=>662,'XHeight'=>450,'StemV'=>84,'StemH'=>28,'AvgWidth'=>495,'MaxWidth'=>1000,'MissingWidth'=>495);
11
+ $cw=array(0=>250,1=>250,2=>250,3=>250,4=>250,5=>250,6=>250,7=>250,8=>250,9=>250,10=>250,11=>250,12=>250,13=>250,14=>250,15=>250,16=>250,17=>250,18=>250,19=>250,20=>250,21=>250,22=>250,23=>250,24=>250,25=>250,26=>250,27=>250,28=>250,29=>250,30=>250,31=>250,32=>250,33=>333,34=>408,35=>500,36=>500,37=>833,38=>778,39=>180,40=>333,41=>333,42=>500,43=>564,44=>250,45=>333,46=>250,47=>278,48=>500,49=>500,50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>278,59=>278,60=>564,61=>564,62=>564,63=>444,64=>921,65=>722,66=>667,67=>667,68=>722,69=>611,70=>556,71=>722,72=>722,73=>333,74=>389,75=>722,76=>611,77=>889,78=>722,79=>722,80=>556,81=>722,82=>667,83=>556,84=>611,85=>722,86=>722,87=>944,88=>722,89=>722,90=>611,91=>333,92=>278,93=>333,94=>469,95=>500,96=>333,97=>444,98=>500,99=>444,100=>500,101=>444,102=>333,103=>500,104=>500,105=>278,106=>278,107=>500,108=>278,109=>778,110=>500,111=>500,112=>500,113=>500,114=>333,115=>389,116=>278,117=>500,118=>500,119=>722,120=>500,121=>500,122=>444,123=>480,124=>200,125=>480,126=>541,127=>350,128=>500,129=>350,130=>333,131=>500,132=>444,133=>1000,134=>500,135=>500,136=>333,137=>1000,138=>556,139=>333,140=>889,141=>350,142=>611,143=>350,144=>350,145=>333,146=>333,147=>444,148=>444,149=>350,150=>500,151=>1000,152=>333,153=>980,154=>389,155=>333,156=>722,157=>350,158=>444,159=>722,160=>250,161=>333,162=>500,163=>500,164=>500,165=>500,166=>200,167=>500,168=>333,169=>760,170=>276,171=>500,172=>564,173=>333,174=>760,175=>333,176=>400,177=>564,178=>300,179=>300,180=>333,181=>500,182=>453,183=>250,184=>333,185=>300,186=>310,187=>500,188=>750,189=>750,190=>750,191=>444,192=>722,193=>722,194=>722,195=>722,196=>722,197=>722,198=>889,199=>667,200=>611,201=>611,202=>611,203=>611,204=>333,205=>333,206=>333,207=>333,208=>722,209=>722,210=>722,211=>722,212=>722,213=>722,214=>722,215=>564,216=>722,217=>722,218=>722,219=>722,220=>722,221=>722,222=>556,223=>500,224=>444,225=>444,226=>444,227=>444,228=>444,229=>444,230=>667,231=>444,232=>444,233=>444,234=>444,235=>444,236=>278,237=>278,238=>278,239=>278,240=>500,241=>500,242=>500,243=>500,244=>500,245=>500,246=>500,247=>564,248=>500,249=>500,250=>500,251=>500,252=>500,253=>500,254=>500,255=>500);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/timesb.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Times-Bold';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=516;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>32,'FontBBox'=>'[-168 -218 1000 935]','ItalicAngle'=>0,'Ascent'=>935,'Descent'=>-218,'Leading'=>0,'CapHeight'=>676,'XHeight'=>461,'StemV'=>139,'StemH'=>44,'AvgWidth'=>516,'MaxWidth'=>1000,'MissingWidth'=>516);
11
+ $cw=array(0=>250,1=>250,2=>250,3=>250,4=>250,5=>250,6=>250,7=>250,8=>250,9=>250,10=>250,11=>250,12=>250,13=>250,14=>250,15=>250,16=>250,17=>250,18=>250,19=>250,20=>250,21=>250,22=>250,23=>250,24=>250,25=>250,26=>250,27=>250,28=>250,29=>250,30=>250,31=>250,32=>250,33=>333,34=>555,35=>500,36=>500,37=>1000,38=>833,39=>278,40=>333,41=>333,42=>500,43=>570,44=>250,45=>333,46=>250,47=>278,48=>500,49=>500,50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>333,59=>333,60=>570,61=>570,62=>570,63=>500,64=>930,65=>722,66=>667,67=>722,68=>722,69=>667,70=>611,71=>778,72=>778,73=>389,74=>500,75=>778,76=>667,77=>944,78=>722,79=>778,80=>611,81=>778,82=>722,83=>556,84=>667,85=>722,86=>722,87=>1000,88=>722,89=>722,90=>667,91=>333,92=>278,93=>333,94=>581,95=>500,96=>333,97=>500,98=>556,99=>444,100=>556,101=>444,102=>333,103=>500,104=>556,105=>278,106=>333,107=>556,108=>278,109=>833,110=>556,111=>500,112=>556,113=>556,114=>444,115=>389,116=>333,117=>556,118=>500,119=>722,120=>500,121=>500,122=>444,123=>394,124=>220,125=>394,126=>520,127=>350,128=>500,129=>350,130=>333,131=>500,132=>500,133=>1000,134=>500,135=>500,136=>333,137=>1000,138=>556,139=>333,140=>1000,141=>350,142=>667,143=>350,144=>350,145=>333,146=>333,147=>500,148=>500,149=>350,150=>500,151=>1000,152=>333,153=>1000,154=>389,155=>333,156=>722,157=>350,158=>444,159=>722,160=>250,161=>333,162=>500,163=>500,164=>500,165=>500,166=>220,167=>500,168=>333,169=>747,170=>300,171=>500,172=>570,173=>333,174=>747,175=>333,176=>400,177=>570,178=>300,179=>300,180=>333,181=>556,182=>540,183=>250,184=>333,185=>300,186=>330,187=>500,188=>750,189=>750,190=>750,191=>500,192=>722,193=>722,194=>722,195=>722,196=>722,197=>722,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>389,205=>389,206=>389,207=>389,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>570,216=>778,217=>722,218=>722,219=>722,220=>722,221=>722,222=>611,223=>556,224=>500,225=>500,226=>500,227=>500,228=>500,229=>500,230=>722,231=>444,232=>444,233=>444,234=>444,235=>444,236=>278,237=>278,238=>278,239=>278,240=>500,241=>556,242=>500,243=>500,244=>500,245=>500,246=>500,247=>570,248=>500,249=>556,250=>556,251=>556,252=>556,253=>500,254=>556,255=>500);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/timesbi.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Times-BoldItalic';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=501;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>96,'FontBBox'=>'[-200 -218 996 921]','ItalicAngle'=>-15,'Ascent'=>921,'Descent'=>-218,'Leading'=>0,'CapHeight'=>669,'XHeight'=>462,'StemV'=>121,'StemH'=>42,'AvgWidth'=>501,'MaxWidth'=>1000,'MissingWidth'=>501);
11
+ $cw=array(0=>250,1=>250,2=>250,3=>250,4=>250,5=>250,6=>250,7=>250,8=>250,9=>250,10=>250,11=>250,12=>250,13=>250,14=>250,15=>250,16=>250,17=>250,18=>250,19=>250,20=>250,21=>250,22=>250,23=>250,24=>250,25=>250,26=>250,27=>250,28=>250,29=>250,30=>250,31=>250,32=>250,33=>389,34=>555,35=>500,36=>500,37=>833,38=>778,39=>278,40=>333,41=>333,42=>500,43=>570,44=>250,45=>333,46=>250,47=>278,48=>500,49=>500,50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>333,59=>333,60=>570,61=>570,62=>570,63=>500,64=>832,65=>667,66=>667,67=>667,68=>722,69=>667,70=>667,71=>722,72=>778,73=>389,74=>500,75=>667,76=>611,77=>889,78=>722,79=>722,80=>611,81=>722,82=>667,83=>556,84=>611,85=>722,86=>667,87=>889,88=>667,89=>611,90=>611,91=>333,92=>278,93=>333,94=>570,95=>500,96=>333,97=>500,98=>500,99=>444,100=>500,101=>444,102=>333,103=>500,104=>556,105=>278,106=>278,107=>500,108=>278,109=>778,110=>556,111=>500,112=>500,113=>500,114=>389,115=>389,116=>278,117=>556,118=>444,119=>667,120=>500,121=>444,122=>389,123=>348,124=>220,125=>348,126=>570,127=>350,128=>500,129=>350,130=>333,131=>500,132=>500,133=>1000,134=>500,135=>500,136=>333,137=>1000,138=>556,139=>333,140=>944,141=>350,142=>611,143=>350,144=>350,145=>333,146=>333,147=>500,148=>500,149=>350,150=>500,151=>1000,152=>333,153=>1000,154=>389,155=>333,156=>722,157=>350,158=>389,159=>611,160=>250,161=>389,162=>500,163=>500,164=>500,165=>500,166=>220,167=>500,168=>333,169=>747,170=>266,171=>500,172=>606,173=>333,174=>747,175=>333,176=>400,177=>570,178=>300,179=>300,180=>333,181=>576,182=>500,183=>250,184=>333,185=>300,186=>300,187=>500,188=>750,189=>750,190=>750,191=>500,192=>667,193=>667,194=>667,195=>667,196=>667,197=>667,198=>944,199=>667,200=>667,201=>667,202=>667,203=>667,204=>389,205=>389,206=>389,207=>389,208=>722,209=>722,210=>722,211=>722,212=>722,213=>722,214=>722,215=>570,216=>722,217=>722,218=>722,219=>722,220=>722,221=>611,222=>611,223=>500,224=>500,225=>500,226=>500,227=>500,228=>500,229=>500,230=>722,231=>444,232=>444,233=>444,234=>444,235=>444,236=>278,237=>278,238=>278,239=>278,240=>500,241=>556,242=>500,243=>500,244=>500,245=>500,246=>500,247=>570,248=>500,249=>556,250=>556,251=>556,252=>556,253=>444,254=>500,255=>444);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/timesi.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='Times-Italic';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=491;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>96,'FontBBox'=>'[-169 -217 1010 883]','ItalicAngle'=>-15.5,'Ascent'=>883,'Descent'=>-217,'Leading'=>0,'CapHeight'=>653,'XHeight'=>441,'StemV'=>76,'StemH'=>32,'AvgWidth'=>491,'MaxWidth'=>1000,'MissingWidth'=>491);
11
+ $cw=array(0=>250,1=>250,2=>250,3=>250,4=>250,5=>250,6=>250,7=>250,8=>250,9=>250,10=>250,11=>250,12=>250,13=>250,14=>250,15=>250,16=>250,17=>250,18=>250,19=>250,20=>250,21=>250,22=>250,23=>250,24=>250,25=>250,26=>250,27=>250,28=>250,29=>250,30=>250,31=>250,32=>250,33=>333,34=>420,35=>500,36=>500,37=>833,38=>778,39=>214,40=>333,41=>333,42=>500,43=>675,44=>250,45=>333,46=>250,47=>278,48=>500,49=>500,50=>500,51=>500,52=>500,53=>500,54=>500,55=>500,56=>500,57=>500,58=>333,59=>333,60=>675,61=>675,62=>675,63=>500,64=>920,65=>611,66=>611,67=>667,68=>722,69=>611,70=>611,71=>722,72=>722,73=>333,74=>444,75=>667,76=>556,77=>833,78=>667,79=>722,80=>611,81=>722,82=>611,83=>500,84=>556,85=>722,86=>611,87=>833,88=>611,89=>556,90=>556,91=>389,92=>278,93=>389,94=>422,95=>500,96=>333,97=>500,98=>500,99=>444,100=>500,101=>444,102=>278,103=>500,104=>500,105=>278,106=>278,107=>444,108=>278,109=>722,110=>500,111=>500,112=>500,113=>500,114=>389,115=>389,116=>278,117=>500,118=>444,119=>667,120=>444,121=>444,122=>389,123=>400,124=>275,125=>400,126=>541,127=>350,128=>500,129=>350,130=>333,131=>500,132=>556,133=>889,134=>500,135=>500,136=>333,137=>1000,138=>500,139=>333,140=>944,141=>350,142=>556,143=>350,144=>350,145=>333,146=>333,147=>556,148=>556,149=>350,150=>500,151=>889,152=>333,153=>980,154=>389,155=>333,156=>667,157=>350,158=>389,159=>556,160=>250,161=>389,162=>500,163=>500,164=>500,165=>500,166=>275,167=>500,168=>333,169=>760,170=>276,171=>500,172=>675,173=>333,174=>760,175=>333,176=>400,177=>675,178=>300,179=>300,180=>333,181=>500,182=>523,183=>250,184=>333,185=>300,186=>310,187=>500,188=>750,189=>750,190=>750,191=>500,192=>611,193=>611,194=>611,195=>611,196=>611,197=>611,198=>889,199=>667,200=>611,201=>611,202=>611,203=>611,204=>333,205=>333,206=>333,207=>333,208=>722,209=>667,210=>722,211=>722,212=>722,213=>722,214=>722,215=>675,216=>722,217=>722,218=>722,219=>722,220=>722,221=>556,222=>611,223=>500,224=>500,225=>500,226=>500,227=>500,228=>500,229=>500,230=>667,231=>444,232=>444,233=>444,234=>444,235=>444,236=>278,237=>278,238=>278,239=>278,240=>500,241=>500,242=>500,243=>500,244=>500,245=>500,246=>500,247=>675,248=>500,249=>500,250=>500,251=>500,252=>500,253=>444,254=>500,255=>444);
12
+ // --- EOF ---
includes/tcpdf_min/fonts/zapfdingbats.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // TCPDF FONT FILE DESCRIPTION
3
+ $type='core';
4
+ $name='ZapfDingbats';
5
+ $up=-100;
6
+ $ut=50;
7
+ $dw=746;
8
+ $diff='';
9
+ $enc='';
10
+ $desc=array('Flags'=>4,'FontBBox'=>'[-1 -143 981 820]','ItalicAngle'=>0,'Ascent'=>820,'Descent'=>-143,'Leading'=>0,'CapHeight'=>820,'StemV'=>90,'StemH'=>28,'AvgWidth'=>746,'MaxWidth'=>1016,'MissingWidth'=>746);
11
+ $cw=array(0=>746,1=>746,2=>746,3=>746,4=>746,5=>746,6=>746,7=>746,8=>746,9=>746,10=>746,11=>746,12=>746,13=>746,14=>746,15=>746,16=>746,17=>746,18=>746,19=>746,20=>746,21=>746,22=>746,23=>746,24=>746,25=>746,26=>746,27=>746,28=>746,29=>746,30=>746,31=>746,32=>278,33=>974,34=>961,35=>974,36=>980,37=>719,38=>789,39=>790,40=>791,41=>690,42=>960,43=>939,44=>549,45=>855,46=>911,47=>933,48=>911,49=>945,50=>974,51=>755,52=>846,53=>762,54=>761,55=>571,56=>677,57=>763,58=>760,59=>759,60=>754,61=>494,62=>552,63=>537,64=>577,65=>692,66=>786,67=>788,68=>788,69=>790,70=>793,71=>794,72=>816,73=>823,74=>789,75=>841,76=>823,77=>833,78=>816,79=>831,80=>923,81=>744,82=>723,83=>749,84=>790,85=>792,86=>695,87=>776,88=>768,89=>792,90=>759,91=>707,92=>708,93=>682,94=>701,95=>826,96=>815,97=>789,98=>789,99=>707,100=>687,101=>696,102=>689,103=>786,104=>787,105=>713,106=>791,107=>785,108=>791,109=>873,110=>761,111=>762,112=>762,113=>759,114=>759,115=>892,116=>892,117=>788,118=>784,119=>438,120=>138,121=>277,122=>415,123=>392,124=>392,125=>668,126=>668,127=>746,128=>390,129=>390,130=>317,131=>317,132=>276,133=>276,134=>509,135=>509,136=>410,137=>410,138=>234,139=>234,140=>334,141=>334,142=>746,143=>746,144=>746,145=>746,146=>746,147=>746,148=>746,149=>746,150=>746,151=>746,152=>746,153=>746,154=>746,155=>746,156=>746,157=>746,158=>746,159=>746,160=>746,161=>732,162=>544,163=>544,164=>910,165=>667,166=>760,167=>760,168=>776,169=>595,170=>694,171=>626,172=>788,173=>788,174=>788,175=>788,176=>788,177=>788,178=>788,179=>788,180=>788,181=>788,182=>788,183=>788,184=>788,185=>788,186=>788,187=>788,188=>788,189=>788,190=>788,191=>788,192=>788,193=>788,194=>788,195=>788,196=>788,197=>788,198=>788,199=>788,200=>788,201=>788,202=>788,203=>788,204=>788,205=>788,206=>788,207=>788,208=>788,209=>788,210=>788,211=>788,212=>894,213=>838,214=>1016,215=>458,216=>748,217=>924,218=>748,219=>918,220=>927,221=>928,222=>928,223=>834,224=>873,225=>828,226=>924,227=>924,228=>917,229=>930,230=>931,231=>463,232=>883,233=>836,234=>836,235=>867,236=>867,237=>696,238=>696,239=>874,240=>746,241=>874,242=>760,243=>946,244=>771,245=>865,246=>771,247=>888,248=>967,249=>888,250=>831,251=>873,252=>927,253=>970,254=>918,255=>746);
12
+ // --- EOF ---
includes/tcpdf_min/include/barcodes/datamatrix.php ADDED
@@ -0,0 +1,1176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //============================================================+
3
+ // File name : datamatrix.php
4
+ // Version : 1.0.008
5
+ // Begin : 2010-06-07
6
+ // Last Update : 2014-05-06
7
+ // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
8
+ // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
9
+ // -------------------------------------------------------------------
10
+ // Copyright (C) 2010-2014 Nicola Asuni - Tecnick.com LTD
11
+ //
12
+ // This file is part of TCPDF software library.
13
+ //
14
+ // TCPDF is free software: you can redistribute it and/or modify it
15
+ // under the terms of the GNU Lesser General Public License as
16
+ // published by the Free Software Foundation, either version 3 of the
17
+ // License, or (at your option) any later version.
18
+ //
19
+ // TCPDF is distributed in the hope that it will be useful, but
20
+ // WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22
+ // See the GNU Lesser General Public License for more details.
23
+ //
24
+ // You should have received a copy of the GNU Lesser General Public License
25
+ // along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
26
+ //
27
+ // See LICENSE.TXT file for more information.
28
+ // -------------------------------------------------------------------
29
+ //
30
+ // DESCRIPTION :
31
+ //
32
+ // Class to create DataMatrix ECC 200 barcode arrays for TCPDF class.
33
+ // DataMatrix (ISO/IEC 16022:2006) is a 2-dimensional bar code.
34
+ //============================================================+
35
+
36
+ /**
37
+ * @file
38
+ * Class to create DataMatrix ECC 200 barcode arrays for TCPDF class.
39
+ * DataMatrix (ISO/IEC 16022:2006) is a 2-dimensional bar code.
40
+ *
41
+ * @package com.tecnick.tcpdf
42
+ * @author Nicola Asuni
43
+ * @version 1.0.008
44
+ */
45
+
46
+ // custom definitions
47
+ if (!defined('DATAMATRIXDEFS')) {
48
+
49
+ /**
50
+ * Indicate that definitions for this class are set
51
+ */
52
+ define('DATAMATRIXDEFS', true);
53
+
54
+ // -----------------------------------------------------
55
+
56
+ } // end of custom definitions
57
+
58
+ // #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
59
+
60
+
61
+ /**
62
+ * ASCII encoding: ASCII character 0 to 127 (1 byte per CW)
63
+ */
64
+ define('ENC_ASCII', 0);
65
+
66
+ /**
67
+ * C40 encoding: Upper-case alphanumeric (3/2 bytes per CW)
68
+ */
69
+ define('ENC_C40', 1);
70
+
71
+ /**
72
+ * TEXT encoding: Lower-case alphanumeric (3/2 bytes per CW)
73
+ */
74
+ define('ENC_TXT', 2);
75
+
76
+ /**
77
+ * X12 encoding: ANSI X12 (3/2 byte per CW)
78
+ */
79
+ define('ENC_X12', 3);
80
+
81
+ /**
82
+ * EDIFACT encoding: ASCII character 32 to 94 (4/3 bytes per CW)
83
+ */
84
+ define('ENC_EDF', 4);
85
+
86
+ /**
87
+ * BASE 256 encoding: ASCII character 0 to 255 (1 byte per CW)
88
+ */
89
+ define('ENC_BASE256', 5);
90
+
91
+ /**
92
+ * ASCII extended encoding: ASCII character 128 to 255 (1/2 byte per CW)
93
+ */
94
+ define('ENC_ASCII_EXT', 6);
95
+
96
+ /**
97
+ * ASCII number encoding: ASCII digits (2 bytes per CW)
98
+ */
99
+ define('ENC_ASCII_NUM', 7);
100
+
101
+ /**
102
+ * @class Datamatrix
103
+ * Class to create DataMatrix ECC 200 barcode arrays for TCPDF class.
104
+ * DataMatrix (ISO/IEC 16022:2006) is a 2-dimensional bar code.
105
+ *
106
+ * @package com.tecnick.tcpdf
107
+ * @author Nicola Asuni
108
+ * @version 1.0.004
109
+ */
110
+ class Datamatrix {
111
+
112
+ /**
113
+ * Barcode array to be returned which is readable by TCPDF.
114
+ * @protected
115
+ */
116
+ protected $barcode_array = array();
117
+
118
+ /**
119
+ * Store last used encoding for data codewords.
120
+ * @protected
121
+ */
122
+ protected $last_enc = ENC_ASCII;
123
+
124
+ /**
125
+ * Table of Data Matrix ECC 200 Symbol Attributes:<ul>
126
+ * <li>total matrix rows (including finder pattern)</li>
127
+ * <li>total matrix cols (including finder pattern)</li>
128
+ * <li>total matrix rows (without finder pattern)</li>
129
+ * <li>total matrix cols (without finder pattern)</li>
130
+ * <li>region data rows (with finder pattern)</li>
131
+ * <li>region data col (with finder pattern)</li>
132
+ * <li>region data rows (without finder pattern)</li>
133
+ * <li>region data col (without finder pattern)</li>
134
+ * <li>horizontal regions</li>
135
+ * <li>vertical regions</li>
136
+ * <li>regions</li>
137
+ * <li>data codewords</li>
138
+ * <li>error codewords</li>
139
+ * <li>blocks</li>
140
+ * <li>data codewords per block</li>
141
+ * <li>error codewords per block</li>
142
+ * </ul>
143
+ * @protected
144
+ */
145
+ protected $symbattr = array(
146
+ // square form ---------------------------------------------------------------------------------------
147
+ array(0x00a,0x00a,0x008,0x008,0x00a,0x00a,0x008,0x008,0x001,0x001,0x001,0x003,0x005,0x001,0x003,0x005), // 10x10
148
+ array(0x00c,0x00c,0x00a,0x00a,0x00c,0x00c,0x00a,0x00a,0x001,0x001,0x001,0x005,0x007,0x001,0x005,0x007), // 12x12
149
+ array(0x00e,0x00e,0x00c,0x00c,0x00e,0x00e,0x00c,0x00c,0x001,0x001,0x001,0x008,0x00a,0x001,0x008,0x00a), // 14x14
150
+ array(0x010,0x010,0x00e,0x00e,0x010,0x010,0x00e,0x00e,0x001,0x001,0x001,0x00c,0x00c,0x001,0x00c,0x00c), // 16x16
151
+ array(0x012,0x012,0x010,0x010,0x012,0x012,0x010,0x010,0x001,0x001,0x001,0x012,0x00e,0x001,0x012,0x00e), // 18x18
152
+ array(0x014,0x014,0x012,0x012,0x014,0x014,0x012,0x012,0x001,0x001,0x001,0x016,0x012,0x001,0x016,0x012), // 20x20
153
+ array(0x016,0x016,0x014,0x014,0x016,0x016,0x014,0x014,0x001,0x001,0x001,0x01e,0x014,0x001,0x01e,0x014), // 22x22
154
+ array(0x018,0x018,0x016,0x016,0x018,0x018,0x016,0x016,0x001,0x001,0x001,0x024,0x018,0x001,0x024,0x018), // 24x24
155
+ array(0x01a,0x01a,0x018,0x018,0x01a,0x01a,0x018,0x018,0x001,0x001,0x001,0x02c,0x01c,0x001,0x02c,0x01c), // 26x26
156
+ array(0x020,0x020,0x01c,0x01c,0x010,0x010,0x00e,0x00e,0x002,0x002,0x004,0x03e,0x024,0x001,0x03e,0x024), // 32x32
157
+ array(0x024,0x024,0x020,0x020,0x012,0x012,0x010,0x010,0x002,0x002,0x004,0x056,0x02a,0x001,0x056,0x02a), // 36x36
158
+ array(0x028,0x028,0x024,0x024,0x014,0x014,0x012,0x012,0x002,0x002,0x004,0x072,0x030,0x001,0x072,0x030), // 40x40
159
+ array(0x02c,0x02c,0x028,0x028,0x016,0x016,0x014,0x014,0x002,0x002,0x004,0x090,0x038,0x001,0x090,0x038), // 44x44
160
+ array(0x030,0x030,0x02c,0x02c,0x018,0x018,0x016,0x016,0x002,0x002,0x004,0x0ae,0x044,0x001,0x0ae,0x044), // 48x48
161
+ array(0x034,0x034,0x030,0x030,0x01a,0x01a,0x018,0x018,0x002,0x002,0x004,0x0cc,0x054,0x002,0x066,0x02a), // 52x52
162
+ array(0x040,0x040,0x038,0x038,0x010,0x010,0x00e,0x00e,0x004,0x004,0x010,0x118,0x070,0x002,0x08c,0x038), // 64x64
163
+ array(0x048,0x048,0x040,0x040,0x012,0x012,0x010,0x010,0x004,0x004,0x010,0x170,0x090,0x004,0x05c,0x024), // 72x72
164
+ array(0x050,0x050,0x048,0x048,0x014,0x014,0x012,0x012,0x004,0x004,0x010,0x1c8,0x0c0,0x004,0x072,0x030), // 80x80
165
+ array(0x058,0x058,0x050,0x050,0x016,0x016,0x014,0x014,0x004,0x004,0x010,0x240,0x0e0,0x004,0x090,0x038), // 88x88
166
+ array(0x060,0x060,0x058,0x058,0x018,0x018,0x016,0x016,0x004,0x004,0x010,0x2b8,0x110,0x004,0x0ae,0x044), // 96x96
167
+ array(0x068,0x068,0x060,0x060,0x01a,0x01a,0x018,0x018,0x004,0x004,0x010,0x330,0x150,0x006,0x088,0x038), // 104x104
168
+ array(0x078,0x078,0x06c,0x06c,0x014,0x014,0x012,0x012,0x006,0x006,0x024,0x41a,0x198,0x006,0x0af,0x044), // 120x120
169
+ array(0x084,0x084,0x078,0x078,0x016,0x016,0x014,0x014,0x006,0x006,0x024,0x518,0x1f0,0x008,0x0a3,0x03e), // 132x132
170
+ array(0x090,0x090,0x084,0x084,0x018,0x018,0x016,0x016,0x006,0x006,0x024,0x616,0x26c,0x00a,0x09c,0x03e), // 144x144
171
+ // rectangular form (currently unused) ---------------------------------------------------------------------------
172
+ array(0x008,0x012,0x006,0x010,0x008,0x012,0x006,0x010,0x001,0x001,0x001,0x005,0x007,0x001,0x005,0x007), // 8x18
173
+ array(0x008,0x020,0x006,0x01c,0x008,0x010,0x006,0x00e,0x001,0x002,0x002,0x00a,0x00b,0x001,0x00a,0x00b), // 8x32
174
+ array(0x00c,0x01a,0x00a,0x018,0x00c,0x01a,0x00a,0x018,0x001,0x001,0x001,0x010,0x00e,0x001,0x010,0x00e), // 12x26
175
+ array(0x00c,0x024,0x00a,0x020,0x00c,0x012,0x00a,0x010,0x001,0x002,0x002,0x00c,0x012,0x001,0x00c,0x012), // 12x36
176
+ array(0x010,0x024,0x00e,0x020,0x010,0x012,0x00e,0x010,0x001,0x002,0x002,0x020,0x018,0x001,0x020,0x018), // 16x36
177
+ array(0x010,0x030,0x00e,0x02c,0x010,0x018,0x00e,0x016,0x001,0x002,0x002,0x031,0x01c,0x001,0x031,0x01c) // 16x48
178
+ );
179
+
180
+ /**
181
+ * Map encodation modes whit character sets.
182
+ * @protected
183
+ */
184
+ protected $chset_id = array(ENC_C40 => 'C40', ENC_TXT => 'TXT', ENC_X12 =>'X12');
185
+
186
+ /**
187
+ * Basic set of characters for each encodation mode.
188
+ * @protected
189
+ */
190
+ protected $chset = array(
191
+ 'C40' => array( // Basic set for C40 ----------------------------------------------------------------------------
192
+ 'S1'=>0x00,'S2'=>0x01,'S3'=>0x02,0x20=>0x03,0x30=>0x04,0x31=>0x05,0x32=>0x06,0x33=>0x07,0x34=>0x08,0x35=>0x09, //
193
+ 0x36=>0x0a,0x37=>0x0b,0x38=>0x0c,0x39=>0x0d,0x41=>0x0e,0x42=>0x0f,0x43=>0x10,0x44=>0x11,0x45=>0x12,0x46=>0x13, //
194
+ 0x47=>0x14,0x48=>0x15,0x49=>0x16,0x4a=>0x17,0x4b=>0x18,0x4c=>0x19,0x4d=>0x1a,0x4e=>0x1b,0x4f=>0x1c,0x50=>0x1d, //
195
+ 0x51=>0x1e,0x52=>0x1f,0x53=>0x20,0x54=>0x21,0x55=>0x22,0x56=>0x23,0x57=>0x24,0x58=>0x25,0x59=>0x26,0x5a=>0x27),//
196
+ 'TXT' => array( // Basic set for TEXT ---------------------------------------------------------------------------
197
+ 'S1'=>0x00,'S2'=>0x01,'S3'=>0x02,0x20=>0x03,0x30=>0x04,0x31=>0x05,0x32=>0x06,0x33=>0x07,0x34=>0x08,0x35=>0x09, //
198
+ 0x36=>0x0a,0x37=>0x0b,0x38=>0x0c,0x39=>0x0d,0x61=>0x0e,0x62=>0x0f,0x63=>0x10,0x64=>0x11,0x65=>0x12,0x66=>0x13, //
199
+ 0x67=>0x14,0x68=>0x15,0x69=>0x16,0x6a=>0x17,0x6b=>0x18,0x6c=>0x19,0x6d=>0x1a,0x6e=>0x1b,0x6f=>0x1c,0x70=>0x1d, //
200
+ 0x71=>0x1e,0x72=>0x1f,0x73=>0x20,0x74=>0x21,0x75=>0x22,0x76=>0x23,0x77=>0x24,0x78=>0x25,0x79=>0x26,0x7a=>0x27),//
201
+ 'SH1' => array( // Shift 1 set ----------------------------------------------------------------------------------
202
+ 0x00=>0x00,0x01=>0x01,0x02=>0x02,0x03=>0x03,0x04=>0x04,0x05=>0x05,0x06=>0x06,0x07=>0x07,0x08=>0x08,0x09=>0x09, //
203
+ 0x0a=>0x0a,0x0b=>0x0b,0x0c=>0x0c,0x0d=>0x0d,0x0e=>0x0e,0x0f=>0x0f,0x10=>0x10,0x11=>0x11,0x12=>0x12,0x13=>0x13, //
204
+ 0x14=>0x14,0x15=>0x15,0x16=>0x16,0x17=>0x17,0x18=>0x18,0x19=>0x19,0x1a=>0x1a,0x1b=>0x1b,0x1c=>0x1c,0x1d=>0x1d, //
205
+ 0x1e=>0x1e,0x1f=>0x1f), //
206
+ 'SH2' => array( // Shift 2 set ----------------------------------------------------------------------------------
207
+ 0x21=>0x00,0x22=>0x01,0x23=>0x02,0x24=>0x03,0x25=>0x04,0x26=>0x05,0x27=>0x06,0x28=>0x07,0x29=>0x08,0x2a=>0x09, //
208
+ 0x2b=>0x0a,0x2c=>0x0b,0x2d=>0x0c,0x2e=>0x0d,0x2f=>0x0e,0x3a=>0x0f,0x3b=>0x10,0x3c=>0x11,0x3d=>0x12,0x3e=>0x13, //
209
+ 0x3f=>0x14,0x40=>0x15,0x5b=>0x16,0x5c=>0x17,0x5d=>0x18,0x5e=>0x19,0x5f=>0x1a,'F1'=>0x1b,'US'=>0x1e), //
210
+ 'S3C' => array( // Shift 3 set for C40 --------------------------------------------------------------------------
211
+ 0x60=>0x00,0x61=>0x01,0x62=>0x02,0x63=>0x03,0x64=>0x04,0x65=>0x05,0x66=>0x06,0x67=>0x07,0x68=>0x08,0x69=>0x09, //
212
+ 0x6a=>0x0a,0x6b=>0x0b,0x6c=>0x0c,0x6d=>0x0d,0x6e=>0x0e,0x6f=>0x0f,0x70=>0x10,0x71=>0x11,0x72=>0x12,0x73=>0x13, //
213
+ 0x74=>0x14,0x75=>0x15,0x76=>0x16,0x77=>0x17,0x78=>0x18,0x79=>0x19,0x7a=>0x1a,0x7b=>0x1b,0x7c=>0x1c,0x7d=>0x1d, //
214
+ 0x7e=>0x1e,0x7f=>0x1f),
215
+ 'S3T' => array( // Shift 3 set for TEXT -------------------------------------------------------------------------
216
+ 0x60=>0x00,0x41=>0x01,0x42=>0x02,0x43=>0x03,0x44=>0x04,0x45=>0x05,0x46=>0x06,0x47=>0x07,0x48=>0x08,0x49=>0x09, //
217
+ 0x4a=>0x0a,0x4b=>0x0b,0x4c=>0x0c,0x4d=>0x0d,0x4e=>0x0e,0x4f=>0x0f,0x50=>0x10,0x51=>0x11,0x52=>0x12,0x53=>0x13, //
218
+ 0x54=>0x14,0x55=>0x15,0x56=>0x16,0x57=>0x17,0x58=>0x18,0x59=>0x19,0x5a=>0x1a,0x7b=>0x1b,0x7c=>0x1c,0x7d=>0x1d, //
219
+ 0x7e=>0x1e,0x7f=>0x1f), //
220
+ 'X12' => array( // Set for X12 ----------------------------------------------------------------------------------
221
+ 0x0d=>0x00,0x2a=>0x01,0x3e=>0x02,0x20=>0x03,0x30=>0x04,0x31=>0x05,0x32=>0x06,0x33=>0x07,0x34=>0x08,0x35=>0x09, //
222
+ 0x36=>0x0a,0x37=>0x0b,0x38=>0x0c,0x39=>0x0d,0x41=>0x0e,0x42=>0x0f,0x43=>0x10,0x44=>0x11,0x45=>0x12,0x46=>0x13, //
223
+ 0x47=>0x14,0x48=>0x15,0x49=>0x16,0x4a=>0x17,0x4b=>0x18,0x4c=>0x19,0x4d=>0x1a,0x4e=>0x1b,0x4f=>0x1c,0x50=>0x1d, //
224
+ 0x51=>0x1e,0x52=>0x1f,0x53=>0x20,0x54=>0x21,0x55=>0x22,0x56=>0x23,0x57=>0x24,0x58=>0x25,0x59=>0x26,0x5a=>0x27) //
225
+ );
226
+
227
+ // -----------------------------------------------------------------------------
228
+
229
+ /**
230
+ * This is the class constructor.
231
+ * Creates a datamatrix object
232
+ * @param $code (string) Code to represent using Datamatrix.
233
+ * @public
234
+ */
235
+ public function __construct($code) {
236
+ $barcode_array = array();
237
+ if ((is_null($code)) OR ($code == '\0') OR ($code == '')) {
238
+ return false;
239
+ }
240
+ // get data codewords
241
+ $cw = $this->getHighLevelEncoding($code);
242
+ // number of data codewords
243
+ $nd = count($cw);
244
+ // check size
245
+ if ($nd > 1558) {
246
+ return false;
247
+ }
248
+ // get minimum required matrix size.
249
+ foreach ($this->symbattr as $params) {
250
+ if ($params[11] >= $nd) {
251
+ break;
252
+ }
253
+ }
254
+ if ($params[11] < $nd) {
255
+ // too much data
256
+ return false;
257
+ } elseif ($params[11] > $nd) {
258
+ // add padding
259
+ if ((($params[11] - $nd) > 1) AND ($cw[($nd - 1)] != 254)) {
260
+ if ($this->last_enc == ENC_EDF) {
261
+ // switch to ASCII encoding
262
+ $cw[] = 124;
263
+ ++$nd;
264
+ } elseif (($this->last_enc != ENC_ASCII) AND ($this->last_enc != ENC_BASE256)) {
265
+ // switch to ASCII encoding
266
+ $cw[] = 254;
267
+ ++$nd;
268
+ }
269
+ }
270
+ if ($params[11] > $nd) {
271
+ // add first pad
272
+ $cw[] = 129;
273
+ ++$nd;
274
+ // add remaining pads
275
+ for ($i = $nd; $i < $params[11]; ++$i) {
276
+ $cw[] = $this->get253StateCodeword(129, $i);
277
+ }
278
+ }
279
+ }
280
+ // add error correction codewords
281
+ $cw = $this->getErrorCorrection($cw, $params[13], $params[14], $params[15]);
282
+ // initialize empty arrays
283
+ $grid = array_fill(0, ($params[2] * $params[3]), 0);
284
+ // get placement map
285
+ $places = $this->getPlacementMap($params[2], $params[3]);
286
+ // fill the grid with data
287
+ $grid = array();
288
+ $i = 0;
289
+ // region data row max index
290
+ $rdri = ($params[4] - 1);
291
+ // region data column max index
292
+ $rdci = ($params[5] - 1);
293
+ // for each vertical region
294
+ for ($vr = 0; $vr < $params[9]; ++$vr) {
295
+ // for each row on region
296
+ for ($r = 0; $r < $params[4]; ++$r) {
297
+ // get row
298
+ $row = (($vr * $params[4]) + $r);
299
+ // for each horizontal region
300
+ for ($hr = 0; $hr < $params[8]; ++$hr) {
301
+ // for each column on region
302
+ for ($c = 0; $c < $params[5]; ++$c) {
303
+ // get column
304
+ $col = (($hr * $params[5]) + $c);
305
+ // braw bits by case
306
+ if ($r == 0) {
307
+ // top finder pattern
308
+ if ($c % 2) {
309
+ $grid[$row][$col] = 0;
310
+ } else {
311
+ $grid[$row][$col] = 1;
312
+ }
313
+ } elseif ($r == $rdri) {
314
+ // bottom finder pattern
315
+ $grid[$row][$col] = 1;
316
+ } elseif ($c == 0) {
317
+ // left finder pattern
318
+ $grid[$row][$col] = 1;
319
+ } elseif ($c == $rdci) {
320
+ // right finder pattern
321
+ if ($r % 2) {
322
+ $grid[$row][$col] = 1;
323
+ } else {
324
+ $grid[$row][$col] = 0;
325
+ }
326
+ } else { // data bit
327
+ if ($places[$i] < 2) {
328
+ $grid[$row][$col] = $places[$i];
329
+ } else {
330
+ // codeword ID
331
+ $cw_id = (floor($places[$i] / 10) - 1);
332
+ // codeword BIT mask
333
+ $cw_bit = pow(2, (8 - ($places[$i] % 10)));
334
+ $grid[$row][$col] = (($cw[$cw_id] & $cw_bit) == 0) ? 0 : 1;
335
+ }
336
+ ++$i;
337
+ }
338
+ }
339
+ }
340
+ }
341
+ }
342
+ $this->barcode_array['num_rows'] = $params[0];
343
+ $this->barcode_array['num_cols'] = $params[1];
344
+ $this->barcode_array['bcode'] = $grid;
345
+ }
346
+
347
+ /**
348
+ * Returns a barcode array which is readable by TCPDF
349
+ * @return array barcode array readable by TCPDF;
350
+ * @public
351
+ */
352
+ public function getBarcodeArray() {
353
+ return $this->barcode_array;
354
+ }
355
+
356
+ /**
357
+ * Product of two numbers in a Power-of-Two Galois Field
358
+ * @param $a (int) first number to multiply.
359
+ * @param $b (int) second number to multiply.
360
+ * @param $log (array) Log table.
361
+ * @param $alog (array) Anti-Log table.
362
+ * @param $gf (array) Number of Factors of the Reed-Solomon polynomial.
363
+ * @return int product
364
+ * @protected
365
+ */
366
+ protected function getGFProduct($a, $b, $log, $alog, $gf) {
367
+ if (($a == 0) OR ($b == 0)) {
368
+ return 0;
369
+ }
370
+ return ($alog[($log[$a] + $log[$b]) % ($gf - 1)]);
371
+ }
372
+
373
+ /**
374
+ * Add error correction codewords to data codewords array (ANNEX E).
375
+ * @param $wd (array) Array of datacodewords.
376
+ * @param $nb (int) Number of blocks.
377
+ * @param $nd (int) Number of data codewords per block.
378
+ * @param $nc (int) Number of correction codewords per block.
379
+ * @param $gf (int) numner of fields on log/antilog table (power of 2).
380
+ * @param $pp (int) The value of its prime modulus polynomial (301 for ECC200).
381
+ * @return array data codewords + error codewords
382
+ * @protected
383
+ */
384
+ protected function getErrorCorrection($wd, $nb, $nd, $nc, $gf=256, $pp=301) {
385
+ // generate the log ($log) and antilog ($alog) tables
386
+ $log[0] = 0;
387
+ $alog[0] = 1;
388
+ for ($i = 1; $i < $gf; ++$i) {
389
+ $alog[$i] = ($alog[($i - 1)] * 2);
390
+ if ($alog[$i] >= $gf) {
391
+ $alog[$i] ^= $pp;
392
+ }
393
+ $log[$alog[$i]] = $i;
394
+ }
395
+ ksort($log);
396
+ // generate the polynomial coefficients (c)
397
+ $c = array_fill(0, ($nc + 1), 0);
398
+ $c[0] = 1;
399
+ for ($i = 1; $i <= $nc; ++$i) {
400
+ $c[$i] = $c[($i-1)];
401
+ for ($j = ($i - 1); $j >= 1; --$j) {
402
+ $c[$j] = $c[($j - 1)] ^ $this->getGFProduct($c[$j], $alog[$i], $log, $alog, $gf);
403
+ }
404
+ $c[0] = $this->getGFProduct($c[0], $alog[$i], $log, $alog, $gf);
405
+ }
406
+ ksort($c);
407
+ // total number of data codewords
408
+ $num_wd = ($nb * $nd);
409
+ // total number of error codewords
410
+ $num_we = ($nb * $nc);
411
+ // for each block
412
+ for ($b = 0; $b < $nb; ++$b) {
413
+ // create interleaved data block
414
+ $block = array();
415
+ for ($n = $b; $n < $num_wd; $n += $nb) {
416
+ $block[] = $wd[$n];
417
+ }
418
+ // initialize error codewords
419
+ $we = array_fill(0, ($nc + 1), 0);
420
+ // calculate error correction codewords for this block
421
+ for ($i = 0; $i < $nd; ++$i) {
422
+ $k = ($we[0] ^ $block[$i]);
423
+ for ($j = 0; $j < $nc; ++$j) {
424
+ $we[$j] = ($we[($j + 1)] ^ $this->getGFProduct($k, $c[($nc - $j - 1)], $log, $alog, $gf));
425
+ }
426
+ }
427
+ // add error codewords at the end of data codewords
428
+ $j = 0;
429
+ for ($i = $b; $i < $num_we; $i += $nb) {
430
+ $wd[($num_wd + $i)] = $we[$j];
431
+ ++$j;
432
+ }
433
+ }
434
+ // reorder codewords
435
+ ksort($wd);
436
+ return $wd;
437
+ }
438
+
439
+ /**
440
+ * Return the 253-state codeword
441
+ * @param $cwpad (int) Pad codeword.
442
+ * @param $cwpos (int) Number of data codewords from the beginning of encoded data.
443
+ * @return pad codeword
444
+ * @protected
445
+ */
446
+ protected function get253StateCodeword($cwpad, $cwpos) {
447
+ $pad = ($cwpad + (((149 * $cwpos) % 253) + 1));
448
+ if ($pad > 254) {
449
+ $pad -= 254;
450
+ }
451
+ return $pad;
452
+ }
453
+
454
+ /**
455
+ * Return the 255-state codeword
456
+ * @param $cwpad (int) Pad codeword.
457
+ * @param $cwpos (int) Number of data codewords from the beginning of encoded data.
458
+ * @return pad codeword
459
+ * @protected
460
+ */
461
+ protected function get255StateCodeword($cwpad, $cwpos) {
462
+ $pad = ($cwpad + (((149 * $cwpos) % 255) + 1));
463
+ if ($pad > 255) {
464
+ $pad -= 256;
465
+ }
466
+ return $pad;
467
+ }
468
+
469
+ /**
470
+ * Returns true if the char belongs to the selected mode
471
+ * @param $chr (int) Character (byte) to check.
472
+ * @param $mode (int) Current encoding mode.
473
+ * @return boolean true if the char is of the selected mode.
474
+ * @protected
475
+ */
476
+ protected function isCharMode($chr, $mode) {
477
+ $status = false;
478
+ switch ($mode) {
479
+ case ENC_ASCII: { // ASCII character 0 to 127
480
+ $status = (($chr >= 0) AND ($chr <= 127));
481
+ break;
482
+ }
483
+ case ENC_C40: { // Upper-case alphanumeric
484
+ $status = (($chr == 32) OR (($chr >= 48) AND ($chr <= 57)) OR (($chr >= 65) AND ($chr <= 90)));
485
+ break;
486
+ }
487
+ case ENC_TXT: { // Lower-case alphanumeric
488
+ $status = (($chr == 32) OR (($chr >= 48) AND ($chr <= 57)) OR (($chr >= 97) AND ($chr <= 122)));
489
+ break;
490
+ }
491
+ case ENC_X12: { // ANSI X12
492
+ $status = (($chr == 13) OR ($chr == 42) OR ($chr == 62));
493
+ break;
494
+ }
495
+ case ENC_EDF: { // ASCII character 32 to 94
496
+ $status = (($chr >= 32) AND ($chr <= 94));
497
+ break;
498
+ }
499
+ case ENC_BASE256: { // Function character (FNC1, Structured Append, Reader Program, or Code Page)
500
+ $status = (($chr == 232) OR ($chr == 233) OR ($chr == 234) OR ($chr == 241));
501
+ break;
502
+ }
503
+ case ENC_ASCII_EXT: { // ASCII character 128 to 255
504
+ $status = (($chr >= 128) AND ($chr <= 255));
505
+ break;
506
+ }
507
+ case ENC_ASCII_NUM: { // ASCII digits
508
+ $status = (($chr >= 48) AND ($chr <= 57));
509
+ break;
510
+ }
511
+ }
512
+ return $status;
513
+ }
514
+
515
+ /**
516
+ * The look-ahead test scans the data to be encoded to find the best mode (Annex P - steps from J to S).
517
+ * @param $data (string) data to encode
518
+ * @param $pos (int) current position
519
+ * @param $mode (int) current encoding mode
520
+ * @return int encoding mode
521
+ * @protected
522
+ */
523
+ protected function lookAheadTest($data, $pos, $mode) {
524
+ $data_length = strlen($data);
525
+ if ($pos >= $data_length) {
526
+ return $mode;
527
+ }
528
+ $charscount = 0; // count processed chars
529
+ // STEP J
530
+ if ($mode == ENC_ASCII) {
531
+ $numch = array(0, 1, 1, 1, 1, 1.25);
532
+ } else {
533
+ $numch = array(1, 2, 2, 2, 2, 2.25);
534
+ $numch[$mode] = 0;
535
+ }
536
+ while (true) {
537
+ // STEP K
538
+ if (($pos + $charscount) == $data_length) {
539
+ if ($numch[ENC_ASCII] <= ceil(min($numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256]))) {
540
+ return ENC_ASCII;
541
+ }
542
+ if ($numch[ENC_BASE256] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF]))) {
543
+ return ENC_BASE256;
544
+ }
545
+ if ($numch[ENC_EDF] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_BASE256]))) {
546
+ return ENC_EDF;
547
+ }
548
+ if ($numch[ENC_TXT] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256]))) {
549
+ return ENC_TXT;
550
+ }
551
+ if ($numch[ENC_X12] < ceil(min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_EDF], $numch[ENC_BASE256]))) {
552
+ return ENC_X12;
553
+ }
554
+ return ENC_C40;
555
+ }
556
+ // get char
557
+ $chr = ord($data[$pos + $charscount]);
558
+ $charscount++;
559
+ // STEP L
560
+ if ($this->isCharMode($chr, ENC_ASCII_NUM)) {
561
+ $numch[ENC_ASCII] += (1 / 2);
562
+ } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) {
563
+ $numch[ENC_ASCII] = ceil($numch[ENC_ASCII]);
564
+ $numch[ENC_ASCII] += 2;
565
+ } else {
566
+ $numch[ENC_ASCII] = ceil($numch[ENC_ASCII]);
567
+ $numch[ENC_ASCII] += 1;
568
+ }
569
+ // STEP M
570
+ if ($this->isCharMode($chr, ENC_C40)) {
571
+ $numch[ENC_C40] += (2 / 3);
572
+ } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) {
573
+ $numch[ENC_C40] += (8 / 3);
574
+ } else {
575
+ $numch[ENC_C40] += (4 / 3);
576
+ }
577
+ // STEP N
578
+ if ($this->isCharMode($chr, ENC_TXT)) {
579
+ $numch[ENC_TXT] += (2 / 3);
580
+ } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) {
581
+ $numch[ENC_TXT] += (8 / 3);
582
+ } else {
583
+ $numch[ENC_TXT] += (4 / 3);
584
+ }
585
+ // STEP O
586
+ if ($this->isCharMode($chr, ENC_X12) OR $this->isCharMode($chr, ENC_C40)) {
587
+ $numch[ENC_X12] += (2 / 3);
588
+ } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) {
589
+ $numch[ENC_X12] += (13 / 3);
590
+ } else {
591
+ $numch[ENC_X12] += (10 / 3);
592
+ }
593
+ // STEP P
594
+ if ($this->isCharMode($chr, ENC_EDF)) {
595
+ $numch[ENC_EDF] += (3 / 4);
596
+ } elseif ($this->isCharMode($chr, ENC_ASCII_EXT)) {
597
+ $numch[ENC_EDF] += (17 / 4);
598
+ } else {
599
+ $numch[ENC_EDF] += (13 / 4);
600
+ }
601
+ // STEP Q
602
+ if ($this->isCharMode($chr, ENC_BASE256)) {
603
+ $numch[ENC_BASE256] += 4;
604
+ } else {
605
+ $numch[ENC_BASE256] += 1;
606
+ }
607
+ // STEP R
608
+ if ($charscount >= 4) {
609
+ if (($numch[ENC_ASCII] + 1) <= min($numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256])) {
610
+ return ENC_ASCII;
611
+ }
612
+ if ((($numch[ENC_BASE256] + 1) <= $numch[ENC_ASCII])
613
+ OR (($numch[ENC_BASE256] + 1) < min($numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_EDF]))) {
614
+ return ENC_BASE256;
615
+ }
616
+ if (($numch[ENC_EDF] + 1) < min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_X12], $numch[ENC_BASE256])) {
617
+ return ENC_EDF;
618
+ }
619
+ if (($numch[ENC_TXT] + 1) < min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_X12], $numch[ENC_EDF], $numch[ENC_BASE256])) {
620
+ return ENC_TXT;
621
+ }
622
+ if (($numch[ENC_X12] + 1) < min($numch[ENC_ASCII], $numch[ENC_C40], $numch[ENC_TXT], $numch[ENC_EDF], $numch[ENC_BASE256])) {
623
+ return ENC_X12;
624
+ }
625
+ if (($numch[ENC_C40] + 1) < min($numch[ENC_ASCII], $numch[ENC_TXT], $numch[ENC_EDF], $numch[ENC_BASE256])) {
626
+ if ($numch[ENC_C40] < $numch[ENC_X12]) {
627
+ return ENC_C40;
628
+ }
629
+ if ($numch[ENC_C40] == $numch[ENC_X12]) {
630
+ $k = ($pos + $charscount + 1);
631
+ while ($k < $data_length) {
632
+ $tmpchr = ord($data{$k});
633
+ if ($this->isCharMode($tmpchr, ENC_X12)) {
634
+ return ENC_X12;
635
+ } elseif (!($this->isCharMode($tmpchr, ENC_X12) OR $this->isCharMode($tmpchr, ENC_C40))) {
636
+ break;
637
+ }
638
+ ++$k;
639
+ }
640
+ return ENC_C40;
641
+ }
642
+ }
643
+ }
644
+ } // end of while
645
+ }
646
+
647
+ /**
648
+ * Get the switching codeword to a new encoding mode (latch codeword)
649
+ * @param $mode (int) New encoding mode.
650
+ * @return (int) Switch codeword.
651
+ * @protected
652
+ */
653
+ protected function getSwitchEncodingCodeword($mode) {
654
+ switch ($mode) {
655
+ case ENC_ASCII: { // ASCII character 0 to 127
656
+ $cw = 254;
657
+ if ($this->last_enc == ENC_EDF) {
658
+ $cw = 124;
659
+ }
660
+ break;
661
+ }
662
+ case ENC_C40: { // Upper-case alphanumeric
663
+ $cw = 230;
664
+ break;
665
+ }
666
+ case ENC_TXT: { // Lower-case alphanumeric
667
+ $cw = 239;
668
+ break;
669
+ }
670
+ case ENC_X12: { // ANSI X12
671
+ $cw = 238;
672
+ break;
673
+ }
674
+ case ENC_EDF: { // ASCII character 32 to 94
675
+ $cw = 240;
676
+ break;
677
+ }
678
+ case ENC_BASE256: { // Function character (FNC1, Structured Append, Reader Program, or Code Page)
679
+ $cw = 231;
680
+ break;
681
+ }
682
+ }
683
+ return $cw;
684
+ }
685
+
686
+ /**
687
+ * Choose the minimum matrix size and return the max number of data codewords.
688
+ * @param $numcw (int) Number of current codewords.
689
+ * @return number of data codewords in matrix
690
+ * @protected
691
+ */
692
+ protected function getMaxDataCodewords($numcw) {
693
+ foreach ($this->symbattr as $key => $matrix) {
694
+ if ($matrix[11] >= $numcw) {
695
+ return $matrix[11];
696
+ }
697
+ }
698
+ return 0;
699
+ }
700
+
701
+ /**
702
+ * Get high level encoding using the minimum symbol data characters for ECC 200
703
+ * @param $data (string) data to encode
704
+ * @return array of codewords
705
+ * @protected
706
+ */
707
+ protected function getHighLevelEncoding($data) {
708
+ // STEP A. Start in ASCII encodation.
709
+ $enc = ENC_ASCII; // current encoding mode
710
+ $pos = 0; // current position
711
+ $cw = array(); // array of codewords to be returned
712
+ $cw_num = 0; // number of data codewords
713
+ $data_lenght = strlen($data); // number of chars
714
+ while ($pos < $data_lenght) {
715
+ // set last used encoding
716
+ $this->last_enc = $enc;
717
+ switch ($enc) {
718
+ case ENC_ASCII: { // STEP B. While in ASCII encodation
719
+ if (($data_lenght > 1) AND ($pos < ($data_lenght - 1)) AND ($this->isCharMode(ord($data[$pos]), ENC_ASCII_NUM) AND $this->isCharMode(ord($data[$pos + 1]), ENC_ASCII_NUM))) {
720
+ // 1. If the next data sequence is at least 2 consecutive digits, encode the next two digits as a double digit in ASCII mode.
721
+ $cw[] = (intval(substr($data, $pos, 2)) + 130);
722
+ ++$cw_num;
723
+ $pos += 2;
724
+ } else {
725
+ // 2. If the look-ahead test (starting at step J) indicates another mode, switch to that mode.
726
+ $newenc = $this->lookAheadTest($data, $pos, $enc);
727
+ if ($newenc != $enc) {
728
+ // switch to new encoding
729
+ $enc = $newenc;
730
+ $cw[] = $this->getSwitchEncodingCodeword($enc);
731
+ ++$cw_num;
732
+ } else {
733
+ // get new byte
734
+ $chr = ord($data[$pos]);
735
+ ++$pos;
736
+ if ($this->isCharMode($chr, ENC_ASCII_EXT)) {
737
+ // 3. If the next data character is extended ASCII (greater than 127) encode it in ASCII mode first using the Upper Shift (value 235) character.
738
+ $cw[] = 235;
739
+ $cw[] = ($chr - 127);
740
+ $cw_num += 2;
741
+ } else {
742
+ // 4. Otherwise process the next data character in ASCII encodation.
743
+ $cw[] = ($chr + 1);
744
+ ++$cw_num;
745
+ }
746
+ }
747
+ }
748
+ break;
749
+ }
750
+ case ENC_C40 : // Upper-case alphanumeric
751
+ case ENC_TXT : // Lower-case alphanumeric
752
+ case ENC_X12 : { // ANSI X12
753
+ $temp_cw = array();
754
+ $p = 0;
755
+ $epos = $pos;
756
+ // get charset ID
757
+ $set_id = $this->chset_id[$enc];
758
+ // get basic charset for current encoding
759
+ $charset = $this->chset[$set_id];
760
+ do {
761
+ // 2. process the next character in C40 encodation.
762
+ $chr = ord($data[$epos]);
763
+ ++$epos;
764
+ // check for extended character
765
+ if ($chr & 0x80) {
766
+ if ($enc == ENC_X12) {
767
+ return false;
768
+ }
769
+ $chr = ($chr & 0x7f);
770
+ $temp_cw[] = 1; // shift 2
771
+ $temp_cw[] = 30; // upper shift
772
+ $p += 2;
773
+ }
774
+ if (isset($charset[$chr])) {
775
+ $temp_cw[] = $charset[$chr];
776
+ ++$p;
777
+ } else {
778
+ if (isset($this->chset['SH1'][$chr])) {
779
+ $temp_cw[] = 0; // shift 1
780
+ $shiftset = $this->chset['SH1'];
781
+ } elseif (isset($chr, $this->chset['SH2'][$chr])) {
782
+ $temp_cw[] = 1; // shift 2
783
+ $shiftset = $this->chset['SH2'];
784
+ } elseif (($enc == ENC_C40) AND isset($this->chset['S3C'][$chr])) {
785
+ $temp_cw[] = 2; // shift 3
786
+ $shiftset = $this->chset['S3C'];
787
+ } elseif (($enc == ENC_TXT) AND isset($this->chset['S3T'][$chr])) {
788
+ $temp_cw[] = 2; // shift 3
789
+ $shiftset = $this->chset['S3T'];
790
+ } else {
791
+ return false;
792
+ }
793
+ $temp_cw[] = $shiftset[$chr];
794
+ $p += 2;
795
+ }
796
+ if ($p >= 3) {
797
+ $c1 = array_shift($temp_cw);
798
+ $c2 = array_shift($temp_cw);
799
+ $c3 = array_shift($temp_cw);
800
+ $p -= 3;
801
+ $tmp = ((1600 * $c1) + (40 * $c2) + $c3 + 1);
802
+ $cw[] = ($tmp >> 8);
803
+ $cw[] = ($tmp % 256);
804
+ $cw_num += 2;
805
+ $pos = $epos;
806
+ // 1. If the C40 encoding is at the point of starting a new double symbol character and if the look-ahead test (starting at step J) indicates another mode, switch to that mode.
807
+ $newenc = $this->lookAheadTest($data, $pos, $enc);
808
+ if ($newenc != $enc) {
809
+ // switch to new encoding
810
+ $enc = $newenc;
811
+ if ($enc != ENC_ASCII) {
812
+ // set unlatch character
813
+ $cw[] = $this->getSwitchEncodingCodeword(ENC_ASCII);
814
+ ++$cw_num;
815
+ }
816
+ $cw[] = $this->getSwitchEncodingCodeword($enc);
817
+ ++$cw_num;
818
+ $pos -= $p;
819
+ $p = 0;
820
+ break;
821
+ }
822
+ }
823
+ } while (($p > 0) AND ($epos < $data_lenght));
824
+ // process last data (if any)
825
+ if ($p > 0) {
826
+ // get remaining number of data symbols
827
+ $cwr = ($this->getMaxDataCodewords($cw_num) - $cw_num);
828
+ if (($cwr == 1) AND ($p == 1)) {
829
+ // d. If one symbol character remains and one C40 value (data character) remains to be encoded
830
+ $c1 = array_shift($temp_cw);
831
+ --$p;
832
+ $cw[] = ($chr + 1);
833
+ ++$cw_num;
834
+ $pos = $epos;
835
+ $enc = ENC_ASCII;
836
+ $this->last_enc = $enc;
837
+ } elseif (($cwr == 2) AND ($p == 1)) {
838
+ // c. If two symbol characters remain and only one C40 value (data character) remains to be encoded
839
+ $c1 = array_shift($temp_cw);
840
+ --$p;
841
+ $cw[] = 254;
842
+ $cw[] = ($chr + 1);
843
+ $cw_num += 2;
844
+ $pos = $epos;
845
+ $enc = ENC_ASCII;
846
+ $this->last_enc = $enc;
847
+ } elseif (($cwr == 2) AND ($p == 2)) {
848
+ // b. If two symbol characters remain and two C40 values remain to be encoded
849
+ $c1 = array_shift($temp_cw);
850
+ $c2 = array_shift($temp_cw);
851
+ $p -= 2;
852
+ $tmp = ((1600 * $c1) + (40 * $c2) + 1);
853
+ $cw[] = ($tmp >> 8);
854
+ $cw[] = ($tmp % 256);
855
+ $cw_num += 2;
856
+ $pos = $epos;
857
+ $enc = ENC_ASCII;
858
+ $this->last_enc = $enc;
859
+ } else {
860
+ // switch to ASCII encoding
861
+ if ($enc != ENC_ASCII) {
862
+ $enc = ENC_ASCII;
863
+ $this->last_enc = $enc;
864
+ $cw[] = $this->getSwitchEncodingCodeword($enc);
865
+ ++$cw_num;
866
+ $pos = ($epos - $p);
867
+ }
868
+ }
869
+ }
870
+ break;
871
+ }
872
+ case ENC_EDF: { // F. While in EDIFACT (EDF) encodation
873
+ // initialize temporary array with 0 lenght
874
+ $temp_cw = array();
875
+ $epos = $pos;
876
+ $field_lenght = 0;
877
+ $newenc = $enc;
878
+ do {
879
+ // 2. process the next character in EDIFACT encodation.
880
+ $chr = ord($data[$epos]);
881
+ if ($this->isCharMode($chr, ENC_EDF)) {
882
+ ++$epos;
883
+ $temp_cw[] = $chr;
884
+ ++$field_lenght;
885
+ }
886
+ if (($field_lenght == 4) OR ($epos == $data_lenght) OR !$this->isCharMode($chr, ENC_EDF)) {
887
+ if (($epos == $data_lenght) AND ($field_lenght < 3)) {
888
+ $enc = ENC_ASCII;
889
+ $cw[] = $this->getSwitchEncodingCodeword($enc);
890
+ ++$cw_num;
891
+ break;
892
+ }
893
+ if ($field_lenght < 4) {
894
+ // set unlatch character
895
+ $temp_cw[] = 0x1f;
896
+ ++$field_lenght;
897
+ // fill empty characters
898
+ for ($i = $field_lenght; $i < 4; ++$i) {
899
+ $temp_cw[] = 0;
900
+ }
901
+ $enc = ENC_ASCII;
902
+ $this->last_enc = $enc;
903
+ }
904
+ // encodes four data characters in three codewords
905
+ $tcw = (($temp_cw[0] & 0x3F) << 2) + (($temp_cw[1] & 0x30) >> 4);
906
+ if ($tcw > 0) {
907
+ $cw[] = $tcw;
908
+ $cw_num++;
909
+ }
910
+ $tcw= (($temp_cw[1] & 0x0F) << 4) + (($temp_cw[2] & 0x3C) >> 2);
911
+ if ($tcw > 0) {
912
+ $cw[] = $tcw;
913
+ $cw_num++;
914
+ }
915
+ $tcw = (($temp_cw[2] & 0x03) << 6) + ($temp_cw[3] & 0x3F);
916
+ if ($tcw > 0) {
917
+ $cw[] = $tcw;
918
+ $cw_num++;
919
+ }
920
+ $temp_cw = array();
921
+ $pos = $epos;
922
+ $field_lenght = 0;
923
+ if ($enc == ENC_ASCII) {
924
+ break; // exit from EDIFACT mode
925
+ }
926
+ }
927
+ } while ($epos < $data_lenght);
928
+ break;
929
+ }
930
+ case ENC_BASE256: { // G. While in Base 256 (B256) encodation
931
+ // initialize temporary array with 0 lenght
932
+ $temp_cw = array();
933
+ $field_lenght = 0;
934
+ while (($pos < $data_lenght) AND ($field_lenght <= 1555)) {
935
+ $newenc = $this->lookAheadTest($data, $pos, $enc);
936
+ if ($newenc != $enc) {
937
+ // 1. If the look-ahead test (starting at step J) indicates another mode, switch to that mode.
938
+ $enc = $newenc;
939
+ break; // exit from B256 mode
940
+ } else {
941
+ // 2. Otherwise, process the next character in Base 256 encodation.
942
+ $chr = ord($data[$pos]);
943
+ ++$pos;
944
+ $temp_cw[] = $chr;
945
+ ++$field_lenght;
946
+ }
947
+ }
948
+ // set field lenght
949
+ if ($field_lenght <= 249) {
950
+ $cw[] = $this->get255StateCodeword($field_lenght, ($cw_num + 1));
951
+ ++$cw_num;
952
+ } else {
953
+ $cw[] = $this->get255StateCodeword((floor($field_lenght / 250) + 249), ($cw_num + 1));
954
+ $cw[] = $this->get255StateCodeword(($field_lenght % 250), ($cw_num + 2));
955
+ $cw_num += 2;
956
+ }
957
+ if (!empty($temp_cw)) {
958
+ // add B256 field
959
+ foreach ($temp_cw as $p => $cht) {
960
+ $cw[] = $this->get255StateCodeword($cht, ($cw_num + $p + 1));
961
+ }
962
+ }
963
+ break;
964
+ }
965
+ } // end of switch enc
966
+ } // end of while
967
+ return $cw;
968
+ }
969
+
970
+ /**
971
+ * Places "chr+bit" with appropriate wrapping within array[].
972
+ * (Annex F - ECC 200 symbol character placement)
973
+ * @param $marr (array) Array of symbols.
974
+ * @param $nrow (int) Number of rows.
975
+ * @param $ncol (int) Number of columns.
976
+ * @param $row (int) Row number.
977
+ * @param $col (int) Column number.
978
+ * @param $chr (int) Char byte.
979
+ * @param $bit (int) Bit.
980
+ * @return array
981
+ * @protected
982
+ */
983
+ protected function placeModule($marr, $nrow, $ncol, $row, $col, $chr, $bit) {
984
+ if ($row < 0) {
985
+ $row += $nrow;
986
+ $col += (4 - (($nrow + 4) % 8));
987
+ }
988
+ if ($col < 0) {
989
+ $col += $ncol;
990
+ $row += (4 - (($ncol + 4) % 8));
991
+ }
992
+ $marr[(($row * $ncol) + $col)] = ((10 * $chr) + $bit);
993
+ return $marr;
994
+ }
995
+
996
+ /**
997
+ * Places the 8 bits of a utah-shaped symbol character.
998
+ * (Annex F - ECC 200 symbol character placement)
999
+ * @param $marr (array) Array of symbols.
1000
+ * @param $nrow (int) Number of rows.
1001
+ * @param $ncol (int) Number of columns.
1002
+ * @param $row (int) Row number.
1003
+ * @param $col (int) Column number.
1004
+ * @param $chr (int) Char byte.
1005
+ * @return array
1006
+ * @protected
1007
+ */
1008
+ protected function placeUtah($marr, $nrow, $ncol, $row, $col, $chr) {
1009
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row-2, $col-2, $chr, 1);
1010
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row-2, $col-1, $chr, 2);
1011
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row-1, $col-2, $chr, 3);
1012
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row-1, $col-1, $chr, 4);
1013
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row-1, $col, $chr, 5);
1014
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row, $col-2, $chr, 6);
1015
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row, $col-1, $chr, 7);
1016
+ $marr = $this->placeModule($marr, $nrow, $ncol, $row, $col, $chr, 8);
1017
+ return $marr;
1018
+ }
1019
+
1020
+ /**
1021
+ * Places the 8 bits of the first special corner case.
1022
+ * (Annex F - ECC 200 symbol character placement)
1023
+ * @param $marr (array) Array of symbols.
1024
+ * @param $nrow (int) Number of rows.
1025
+ * @param $ncol (int) Number of columns.
1026
+ * @param $chr (int) Char byte.
1027
+ * @return array
1028
+ * @protected
1029
+ */
1030
+ protected function placeCornerA($marr, $nrow, $ncol, $chr) {
1031
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 1);
1032
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 1, $chr, 2);
1033
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 2, $chr, 3);
1034
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 4);
1035
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 5);
1036
+ $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 6);
1037
+ $marr = $this->placeModule($marr, $nrow, $ncol, 2, $ncol-1, $chr, 7);
1038
+ $marr = $this->placeModule($marr, $nrow, $ncol, 3, $ncol-1, $chr, 8);
1039
+ return $marr;
1040
+ }
1041
+
1042
+ /**
1043
+ * Places the 8 bits of the second special corner case.
1044
+ * (Annex F - ECC 200 symbol character placement)
1045
+ * @param $marr (array) Array of symbols.
1046
+ * @param $nrow (int) Number of rows.
1047
+ * @param $ncol (int) Number of columns.
1048
+ * @param $chr (int) Char byte.
1049
+ * @return array
1050
+ * @protected
1051
+ */
1052
+ protected function placeCornerB($marr, $nrow, $ncol, $chr) {
1053
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-3, 0, $chr, 1);
1054
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-2, 0, $chr, 2);
1055
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 3);
1056
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-4, $chr, 4);
1057
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-3, $chr, 5);
1058
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 6);
1059
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 7);
1060
+ $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 8);
1061
+ return $marr;
1062
+ }
1063
+
1064
+ /**
1065
+ * Places the 8 bits of the third special corner case.
1066
+ * (Annex F - ECC 200 symbol character placement)
1067
+ * @param $marr (array) Array of symbols.
1068
+ * @param $nrow (int) Number of rows.
1069
+ * @param $ncol (int) Number of columns.
1070
+ * @param $chr (int) Char byte.
1071
+ * @return array
1072
+ * @protected
1073
+ */
1074
+ protected function placeCornerC($marr, $nrow, $ncol, $chr) {
1075
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-3, 0, $chr, 1);
1076
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-2, 0, $chr, 2);
1077
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 3);
1078
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 4);
1079
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 5);
1080
+ $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 6);
1081
+ $marr = $this->placeModule($marr, $nrow, $ncol, 2, $ncol-1, $chr, 7);
1082
+ $marr = $this->placeModule($marr, $nrow, $ncol, 3, $ncol-1, $chr, 8);
1083
+ return $marr;
1084
+ }
1085
+
1086
+ /**
1087
+ * Places the 8 bits of the fourth special corner case.
1088
+ * (Annex F - ECC 200 symbol character placement)
1089
+ * @param $marr (array) Array of symbols.
1090
+ * @param $nrow (int) Number of rows.
1091
+ * @param $ncol (int) Number of columns.
1092
+ * @param $chr (int) Char byte.
1093
+ * @return array
1094
+ * @protected
1095
+ */
1096
+ protected function placeCornerD($marr, $nrow, $ncol, $chr) {
1097
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, 0, $chr, 1);
1098
+ $marr = $this->placeModule($marr, $nrow, $ncol, $nrow-1, $ncol-1, $chr, 2);
1099
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-3, $chr, 3);
1100
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-2, $chr, 4);
1101
+ $marr = $this->placeModule($marr, $nrow, $ncol, 0, $ncol-1, $chr, 5);
1102
+ $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-3, $chr, 6);
1103
+ $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-2, $chr, 7);
1104
+ $marr = $this->placeModule($marr, $nrow, $ncol, 1, $ncol-1, $chr, 8);
1105
+ return $marr;
1106
+ }
1107
+
1108
+ /**
1109
+ * Build a placement map.
1110
+ * (Annex F - ECC 200 symbol character placement)
1111
+ * @param $nrow (int) Number of rows.
1112
+ * @param $ncol (int) Number of columns.
1113
+ * @return array
1114
+ * @protected
1115
+ */
1116
+ protected function getPlacementMap($nrow, $ncol) {
1117
+ // initialize array with zeros
1118
+ $marr = array_fill(0, ($nrow * $ncol), 0);
1119
+ // set starting values
1120
+ $chr = 1;
1121
+ $row = 4;
1122
+ $col = 0;
1123
+ do {
1124
+ // repeatedly first check for one of the special corner cases, then
1125
+ if (($row == $nrow) AND ($col == 0)) {
1126
+ $marr = $this->placeCornerA($marr, $nrow, $ncol, $chr);
1127
+ ++$chr;
1128
+ }
1129
+ if (($row == ($nrow - 2)) AND ($col == 0) AND ($ncol % 4)) {
1130
+ $marr = $this->placeCornerB($marr, $nrow, $ncol, $chr);
1131
+ ++$chr;
1132
+ }
1133
+ if (($row == ($nrow - 2)) AND ($col == 0) AND (($ncol % 8) == 4)) {
1134
+ $marr = $this->placeCornerC($marr, $nrow, $ncol, $chr);
1135
+ ++$chr;
1136
+ }
1137
+ if (($row == ($nrow + 4)) AND ($col == 2) AND (!($ncol % 8))) {
1138
+ $marr = $this->placeCornerD($marr, $nrow, $ncol, $chr);
1139
+ ++$chr;
1140
+ }
1141
+ // sweep upward diagonally, inserting successive characters,
1142
+ do {
1143
+ if (($row < $nrow) AND ($col >= 0) AND (!$marr[(($row * $ncol) + $col)])) {
1144
+ $marr = $this->placeUtah($marr, $nrow, $ncol, $row, $col, $chr);
1145
+ ++$chr;
1146
+ }
1147
+ $row -= 2;
1148
+ $col += 2;
1149
+ } while (($row >= 0) AND ($col < $ncol));
1150
+ ++$row;
1151
+ $col += 3;
1152
+ // & then sweep downward diagonally, inserting successive characters,...
1153
+ do {
1154
+ if (($row >= 0) AND ($col < $ncol) AND (!$marr[(($row * $ncol) + $col)])) {
1155
+ $marr = $this->placeUtah($marr, $nrow, $ncol, $row, $col, $chr);
1156
+ ++$chr;
1157
+ }
1158
+ $row += 2;
1159
+ $col -= 2;
1160
+ } while (($row < $nrow) AND ($col >= 0));
1161
+ $row += 3;
1162
+ ++$col;
1163
+ // ... until the entire array is scanned
1164
+ } while (($row < $nrow) OR ($col < $ncol));
1165
+ // lastly, if the lower righthand corner is untouched, fill in fixed pattern
1166
+ if (!$marr[(($nrow * $ncol) - 1)]) {
1167
+ $marr[(($nrow * $ncol) - 1)] = 1;
1168
+ $marr[(($nrow * $ncol) - $ncol - 2)] = 1;
1169
+ }
1170
+ return $marr;
1171
+ }
1172
+
1173
+ } // end DataMatrix class
1174
+ //============================================================+
1175
+ // END OF FILE
1176
+ //============================================================+
includes/tcpdf_min/include/barcodes/pdf417.php ADDED
@@ -0,0 +1,996 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //============================================================+
3
+ // File name : pdf417.php
4
+ // Version : 1.0.005
5
+ // Begin : 2010-06-03
6
+ // Last Update : 2014-04-25
7
+ // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
8
+ // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
9
+ // -------------------------------------------------------------------
10
+ // Copyright (C) 2010-2013 Nicola Asuni - Tecnick.com LTD
11
+ //
12
+ // This file is part of TCPDF software library.
13
+ //
14
+ // TCPDF is free software: you can redistribute it and/or modify it
15
+ // under the terms of the GNU Lesser General Public License as
16
+ // published by the Free Software Foundation, either version 3 of the
17
+ // License, or (at your option) any later version.
18
+ //
19
+ // TCPDF is distributed in the hope that it will be useful, but
20
+ // WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22
+ // See the GNU Lesser General Public License for more details.
23
+ //
24
+ // You should have received a copy of the GNU Lesser General Public License
25
+ // along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
26
+ //
27
+ // See LICENSE.TXT file for more information.
28
+ // -------------------------------------------------------------------
29
+ //
30
+ // DESCRIPTION :
31
+ //
32
+ // Class to create PDF417 barcode arrays for TCPDF class.
33
+ // PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991.
34
+ // It is one of the most popular 2D codes because of its ability to be read with slightly modified handheld laser or linear CCD scanners.
35
+ // TECHNICAL DATA / FEATURES OF PDF417:
36
+ // Encodable Character Set: All 128 ASCII Characters (including extended)
37
+ // Code Type: Continuous, Multi-Row
38
+ // Symbol Height: 3 - 90 Rows
39
+ // Symbol Width: 90X - 583X
40
+ // Bidirectional Decoding: Yes
41
+ // Error Correction Characters: 2 - 512
42
+ // Maximum Data Characters: 1850 text, 2710 digits, 1108 bytes
43
+ //
44
+ //============================================================+
45
+
46
+ /**
47
+ * @file
48
+ * Class to create PDF417 barcode arrays for TCPDF class.
49
+ * PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991.
50
+ * (requires PHP bcmath extension)
51
+ * @package com.tecnick.tcpdf
52
+ * @author Nicola Asuni
53
+ * @version 1.0.005
54
+ */
55
+
56
+ // definitions
57
+ if (!defined('PDF417DEFS')) {
58
+
59
+ /**
60
+ * Indicate that definitions for this class are set
61
+ */
62
+ define('PDF417DEFS', true);
63
+
64
+ // -----------------------------------------------------
65
+
66
+ /**
67
+ * Row height respect X dimension of single module
68
+ */
69
+ define('ROWHEIGHT', 4);
70
+
71
+ /**
72
+ * Horizontal quiet zone in modules
73
+ */
74
+ define('QUIETH', 2);
75
+
76
+ /**
77
+ * Vertical quiet zone in modules
78
+ */
79
+ define('QUIETV', 2);
80
+
81
+ } // end of definitions
82
+
83
+ // #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
84
+
85
+ /**
86
+ * @class PDF417
87
+ * Class to create PDF417 barcode arrays for TCPDF class.
88
+ * PDF417 (ISO/IEC 15438:2006) is a 2-dimensional stacked bar code created by Symbol Technologies in 1991.
89
+ * @package com.tecnick.tcpdf
90
+ * @author Nicola Asuni
91
+ * @version 1.0.003
92
+ */
93
+ class PDF417 {
94
+
95
+ /**
96
+ * Barcode array to be returned which is readable by TCPDF.
97
+ * @protected
98
+ */
99
+ protected $barcode_array = array();
100
+
101
+ /**
102
+ * Start pattern.
103
+ * @protected
104
+ */
105
+ protected $start_pattern = '11111111010101000';
106
+
107
+ /**
108
+ * Stop pattern.
109
+ * @protected
110
+ */
111
+ protected $stop_pattern = '111111101000101001';
112
+
113
+ /**
114
+ * Array of text Compaction Sub-Modes (values 0xFB - 0xFF are used for submode changers).
115
+ * @protected
116
+ */
117
+ protected $textsubmodes = array(
118
+ array(0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x20,0xFD,0xFE,0xFF), // Alpha
119
+ array(0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x20,0xFD,0xFE,0xFF), // Lower
120
+ array(0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x26,0x0d,0x09,0x2c,0x3a,0x23,0x2d,0x2e,0x24,0x2f,0x2b,0x25,0x2a,0x3d,0x5e,0xFB,0x20,0xFD,0xFE,0xFF), // Mixed
121
+ array(0x3b,0x3c,0x3e,0x40,0x5b,0x5c,0x5d,0x5f,0x60,0x7e,0x21,0x0d,0x09,0x2c,0x3a,0x0a,0x2d,0x2e,0x24,0x2f,0x22,0x7c,0x2a,0x28,0x29,0x3f,0x7b,0x7d,0x27,0xFF) // Puntuaction
122
+ );
123
+
124
+ /**
125
+ * Array of switching codes for Text Compaction Sub-Modes.
126
+ * @protected
127
+ */
128
+ protected $textlatch = array(
129
+ '01' => array(27), '02' => array(28), '03' => array(28,25), //
130
+ '10' => array(28,28), '12' => array(28), '13' => array(28,25), //
131
+ '20' => array(28), '21' => array(27), '23' => array(25), //
132
+ '30' => array(29), '31' => array(29,27), '32' => array(29,28) //
133
+ );
134
+
135
+ /**
136
+ * Clusters of codewords (0, 3, 6)<br/>
137
+ * Values are hex equivalents of binary representation of bars (1 = bar, 0 = space).<br/>
138
+ * The codewords numbered from 900 to 928 have special meaning, some enable to switch between modes in order to optimise the code:<ul>
139
+ * <li>900 : Switch to "Text" mode</li>
140
+ * <li>901 : Switch to "Byte" mode</li>
141
+ * <li>902 : Switch to "Numeric" mode</li>
142
+ * <li>903 - 912 : Reserved</li>
143
+ * <li>913 : Switch to "Octet" only for the next codeword</li>
144
+ * <li>914 - 920 : Reserved</li>
145
+ * <li>921 : Initialization</li>
146
+ * <li>922 : Terminator codeword for Macro PDF control block</li>
147
+ * <li>923 : Sequence tag to identify the beginning of optional fields in the Macro PDF control block</li>
148
+ * <li>924 : Switch to "Byte" mode (If the total number of byte is multiple of 6)</li>
149
+ * <li>925 : Identifier for a user defined Extended Channel Interpretation (ECI)</li>
150
+ * <li>926 : Identifier for a general purpose ECI format</li>
151
+ * <li>927 : Identifier for an ECI of a character set or code page</li>
152
+ * <li>928 : Macro marker codeword to indicate the beginning of a Macro PDF Control Block</li>
153
+ * </ul>
154
+ * @protected
155
+ */
156
+ protected $clusters = array(
157
+ array( // cluster 0 -----------------------------------------------------------------------
158
+ 0x1d5c0,0x1eaf0,0x1f57c,0x1d4e0,0x1ea78,0x1f53e,0x1a8c0,0x1d470,0x1a860,0x15040, // 10
159
+ 0x1a830,0x15020,0x1adc0,0x1d6f0,0x1eb7c,0x1ace0,0x1d678,0x1eb3e,0x158c0,0x1ac70, // 20
160
+ 0x15860,0x15dc0,0x1aef0,0x1d77c,0x15ce0,0x1ae78,0x1d73e,0x15c70,0x1ae3c,0x15ef0, // 30
161
+ 0x1af7c,0x15e78,0x1af3e,0x15f7c,0x1f5fa,0x1d2e0,0x1e978,0x1f4be,0x1a4c0,0x1d270, // 40
162
+ 0x1e93c,0x1a460,0x1d238,0x14840,0x1a430,0x1d21c,0x14820,0x1a418,0x14810,0x1a6e0, // 50
163
+ 0x1d378,0x1e9be,0x14cc0,0x1a670,0x1d33c,0x14c60,0x1a638,0x1d31e,0x14c30,0x1a61c, // 60
164
+ 0x14ee0,0x1a778,0x1d3be,0x14e70,0x1a73c,0x14e38,0x1a71e,0x14f78,0x1a7be,0x14f3c, // 70
165
+ 0x14f1e,0x1a2c0,0x1d170,0x1e8bc,0x1a260,0x1d138,0x1e89e,0x14440,0x1a230,0x1d11c, // 80
166
+ 0x14420,0x1a218,0x14410,0x14408,0x146c0,0x1a370,0x1d1bc,0x14660,0x1a338,0x1d19e, // 90
167
+ 0x14630,0x1a31c,0x14618,0x1460c,0x14770,0x1a3bc,0x14738,0x1a39e,0x1471c,0x147bc, // 100
168
+ 0x1a160,0x1d0b8,0x1e85e,0x14240,0x1a130,0x1d09c,0x14220,0x1a118,0x1d08e,0x14210, // 110
169
+ 0x1a10c,0x14208,0x1a106,0x14360,0x1a1b8,0x1d0de,0x14330,0x1a19c,0x14318,0x1a18e, // 120
170
+ 0x1430c,0x14306,0x1a1de,0x1438e,0x14140,0x1a0b0,0x1d05c,0x14120,0x1a098,0x1d04e, // 130
171
+ 0x14110,0x1a08c,0x14108,0x1a086,0x14104,0x141b0,0x14198,0x1418c,0x140a0,0x1d02e, // 140
172
+ 0x1a04c,0x1a046,0x14082,0x1cae0,0x1e578,0x1f2be,0x194c0,0x1ca70,0x1e53c,0x19460, // 150
173
+ 0x1ca38,0x1e51e,0x12840,0x19430,0x12820,0x196e0,0x1cb78,0x1e5be,0x12cc0,0x19670, // 160
174
+ 0x1cb3c,0x12c60,0x19638,0x12c30,0x12c18,0x12ee0,0x19778,0x1cbbe,0x12e70,0x1973c, // 170
175
+ 0x12e38,0x12e1c,0x12f78,0x197be,0x12f3c,0x12fbe,0x1dac0,0x1ed70,0x1f6bc,0x1da60, // 180
176
+ 0x1ed38,0x1f69e,0x1b440,0x1da30,0x1ed1c,0x1b420,0x1da18,0x1ed0e,0x1b410,0x1da0c, // 190
177
+ 0x192c0,0x1c970,0x1e4bc,0x1b6c0,0x19260,0x1c938,0x1e49e,0x1b660,0x1db38,0x1ed9e, // 200
178
+ 0x16c40,0x12420,0x19218,0x1c90e,0x16c20,0x1b618,0x16c10,0x126c0,0x19370,0x1c9bc, // 210
179
+ 0x16ec0,0x12660,0x19338,0x1c99e,0x16e60,0x1b738,0x1db9e,0x16e30,0x12618,0x16e18, // 220
180
+ 0x12770,0x193bc,0x16f70,0x12738,0x1939e,0x16f38,0x1b79e,0x16f1c,0x127bc,0x16fbc, // 230
181
+ 0x1279e,0x16f9e,0x1d960,0x1ecb8,0x1f65e,0x1b240,0x1d930,0x1ec9c,0x1b220,0x1d918, // 240
182
+ 0x1ec8e,0x1b210,0x1d90c,0x1b208,0x1b204,0x19160,0x1c8b8,0x1e45e,0x1b360,0x19130, // 250
183
+ 0x1c89c,0x16640,0x12220,0x1d99c,0x1c88e,0x16620,0x12210,0x1910c,0x16610,0x1b30c, // 260
184
+ 0x19106,0x12204,0x12360,0x191b8,0x1c8de,0x16760,0x12330,0x1919c,0x16730,0x1b39c, // 270
185
+ 0x1918e,0x16718,0x1230c,0x12306,0x123b8,0x191de,0x167b8,0x1239c,0x1679c,0x1238e, // 280
186
+ 0x1678e,0x167de,0x1b140,0x1d8b0,0x1ec5c,0x1b120,0x1d898,0x1ec4e,0x1b110,0x1d88c, // 290
187
+ 0x1b108,0x1d886,0x1b104,0x1b102,0x12140,0x190b0,0x1c85c,0x16340,0x12120,0x19098, // 300
188
+ 0x1c84e,0x16320,0x1b198,0x1d8ce,0x16310,0x12108,0x19086,0x16308,0x1b186,0x16304, // 310
189
+ 0x121b0,0x190dc,0x163b0,0x12198,0x190ce,0x16398,0x1b1ce,0x1638c,0x12186,0x16386, // 320
190
+ 0x163dc,0x163ce,0x1b0a0,0x1d858,0x1ec2e,0x1b090,0x1d84c,0x1b088,0x1d846,0x1b084, // 330
191
+ 0x1b082,0x120a0,0x19058,0x1c82e,0x161a0,0x12090,0x1904c,0x16190,0x1b0cc,0x19046, // 340
192
+ 0x16188,0x12084,0x16184,0x12082,0x120d8,0x161d8,0x161cc,0x161c6,0x1d82c,0x1d826, // 350
193
+ 0x1b042,0x1902c,0x12048,0x160c8,0x160c4,0x160c2,0x18ac0,0x1c570,0x1e2bc,0x18a60, // 360
194
+ 0x1c538,0x11440,0x18a30,0x1c51c,0x11420,0x18a18,0x11410,0x11408,0x116c0,0x18b70, // 370
195
+ 0x1c5bc,0x11660,0x18b38,0x1c59e,0x11630,0x18b1c,0x11618,0x1160c,0x11770,0x18bbc, // 380
196
+ 0x11738,0x18b9e,0x1171c,0x117bc,0x1179e,0x1cd60,0x1e6b8,0x1f35e,0x19a40,0x1cd30, // 390
197
+ 0x1e69c,0x19a20,0x1cd18,0x1e68e,0x19a10,0x1cd0c,0x19a08,0x1cd06,0x18960,0x1c4b8, // 400
198
+ 0x1e25e,0x19b60,0x18930,0x1c49c,0x13640,0x11220,0x1cd9c,0x1c48e,0x13620,0x19b18, // 410
199
+ 0x1890c,0x13610,0x11208,0x13608,0x11360,0x189b8,0x1c4de,0x13760,0x11330,0x1cdde, // 420
200
+ 0x13730,0x19b9c,0x1898e,0x13718,0x1130c,0x1370c,0x113b8,0x189de,0x137b8,0x1139c, // 430
201
+ 0x1379c,0x1138e,0x113de,0x137de,0x1dd40,0x1eeb0,0x1f75c,0x1dd20,0x1ee98,0x1f74e, // 440
202
+ 0x1dd10,0x1ee8c,0x1dd08,0x1ee86,0x1dd04,0x19940,0x1ccb0,0x1e65c,0x1bb40,0x19920, // 450
203
+ 0x1eedc,0x1e64e,0x1bb20,0x1dd98,0x1eece,0x1bb10,0x19908,0x1cc86,0x1bb08,0x1dd86, // 460
204
+ 0x19902,0x11140,0x188b0,0x1c45c,0x13340,0x11120,0x18898,0x1c44e,0x17740,0x13320, // 470
205
+ 0x19998,0x1ccce,0x17720,0x1bb98,0x1ddce,0x18886,0x17710,0x13308,0x19986,0x17708, // 480
206
+ 0x11102,0x111b0,0x188dc,0x133b0,0x11198,0x188ce,0x177b0,0x13398,0x199ce,0x17798, // 490
207
+ 0x1bbce,0x11186,0x13386,0x111dc,0x133dc,0x111ce,0x177dc,0x133ce,0x1dca0,0x1ee58, // 500
208
+ 0x1f72e,0x1dc90,0x1ee4c,0x1dc88,0x1ee46,0x1dc84,0x1dc82,0x198a0,0x1cc58,0x1e62e, // 510
209
+ 0x1b9a0,0x19890,0x1ee6e,0x1b990,0x1dccc,0x1cc46,0x1b988,0x19884,0x1b984,0x19882, // 520
210
+ 0x1b982,0x110a0,0x18858,0x1c42e,0x131a0,0x11090,0x1884c,0x173a0,0x13190,0x198cc, // 530
211
+ 0x18846,0x17390,0x1b9cc,0x11084,0x17388,0x13184,0x11082,0x13182,0x110d8,0x1886e, // 540
212
+ 0x131d8,0x110cc,0x173d8,0x131cc,0x110c6,0x173cc,0x131c6,0x110ee,0x173ee,0x1dc50, // 550
213
+ 0x1ee2c,0x1dc48,0x1ee26,0x1dc44,0x1dc42,0x19850,0x1cc2c,0x1b8d0,0x19848,0x1cc26, // 560
214
+ 0x1b8c8,0x1dc66,0x1b8c4,0x19842,0x1b8c2,0x11050,0x1882c,0x130d0,0x11048,0x18826, // 570
215
+ 0x171d0,0x130c8,0x19866,0x171c8,0x1b8e6,0x11042,0x171c4,0x130c2,0x171c2,0x130ec, // 580
216
+ 0x171ec,0x171e6,0x1ee16,0x1dc22,0x1cc16,0x19824,0x19822,0x11028,0x13068,0x170e8, // 590
217
+ 0x11022,0x13062,0x18560,0x10a40,0x18530,0x10a20,0x18518,0x1c28e,0x10a10,0x1850c, // 600
218
+ 0x10a08,0x18506,0x10b60,0x185b8,0x1c2de,0x10b30,0x1859c,0x10b18,0x1858e,0x10b0c, // 610
219
+ 0x10b06,0x10bb8,0x185de,0x10b9c,0x10b8e,0x10bde,0x18d40,0x1c6b0,0x1e35c,0x18d20, // 620
220
+ 0x1c698,0x18d10,0x1c68c,0x18d08,0x1c686,0x18d04,0x10940,0x184b0,0x1c25c,0x11b40, // 630
221
+ 0x10920,0x1c6dc,0x1c24e,0x11b20,0x18d98,0x1c6ce,0x11b10,0x10908,0x18486,0x11b08, // 640
222
+ 0x18d86,0x10902,0x109b0,0x184dc,0x11bb0,0x10998,0x184ce,0x11b98,0x18dce,0x11b8c, // 650
223
+ 0x10986,0x109dc,0x11bdc,0x109ce,0x11bce,0x1cea0,0x1e758,0x1f3ae,0x1ce90,0x1e74c, // 660
224
+ 0x1ce88,0x1e746,0x1ce84,0x1ce82,0x18ca0,0x1c658,0x19da0,0x18c90,0x1c64c,0x19d90, // 670
225
+ 0x1cecc,0x1c646,0x19d88,0x18c84,0x19d84,0x18c82,0x19d82,0x108a0,0x18458,0x119a0, // 680
226
+ 0x10890,0x1c66e,0x13ba0,0x11990,0x18ccc,0x18446,0x13b90,0x19dcc,0x10884,0x13b88, // 690
227
+ 0x11984,0x10882,0x11982,0x108d8,0x1846e,0x119d8,0x108cc,0x13bd8,0x119cc,0x108c6, // 700
228
+ 0x13bcc,0x119c6,0x108ee,0x119ee,0x13bee,0x1ef50,0x1f7ac,0x1ef48,0x1f7a6,0x1ef44, // 710
229
+ 0x1ef42,0x1ce50,0x1e72c,0x1ded0,0x1ef6c,0x1e726,0x1dec8,0x1ef66,0x1dec4,0x1ce42, // 720
230
+ 0x1dec2,0x18c50,0x1c62c,0x19cd0,0x18c48,0x1c626,0x1bdd0,0x19cc8,0x1ce66,0x1bdc8, // 730
231
+ 0x1dee6,0x18c42,0x1bdc4,0x19cc2,0x1bdc2,0x10850,0x1842c,0x118d0,0x10848,0x18426, // 740
232
+ 0x139d0,0x118c8,0x18c66,0x17bd0,0x139c8,0x19ce6,0x10842,0x17bc8,0x1bde6,0x118c2, // 750
233
+ 0x17bc4,0x1086c,0x118ec,0x10866,0x139ec,0x118e6,0x17bec,0x139e6,0x17be6,0x1ef28, // 760
234
+ 0x1f796,0x1ef24,0x1ef22,0x1ce28,0x1e716,0x1de68,0x1ef36,0x1de64,0x1ce22,0x1de62, // 770
235
+ 0x18c28,0x1c616,0x19c68,0x18c24,0x1bce8,0x19c64,0x18c22,0x1bce4,0x19c62,0x1bce2, // 780
236
+ 0x10828,0x18416,0x11868,0x18c36,0x138e8,0x11864,0x10822,0x179e8,0x138e4,0x11862, // 790
237
+ 0x179e4,0x138e2,0x179e2,0x11876,0x179f6,0x1ef12,0x1de34,0x1de32,0x19c34,0x1bc74, // 800
238
+ 0x1bc72,0x11834,0x13874,0x178f4,0x178f2,0x10540,0x10520,0x18298,0x10510,0x10508, // 810
239
+ 0x10504,0x105b0,0x10598,0x1058c,0x10586,0x105dc,0x105ce,0x186a0,0x18690,0x1c34c, // 820
240
+ 0x18688,0x1c346,0x18684,0x18682,0x104a0,0x18258,0x10da0,0x186d8,0x1824c,0x10d90, // 830
241
+ 0x186cc,0x10d88,0x186c6,0x10d84,0x10482,0x10d82,0x104d8,0x1826e,0x10dd8,0x186ee, // 840
242
+ 0x10dcc,0x104c6,0x10dc6,0x104ee,0x10dee,0x1c750,0x1c748,0x1c744,0x1c742,0x18650, // 850
243
+ 0x18ed0,0x1c76c,0x1c326,0x18ec8,0x1c766,0x18ec4,0x18642,0x18ec2,0x10450,0x10cd0, // 860
244
+ 0x10448,0x18226,0x11dd0,0x10cc8,0x10444,0x11dc8,0x10cc4,0x10442,0x11dc4,0x10cc2, // 870
245
+ 0x1046c,0x10cec,0x10466,0x11dec,0x10ce6,0x11de6,0x1e7a8,0x1e7a4,0x1e7a2,0x1c728, // 880
246
+ 0x1cf68,0x1e7b6,0x1cf64,0x1c722,0x1cf62,0x18628,0x1c316,0x18e68,0x1c736,0x19ee8, // 890
247
+ 0x18e64,0x18622,0x19ee4,0x18e62,0x19ee2,0x10428,0x18216,0x10c68,0x18636,0x11ce8, // 900
248
+ 0x10c64,0x10422,0x13de8,0x11ce4,0x10c62,0x13de4,0x11ce2,0x10436,0x10c76,0x11cf6, // 910
249
+ 0x13df6,0x1f7d4,0x1f7d2,0x1e794,0x1efb4,0x1e792,0x1efb2,0x1c714,0x1cf34,0x1c712, // 920
250
+ 0x1df74,0x1cf32,0x1df72,0x18614,0x18e34,0x18612,0x19e74,0x18e32,0x1bef4), // 929
251
+ array( // cluster 3 -----------------------------------------------------------------------
252
+ 0x1f560,0x1fab8,0x1ea40,0x1f530,0x1fa9c,0x1ea20,0x1f518,0x1fa8e,0x1ea10,0x1f50c, // 10
253
+ 0x1ea08,0x1f506,0x1ea04,0x1eb60,0x1f5b8,0x1fade,0x1d640,0x1eb30,0x1f59c,0x1d620, // 20
254
+ 0x1eb18,0x1f58e,0x1d610,0x1eb0c,0x1d608,0x1eb06,0x1d604,0x1d760,0x1ebb8,0x1f5de, // 30
255
+ 0x1ae40,0x1d730,0x1eb9c,0x1ae20,0x1d718,0x1eb8e,0x1ae10,0x1d70c,0x1ae08,0x1d706, // 40
256
+ 0x1ae04,0x1af60,0x1d7b8,0x1ebde,0x15e40,0x1af30,0x1d79c,0x15e20,0x1af18,0x1d78e, // 50
257
+ 0x15e10,0x1af0c,0x15e08,0x1af06,0x15f60,0x1afb8,0x1d7de,0x15f30,0x1af9c,0x15f18, // 60
258
+ 0x1af8e,0x15f0c,0x15fb8,0x1afde,0x15f9c,0x15f8e,0x1e940,0x1f4b0,0x1fa5c,0x1e920, // 70
259
+ 0x1f498,0x1fa4e,0x1e910,0x1f48c,0x1e908,0x1f486,0x1e904,0x1e902,0x1d340,0x1e9b0, // 80
260
+ 0x1f4dc,0x1d320,0x1e998,0x1f4ce,0x1d310,0x1e98c,0x1d308,0x1e986,0x1d304,0x1d302, // 90
261
+ 0x1a740,0x1d3b0,0x1e9dc,0x1a720,0x1d398,0x1e9ce,0x1a710,0x1d38c,0x1a708,0x1d386, // 100
262
+ 0x1a704,0x1a702,0x14f40,0x1a7b0,0x1d3dc,0x14f20,0x1a798,0x1d3ce,0x14f10,0x1a78c, // 110
263
+ 0x14f08,0x1a786,0x14f04,0x14fb0,0x1a7dc,0x14f98,0x1a7ce,0x14f8c,0x14f86,0x14fdc, // 120
264
+ 0x14fce,0x1e8a0,0x1f458,0x1fa2e,0x1e890,0x1f44c,0x1e888,0x1f446,0x1e884,0x1e882, // 130
265
+ 0x1d1a0,0x1e8d8,0x1f46e,0x1d190,0x1e8cc,0x1d188,0x1e8c6,0x1d184,0x1d182,0x1a3a0, // 140
266
+ 0x1d1d8,0x1e8ee,0x1a390,0x1d1cc,0x1a388,0x1d1c6,0x1a384,0x1a382,0x147a0,0x1a3d8, // 150
267
+ 0x1d1ee,0x14790,0x1a3cc,0x14788,0x1a3c6,0x14784,0x14782,0x147d8,0x1a3ee,0x147cc, // 160
268
+ 0x147c6,0x147ee,0x1e850,0x1f42c,0x1e848,0x1f426,0x1e844,0x1e842,0x1d0d0,0x1e86c, // 170
269
+ 0x1d0c8,0x1e866,0x1d0c4,0x1d0c2,0x1a1d0,0x1d0ec,0x1a1c8,0x1d0e6,0x1a1c4,0x1a1c2, // 180
270
+ 0x143d0,0x1a1ec,0x143c8,0x1a1e6,0x143c4,0x143c2,0x143ec,0x143e6,0x1e828,0x1f416, // 190
271
+ 0x1e824,0x1e822,0x1d068,0x1e836,0x1d064,0x1d062,0x1a0e8,0x1d076,0x1a0e4,0x1a0e2, // 200
272
+ 0x141e8,0x1a0f6,0x141e4,0x141e2,0x1e814,0x1e812,0x1d034,0x1d032,0x1a074,0x1a072, // 210
273
+ 0x1e540,0x1f2b0,0x1f95c,0x1e520,0x1f298,0x1f94e,0x1e510,0x1f28c,0x1e508,0x1f286, // 220
274
+ 0x1e504,0x1e502,0x1cb40,0x1e5b0,0x1f2dc,0x1cb20,0x1e598,0x1f2ce,0x1cb10,0x1e58c, // 230
275
+ 0x1cb08,0x1e586,0x1cb04,0x1cb02,0x19740,0x1cbb0,0x1e5dc,0x19720,0x1cb98,0x1e5ce, // 240
276
+ 0x19710,0x1cb8c,0x19708,0x1cb86,0x19704,0x19702,0x12f40,0x197b0,0x1cbdc,0x12f20, // 250
277
+ 0x19798,0x1cbce,0x12f10,0x1978c,0x12f08,0x19786,0x12f04,0x12fb0,0x197dc,0x12f98, // 260
278
+ 0x197ce,0x12f8c,0x12f86,0x12fdc,0x12fce,0x1f6a0,0x1fb58,0x16bf0,0x1f690,0x1fb4c, // 270
279
+ 0x169f8,0x1f688,0x1fb46,0x168fc,0x1f684,0x1f682,0x1e4a0,0x1f258,0x1f92e,0x1eda0, // 280
280
+ 0x1e490,0x1fb6e,0x1ed90,0x1f6cc,0x1f246,0x1ed88,0x1e484,0x1ed84,0x1e482,0x1ed82, // 290
281
+ 0x1c9a0,0x1e4d8,0x1f26e,0x1dba0,0x1c990,0x1e4cc,0x1db90,0x1edcc,0x1e4c6,0x1db88, // 300
282
+ 0x1c984,0x1db84,0x1c982,0x1db82,0x193a0,0x1c9d8,0x1e4ee,0x1b7a0,0x19390,0x1c9cc, // 310
283
+ 0x1b790,0x1dbcc,0x1c9c6,0x1b788,0x19384,0x1b784,0x19382,0x1b782,0x127a0,0x193d8, // 320
284
+ 0x1c9ee,0x16fa0,0x12790,0x193cc,0x16f90,0x1b7cc,0x193c6,0x16f88,0x12784,0x16f84, // 330
285
+ 0x12782,0x127d8,0x193ee,0x16fd8,0x127cc,0x16fcc,0x127c6,0x16fc6,0x127ee,0x1f650, // 340
286
+ 0x1fb2c,0x165f8,0x1f648,0x1fb26,0x164fc,0x1f644,0x1647e,0x1f642,0x1e450,0x1f22c, // 350
287
+ 0x1ecd0,0x1e448,0x1f226,0x1ecc8,0x1f666,0x1ecc4,0x1e442,0x1ecc2,0x1c8d0,0x1e46c, // 360
288
+ 0x1d9d0,0x1c8c8,0x1e466,0x1d9c8,0x1ece6,0x1d9c4,0x1c8c2,0x1d9c2,0x191d0,0x1c8ec, // 370
289
+ 0x1b3d0,0x191c8,0x1c8e6,0x1b3c8,0x1d9e6,0x1b3c4,0x191c2,0x1b3c2,0x123d0,0x191ec, // 380
290
+ 0x167d0,0x123c8,0x191e6,0x167c8,0x1b3e6,0x167c4,0x123c2,0x167c2,0x123ec,0x167ec, // 390
291
+ 0x123e6,0x167e6,0x1f628,0x1fb16,0x162fc,0x1f624,0x1627e,0x1f622,0x1e428,0x1f216, // 400
292
+ 0x1ec68,0x1f636,0x1ec64,0x1e422,0x1ec62,0x1c868,0x1e436,0x1d8e8,0x1c864,0x1d8e4, // 410
293
+ 0x1c862,0x1d8e2,0x190e8,0x1c876,0x1b1e8,0x1d8f6,0x1b1e4,0x190e2,0x1b1e2,0x121e8, // 420
294
+ 0x190f6,0x163e8,0x121e4,0x163e4,0x121e2,0x163e2,0x121f6,0x163f6,0x1f614,0x1617e, // 430
295
+ 0x1f612,0x1e414,0x1ec34,0x1e412,0x1ec32,0x1c834,0x1d874,0x1c832,0x1d872,0x19074, // 440
296
+ 0x1b0f4,0x19072,0x1b0f2,0x120f4,0x161f4,0x120f2,0x161f2,0x1f60a,0x1e40a,0x1ec1a, // 450
297
+ 0x1c81a,0x1d83a,0x1903a,0x1b07a,0x1e2a0,0x1f158,0x1f8ae,0x1e290,0x1f14c,0x1e288, // 460
298
+ 0x1f146,0x1e284,0x1e282,0x1c5a0,0x1e2d8,0x1f16e,0x1c590,0x1e2cc,0x1c588,0x1e2c6, // 470
299
+ 0x1c584,0x1c582,0x18ba0,0x1c5d8,0x1e2ee,0x18b90,0x1c5cc,0x18b88,0x1c5c6,0x18b84, // 480
300
+ 0x18b82,0x117a0,0x18bd8,0x1c5ee,0x11790,0x18bcc,0x11788,0x18bc6,0x11784,0x11782, // 490
301
+ 0x117d8,0x18bee,0x117cc,0x117c6,0x117ee,0x1f350,0x1f9ac,0x135f8,0x1f348,0x1f9a6, // 500
302
+ 0x134fc,0x1f344,0x1347e,0x1f342,0x1e250,0x1f12c,0x1e6d0,0x1e248,0x1f126,0x1e6c8, // 510
303
+ 0x1f366,0x1e6c4,0x1e242,0x1e6c2,0x1c4d0,0x1e26c,0x1cdd0,0x1c4c8,0x1e266,0x1cdc8, // 520
304
+ 0x1e6e6,0x1cdc4,0x1c4c2,0x1cdc2,0x189d0,0x1c4ec,0x19bd0,0x189c8,0x1c4e6,0x19bc8, // 530
305
+ 0x1cde6,0x19bc4,0x189c2,0x19bc2,0x113d0,0x189ec,0x137d0,0x113c8,0x189e6,0x137c8, // 540
306
+ 0x19be6,0x137c4,0x113c2,0x137c2,0x113ec,0x137ec,0x113e6,0x137e6,0x1fba8,0x175f0, // 550
307
+ 0x1bafc,0x1fba4,0x174f8,0x1ba7e,0x1fba2,0x1747c,0x1743e,0x1f328,0x1f996,0x132fc, // 560
308
+ 0x1f768,0x1fbb6,0x176fc,0x1327e,0x1f764,0x1f322,0x1767e,0x1f762,0x1e228,0x1f116, // 570
309
+ 0x1e668,0x1e224,0x1eee8,0x1f776,0x1e222,0x1eee4,0x1e662,0x1eee2,0x1c468,0x1e236, // 580
310
+ 0x1cce8,0x1c464,0x1dde8,0x1cce4,0x1c462,0x1dde4,0x1cce2,0x1dde2,0x188e8,0x1c476, // 590
311
+ 0x199e8,0x188e4,0x1bbe8,0x199e4,0x188e2,0x1bbe4,0x199e2,0x1bbe2,0x111e8,0x188f6, // 600
312
+ 0x133e8,0x111e4,0x177e8,0x133e4,0x111e2,0x177e4,0x133e2,0x177e2,0x111f6,0x133f6, // 610
313
+ 0x1fb94,0x172f8,0x1b97e,0x1fb92,0x1727c,0x1723e,0x1f314,0x1317e,0x1f734,0x1f312, // 620
314
+ 0x1737e,0x1f732,0x1e214,0x1e634,0x1e212,0x1ee74,0x1e632,0x1ee72,0x1c434,0x1cc74, // 630
315
+ 0x1c432,0x1dcf4,0x1cc72,0x1dcf2,0x18874,0x198f4,0x18872,0x1b9f4,0x198f2,0x1b9f2, // 640
316
+ 0x110f4,0x131f4,0x110f2,0x173f4,0x131f2,0x173f2,0x1fb8a,0x1717c,0x1713e,0x1f30a, // 650
317
+ 0x1f71a,0x1e20a,0x1e61a,0x1ee3a,0x1c41a,0x1cc3a,0x1dc7a,0x1883a,0x1987a,0x1b8fa, // 660
318
+ 0x1107a,0x130fa,0x171fa,0x170be,0x1e150,0x1f0ac,0x1e148,0x1f0a6,0x1e144,0x1e142, // 670
319
+ 0x1c2d0,0x1e16c,0x1c2c8,0x1e166,0x1c2c4,0x1c2c2,0x185d0,0x1c2ec,0x185c8,0x1c2e6, // 680
320
+ 0x185c4,0x185c2,0x10bd0,0x185ec,0x10bc8,0x185e6,0x10bc4,0x10bc2,0x10bec,0x10be6, // 690
321
+ 0x1f1a8,0x1f8d6,0x11afc,0x1f1a4,0x11a7e,0x1f1a2,0x1e128,0x1f096,0x1e368,0x1e124, // 700
322
+ 0x1e364,0x1e122,0x1e362,0x1c268,0x1e136,0x1c6e8,0x1c264,0x1c6e4,0x1c262,0x1c6e2, // 710
323
+ 0x184e8,0x1c276,0x18de8,0x184e4,0x18de4,0x184e2,0x18de2,0x109e8,0x184f6,0x11be8, // 720
324
+ 0x109e4,0x11be4,0x109e2,0x11be2,0x109f6,0x11bf6,0x1f9d4,0x13af8,0x19d7e,0x1f9d2, // 730
325
+ 0x13a7c,0x13a3e,0x1f194,0x1197e,0x1f3b4,0x1f192,0x13b7e,0x1f3b2,0x1e114,0x1e334, // 740
326
+ 0x1e112,0x1e774,0x1e332,0x1e772,0x1c234,0x1c674,0x1c232,0x1cef4,0x1c672,0x1cef2, // 750
327
+ 0x18474,0x18cf4,0x18472,0x19df4,0x18cf2,0x19df2,0x108f4,0x119f4,0x108f2,0x13bf4, // 760
328
+ 0x119f2,0x13bf2,0x17af0,0x1bd7c,0x17a78,0x1bd3e,0x17a3c,0x17a1e,0x1f9ca,0x1397c, // 770
329
+ 0x1fbda,0x17b7c,0x1393e,0x17b3e,0x1f18a,0x1f39a,0x1f7ba,0x1e10a,0x1e31a,0x1e73a, // 780
330
+ 0x1ef7a,0x1c21a,0x1c63a,0x1ce7a,0x1defa,0x1843a,0x18c7a,0x19cfa,0x1bdfa,0x1087a, // 790
331
+ 0x118fa,0x139fa,0x17978,0x1bcbe,0x1793c,0x1791e,0x138be,0x179be,0x178bc,0x1789e, // 800
332
+ 0x1785e,0x1e0a8,0x1e0a4,0x1e0a2,0x1c168,0x1e0b6,0x1c164,0x1c162,0x182e8,0x1c176, // 810
333
+ 0x182e4,0x182e2,0x105e8,0x182f6,0x105e4,0x105e2,0x105f6,0x1f0d4,0x10d7e,0x1f0d2, // 820
334
+ 0x1e094,0x1e1b4,0x1e092,0x1e1b2,0x1c134,0x1c374,0x1c132,0x1c372,0x18274,0x186f4, // 830
335
+ 0x18272,0x186f2,0x104f4,0x10df4,0x104f2,0x10df2,0x1f8ea,0x11d7c,0x11d3e,0x1f0ca, // 840
336
+ 0x1f1da,0x1e08a,0x1e19a,0x1e3ba,0x1c11a,0x1c33a,0x1c77a,0x1823a,0x1867a,0x18efa, // 850
337
+ 0x1047a,0x10cfa,0x11dfa,0x13d78,0x19ebe,0x13d3c,0x13d1e,0x11cbe,0x13dbe,0x17d70, // 860
338
+ 0x1bebc,0x17d38,0x1be9e,0x17d1c,0x17d0e,0x13cbc,0x17dbc,0x13c9e,0x17d9e,0x17cb8, // 870
339
+ 0x1be5e,0x17c9c,0x17c8e,0x13c5e,0x17cde,0x17c5c,0x17c4e,0x17c2e,0x1c0b4,0x1c0b2, // 880
340
+ 0x18174,0x18172,0x102f4,0x102f2,0x1e0da,0x1c09a,0x1c1ba,0x1813a,0x1837a,0x1027a, // 890
341
+ 0x106fa,0x10ebe,0x11ebc,0x11e9e,0x13eb8,0x19f5e,0x13e9c,0x13e8e,0x11e5e,0x13ede, // 900
342
+ 0x17eb0,0x1bf5c,0x17e98,0x1bf4e,0x17e8c,0x17e86,0x13e5c,0x17edc,0x13e4e,0x17ece, // 910
343
+ 0x17e58,0x1bf2e,0x17e4c,0x17e46,0x13e2e,0x17e6e,0x17e2c,0x17e26,0x10f5e,0x11f5c, // 920
344
+ 0x11f4e,0x13f58,0x19fae,0x13f4c,0x13f46,0x11f2e,0x13f6e,0x13f2c,0x13f26), // 929
345
+ array( // cluster 6 -----------------------------------------------------------------------
346
+ 0x1abe0,0x1d5f8,0x153c0,0x1a9f0,0x1d4fc,0x151e0,0x1a8f8,0x1d47e,0x150f0,0x1a87c, // 10
347
+ 0x15078,0x1fad0,0x15be0,0x1adf8,0x1fac8,0x159f0,0x1acfc,0x1fac4,0x158f8,0x1ac7e, // 20
348
+ 0x1fac2,0x1587c,0x1f5d0,0x1faec,0x15df8,0x1f5c8,0x1fae6,0x15cfc,0x1f5c4,0x15c7e, // 30
349
+ 0x1f5c2,0x1ebd0,0x1f5ec,0x1ebc8,0x1f5e6,0x1ebc4,0x1ebc2,0x1d7d0,0x1ebec,0x1d7c8, // 40
350
+ 0x1ebe6,0x1d7c4,0x1d7c2,0x1afd0,0x1d7ec,0x1afc8,0x1d7e6,0x1afc4,0x14bc0,0x1a5f0, // 50
351
+ 0x1d2fc,0x149e0,0x1a4f8,0x1d27e,0x148f0,0x1a47c,0x14878,0x1a43e,0x1483c,0x1fa68, // 60
352
+ 0x14df0,0x1a6fc,0x1fa64,0x14cf8,0x1a67e,0x1fa62,0x14c7c,0x14c3e,0x1f4e8,0x1fa76, // 70
353
+ 0x14efc,0x1f4e4,0x14e7e,0x1f4e2,0x1e9e8,0x1f4f6,0x1e9e4,0x1e9e2,0x1d3e8,0x1e9f6, // 80
354
+ 0x1d3e4,0x1d3e2,0x1a7e8,0x1d3f6,0x1a7e4,0x1a7e2,0x145e0,0x1a2f8,0x1d17e,0x144f0, // 90
355
+ 0x1a27c,0x14478,0x1a23e,0x1443c,0x1441e,0x1fa34,0x146f8,0x1a37e,0x1fa32,0x1467c, // 100
356
+ 0x1463e,0x1f474,0x1477e,0x1f472,0x1e8f4,0x1e8f2,0x1d1f4,0x1d1f2,0x1a3f4,0x1a3f2, // 110
357
+ 0x142f0,0x1a17c,0x14278,0x1a13e,0x1423c,0x1421e,0x1fa1a,0x1437c,0x1433e,0x1f43a, // 120
358
+ 0x1e87a,0x1d0fa,0x14178,0x1a0be,0x1413c,0x1411e,0x141be,0x140bc,0x1409e,0x12bc0, // 130
359
+ 0x195f0,0x1cafc,0x129e0,0x194f8,0x1ca7e,0x128f0,0x1947c,0x12878,0x1943e,0x1283c, // 140
360
+ 0x1f968,0x12df0,0x196fc,0x1f964,0x12cf8,0x1967e,0x1f962,0x12c7c,0x12c3e,0x1f2e8, // 150
361
+ 0x1f976,0x12efc,0x1f2e4,0x12e7e,0x1f2e2,0x1e5e8,0x1f2f6,0x1e5e4,0x1e5e2,0x1cbe8, // 160
362
+ 0x1e5f6,0x1cbe4,0x1cbe2,0x197e8,0x1cbf6,0x197e4,0x197e2,0x1b5e0,0x1daf8,0x1ed7e, // 170
363
+ 0x169c0,0x1b4f0,0x1da7c,0x168e0,0x1b478,0x1da3e,0x16870,0x1b43c,0x16838,0x1b41e, // 180
364
+ 0x1681c,0x125e0,0x192f8,0x1c97e,0x16de0,0x124f0,0x1927c,0x16cf0,0x1b67c,0x1923e, // 190
365
+ 0x16c78,0x1243c,0x16c3c,0x1241e,0x16c1e,0x1f934,0x126f8,0x1937e,0x1fb74,0x1f932, // 200
366
+ 0x16ef8,0x1267c,0x1fb72,0x16e7c,0x1263e,0x16e3e,0x1f274,0x1277e,0x1f6f4,0x1f272, // 210
367
+ 0x16f7e,0x1f6f2,0x1e4f4,0x1edf4,0x1e4f2,0x1edf2,0x1c9f4,0x1dbf4,0x1c9f2,0x1dbf2, // 220
368
+ 0x193f4,0x193f2,0x165c0,0x1b2f0,0x1d97c,0x164e0,0x1b278,0x1d93e,0x16470,0x1b23c, // 230
369
+ 0x16438,0x1b21e,0x1641c,0x1640e,0x122f0,0x1917c,0x166f0,0x12278,0x1913e,0x16678, // 240
370
+ 0x1b33e,0x1663c,0x1221e,0x1661e,0x1f91a,0x1237c,0x1fb3a,0x1677c,0x1233e,0x1673e, // 250
371
+ 0x1f23a,0x1f67a,0x1e47a,0x1ecfa,0x1c8fa,0x1d9fa,0x191fa,0x162e0,0x1b178,0x1d8be, // 260
372
+ 0x16270,0x1b13c,0x16238,0x1b11e,0x1621c,0x1620e,0x12178,0x190be,0x16378,0x1213c, // 270
373
+ 0x1633c,0x1211e,0x1631e,0x121be,0x163be,0x16170,0x1b0bc,0x16138,0x1b09e,0x1611c, // 280
374
+ 0x1610e,0x120bc,0x161bc,0x1209e,0x1619e,0x160b8,0x1b05e,0x1609c,0x1608e,0x1205e, // 290
375
+ 0x160de,0x1605c,0x1604e,0x115e0,0x18af8,0x1c57e,0x114f0,0x18a7c,0x11478,0x18a3e, // 300
376
+ 0x1143c,0x1141e,0x1f8b4,0x116f8,0x18b7e,0x1f8b2,0x1167c,0x1163e,0x1f174,0x1177e, // 310
377
+ 0x1f172,0x1e2f4,0x1e2f2,0x1c5f4,0x1c5f2,0x18bf4,0x18bf2,0x135c0,0x19af0,0x1cd7c, // 320
378
+ 0x134e0,0x19a78,0x1cd3e,0x13470,0x19a3c,0x13438,0x19a1e,0x1341c,0x1340e,0x112f0, // 330
379
+ 0x1897c,0x136f0,0x11278,0x1893e,0x13678,0x19b3e,0x1363c,0x1121e,0x1361e,0x1f89a, // 340
380
+ 0x1137c,0x1f9ba,0x1377c,0x1133e,0x1373e,0x1f13a,0x1f37a,0x1e27a,0x1e6fa,0x1c4fa, // 350
381
+ 0x1cdfa,0x189fa,0x1bae0,0x1dd78,0x1eebe,0x174c0,0x1ba70,0x1dd3c,0x17460,0x1ba38, // 360
382
+ 0x1dd1e,0x17430,0x1ba1c,0x17418,0x1ba0e,0x1740c,0x132e0,0x19978,0x1ccbe,0x176e0, // 370
383
+ 0x13270,0x1993c,0x17670,0x1bb3c,0x1991e,0x17638,0x1321c,0x1761c,0x1320e,0x1760e, // 380
384
+ 0x11178,0x188be,0x13378,0x1113c,0x17778,0x1333c,0x1111e,0x1773c,0x1331e,0x1771e, // 390
385
+ 0x111be,0x133be,0x177be,0x172c0,0x1b970,0x1dcbc,0x17260,0x1b938,0x1dc9e,0x17230, // 400
386
+ 0x1b91c,0x17218,0x1b90e,0x1720c,0x17206,0x13170,0x198bc,0x17370,0x13138,0x1989e, // 410
387
+ 0x17338,0x1b99e,0x1731c,0x1310e,0x1730e,0x110bc,0x131bc,0x1109e,0x173bc,0x1319e, // 420
388
+ 0x1739e,0x17160,0x1b8b8,0x1dc5e,0x17130,0x1b89c,0x17118,0x1b88e,0x1710c,0x17106, // 430
389
+ 0x130b8,0x1985e,0x171b8,0x1309c,0x1719c,0x1308e,0x1718e,0x1105e,0x130de,0x171de, // 440
390
+ 0x170b0,0x1b85c,0x17098,0x1b84e,0x1708c,0x17086,0x1305c,0x170dc,0x1304e,0x170ce, // 450
391
+ 0x17058,0x1b82e,0x1704c,0x17046,0x1302e,0x1706e,0x1702c,0x17026,0x10af0,0x1857c, // 460
392
+ 0x10a78,0x1853e,0x10a3c,0x10a1e,0x10b7c,0x10b3e,0x1f0ba,0x1e17a,0x1c2fa,0x185fa, // 470
393
+ 0x11ae0,0x18d78,0x1c6be,0x11a70,0x18d3c,0x11a38,0x18d1e,0x11a1c,0x11a0e,0x10978, // 480
394
+ 0x184be,0x11b78,0x1093c,0x11b3c,0x1091e,0x11b1e,0x109be,0x11bbe,0x13ac0,0x19d70, // 490
395
+ 0x1cebc,0x13a60,0x19d38,0x1ce9e,0x13a30,0x19d1c,0x13a18,0x19d0e,0x13a0c,0x13a06, // 500
396
+ 0x11970,0x18cbc,0x13b70,0x11938,0x18c9e,0x13b38,0x1191c,0x13b1c,0x1190e,0x13b0e, // 510
397
+ 0x108bc,0x119bc,0x1089e,0x13bbc,0x1199e,0x13b9e,0x1bd60,0x1deb8,0x1ef5e,0x17a40, // 520
398
+ 0x1bd30,0x1de9c,0x17a20,0x1bd18,0x1de8e,0x17a10,0x1bd0c,0x17a08,0x1bd06,0x17a04, // 530
399
+ 0x13960,0x19cb8,0x1ce5e,0x17b60,0x13930,0x19c9c,0x17b30,0x1bd9c,0x19c8e,0x17b18, // 540
400
+ 0x1390c,0x17b0c,0x13906,0x17b06,0x118b8,0x18c5e,0x139b8,0x1189c,0x17bb8,0x1399c, // 550
401
+ 0x1188e,0x17b9c,0x1398e,0x17b8e,0x1085e,0x118de,0x139de,0x17bde,0x17940,0x1bcb0, // 560
402
+ 0x1de5c,0x17920,0x1bc98,0x1de4e,0x17910,0x1bc8c,0x17908,0x1bc86,0x17904,0x17902, // 570
403
+ 0x138b0,0x19c5c,0x179b0,0x13898,0x19c4e,0x17998,0x1bcce,0x1798c,0x13886,0x17986, // 580
404
+ 0x1185c,0x138dc,0x1184e,0x179dc,0x138ce,0x179ce,0x178a0,0x1bc58,0x1de2e,0x17890, // 590
405
+ 0x1bc4c,0x17888,0x1bc46,0x17884,0x17882,0x13858,0x19c2e,0x178d8,0x1384c,0x178cc, // 600
406
+ 0x13846,0x178c6,0x1182e,0x1386e,0x178ee,0x17850,0x1bc2c,0x17848,0x1bc26,0x17844, // 610
407
+ 0x17842,0x1382c,0x1786c,0x13826,0x17866,0x17828,0x1bc16,0x17824,0x17822,0x13816, // 620
408
+ 0x17836,0x10578,0x182be,0x1053c,0x1051e,0x105be,0x10d70,0x186bc,0x10d38,0x1869e, // 630
409
+ 0x10d1c,0x10d0e,0x104bc,0x10dbc,0x1049e,0x10d9e,0x11d60,0x18eb8,0x1c75e,0x11d30, // 640
410
+ 0x18e9c,0x11d18,0x18e8e,0x11d0c,0x11d06,0x10cb8,0x1865e,0x11db8,0x10c9c,0x11d9c, // 650
411
+ 0x10c8e,0x11d8e,0x1045e,0x10cde,0x11dde,0x13d40,0x19eb0,0x1cf5c,0x13d20,0x19e98, // 660
412
+ 0x1cf4e,0x13d10,0x19e8c,0x13d08,0x19e86,0x13d04,0x13d02,0x11cb0,0x18e5c,0x13db0, // 670
413
+ 0x11c98,0x18e4e,0x13d98,0x19ece,0x13d8c,0x11c86,0x13d86,0x10c5c,0x11cdc,0x10c4e, // 680
414
+ 0x13ddc,0x11cce,0x13dce,0x1bea0,0x1df58,0x1efae,0x1be90,0x1df4c,0x1be88,0x1df46, // 690
415
+ 0x1be84,0x1be82,0x13ca0,0x19e58,0x1cf2e,0x17da0,0x13c90,0x19e4c,0x17d90,0x1becc, // 700
416
+ 0x19e46,0x17d88,0x13c84,0x17d84,0x13c82,0x17d82,0x11c58,0x18e2e,0x13cd8,0x11c4c, // 710
417
+ 0x17dd8,0x13ccc,0x11c46,0x17dcc,0x13cc6,0x17dc6,0x10c2e,0x11c6e,0x13cee,0x17dee, // 720
418
+ 0x1be50,0x1df2c,0x1be48,0x1df26,0x1be44,0x1be42,0x13c50,0x19e2c,0x17cd0,0x13c48, // 730
419
+ 0x19e26,0x17cc8,0x1be66,0x17cc4,0x13c42,0x17cc2,0x11c2c,0x13c6c,0x11c26,0x17cec, // 740
420
+ 0x13c66,0x17ce6,0x1be28,0x1df16,0x1be24,0x1be22,0x13c28,0x19e16,0x17c68,0x13c24, // 750
421
+ 0x17c64,0x13c22,0x17c62,0x11c16,0x13c36,0x17c76,0x1be14,0x1be12,0x13c14,0x17c34, // 760
422
+ 0x13c12,0x17c32,0x102bc,0x1029e,0x106b8,0x1835e,0x1069c,0x1068e,0x1025e,0x106de, // 770
423
+ 0x10eb0,0x1875c,0x10e98,0x1874e,0x10e8c,0x10e86,0x1065c,0x10edc,0x1064e,0x10ece, // 780
424
+ 0x11ea0,0x18f58,0x1c7ae,0x11e90,0x18f4c,0x11e88,0x18f46,0x11e84,0x11e82,0x10e58, // 790
425
+ 0x1872e,0x11ed8,0x18f6e,0x11ecc,0x10e46,0x11ec6,0x1062e,0x10e6e,0x11eee,0x19f50, // 800
426
+ 0x1cfac,0x19f48,0x1cfa6,0x19f44,0x19f42,0x11e50,0x18f2c,0x13ed0,0x19f6c,0x18f26, // 810
427
+ 0x13ec8,0x11e44,0x13ec4,0x11e42,0x13ec2,0x10e2c,0x11e6c,0x10e26,0x13eec,0x11e66, // 820
428
+ 0x13ee6,0x1dfa8,0x1efd6,0x1dfa4,0x1dfa2,0x19f28,0x1cf96,0x1bf68,0x19f24,0x1bf64, // 830
429
+ 0x19f22,0x1bf62,0x11e28,0x18f16,0x13e68,0x11e24,0x17ee8,0x13e64,0x11e22,0x17ee4, // 840
430
+ 0x13e62,0x17ee2,0x10e16,0x11e36,0x13e76,0x17ef6,0x1df94,0x1df92,0x19f14,0x1bf34, // 850
431
+ 0x19f12,0x1bf32,0x11e14,0x13e34,0x11e12,0x17e74,0x13e32,0x17e72,0x1df8a,0x19f0a, // 860
432
+ 0x1bf1a,0x11e0a,0x13e1a,0x17e3a,0x1035c,0x1034e,0x10758,0x183ae,0x1074c,0x10746, // 870
433
+ 0x1032e,0x1076e,0x10f50,0x187ac,0x10f48,0x187a6,0x10f44,0x10f42,0x1072c,0x10f6c, // 880
434
+ 0x10726,0x10f66,0x18fa8,0x1c7d6,0x18fa4,0x18fa2,0x10f28,0x18796,0x11f68,0x18fb6, // 890
435
+ 0x11f64,0x10f22,0x11f62,0x10716,0x10f36,0x11f76,0x1cfd4,0x1cfd2,0x18f94,0x19fb4, // 900
436
+ 0x18f92,0x19fb2,0x10f14,0x11f34,0x10f12,0x13f74,0x11f32,0x13f72,0x1cfca,0x18f8a, // 910
437
+ 0x19f9a,0x10f0a,0x11f1a,0x13f3a,0x103ac,0x103a6,0x107a8,0x183d6,0x107a4,0x107a2, // 920
438
+ 0x10396,0x107b6,0x187d4,0x187d2,0x10794,0x10fb4,0x10792,0x10fb2,0x1c7ea) // 929
439
+ ); // end of $clusters array
440
+
441
+ /**
442
+ * Array of factors of the Reed-Solomon polynomial equations used for error correction; one sub array for each correction level (0-8).
443
+ * @protected
444
+ */
445
+ protected $rsfactors = array(
446
+ array( // ECL 0 (2 factors) -------------------------------------------------------------------------------
447
+ 0x01b,0x395), // 2
448
+ array( // ECL 1 (4 factors) -------------------------------------------------------------------------------
449
+ 0x20a,0x238,0x2d3,0x329), // 4
450
+ array( // ECL 2 (8 factors) -------------------------------------------------------------------------------
451
+ 0x0ed,0x134,0x1b4,0x11c,0x286,0x28d,0x1ac,0x17b), // 8
452
+ array( // ECL 3 (16 factors) ------------------------------------------------------------------------------
453
+ 0x112,0x232,0x0e8,0x2f3,0x257,0x20c,0x321,0x084,0x127,0x074,0x1ba,0x1ac,0x127,0x02a,0x0b0,0x041),// 16
454
+ array( // ECL 4 (32 factors) ------------------------------------------------------------------------------
455
+ 0x169,0x23f,0x39a,0x20d,0x0b0,0x24a,0x280,0x141,0x218,0x2e6,0x2a5,0x2e6,0x2af,0x11c,0x0c1,0x205, // 16
456
+ 0x111,0x1ee,0x107,0x093,0x251,0x320,0x23b,0x140,0x323,0x085,0x0e7,0x186,0x2ad,0x14a,0x03f,0x19a),// 32
457
+ array( // ECL 5 (64 factors) ------------------------------------------------------------------------------
458
+ 0x21b,0x1a6,0x006,0x05d,0x35e,0x303,0x1c5,0x06a,0x262,0x11f,0x06b,0x1f9,0x2dd,0x36d,0x17d,0x264, // 16
459
+ 0x2d3,0x1dc,0x1ce,0x0ac,0x1ae,0x261,0x35a,0x336,0x21f,0x178,0x1ff,0x190,0x2a0,0x2fa,0x11b,0x0b8, // 32
460
+ 0x1b8,0x023,0x207,0x01f,0x1cc,0x252,0x0e1,0x217,0x205,0x160,0x25d,0x09e,0x28b,0x0c9,0x1e8,0x1f6, // 48
461
+ 0x288,0x2dd,0x2cd,0x053,0x194,0x061,0x118,0x303,0x348,0x275,0x004,0x17d,0x34b,0x26f,0x108,0x21f),// 64
462
+ array( // ECL 6 (128 factors) -----------------------------------------------------------------------------
463
+ 0x209,0x136,0x360,0x223,0x35a,0x244,0x128,0x17b,0x035,0x30b,0x381,0x1bc,0x190,0x39d,0x2ed,0x19f, // 16
464
+ 0x336,0x05d,0x0d9,0x0d0,0x3a0,0x0f4,0x247,0x26c,0x0f6,0x094,0x1bf,0x277,0x124,0x38c,0x1ea,0x2c0, // 32
465
+ 0x204,0x102,0x1c9,0x38b,0x252,0x2d3,0x2a2,0x124,0x110,0x060,0x2ac,0x1b0,0x2ae,0x25e,0x35c,0x239, // 48
466
+ 0x0c1,0x0db,0x081,0x0ba,0x0ec,0x11f,0x0c0,0x307,0x116,0x0ad,0x028,0x17b,0x2c8,0x1cf,0x286,0x308, // 64
467
+ 0x0ab,0x1eb,0x129,0x2fb,0x09c,0x2dc,0x05f,0x10e,0x1bf,0x05a,0x1fb,0x030,0x0e4,0x335,0x328,0x382, // 80
468
+ 0x310,0x297,0x273,0x17a,0x17e,0x106,0x17c,0x25a,0x2f2,0x150,0x059,0x266,0x057,0x1b0,0x29e,0x268, // 96
469
+ 0x09d,0x176,0x0f2,0x2d6,0x258,0x10d,0x177,0x382,0x34d,0x1c6,0x162,0x082,0x32e,0x24b,0x324,0x022, // 112
470
+ 0x0d3,0x14a,0x21b,0x129,0x33b,0x361,0x025,0x205,0x342,0x13b,0x226,0x056,0x321,0x004,0x06c,0x21b),// 128
471
+ array( // ECL 7 (256 factors) -----------------------------------------------------------------------------
472
+ 0x20c,0x37e,0x04b,0x2fe,0x372,0x359,0x04a,0x0cc,0x052,0x24a,0x2c4,0x0fa,0x389,0x312,0x08a,0x2d0, // 16
473
+ 0x35a,0x0c2,0x137,0x391,0x113,0x0be,0x177,0x352,0x1b6,0x2dd,0x0c2,0x118,0x0c9,0x118,0x33c,0x2f5, // 32
474
+ 0x2c6,0x32e,0x397,0x059,0x044,0x239,0x00b,0x0cc,0x31c,0x25d,0x21c,0x391,0x321,0x2bc,0x31f,0x089, // 48
475
+ 0x1b7,0x1a2,0x250,0x29c,0x161,0x35b,0x172,0x2b6,0x145,0x0f0,0x0d8,0x101,0x11c,0x225,0x0d1,0x374, // 64
476
+ 0x13b,0x046,0x149,0x319,0x1ea,0x112,0x36d,0x0a2,0x2ed,0x32c,0x2ac,0x1cd,0x14e,0x178,0x351,0x209, // 80
477
+ 0x133,0x123,0x323,0x2c8,0x013,0x166,0x18f,0x38c,0x067,0x1ff,0x033,0x008,0x205,0x0e1,0x121,0x1d6, // 96
478
+ 0x27d,0x2db,0x042,0x0ff,0x395,0x10d,0x1cf,0x33e,0x2da,0x1b1,0x350,0x249,0x088,0x21a,0x38a,0x05a, // 112
479
+ 0x002,0x122,0x2e7,0x0c7,0x28f,0x387,0x149,0x031,0x322,0x244,0x163,0x24c,0x0bc,0x1ce,0x00a,0x086, // 128
480
+ 0x274,0x140,0x1df,0x082,0x2e3,0x047,0x107,0x13e,0x176,0x259,0x0c0,0x25d,0x08e,0x2a1,0x2af,0x0ea, // 144
481
+ 0x2d2,0x180,0x0b1,0x2f0,0x25f,0x280,0x1c7,0x0c1,0x2b1,0x2c3,0x325,0x281,0x030,0x03c,0x2dc,0x26d, // 160
482
+ 0x37f,0x220,0x105,0x354,0x28f,0x135,0x2b9,0x2f3,0x2f4,0x03c,0x0e7,0x305,0x1b2,0x1a5,0x2d6,0x210, // 176
483
+ 0x1f7,0x076,0x031,0x31b,0x020,0x090,0x1f4,0x0ee,0x344,0x18a,0x118,0x236,0x13f,0x009,0x287,0x226, // 192
484
+ 0x049,0x392,0x156,0x07e,0x020,0x2a9,0x14b,0x318,0x26c,0x03c,0x261,0x1b9,0x0b4,0x317,0x37d,0x2f2, // 208
485
+ 0x25d,0x17f,0x0e4,0x2ed,0x2f8,0x0d5,0x036,0x129,0x086,0x036,0x342,0x12b,0x39a,0x0bf,0x38e,0x214, // 224
486
+ 0x261,0x33d,0x0bd,0x014,0x0a7,0x01d,0x368,0x1c1,0x053,0x192,0x029,0x290,0x1f9,0x243,0x1e1,0x0ad, // 240
487
+ 0x194,0x0fb,0x2b0,0x05f,0x1f1,0x22b,0x282,0x21f,0x133,0x09f,0x39c,0x22e,0x288,0x037,0x1f1,0x00a),// 256
488
+ array( // ECL 8 (512 factors) -----------------------------------------------------------------------------
489
+ 0x160,0x04d,0x175,0x1f8,0x023,0x257,0x1ac,0x0cf,0x199,0x23e,0x076,0x1f2,0x11d,0x17c,0x15e,0x1ec, // 16
490
+ 0x0c5,0x109,0x398,0x09b,0x392,0x12b,0x0e5,0x283,0x126,0x367,0x132,0x058,0x057,0x0c1,0x160,0x30d, // 32
491
+ 0x34e,0x04b,0x147,0x208,0x1b3,0x21f,0x0cb,0x29a,0x0f9,0x15a,0x30d,0x26d,0x280,0x10c,0x31a,0x216, // 48
492
+ 0x21b,0x30d,0x198,0x186,0x284,0x066,0x1dc,0x1f3,0x122,0x278,0x221,0x025,0x35a,0x394,0x228,0x029, // 64
493
+ 0x21e,0x121,0x07a,0x110,0x17f,0x320,0x1e5,0x062,0x2f0,0x1d8,0x2f9,0x06b,0x310,0x35c,0x292,0x2e5, // 80
494
+ 0x122,0x0cc,0x2a9,0x197,0x357,0x055,0x063,0x03e,0x1e2,0x0b4,0x014,0x129,0x1c3,0x251,0x391,0x08e, // 96
495
+ 0x328,0x2ac,0x11f,0x218,0x231,0x04c,0x28d,0x383,0x2d9,0x237,0x2e8,0x186,0x201,0x0c0,0x204,0x102, // 112
496
+ 0x0f0,0x206,0x31a,0x18b,0x300,0x350,0x033,0x262,0x180,0x0a8,0x0be,0x33a,0x148,0x254,0x312,0x12f, // 128
497
+ 0x23a,0x17d,0x19f,0x281,0x09c,0x0ed,0x097,0x1ad,0x213,0x0cf,0x2a4,0x2c6,0x059,0x0a8,0x130,0x192, // 144
498
+ 0x028,0x2c4,0x23f,0x0a2,0x360,0x0e5,0x041,0x35d,0x349,0x200,0x0a4,0x1dd,0x0dd,0x05c,0x166,0x311, // 160
499
+ 0x120,0x165,0x352,0x344,0x33b,0x2e0,0x2c3,0x05e,0x008,0x1ee,0x072,0x209,0x002,0x1f3,0x353,0x21f, // 176
500
+ 0x098,0x2d9,0x303,0x05f,0x0f8,0x169,0x242,0x143,0x358,0x31d,0x121,0x033,0x2ac,0x1d2,0x215,0x334, // 192
501
+ 0x29d,0x02d,0x386,0x1c4,0x0a7,0x156,0x0f4,0x0ad,0x023,0x1cf,0x28b,0x033,0x2bb,0x24f,0x1c4,0x242, // 208
502
+ 0x025,0x07c,0x12a,0x14c,0x228,0x02b,0x1ab,0x077,0x296,0x309,0x1db,0x352,0x2fc,0x16c,0x242,0x38f, // 224
503
+ 0x11b,0x2c7,0x1d8,0x1a4,0x0f5,0x120,0x252,0x18a,0x1ff,0x147,0x24d,0x309,0x2bb,0x2b0,0x02b,0x198, // 240
504
+ 0x34a,0x17f,0x2d1,0x209,0x230,0x284,0x2ca,0x22f,0x03e,0x091,0x369,0x297,0x2c9,0x09f,0x2a0,0x2d9, // 256
505
+ 0x270,0x03b,0x0c1,0x1a1,0x09e,0x0d1,0x233,0x234,0x157,0x2b5,0x06d,0x260,0x233,0x16d,0x0b5,0x304, // 272
506
+ 0x2a5,0x136,0x0f8,0x161,0x2c4,0x19a,0x243,0x366,0x269,0x349,0x278,0x35c,0x121,0x218,0x023,0x309, // 288
507
+ 0x26a,0x24a,0x1a8,0x341,0x04d,0x255,0x15a,0x10d,0x2f5,0x278,0x2b7,0x2ef,0x14b,0x0f7,0x0b8,0x02d, // 304
508
+ 0x313,0x2a8,0x012,0x042,0x197,0x171,0x036,0x1ec,0x0e4,0x265,0x33e,0x39a,0x1b5,0x207,0x284,0x389, // 320
509
+ 0x315,0x1a4,0x131,0x1b9,0x0cf,0x12c,0x37c,0x33b,0x08d,0x219,0x17d,0x296,0x201,0x038,0x0fc,0x155, // 336
510
+ 0x0f2,0x31d,0x346,0x345,0x2d0,0x0e0,0x133,0x277,0x03d,0x057,0x230,0x136,0x2f4,0x299,0x18d,0x328, // 352
511
+ 0x353,0x135,0x1d9,0x31b,0x17a,0x01f,0x287,0x393,0x1cb,0x326,0x24e,0x2db,0x1a9,0x0d8,0x224,0x0f9, // 368
512
+ 0x141,0x371,0x2bb,0x217,0x2a1,0x30e,0x0d2,0x32f,0x389,0x12f,0x34b,0x39a,0x119,0x049,0x1d5,0x317, // 384
513
+ 0x294,0x0a2,0x1f2,0x134,0x09b,0x1a6,0x38b,0x331,0x0bb,0x03e,0x010,0x1a9,0x217,0x150,0x11e,0x1b5, // 400
514
+ 0x177,0x111,0x262,0x128,0x0b7,0x39b,0x074,0x29b,0x2ef,0x161,0x03e,0x16e,0x2b3,0x17b,0x2af,0x34a, // 416
515
+ 0x025,0x165,0x2d0,0x2e6,0x14a,0x005,0x027,0x39b,0x137,0x1a8,0x0f2,0x2ed,0x141,0x036,0x29d,0x13c, // 432
516
+ 0x156,0x12b,0x216,0x069,0x29b,0x1e8,0x280,0x2a0,0x240,0x21c,0x13c,0x1e6,0x2d1,0x262,0x02e,0x290, // 448
517
+ 0x1bf,0x0ab,0x268,0x1d0,0x0be,0x213,0x129,0x141,0x2fa,0x2f0,0x215,0x0af,0x086,0x00e,0x17d,0x1b1, // 464
518
+ 0x2cd,0x02d,0x06f,0x014,0x254,0x11c,0x2e0,0x08a,0x286,0x19b,0x36d,0x29d,0x08d,0x397,0x02d,0x30c, // 480
519
+ 0x197,0x0a4,0x14c,0x383,0x0a5,0x2d6,0x258,0x145,0x1f2,0x28f,0x165,0x2f0,0x300,0x0df,0x351,0x287, // 496
520
+ 0x03f,0x136,0x35f,0x0fb,0x16e,0x130,0x11a,0x2e2,0x2a3,0x19a,0x185,0x0f4,0x01f,0x079,0x12f,0x107) // 512
521
+ );
522
+
523
+ /**
524
+ * This is the class constructor.
525
+ * Creates a PDF417 object
526
+ * @param $code (string) code to represent using PDF417
527
+ * @param $ecl (int) error correction level (0-8); default -1 = automatic correction level
528
+ * @param $aspectratio (float) the width to height of the symbol (excluding quiet zones)
529
+ * @param $macro (array) information for macro block
530
+ * @public
531
+ */
532
+ public function __construct($code, $ecl=-1, $aspectratio=2, $macro=array()) {
533
+ $barcode_array = array();
534
+ if ((is_null($code)) OR ($code == '\0') OR ($code == '')) {
535
+ return false;
536
+ }
537
+ // get the input sequence array
538
+ $sequence = $this->getInputSequences($code);
539
+ $codewords = array(); // array of code-words
540
+ foreach($sequence as $seq) {
541
+ $cw = $this->getCompaction($seq[0], $seq[1], true);
542
+ $codewords = array_merge($codewords, $cw);
543
+ }
544
+ if ($codewords[0] == 900) {
545
+ // Text Alpha is the default mode, so remove the first code
546
+ array_shift($codewords);
547
+ }
548
+ // count number of codewords
549
+ $numcw = count($codewords);
550
+ if ($numcw > 925) {
551
+ // reached maximum data codeword capacity
552
+ return false;
553
+ }
554
+ // build macro control block codewords
555
+ if (!empty($macro)) {
556
+ $macrocw = array();
557
+ // beginning of macro control block
558
+ $macrocw[] = 928;
559
+ // segment index
560
+ $cw = $this->getCompaction(902, sprintf('%05d', $macro['segment_index']), false);
561
+ $macrocw = array_merge($macrocw, $cw);
562
+ // file ID
563
+ $cw = $this->getCompaction(900, $macro['file_id'], false);
564
+ $macrocw = array_merge($macrocw, $cw);
565
+ // optional fields
566
+ $optmodes = array(900,902,902,900,900,902,902);
567
+ $optsize = array(-1,2,4,-1,-1,-1,2);
568
+ foreach ($optmodes as $k => $omode) {
569
+ if (isset($macro['option_'.$k])) {
570
+ $macrocw[] = 923;
571
+ $macrocw[] = $k;
572
+ if ($optsize[$k] == 2) {
573
+ $macro['option_'.$k] = sprintf('%05d', $macro['option_'.$k]);
574
+ } elseif ($optsize[$k] == 4) {
575
+ $macro['option_'.$k] = sprintf('%010d', $macro['option_'.$k]);
576
+ }
577
+ $cw = $this->getCompaction($omode, $macro['option_'.$k], false);
578
+ $macrocw = array_merge($macrocw, $cw);
579
+ }
580
+ }
581
+ if ($macro['segment_index'] == ($macro['segment_total'] - 1)) {
582
+ // end of control block
583
+ $macrocw[] = 922;
584
+ }
585
+ // update total codewords
586
+ $numcw += count($macrocw);
587
+ }
588
+ // set error correction level
589
+ $ecl = $this->getErrorCorrectionLevel($ecl, $numcw);
590
+ // number of codewords for error correction
591
+ $errsize = (2 << $ecl);
592
+ // calculate number of columns (number of codewords per row) and rows
593
+ $nce = ($numcw + $errsize + 1);
594
+ $cols = round((sqrt(4761 + (68 * $aspectratio * ROWHEIGHT * $nce)) - 69) / 34);
595
+ // adjust cols
596
+ if ($cols < 1) {
597
+ $cols = 1;
598
+ } elseif ($cols > 30) {
599
+ $cols = 30;
600
+ }
601
+ $rows = ceil($nce / $cols);
602
+ $size = ($cols * $rows);
603
+ // adjust rows
604
+ if (($rows < 3) OR ($rows > 90)) {
605
+ if ($rows < 3) {
606
+ $rows = 3;
607
+ } elseif ($rows > 90) {
608
+ $rows = 90;
609
+ }
610
+ $cols = ceil($size / $rows);
611
+ $size = ($cols * $rows);
612
+ }
613
+ if ($size > 928) {
614
+ // set dimensions to get maximum capacity
615
+ if (abs($aspectratio - (17 * 29 / 32)) < abs($aspectratio - (17 * 16 / 58))) {
616
+ $cols = 29;
617
+ $rows = 32;
618
+ } else {
619
+ $cols = 16;
620
+ $rows = 58;
621
+ }
622
+ $size = 928;
623
+ }
624
+ // calculate padding
625
+ $pad = ($size - $nce);
626
+ if ($pad > 0) {
627
+ if (($size - $rows) == $nce) {
628
+ --$rows;
629
+ $size -= $rows;
630
+ } else {
631
+ // add pading
632
+ $codewords = array_merge($codewords, array_fill(0, $pad, 900));
633
+ }
634
+ }
635
+ if (!empty($macro)) {
636
+ // add macro section
637
+ $codewords = array_merge($codewords, $macrocw);
638
+ }
639
+ // Symbol Lenght Descriptor (number of data codewords including Symbol Lenght Descriptor and pad codewords)
640
+ $sld = $size - $errsize;
641
+ // add symbol length description
642
+ array_unshift($codewords, $sld);
643
+ // calculate error correction
644
+ $ecw = $this->getErrorCorrection($codewords, $ecl);
645
+ // add error correction codewords
646
+ $codewords = array_merge($codewords, $ecw);
647
+ // add horizontal quiet zones to start and stop patterns
648
+ $pstart = str_repeat('0', QUIETH).$this->start_pattern;
649
+ $pstop = $this->stop_pattern.str_repeat('0', QUIETH);
650
+ $barcode_array['num_rows'] = ($rows * ROWHEIGHT) + (2 * QUIETV);
651
+ $barcode_array['num_cols'] = (($cols + 2) * 17) + 35 + (2 * QUIETH);
652
+ $barcode_array['bcode'] = array();
653
+ // build rows for vertical quiet zone
654
+ if (QUIETV > 0) {
655
+ $empty_row = array_fill(0, $barcode_array['num_cols'], 0);
656
+ for ($i = 0; $i < QUIETV; ++$i) {
657
+ // add vertical quiet rows
658
+ $barcode_array['bcode'][] = $empty_row;
659
+ }
660
+ }
661
+ $k = 0; // codeword index
662
+ $cid = 0; // initial cluster
663
+ // for each row
664
+ for ($r = 0; $r < $rows; ++$r) {
665
+ // row start code
666
+ $row = $pstart;
667
+ switch ($cid) {
668
+ case 0: {
669
+ $L = ((30 * intval($r / 3)) + intval(($rows - 1) / 3));
670
+ break;
671
+ }
672
+ case 1: {
673
+ $L = ((30 * intval($r / 3)) + ($ecl * 3) + (($rows - 1) % 3));
674
+ break;
675
+ }
676
+ case 2: {
677
+ $L = ((30 * intval($r / 3)) + ($cols - 1));
678
+ break;
679
+ }
680
+ }
681
+ // left row indicator
682
+ $row .= sprintf('%17b', $this->clusters[$cid][$L]);
683
+ // for each column
684
+ for ($c = 0; $c < $cols; ++$c) {
685
+ $row .= sprintf('%17b', $this->clusters[$cid][$codewords[$k]]);
686
+ ++$k;
687
+ }
688
+ switch ($cid) {
689
+ case 0: {
690
+ $L = ((30 * intval($r / 3)) + ($cols - 1));
691
+ break;
692
+ }
693
+ case 1: {
694
+ $L = ((30 * intval($r / 3)) + intval(($rows - 1) / 3));
695
+ break;
696
+ }
697
+ case 2: {
698
+ $L = ((30 * intval($r / 3)) + ($ecl * 3) + (($rows - 1) % 3));
699
+ break;
700
+ }
701
+ }
702
+ // right row indicator
703
+ $row .= sprintf('%17b', $this->clusters[$cid][$L]);
704
+ // row stop code
705
+ $row .= $pstop;
706
+ // convert the string to array
707
+ $arow = preg_split('//', $row, -1, PREG_SPLIT_NO_EMPTY);
708
+ // duplicate row to get the desired height
709
+ for ($h = 0; $h < ROWHEIGHT; ++$h) {
710
+ $barcode_array['bcode'][] = $arow;
711
+ }
712
+ ++$cid;
713
+ if ($cid > 2) {
714
+ $cid = 0;
715
+ }
716
+ }
717
+ if (QUIETV > 0) {
718
+ for ($i = 0; $i < QUIETV; ++$i) {
719
+ // add vertical quiet rows
720
+ $barcode_array['bcode'][] = $empty_row;
721
+ }
722
+ }
723
+ $this->barcode_array = $barcode_array;
724
+ }
725
+
726
+ /**
727
+ * Returns a barcode array which is readable by TCPDF
728
+ * @return array barcode array readable by TCPDF;
729
+ * @public
730
+ */
731
+ public function getBarcodeArray() {
732
+ return $this->barcode_array;
733
+ }
734
+
735
+ /**
736
+ * Returns the error correction level (0-8) to be used
737
+ * @param $ecl (int) error correction level
738
+ * @param $numcw (int) number of data codewords
739
+ * @return int error correction level
740
+ * @protected
741
+ */
742
+ protected function getErrorCorrectionLevel($ecl, $numcw) {
743
+ // get maximum correction level
744
+ $maxecl = 8; // starting error level
745
+ $maxerrsize = (928 - $numcw); // available codewords for error
746
+ while ($maxecl > 0) {
747
+ $errsize = (2 << $ecl);
748
+ if ($maxerrsize >= $errsize) {
749
+ break;
750
+ }
751
+ --$maxecl;
752
+ }
753
+ // check for automatic levels
754
+ if (($ecl < 0) OR ($ecl > 8)) {
755
+ if ($numcw < 41) {
756
+ $ecl = 2;
757
+ } elseif ($numcw < 161) {
758
+ $ecl = 3;
759
+ } elseif ($numcw < 321) {
760
+ $ecl = 4;
761
+ } elseif ($numcw < 864) {
762
+ $ecl = 5;
763
+ } else {
764
+ $ecl = $maxecl;
765
+ }
766
+ }
767
+ if ($ecl > $maxecl) {
768
+ $ecl = $maxecl;
769
+ }
770
+ return $ecl;
771
+ }
772
+
773
+ /**
774
+ * Returns the error correction codewords
775
+ * @param $cw (array) array of codewords including Symbol Lenght Descriptor and pad
776
+ * @param $ecl (int) error correction level 0-8
777
+ * @return array of error correction codewords
778
+ * @protected
779
+ */
780
+ protected function getErrorCorrection($cw, $ecl) {
781
+ // get error correction coefficients
782
+ $ecc = $this->rsfactors[$ecl];
783
+ // number of error correction factors
784
+ $eclsize = (2 << $ecl);
785
+ // maximum index for $rsfactors[$ecl]
786
+ $eclmaxid = ($eclsize - 1);
787
+ // initialize array of error correction codewords
788
+ $ecw = array_fill(0, $eclsize, 0);
789
+ // for each data codeword
790
+ foreach($cw as $k => $d) {
791
+ $t1 = ($d + $ecw[$eclmaxid]) % 929;
792
+ for ($j = $eclmaxid; $j > 0; --$j) {
793
+ $t2 = ($t1 * $ecc[$j]) % 929;
794
+ $t3 = 929 - $t2;
795
+ $ecw[$j] = ($ecw[($j - 1)] + $t3) % 929;
796
+ }
797
+ $t2 = ($t1 * $ecc[0]) % 929;
798
+ $t3 = 929 - $t2;
799
+ $ecw[0] = $t3 % 929;
800
+ }
801
+ foreach($ecw as $j => $e) {
802
+ if ($e != 0) {
803
+ $ecw[$j] = 929 - $e;
804
+ }
805
+ }
806
+ $ecw = array_reverse($ecw);
807
+ return $ecw;
808
+ }
809
+
810
+ /**
811
+ * Create array of sequences from input
812
+ * @param $code (string) code
813
+ * @return bidimensional array containing characters and classification
814
+ * @protected
815
+ */
816
+ protected function getInputSequences($code) {
817
+ $sequence_array = array(); // array to be returned
818
+ $numseq = array();
819
+ // get numeric sequences
820
+ preg_match_all('/([0-9]{13,44})/', $code, $numseq, PREG_OFFSET_CAPTURE);
821
+ $numseq[1][] = array('', strlen($code));
822
+ $offset = 0;
823
+ foreach($numseq[1] as $seq) {
824
+ $seqlen = strlen($seq[0]);
825
+ if ($seq[1] > 0) {
826
+ // extract text sequence before the number sequence
827
+ $prevseq = substr($code, $offset, ($seq[1] - $offset));
828
+ $textseq = array();
829
+ // get text sequences
830
+ preg_match_all('/([\x09\x0a\x0d\x20-\x7e]{5,})/', $prevseq, $textseq, PREG_OFFSET_CAPTURE);
831
+ $textseq[1][] = array('', strlen($prevseq));
832
+ $txtoffset = 0;
833
+ foreach($textseq[1] as $txtseq) {
834
+ $txtseqlen = strlen($txtseq[0]);
835
+ if ($txtseq[1] > 0) {
836
+ // extract byte sequence before the text sequence
837
+ $prevtxtseq = substr($prevseq, $txtoffset, ($txtseq[1] - $txtoffset));
838
+ if (strlen($prevtxtseq) > 0) {
839
+ // add BYTE sequence
840
+ if ((strlen($prevtxtseq) == 1) AND ((count($sequence_array) > 0) AND ($sequence_array[(count($sequence_array) - 1)][0] == 900))) {
841
+ $sequence_array[] = array(913, $prevtxtseq);
842
+ } elseif ((strlen($prevtxtseq) % 6) == 0) {
843
+ $sequence_array[] = array(924, $prevtxtseq);
844
+ } else {
845
+ $sequence_array[] = array(901, $prevtxtseq);
846
+ }
847
+ }
848
+ }
849
+ if ($txtseqlen > 0) {
850
+ // add numeric sequence
851
+ $sequence_array[] = array(900, $txtseq[0]);
852
+ }
853
+ $txtoffset = $txtseq[1] + $txtseqlen;
854
+ }
855
+ }
856
+ if ($seqlen > 0) {
857
+ // add numeric sequence
858
+ $sequence_array[] = array(902, $seq[0]);
859
+ }
860
+ $offset = $seq[1] + $seqlen;
861
+ }
862
+ return $sequence_array;
863
+ }
864
+
865
+ /**
866
+ * Compact data by mode.
867
+ * @param $mode (int) compaction mode number
868
+ * @param $code (string) data to compact
869
+ * @param $addmode (boolean) if true add the mode codeword at first position
870
+ * @return array of codewords
871
+ * @protected
872
+ */
873
+ protected function getCompaction($mode, $code, $addmode=true) {
874
+ $cw = array(); // array of codewords to return
875
+ switch($mode) {
876
+ case 900: { // Text Compaction mode latch
877
+ $submode = 0; // default Alpha sub-mode
878
+ $txtarr = array(); // array of characters and sub-mode switching characters
879
+ $codelen = strlen($code);
880
+ for ($i = 0; $i < $codelen; ++$i) {
881
+ $chval = ord($code{$i});
882
+ if (($k = array_search($chval, $this->textsubmodes[$submode])) !== false) {
883
+ // we are on the same sub-mode
884
+ $txtarr[] = $k;
885
+ } else {
886
+ // the sub-mode is changed
887
+ for ($s = 0; $s < 4; ++$s) {
888
+ // search new sub-mode
889
+ if (($s != $submode) AND (($k = array_search($chval, $this->textsubmodes[$s])) !== false)) {
890
+ // $s is the new submode
891
+ if (((($i + 1) == $codelen) OR ((($i + 1) < $codelen) AND (array_search(ord($code{($i + 1)}), $this->textsubmodes[$submode]) !== false))) AND (($s == 3) OR (($s == 0) AND ($submode == 1)))) {
892
+ // shift (temporary change only for this char)
893
+ if ($s == 3) {
894
+ // shift to puntuaction
895
+ $txtarr[] = 29;
896
+ } else {
897
+ // shift from lower to alpha
898
+ $txtarr[] = 27;
899
+ }
900
+ } else {
901
+ // latch
902
+ $txtarr = array_merge($txtarr, $this->textlatch[''.$submode.$s]);
903
+ // set new submode
904
+ $submode = $s;
905
+ }
906
+ // add characted code to array
907
+ $txtarr[] = $k;
908
+ break;
909
+ }
910
+ }
911
+ }
912
+ }
913
+ $txtarrlen = count($txtarr);
914
+ if (($txtarrlen % 2) != 0) {
915
+ // add padding
916
+ $txtarr[] = 29;
917
+ ++$txtarrlen;
918
+ }
919
+ // calculate codewords
920
+ for ($i = 0; $i < $txtarrlen; $i += 2) {
921
+ $cw[] = (30 * $txtarr[$i]) + $txtarr[($i + 1)];
922
+ }
923
+ break;
924
+ }
925
+ case 901:
926
+ case 924: { // Byte Compaction mode latch
927
+ while (($codelen = strlen($code)) > 0) {
928
+ if ($codelen > 6) {
929
+ $rest = substr($code, 6);
930
+ $code = substr($code, 0, 6);
931
+ $sublen = 6;
932
+ } else {
933
+ $rest = '';
934
+ $sublen = strlen($code);
935
+ }
936
+ if ($sublen == 6) {
937
+ $t = bcmul(''.ord($code[0]), '1099511627776');
938
+ $t = bcadd($t, bcmul(''.ord($code[1]), '4294967296'));
939
+ $t = bcadd($t, bcmul(''.ord($code[2]), '16777216'));
940
+ $t = bcadd($t, bcmul(''.ord($code[3]), '65536'));
941
+ $t = bcadd($t, bcmul(''.ord($code[4]), '256'));
942
+ $t = bcadd($t, ''.ord($code[5]));
943
+ // tmp array for the 6 bytes block
944
+ $cw6 = array();
945
+ do {
946
+ $d = bcmod($t, '900');
947
+ $t = bcdiv($t, '900');
948
+ // prepend the value to the beginning of the array
949
+ array_unshift($cw6, $d);
950
+ } while ($t != '0');
951
+ // append the result array at the end
952
+ $cw = array_merge($cw, $cw6);
953
+ } else {
954
+ for ($i = 0; $i < $sublen; ++$i) {
955
+ $cw[] = ord($code{$i});
956
+ }
957
+ }
958
+ $code = $rest;
959
+ }
960
+ break;
961
+ }
962
+ case 902: { // Numeric Compaction mode latch
963
+ while (($codelen = strlen($code)) > 0) {
964
+ if ($codelen > 44) {
965
+ $rest = substr($code, 44);
966
+ $code = substr($code, 0, 44);
967
+ } else {
968
+ $rest = '';
969
+ }
970
+ $t = '1'.$code;
971
+ do {
972
+ $d = bcmod($t, '900');
973
+ $t = bcdiv($t, '900');
974
+ array_unshift($cw, $d);
975
+ } while ($t != '0');
976
+ $code = $rest;
977
+ }
978
+ break;
979
+ }
980
+ case 913: { // Byte Compaction mode shift
981
+ $cw[] = ord($code);
982
+ break;
983
+ }
984
+ }
985
+ if ($addmode) {
986
+ // add the compaction mode codeword at the beginning
987
+ array_unshift($cw, $mode);
988
+ }
989
+ return $cw;
990
+ }
991
+
992
+ } // end PDF417 class
993
+
994
+ //============================================================+
995
+ // END OF FILE
996
+ //============================================================+
includes/tcpdf_min/include/barcodes/qrcode.php ADDED
@@ -0,0 +1,2866 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //============================================================+
3
+ // File name : qrcode.php
4
+ // Version : 1.0.010
5
+ // Begin : 2010-03-22
6
+ // Last Update : 2012-07-25
7
+ // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
8
+ // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
9
+ // -------------------------------------------------------------------
10
+ // Copyright (C) 2010-2012 Nicola Asuni - Tecnick.com LTD
11
+ //
12
+ // This file is part of TCPDF software library.
13
+ //
14
+ // TCPDF is free software: you can redistribute it and/or modify it
15
+ // under the terms of the GNU Lesser General Public License as
16
+ // published by the Free Software Foundation, either version 3 of the
17
+ // License, or (at your option) any later version.
18
+ //
19
+ // TCPDF is distributed in the hope that it will be useful, but
20
+ // WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22
+ // See the GNU Lesser General Public License for more details.
23
+ //
24
+ // You should have received a copy of the GNU Lesser General Public License
25
+ // along with TCPDF. If not, see <http://www.gnu.org/licenses/>.
26
+ //
27
+ // See LICENSE.TXT file for more information.
28
+ // -------------------------------------------------------------------
29
+ //
30
+ // DESCRIPTION :
31
+ //
32
+ // Class to create QR-code arrays for TCPDF class.
33
+ // QR Code symbol is a 2D barcode that can be scanned by
34
+ // handy terminals such as a mobile phone with CCD.
35
+ // The capacity of QR Code is up to 7000 digits or 4000
36
+ // characters, and has high robustness.
37
+ // This class supports QR Code model 2, described in
38
+ // JIS (Japanese Industrial Standards) X0510:2004
39
+ // or ISO/IEC 18004.
40
+ // Currently the following features are not supported:
41
+ // ECI and FNC1 mode, Micro QR Code, QR Code model 1,
42
+ // Structured mode.
43
+ //
44
+ // This class is derived from the following projects:
45
+ // ---------------------------------------------------------
46
+ // "PHP QR Code encoder"
47
+ // License: GNU-LGPLv3
48
+ // Copyright (C) 2010 by Dominik Dzienia <deltalab at poczta dot fm>
49
+ // http://phpqrcode.sourceforge.net/
50
+ // https://sourceforge.net/projects/phpqrcode/
51
+ //
52
+ // The "PHP QR Code encoder" is based on
53
+ // "C libqrencode library" (ver. 3.1.1)
54
+ // License: GNU-LGPL 2.1
55
+ // Copyright (C) 2006-2010 by Kentaro Fukuchi
56
+ // http://megaui.net/fukuchi/works/qrencode/index.en.html
57
+ //
58
+ // Reed-Solomon code encoder is written by Phil Karn, KA9Q.
59
+ // Copyright (C) 2002-2006 Phil Karn, KA9Q
60
+ //
61
+ // QR Code is registered trademark of DENSO WAVE INCORPORATED
62
+ // http://www.denso-wave.com/qrcode/index-e.html
63
+ // ---------------------------------------------------------
64
+ //============================================================+
65
+
66
+ /**
67
+ * @file
68
+ * Class to create QR-code arrays for TCPDF class.
69
+ * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD.
70
+ * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness.
71
+ * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004.
72
+ * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode.
73
+ *
74
+ * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html).
75
+ * Please read comments on this class source file for full copyright and license information.
76
+ *
77
+ * @package com.tecnick.tcpdf
78
+ * @author Nicola Asuni
79
+ * @version 1.0.010
80
+ */
81
+
82
+ // definitions
83
+ if (!defined('QRCODEDEFS')) {
84
+
85
+ /**
86
+ * Indicate that definitions for this class are set
87
+ */
88
+ define('QRCODEDEFS', true);
89
+
90
+ // -----------------------------------------------------
91
+
92
+ // Encoding modes (characters which can be encoded in QRcode)
93
+
94
+ /**
95
+ * Encoding mode
96
+ */
97
+ define('QR_MODE_NL', -1);
98
+
99
+ /**
100
+ * Encoding mode numeric (0-9). 3 characters are encoded to 10bit length. In theory, 7089 characters or less can