Commit e5689fe17daf6d75919155a598e64fe7497657e1

Authored by wdn127929
1 parent 61df77a1

短信测试

@@ -50,8 +50,12 @@ PODS: @@ -50,8 +50,12 @@ PODS:
50 - Flutter 50 - Flutter
51 - flutter_native_image (0.0.1): 51 - flutter_native_image (0.0.1):
52 - Flutter 52 - Flutter
  53 + - flutter_sms (1.1.0):
  54 + - Flutter
53 - flutter_statusbarcolor (0.0.1): 55 - flutter_statusbarcolor (0.0.1):
54 - Flutter 56 - Flutter
  57 + - flutter_user_agent (1.2.2):
  58 + - Flutter
55 - fluttertoast (0.0.2): 59 - fluttertoast (0.0.2):
56 - Flutter 60 - Flutter
57 - fluwx (0.0.1): 61 - fluwx (0.0.1):
@@ -116,7 +120,9 @@ DEPENDENCIES: @@ -116,7 +120,9 @@ DEPENDENCIES:
116 - flutter_app_update (from `.symlinks/plugins/flutter_app_update/ios`) 120 - flutter_app_update (from `.symlinks/plugins/flutter_app_update/ios`)
117 - flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`) 121 - flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`)
118 - flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`) 122 - flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`)
  123 + - flutter_sms (from `.symlinks/plugins/flutter_sms/ios`)
119 - flutter_statusbarcolor (from `.symlinks/plugins/flutter_statusbarcolor/ios`) 124 - flutter_statusbarcolor (from `.symlinks/plugins/flutter_statusbarcolor/ios`)
  125 + - flutter_user_agent (from `.symlinks/plugins/flutter_user_agent/ios`)
120 - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) 126 - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
121 - fluwx (from `.symlinks/plugins/fluwx/ios`) 127 - fluwx (from `.symlinks/plugins/fluwx/ios`)
122 - foundation_fluttify (from `.symlinks/plugins/foundation_fluttify/ios`) 128 - foundation_fluttify (from `.symlinks/plugins/foundation_fluttify/ios`)
@@ -180,8 +186,12 @@ EXTERNAL SOURCES: @@ -180,8 +186,12 @@ EXTERNAL SOURCES:
180 :path: ".symlinks/plugins/flutter_bugly/ios" 186 :path: ".symlinks/plugins/flutter_bugly/ios"
181 flutter_native_image: 187 flutter_native_image:
182 :path: ".symlinks/plugins/flutter_native_image/ios" 188 :path: ".symlinks/plugins/flutter_native_image/ios"
  189 + flutter_sms:
  190 + :path: ".symlinks/plugins/flutter_sms/ios"
183 flutter_statusbarcolor: 191 flutter_statusbarcolor:
184 :path: ".symlinks/plugins/flutter_statusbarcolor/ios" 192 :path: ".symlinks/plugins/flutter_statusbarcolor/ios"
  193 + flutter_user_agent:
  194 + :path: ".symlinks/plugins/flutter_user_agent/ios"
185 fluttertoast: 195 fluttertoast:
186 :path: ".symlinks/plugins/fluttertoast/ios" 196 :path: ".symlinks/plugins/fluttertoast/ios"
187 fluwx: 197 fluwx:
@@ -242,7 +252,9 @@ SPEC CHECKSUMS: @@ -242,7 +252,9 @@ SPEC CHECKSUMS:
242 flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc 252 flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc
243 flutter_bugly: c9800f4d5bc5bdc27ffdde3417a26ba44266e0c3 253 flutter_bugly: c9800f4d5bc5bdc27ffdde3417a26ba44266e0c3
244 flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe 254 flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe
  255 + flutter_sms: 91ce41530f55c85d6524d82307a5d555844c086a
245 flutter_statusbarcolor: 8afb1071ed8c58be929f1e32b36c629771fd2259 256 flutter_statusbarcolor: 8afb1071ed8c58be929f1e32b36c629771fd2259
  257 + flutter_user_agent: 27c45d034dc31b80948d29998cea52cd3a7bf936
246 fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b 258 fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b
247 fluwx: 07a55ed66bf3a4961e836a2a411b02dcada32902 259 fluwx: 07a55ed66bf3a4961e836a2a411b02dcada32902
248 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a 260 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
@@ -310,7 +310,9 @@ @@ -310,7 +310,9 @@
310 "${BUILT_PRODUCTS_DIR}/flutter_app_badger/flutter_app_badger.framework", 310 "${BUILT_PRODUCTS_DIR}/flutter_app_badger/flutter_app_badger.framework",
311 "${BUILT_PRODUCTS_DIR}/flutter_app_update/flutter_app_update.framework", 311 "${BUILT_PRODUCTS_DIR}/flutter_app_update/flutter_app_update.framework",
312 "${BUILT_PRODUCTS_DIR}/flutter_native_image/flutter_native_image.framework", 312 "${BUILT_PRODUCTS_DIR}/flutter_native_image/flutter_native_image.framework",
  313 + "${BUILT_PRODUCTS_DIR}/flutter_sms/flutter_sms.framework",
