feat: Initialize project with core dependencies, Vultr API client, customer database service, and migration documentation.

This commit is contained in:
2026-02-06 18:11:28 +08:00
parent 73366f4395
commit 41c2fa5fcc
2618 changed files with 852274 additions and 1449 deletions

View File

@@ -0,0 +1,104 @@
#
# TABLE STRUCTURE FOR: role_management
#
DROP TABLE IF EXISTS `role_management`;
CREATE TABLE `role_management` (
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`show_customer` int(11) NOT NULL,
`add_customer` int(11) NOT NULL,
`edit_customer` int(11) NOT NULL,
`del_customer` int(11) NOT NULL,
`show_item` int(11) NOT NULL,
`add_item` int(11) NOT NULL,
`edit_item` int(11) NOT NULL,
`del_item` int(11) NOT NULL,
`show_bill` int(11) NOT NULL,
`add_bill` int(11) NOT NULL,
`del_bill` int(11) NOT NULL,
`show_coverage` int(11) NOT NULL,
`add_coverage` int(11) NOT NULL,
`edit_coverage` int(11) NOT NULL,
`del_coverage` int(11) NOT NULL,
`coverage_operator` int(11) NOT NULL,
`show_slide` int(11) NOT NULL,
`add_slide` int(11) NOT NULL,
`edit_slide` int(11) NOT NULL,
`del_slide` int(11) NOT NULL,
`show_router` int(11) NOT NULL,
`add_router` int(11) NOT NULL,
`edit_router` int(11) NOT NULL,
`del_router` int(11) NOT NULL,
`show_saldo` int(11) NOT NULL,
`show_income` int(11) NOT NULL,
`add_income` int(11) NOT NULL,
`edit_income` int(11) NOT NULL,
`del_income` int(11) NOT NULL,
`show_user` int(11) NOT NULL,
`edit_user` int(11) NOT NULL,
`del_user` int(11) NOT NULL,
`add_user` int(11) NOT NULL,
`show_product` int(11) NOT NULL,
`add_product` int(11) NOT NULL,
`edit_product` int(11) NOT NULL,
`del_product` int(11) NOT NULL,
`show_usage` int(11) NOT NULL,
`show_history` int(11) NOT NULL,
`show_speedtest` int(11) NOT NULL,
`show_log` int(11) NOT NULL,
`cek_bill` int(11) NOT NULL,
`cek_usage` int(11) NOT NULL,
`show_help` int(11) NOT NULL,
`edit_help` int(11) NOT NULL,
`del_help` int(11) NOT NULL,
`add_help` int(11) NOT NULL,
`register_coverage` int(11) NOT NULL,
`register_maps` int(11) NOT NULL,
`register_show` int(11) NOT NULL,
`coverage_teknisi` int(11) NOT NULL,
`customer_free` int(11) NOT NULL,
`customer_isolir` int(11) NOT NULL,
`edit_bill` int(11) NOT NULL,
`pay_bill` int(11) NOT NULL,
`confirm_bill` int(11) NOT NULL,
`add_odc` int(11) NOT NULL,
`edit_odc` int(11) NOT NULL,
`del_odc` int(11) NOT NULL,
`add_odp` int(11) NOT NULL,
`edit_odp` int(11) NOT NULL,
`del_odp` int(11) NOT NULL,
`add_midi` int(11) NOT NULL,
`edit_midi` int(11) NOT NULL,
`del_midi` int(11) NOT NULL,
`add_voip` int(11) NOT NULL,
`edit_voip` int(11) NOT NULL,
`del_voip` int(11) NOT NULL,
`add_gsm` int(11) NOT NULL,
`edit_gsm` int(11) NOT NULL,
`del_gsm` int(11) NOT NULL,
`add_item_inventori` int(11) NOT NULL,
`edit_item_inventori` int(11) NOT NULL,
`del_item_inventori` int(11) NOT NULL,
`add_vendor` int(11) NOT NULL,
`edit_vendor` int(11) NOT NULL,
`del_vendor` int(11) NOT NULL,
`show_traffic` int(11) NOT NULL,
`add_doc` int(11) NOT NULL,
`edit_doc` int(11) NOT NULL,
`del_doc` int(11) NOT NULL,
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (3, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `role_management` (`role_id`, `show_customer`, `add_customer`, `edit_customer`, `del_customer`, `show_item`, `add_item`, `edit_item`, `del_item`, `show_bill`, `add_bill`, `del_bill`, `show_coverage`, `add_coverage`, `edit_coverage`, `del_coverage`, `coverage_operator`, `show_slide`, `add_slide`, `edit_slide`, `del_slide`, `show_router`, `add_router`, `edit_router`, `del_router`, `show_saldo`, `show_income`, `add_income`, `edit_income`, `del_income`, `show_user`, `edit_user`, `del_user`, `add_user`, `show_product`, `add_product`, `edit_product`, `del_product`, `show_usage`, `show_history`, `show_speedtest`, `show_log`, `cek_bill`, `cek_usage`, `show_help`, `edit_help`, `del_help`, `add_help`, `register_coverage`, `register_maps`, `register_show`, `coverage_teknisi`, `customer_free`, `customer_isolir`, `edit_bill`, `pay_bill`, `confirm_bill`, `add_odc`, `edit_odc`, `del_odc`, `add_odp`, `edit_odp`, `del_odp`, `add_midi`, `edit_midi`, `del_midi`, `add_voip`, `edit_voip`, `del_voip`, `add_gsm`, `edit_gsm`, `del_gsm`, `add_item_inventori`, `edit_item_inventori`, `del_item_inventori`, `add_vendor`, `edit_vendor`, `del_vendor`, `show_traffic`, `add_doc`, `edit_doc`, `del_doc`) VALUES (10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);