313 "${BUILT_PRODUCTS_DIR}/flutter_statusbarcolor/flutter_statusbarcolor.framework", 314 "${BUILT_PRODUCTS_DIR}/flutter_statusbarcolor/flutter_statusbarcolor.framework",
  315 + "${BUILT_PRODUCTS_DIR}/flutter_user_agent/flutter_user_agent.framework",
314 "${BUILT_PRODUCTS_DIR}/fluttertoast/fluttertoast.framework", 316 "${BUILT_PRODUCTS_DIR}/fluttertoast/fluttertoast.framework",
315 "${BUILT_PRODUCTS_DIR}/image_picker/image_picker.framework", 317 "${BUILT_PRODUCTS_DIR}/image_picker/image_picker.framework",
316 "${BUILT_PRODUCTS_DIR}/install_plugin/install_plugin.framework", 318 "${BUILT_PRODUCTS_DIR}/install_plugin/install_plugin.framework",
@@ -339,7 +341,9 @@ @@ -339,7 +341,9 @@
339 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_app_badger.framework", 341 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_app_badger.framework",
340 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_app_update.framework", 342 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_app_update.framework",
341 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_native_image.framework", 343 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_native_image.framework",
  344 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_sms.framework",
342 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_statusbarcolor.framework", 345 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_statusbarcolor.framework",
  346 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_user_agent.framework",
343 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/fluttertoast.framework", 347 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/fluttertoast.framework",
344 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker.framework", 348 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker.framework",
345 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/install_plugin.framework", 349 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/install_plugin.framework",
@@ -482,7 +486,7 @@ @@ -482,7 +486,7 @@
482 CURRENT_PROJECT_VERSION = 310; 486 CURRENT_PROJECT_VERSION = 310;
483 DEVELOPMENT_TEAM = 8J59HM8B82; 487 DEVELOPMENT_TEAM = 8J59HM8B82;
484 ENABLE_BITCODE = NO; 488 ENABLE_BITCODE = NO;
485 - FLUTTER_BUILD_MODE = release; 489 + FLUTTER_BUILD_MODE = debug;
486 FRAMEWORK_SEARCH_PATHS = ( 490 FRAMEWORK_SEARCH_PATHS = (
487 "$(inherited)", 491 "$(inherited)",
488 "$(PROJECT_DIR)/Flutter", 492 "$(PROJECT_DIR)/Flutter",
@@ -627,7 +631,7 @@ @@ -627,7 +631,7 @@
627 CURRENT_PROJECT_VERSION = 310; 631 CURRENT_PROJECT_VERSION = 310;
628 DEVELOPMENT_TEAM = 8J59HM8B82; 632 DEVELOPMENT_TEAM = 8J59HM8B82;
629 ENABLE_BITCODE = NO; 633 ENABLE_BITCODE = NO;
630 - FLUTTER_BUILD_MODE = release; 634 + FLUTTER_BUILD_MODE = debug;
631 FRAMEWORK_SEARCH_PATHS = ( 635 FRAMEWORK_SEARCH_PATHS = (
632 "$(inherited)", 636 "$(inherited)",
633 "$(PROJECT_DIR)/Flutter", 637 "$(PROJECT_DIR)/Flutter",
@@ -662,7 +666,7 @@ @@ -662,7 +666,7 @@
662 CURRENT_PROJECT_VERSION = 310; 666 CURRENT_PROJECT_VERSION = 310;
663 DEVELOPMENT_TEAM = 8J59HM8B82; 667 DEVELOPMENT_TEAM = 8J59HM8B82;
664 ENABLE_BITCODE = NO; 668 ENABLE_BITCODE = NO;
665 - FLUTTER_BUILD_MODE = release; 669 + FLUTTER_BUILD_MODE = debug;
666 FRAMEWORK_SEARCH_PATHS = ( 670 FRAMEWORK_SEARCH_PATHS = (
667 "$(inherited)", 671 "$(inherited)",
668 "$(PROJECT_DIR)/Flutter", 672 "$(PROJECT_DIR)/Flutter",
  1 +import 'dart:io';
  2 +
1 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
2 import 'package:flutter_easyrefresh/easy_refresh.dart'; 4 import 'package:flutter_easyrefresh/easy_refresh.dart';
3 import 'package:flutter_screenutil/screenutil.dart'; 5 import 'package:flutter_screenutil/screenutil.dart';
@@ -18,6 +20,8 @@ import 'package:one_key/widgets/system_app_bar.dart'; @@ -18,6 +20,8 @@ import 'package:one_key/widgets/system_app_bar.dart';
18 import 'package:one_key/widgets/v_empty_view.dart'; 20 import 'package:one_key/widgets/v_empty_view.dart';
19 import 'package:provider/provider.dart'; 21 import 'package:provider/provider.dart';
20 import 'package:sendsms/sendsms.dart'; 22 import 'package:sendsms/sendsms.dart';
  23 +// import 'package:sendsms/sendsms.dart';
  24 +import 'package:flutter_sms/flutter_sms.dart';
21 25
22 class CouponSelectPage extends StatefulWidget { 26 class CouponSelectPage extends StatefulWidget {
23 final String from; 27 final String from;
@@ -236,19 +240,44 @@ class _CouponSelectPageState extends State<CouponSelectPage> { @@ -236,19 +240,44 @@ class _CouponSelectPageState extends State<CouponSelectPage> {
236 child: RoundButton( 240 child: RoundButton(
237 onPressed: () async { 241 onPressed: () async {
238 if (widget.from == 'statistics') { 242 if (widget.from == 'statistics') {
239 - /*** 发版注释 243 + /*** 发版注释
240 DialogUtil.cupertinoAlertDialog(context, 244 DialogUtil.cupertinoAlertDialog(context,
241 title: '确认发送', 245 title: '确认发送',
242 content: '是否确定为当前所选顾客发送该优惠券', lCallback: () { 246 content: '是否确定为当前所选顾客发送该优惠券', lCallback: () {
243 print('取消发送'); 247 print('取消发送');
244 }, rCallback: () async { 248 }, rCallback: () async {
245 - print('确定发送');  
246 - SmsModel smsModel = new SmsModel();  
247 - // String sms = await smsModel.getSmsContent(context, params);  
248 - String phoneNumber = "";  
249 - await Sendsms.onSendSMS(phoneNumber, '短信内容'); 249 + if (Platform.isIOS) {
  250 + List<String> phoneNumber = [
  251 + '18161963378',
  252 + '18729572142',
  253 + '18765432345'
  254 + ];
  255 + String message = "test";
  256 + try {
  257 + String _result = await sendSMS(
  258 + message: message, recipients: phoneNumber);
  259 + print(_result);
  260 + } catch (error) {
  261 + print(error.toString());
  262 + }
  263 + } else {
  264 + print('确定发送');
  265 + String phoneNumber = "18161963378;18729572142";
  266 + String message = "test";
  267 +
  268 + // await Sendsms.onGetPermission();
  269 +
  270 + // if (await Sendsms.hasPermission()) {
  271 + await Sendsms.onSendSMS(phoneNumber, message);
  272 + }
  273 +
  274 + // }
  275 + // SmsModel smsModel = new SmsModel();
  276 + // // String sms = await smsModel.getSmsContent(context, params);
  277 + // String phoneNumber = "";
  278 + // await Sendsms.onSendSMS(phoneNumber, '短信内容');
250 }); 279 });
251 - */ 280 + */
252 } else { 281 } else {
253 Navigator.pop(context); 282 Navigator.pop(context);
254 } 283 }
@@ -92,13 +92,7 @@ class _MenuCategoryPageState extends State<MenuCategoryPage> { @@ -92,13 +92,7 @@ class _MenuCategoryPageState extends State<MenuCategoryPage> {
92 height: double.infinity, 92 height: double.infinity,
93 child: Row( 93 child: Row(
94 children: [ 94 children: [
95 - /*** 发版注释  
96 - Image.asset(  
97 - Utils.getImgPath(model.select ? 'select' : 'unselect'),  
98 - width: ScreenUtil().setWidth(34),  
99 - height: ScreenUtil().setWidth(34),  
100 - ),  
101 - */ 95 +
102 // HEmptyView(20), 96 // HEmptyView(20),
103 Expanded( 97 Expanded(
104 child: Text( 98 child: Text(
@@ -7,6 +7,7 @@ import 'package:one_key/models/statics_model.dart'; @@ -7,6 +7,7 @@ import 'package:one_key/models/statics_model.dart';
7 import 'package:one_key/provider/statistics_provider.dart'; 7 import 'package:one_key/provider/statistics_provider.dart';
8 import 'package:one_key/provider/user_model.dart'; 8 import 'package:one_key/provider/user_model.dart';
9 import 'package:one_key/res/colors.dart'; 9 import 'package:one_key/res/colors.dart';
  10 +import 'package:one_key/route/navigator_util.dart';
10 import 'package:one_key/utils/dialog_util.dart'; 11 import 'package:one_key/utils/dialog_util.dart';
11 import 'package:one_key/utils/utils.dart'; 12 import 'package:one_key/utils/utils.dart';
12 import 'package:one_key/widgets/h_empty_view.dart'; 13 import 'package:one_key/widgets/h_empty_view.dart';
@@ -212,14 +213,13 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -212,14 +213,13 @@ class _StatisticsPageState extends State<StatisticsPage> {
212 border: Border.all( 213 border: Border.all(
213 color: MyColours.color_cccccc, 214 color: MyColours.color_cccccc,
214 width: ScreenUtil().setWidth(2))), 215 width: ScreenUtil().setWidth(2))),
215 - width: ScreenUtil().setWidth(136 * 2), 216 + width: ScreenUtil().setWidth(130 * 2),
216 // constraints: BoxConstraints( 217 // constraints: BoxConstraints(
217 // maxHeight: ScreenUtil().setWidth(130 * 2), 218 // maxHeight: ScreenUtil().setWidth(130 * 2),
218 // ), 219 // ),
219 child: ListView.builder( 220 child: ListView.builder(
220 shrinkWrap: true, 221 shrinkWrap: true,
221 - padding:  
222 - EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(20)), 222 + padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(8)),
223 itemCount: data.length, 223 itemCount: data.length,
224 itemBuilder: (context, index) { 224 itemBuilder: (context, index) {
225 return InkWell( 225 return InkWell(
@@ -385,7 +385,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -385,7 +385,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
385 model.needAllSel(); 385 model.needAllSel();
386 }); 386 });
387 })), 387 })),
388 - /** 发版注释 388 + /** 发版注释
389 Container( 389 Container(
390 alignment: Alignment.centerRight, 390 alignment: Alignment.centerRight,
391 height: ScreenUtil().setWidth(42 * 2), 391 height: ScreenUtil().setWidth(42 * 2),
@@ -470,7 +470,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -470,7 +470,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
470 }), 470 }),
471 Padding( 471 Padding(
472 padding: 472 padding:
473 - EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)), 473 + EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(20)),
474 child: Container( 474 child: Container(
475 // height: ScreenUtil().setWidth(100), 475 // height: ScreenUtil().setWidth(100),
476 // color: Colors.red, 476 // color: Colors.red,
@@ -574,7 +574,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -574,7 +574,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
574 child: Row( 574 child: Row(
575 children: [ 575 children: [
576 Container( 576 Container(
577 - width: ScreenUtil().setWidth(85 * 2), 577 + width: ScreenUtil().setWidth(60 * 2),
578 height: double.infinity, 578 height: double.infinity,
579 decoration: BoxDecoration( 579 decoration: BoxDecoration(
580 border: Border( 580 border: Border(
@@ -589,7 +589,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -589,7 +589,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
589 width: ScreenUtil().setWidth(34), 589 width: ScreenUtil().setWidth(34),
590 height: ScreenUtil().setWidth(34), 590 height: ScreenUtil().setWidth(34),
591 ), 591 ),
592 - */ 592 + */
593 // HEmptyView(20), 593 // HEmptyView(20),
594 Expanded( 594 Expanded(
595 child: Text( 595 child: Text(
@@ -599,7 +599,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -599,7 +599,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
599 fontSize: ScreenUtil().setSp(28), 599 fontSize: ScreenUtil().setSp(28),
600 color: MyColours.color_333333), 600 color: MyColours.color_333333),
601 )), 601 )),
602 - HEmptyView(30), 602 + // HEmptyView(30),
603 ], 603 ],
604 ), 604 ),
605 ), 605 ),
@@ -613,7 +613,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -613,7 +613,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
613 width: ScreenUtil().setWidth(2), 613 width: ScreenUtil().setWidth(2),
614 color: MyColours.color_f5f5f5))), 614 color: MyColours.color_f5f5f5))),
615 child: Text( 615 child: Text(
616 - model.rname, 616 + model.rname == null ? '' : model.rname,
617 style: TextStyle( 617 style: TextStyle(
618 fontSize: ScreenUtil().setSp(28), 618 fontSize: ScreenUtil().setSp(28),
619 color: MyColours.color_333333), 619 color: MyColours.color_333333),
@@ -628,7 +628,7 @@ class _StatisticsPageState extends State<StatisticsPage> { @@ -628,7 +628,7 @@ class _StatisticsPageState extends State<StatisticsPage> {
628 width: ScreenUtil().setWidth(2), 628 width: ScreenUtil().setWidth(2),
629 color: MyColours.color_f5f5f5))), 629 color: MyColours.color_f5f5f5))),
630 child: Text( 630 child: Text(
631 - model.phone, 631 + model.phone == null ? '' : model.phone,
632 style: TextStyle( 632 style: TextStyle(
633 fontSize: ScreenUtil().setSp(28), 633 fontSize: ScreenUtil().setSp(28),
634 color: MyColours.color_333333), 634 color: MyColours.color_333333),
@@ -1530,17 +1530,17 @@ class DialogUtil { @@ -1530,17 +1530,17 @@ class DialogUtil {
1530 // } 1530 // }
1531 1531
1532 // if (holidays.isNotEmpty) { 1532 // if (holidays.isNotEmpty) {
1533 - children.add(  
1534 - Positioned(  
1535 - right: ScreenUtil().setWidth(27),  
1536 - bottom: 0,  
1537 - top: ScreenUtil().setWidth(30),  
1538 - child: buildMarker(date)), 1533 + // children.add(
  1534 + // Positioned(
  1535 + // right: ScreenUtil().setWidth(27),
  1536 + // bottom: 0,
  1537 + // top: ScreenUtil().setWidth(30),
  1538 + // child: buildMarker(date)),
1539 // Align( 1539 // Align(
1540 // alignment: Alignment.bottomCenter, 1540 // alignment: Alignment.bottomCenter,
1541 // child: buildMarker(date), 1541 // child: buildMarker(date),
1542 // ) 1542 // )
1543 - ); 1543 + // );
1544 // } 1544 // }
1545 1545
1546 return []; 1546 return [];
@@ -30,460 +30,459 @@ import '../app.dart'; @@ -30,460 +30,459 @@ import '../app.dart';
30 typedef BookTimeSetCallback = void Function(bool needChange); 30 typedef BookTimeSetCallback = void Function(bool needChange);
31 const int START_YEAR = 1901; 31 const int START_YEAR = 1901;
32 const int END_YEAR = 2050; 32 const int END_YEAR = 2050;
  33 +const List gLunarHolDay = [
  34 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  35 + 0X77, //1901
33 36
34 -class Utils {  
35 - static List gLunarHolDay = [  
36 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
37 - 0X77, //1901  
38 -  
39 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,  
40 - 0X78, //1902 37 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,
  38 + 0X78, //1902
41 39
42 - 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,  
43 - 0X78, //1903 40 + 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,
  41 + 0X78, //1903
44 42
45 - 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,  
46 - 0X87, //1904 43 + 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,
  44 + 0X87, //1904
47 45
48 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
49 - 0X77, //1905 46 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  47 + 0X77, //1905
50 48
51 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
52 - 0X78, //1906 49 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  50 + 0X78, //1906
53 51
54 - 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,  
55 - 0X78, //1907 52 + 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,
  53 + 0X78, //1907
56 54
57 - 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
58 - 0X87, //1908 55 + 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  56 + 0X87, //1908
59 57
60 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
61 - 0X77, //1909 58 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  59 + 0X77, //1909
62 60
63 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
64 - 0X78, //1910 61 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  62 + 0X78, //1910
65 63
66 - 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,  
67 - 0X78, //1911 64 + 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,
  65 + 0X78, //1911
68 66
69 - 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
70 - 0X87, //1912 67 + 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  68 + 0X87, //1912
71 69
72 - 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
73 - 0X77, //1913 70 + 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  71 + 0X77, //1913
74 72
75 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
76 - 0X78, //1914 73 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  74 + 0X78, //1914
77 75
78 - 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,  
79 - 0X78, //1915 76 + 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,
  77 + 0X78, //1915
80 78
81 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
82 - 0X87, //1916 79 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  80 + 0X87, //1916
83 81
84 - 0X95, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
85 - 0X87, //1917 82 + 0X95, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  83 + 0X87, //1917
86 84
87 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
88 - 0X77, //1918 85 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  86 + 0X77, //1918
89 87
90 - 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,  
91 - 0X78, //1919 88 + 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,
  89 + 0X78, //1919
92 90
93 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
94 - 0X87, //1920 91 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  92 + 0X87, //1920
95 93
96 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
97 - 0X87, //1921 94 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  95 + 0X87, //1921
98 96
99 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
100 - 0X77, //1922 97 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  98 + 0X77, //1922
101 99
102 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,  
103 - 0X78, //1923 100 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,
  101 + 0X78, //1923
104 102
105 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
106 - 0X87, //1924 103 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  104 + 0X87, //1924
107 105
108 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
109 - 0X87, //1925 106 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  107 + 0X87, //1925
110 108
111 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
112 - 0X77, //1926 109 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  110 + 0X77, //1926
113 111
114 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,  
115 - 0X78, //1927 112 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,
  113 + 0X78, //1927
116 114
117 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
118 - 0X87, //1928 115 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  116 + 0X87, //1928
119 117
120 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
121 - 0X87, //1929 118 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  119 + 0X87, //1929
122 120
123 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
124 - 0X77, //1930 121 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  122 + 0X77, //1930
125 123
126 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,  
127 - 0X78, //1931 124 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,
  125 + 0X78, //1931
128 126
129 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
130 - 0X87, //1932 127 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  128 + 0X87, //1932
131 129
132 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
133 - 0X87, //1933 130 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  131 + 0X87, //1933
134 132
135 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
136 - 0X77, //1934 133 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  134 + 0X77, //1934
137 135
138 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
139 - 0X78, //1935 136 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  137 + 0X78, //1935
140 138
141 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
142 - 0X87, //1936 139 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  140 + 0X87, //1936
143 141
144 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
145 - 0X87, //1937 142 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  143 + 0X87, //1937
146 144
147 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
148 - 0X77, //1938 145 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  146 + 0X77, //1938
149 147
150 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
151 - 0X78, //1939 148 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  149 + 0X78, //1939
152 150
153 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
154 - 0X87, //1940 151 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  152 + 0X87, //1940
155 153
156 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
157 - 0X87, //1941 154 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  155 + 0X87, //1941
158 156
159 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
160 - 0X77, //1942 157 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  158 + 0X77, //1942
161 159
162 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
163 - 0X78, //1943 160 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  161 + 0X78, //1943
164 162
165 - 0X96, 0XA5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
166 - 0X87, //1944 163 + 0X96, 0XA5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  164 + 0X87, //1944
167 165
168 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
169 - 0X87, //1945 166 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  167 + 0X87, //1945
170 168
171 - 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
172 - 0X77, //1946 169 + 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  170 + 0X77, //1946
173 171
174 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
175 - 0X78, //1947 172 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  173 + 0X78, //1947
176 174
177 - 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
178 - 0X87, //1948 175 + 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  176 + 0X87, //1948
179 177
180 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X79, 0X77,  
181 - 0X87, //1949 178 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X79, 0X77,
  179 + 0X87, //1949
182 180
183 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
184 - 0X77, //1950 181 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  182 + 0X77, //1950
185 183
186 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
187 - 0X78, //1951 184 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  185 + 0X78, //1951
188 186
189 - 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
190 - 0X87, //1952 187 + 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  188 + 0X87, //1952
191 189
192 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
193 - 0X87, //1953 190 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  191 + 0X87, //1953
194 192
195 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X68, 0X78,  
196 - 0X87, //1954 193 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X68, 0X78,
  194 + 0X87, //1954
197 195
198 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
199 - 0X77, //1955 196 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  197 + 0X77, //1955
200 198
201 - 0X96, 0XA5, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
202 - 0X87, //1956 199 + 0X96, 0XA5, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  200 + 0X87, //1956
203 201
204 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
205 - 0X87, //1957 202 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  203 + 0X87, //1957
206 204
207 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
208 - 0X87, //1958 205 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  206 + 0X87, //1958
209 207
210 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
211 - 0X77, //1959 208 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  209 + 0X77, //1959
212 210
213 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
214 - 0X87, //1960 211 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  212 + 0X87, //1960
215 213
216 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
217 - 0X87, //1961 214 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  215 + 0X87, //1961
218 216
219 - 0X96, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
220 - 0X87, //1962 217 + 0X96, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  218 + 0X87, //1962
221 219
222 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
223 - 0X77, //1963 220 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  221 + 0X77, //1963
224 222
225 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
226 - 0X87, //1964 223 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  224 + 0X87, //1964
227 225
228 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
229 - 0X87, //1965 226 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  227 + 0X87, //1965
230 228
231 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
232 - 0X87, //1966 229 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  230 + 0X87, //1966
233 231
234 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
235 - 0X77, //1967 232 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  233 + 0X77, //1967
236 234
237 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
238 - 0X87, //1968 235 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  236 + 0X87, //1968
239 237
240 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
241 - 0X87, //1969 238 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  239 + 0X87, //1969
242 240
243 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
244 - 0X87, //1970 241 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  242 + 0X87, //1970
245 243
246 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
247 - 0X77, //1971 244 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  245 + 0X77, //1971
248 246
249 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
250 - 0X87, //1972 247 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  248 + 0X87, //1972
251 249
252 - 0XA5, 0XB5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
253 - 0X87, //1973 250 + 0XA5, 0XB5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  251 + 0X87, //1973
254 252
255 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
256 - 0X87, //1974 253 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  254 + 0X87, //1974
257 255
258 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
259 - 0X77, //1975 256 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  257 + 0X77, //1975
260 258
261 - 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X89, 0X88, 0X78, 0X87,  
262 - 0X87, //1976 259 + 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X89, 0X88, 0X78, 0X87,
  260 + 0X87, //1976
263 261
264 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
265 - 0X87, //1977 262 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  263 + 0X87, //1977
266 264
267 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,  
268 - 0X87, //1978 265 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,
  266 + 0X87, //1978
269 267
270 - 0X96, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
271 - 0X77, //1979 268 + 0X96, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  269 + 0X77, //1979
272 270
273 - 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
274 - 0X87, //1980 271 + 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  272 + 0X87, //1980
275 273
276 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X77,  
277 - 0X87, //1981 274 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X77,
  275 + 0X87, //1981
278 276
279 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
280 - 0X87, //1982 277 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  278 + 0X87, //1982
281 279
282 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
283 - 0X77, //1983 280 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  281 + 0X77, //1983
284 282
285 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
286 - 0X87, //1984 283 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  284 + 0X87, //1984
287 285
288 - 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
289 - 0X87, //1985 286 + 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  287 + 0X87, //1985
290 288
291 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
292 - 0X87, //1986 289 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  290 + 0X87, //1986
293 291
294 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X69, 0X78,  
295 - 0X87, //1987 292 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X69, 0X78,
  293 + 0X87, //1987
296 294
297 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
298 - 0X86, //1988 295 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  296 + 0X86, //1988
299 297
300 - 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
301 - 0X87, //1989 298 + 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  299 + 0X87, //1989
302 300
303 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,  
304 - 0X87, //1990 301 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,
  302 + 0X87, //1990
305 303
306 - 0X95, 0XB4, 0X96, 0XA5, 0X86, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
307 - 0X87, //1991 304 + 0X95, 0XB4, 0X96, 0XA5, 0X86, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  305 + 0X87, //1991
308 306
309 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
310 - 0X86, //1992 307 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  308 + 0X86, //1992
311 309
312 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
313 - 0X87, //1993 310 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  311 + 0X87, //1993
314 312
315 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
316 - 0X87, //1994 313 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  314 + 0X87, //1994
317 315
318 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X76, 0X78, 0X69, 0X78,  
319 - 0X87, //1995 316 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X76, 0X78, 0X69, 0X78,
  317 + 0X87, //1995
320 318
321 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
322 - 0X86, //1996 319 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  320 + 0X86, //1996
323 321
324 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
325 - 0X87, //1997 322 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  323 + 0X87, //1997
326 324
327 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
328 - 0X87, //1998 325 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  326 + 0X87, //1998
329 327
330 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
331 - 0X87, //1999 328 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  329 + 0X87, //1999
332 330
333 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
334 - 0X86, //2000 331 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  332 + 0X86, //2000
335 333
336 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
337 - 0X87, //2001 334 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  335 + 0X87, //2001
338 336
339 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
340 - 0X87, //2002 337 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  338 + 0X87, //2002
341 339
342 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
343 - 0X87, //2003 340 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  341 + 0X87, //2003
344 342
345 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
346 - 0X86, //2004 343 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  344 + 0X86, //2004
347 345
348 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
349 - 0X87, //2005 346 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  347 + 0X87, //2005
350 348
351 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
352 - 0X87, //2006 349 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  350 + 0X87, //2006
353 351
354 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
355 - 0X87, //2007 352 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  353 + 0X87, //2007
356 354
357 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
358 - 0X86, //2008 355 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  356 + 0X86, //2008
359 357
360 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
361 - 0X87, //2009 358 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  359 + 0X87, //2009
362 360
363 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
364 - 0X87, //2010 361 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  362 + 0X87, //2010
365 363
366 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,  
367 - 0X87, //2011 364 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,
  365 + 0X87, //2011
368 366
369 - 0X96, 0XB4, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
370 - 0X86, //2012 367 + 0X96, 0XB4, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  368 + 0X86, //2012
371 369
372 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
373 - 0X87, //2013 370 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  371 + 0X87, //2013
374 372
375 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
376 - 0X87, //2014 373 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  374 + 0X87, //2014
377 375
378 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
379 - 0X87, //2015 376 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  377 + 0X87, //2015
380 378
381 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
382 - 0X86, //2016 379 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  380 + 0X86, //2016
383 381
384 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
385 - 0X87, //2017 382 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  383 + 0X87, //2017
386 384
387 - 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
388 - 0X87, //2018 385 + 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  386 + 0X87, //2018
389 387
390 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,  
391 - 0X87, //2019 388 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,
  389 + 0X87, //2019
392 390
393 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
394 - 0X86, //2020 391 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  392 + 0X86, //2020
395 393
396 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
397 - 0X86, //2021 394 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  395 + 0X86, //2021
398 396
399 - 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
400 - 0X87, //2022 397 + 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  398 + 0X87, //2022
401 399
402 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,  
403 - 0X87, //2023 400 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,
  401 + 0X87, //2023
404 402
405 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
406 - 0X96, //2024 403 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  404 + 0X96, //2024
407 405
408 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
409 - 0X86, //2025 406 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  407 + 0X86, //2025
410 408
411 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
412 - 0X87, //2026 409 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  410 + 0X87, //2026
413 411
414 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
415 - 0X87, //2027 412 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  413 + 0X87, //2027
416 414
417 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
418 - 0X96, //2028 415 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  416 + 0X96, //2028
419 417
420 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
421 - 0X86, //2029 418 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  419 + 0X86, //2029
422 420
423 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
424 - 0X87, //2030 421 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  422 + 0X87, //2030
425 423
426 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
427 - 0X87, //2031 424 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  425 + 0X87, //2031
428 426
429 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
430 - 0X96, //2032 427 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  428 + 0X96, //2032
431 429
432 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
433 - 0X86, //2033 430 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  431 + 0X86, //2033
434 432
435 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X78, 0X88, 0X78, 0X87,  
436 - 0X87, //2034 433 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X78, 0X88, 0X78, 0X87,
  434 + 0X87, //2034
437 435
438 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
439 - 0X87, //2035 436 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  437 + 0X87, //2035
440 438
441 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
442 - 0X96, //2036 439 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  440 + 0X96, //2036
443 441
444 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
445 - 0X86, //2037 442 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  443 + 0X86, //2037
446 444
447 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
448 - 0X87, //2038 445 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  446 + 0X87, //2038
449 447
450 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
451 - 0X87, //2039 448 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  449 + 0X87, //2039
452 450
453 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
454 - 0X96, //2040 451 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  452 + 0X96, //2040
455 453
456 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
457 - 0X86, //2041 454 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  455 + 0X86, //2041
458 456
459 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
460 - 0X87, //2042 457 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  458 + 0X87, //2042
461 459
462 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
463 - 0X87, //2043 460 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  461 + 0X87, //2043
464 462
465 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X88, 0X87,  
466 - 0X96, //2044 463 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X88, 0X87,
  464 + 0X96, //2044
467 465
468 - 0XA5, 0XC3, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
469 - 0X86, //2045 466 + 0XA5, 0XC3, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  467 + 0X86, //2045
470 468
471 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
472 - 0X87, //2046 469 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  470 + 0X87, //2046
473 471
474 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
475 - 0X87, //2047 472 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  473 + 0X87, //2047
476 474
477 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA5, 0X97, 0X87, 0X87, 0X88, 0X86,  
478 - 0X96, //2048 475 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA5, 0X97, 0X87, 0X87, 0X88, 0X86,
  476 + 0X96, //2048
479 477
480 - 0XA4, 0XC3, 0XA5, 0XA5, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
481 - 0X86, //2049 478 + 0XA4, 0XC3, 0XA5, 0XA5, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  479 + 0X86, //2049
482 480
483 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X78, 0X78, 0X87,  
484 - 0X87 //2050  
485 - ]; 481 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X78, 0X78, 0X87,
  482 + 0X87 //2050
  483 +];
486 484
  485 +class Utils {
487 static String getLunarSpecialDate(DateTime dateTime) { 486 static String getLunarSpecialDate(DateTime dateTime) {
488 String _day = ''; 487 String _day = '';
489 int iYear = dateTime.year; 488 int iYear = dateTime.year;
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="com.emsoluciones.app.sendsms"> 2 package="com.emsoluciones.app.sendsms">
3 - <!-- <uses-permission android:name="android.permission.SEND_SMS"/> 发版注释--> 3 + <!-- <uses-permission android:name="android.permission.SEND_SMS"/> 发版注释 -->
4 </manifest> 4 </manifest>
@@ -50,7 +50,7 @@ public class SendsmsPlugin implements MethodCallHandler { @@ -50,7 +50,7 @@ public class SendsmsPlugin implements MethodCallHandler {
50 } else if (call.method.equals("sendSMS")) { 50 } else if (call.method.equals("sendSMS")) {
51 String phoneNumber = call.argument("phoneNumber").toString(); 51 String phoneNumber = call.argument("phoneNumber").toString();
52 String message = call.argument("message").toString(); 52 String message = call.argument("message").toString();
53 - String uri = "sms:?body="+message; 53 + String uri = "sms:"+phoneNumber+"?body="+message;
54 Intent launchIntent = 54 Intent launchIntent =
55 new Intent(Intent.ACTION_VIEW) 55 new Intent(Intent.ACTION_VIEW)
56 .setData(Uri.parse(uri)); 56 .setData(Uri.parse(uri));
1 #import <Flutter/Flutter.h> 1 #import <Flutter/Flutter.h>
  2 +#import <MessageUI/MessageUI.h>
2 3
3 -@interface SendsmsPlugin : NSObject<FlutterPlugin> 4 +
  5 +@interface SendsmsPlugin : NSObject<FlutterPlugin,MFMessageComposeViewControllerDelegate>
4 @end 6 @end
@@ -28,9 +28,9 @@ @@ -28,9 +28,9 @@
28 } 28 }
29 }else if([@"getPermission" isEqualToString:call.method]) { 29 }else if([@"getPermission" isEqualToString:call.method]) {
30 30
31 - // result(true); 31 +// result(true);
32 }else if([@"hasPermission" isEqualToString:call.method]){ 32 }else if([@"hasPermission" isEqualToString:call.method]){
33 - // result(true); 33 +// result(true);
34 } 34 }
35 else { 35 else {
36 result(FlutterMethodNotImplemented); 36 result(FlutterMethodNotImplemented);
@@ -419,6 +419,13 @@ packages: @@ -419,6 +419,13 @@ packages:
419 url: "https://pub.flutter-io.cn" 419 url: "https://pub.flutter-io.cn"
420 source: hosted 420 source: hosted
421 version: "1.1.0" 421 version: "1.1.0"
  422 + flutter_sms:
  423 + dependency: "direct main"
  424 + description:
  425 + name: flutter_sms
  426 + url: "https://pub.flutter-io.cn"
  427 + source: hosted
  428 + version: "2.1.1"
422 flutter_staggered_grid_view: 429 flutter_staggered_grid_view:
423 dependency: "direct main" 430 dependency: "direct main"
424 description: 431 description:
@@ -438,6 +445,13 @@ packages: @@ -438,6 +445,13 @@ packages:
438 description: flutter 445 description: flutter
439 source: sdk 446 source: sdk
440 version: "0.0.0" 447 version: "0.0.0"
  448 + flutter_user_agent:
  449 + dependency: transitive
  450 + description:
  451 + name: flutter_user_agent
  452 + url: "https://pub.flutter-io.cn"
  453 + source: hosted
  454 + version: "1.2.2"
441 flutter_web_plugins: 455 flutter_web_plugins:
442 dependency: transitive 456 dependency: transitive
443 description: flutter 457 description: flutter
@@ -91,6 +91,7 @@ dependencies: @@ -91,6 +91,7 @@ dependencies:
91 package_info: ^0.4.0+18 91 package_info: ^0.4.0+18
92 # 获取设备信息 92 # 获取设备信息
93 device_info: ^0.4.2+4 93 device_info: ^0.4.2+4
  94 + flutter_sms: ^2.1.1
94 95
95 96
96 # 获取通讯录 97 # 获取通讯录
@@ -142,6 +143,7 @@ dependencies: @@ -142,6 +143,7 @@ dependencies:
142 path: library/webview_flutter-2.0.13-copy_inappwebview_select_file_20210930 143 path: library/webview_flutter-2.0.13-copy_inappwebview_select_file_20210930
143 sendsms: 144 sendsms:
144 path: library/sendsms-1.0.3 145 path: library/sendsms-1.0.3
  146 + # sendsms: ^1.0.3
145 147
146 148
147 149