From 9930e4e58fafe475d6afb7dbb9a402f512945bb3 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Fri, 27 Sep 2024 15:39:34 +0800 Subject: [PATCH] init ems server code --- .gitignore | 3 +- omc/bin/conf/sync.conf => bin/.gitkeep | 0 include/Makefile.rules.bak | 352 - include/gtest/gtest-death-test.h | 343 - include/gtest/gtest-matchers.h | 750 -- include/gtest/gtest-message.h | 218 - include/gtest/gtest-param-test.h | 503 -- include/gtest/gtest-printers.h | 928 -- include/gtest/gtest-spi.h | 238 - include/gtest/gtest-test-part.h | 184 - include/gtest/gtest-typed-test.h | 330 - include/gtest/gtest.h | 2478 ------ include/gtest/gtest_pred_impl.h | 359 - include/gtest/gtest_prod.h | 61 - include/gtest/internal/custom/README.md | 56 - include/gtest/internal/custom/gtest-port.h | 37 - .../gtest/internal/custom/gtest-printers.h | 42 - include/gtest/internal/custom/gtest.h | 37 - .../internal/gtest-death-test-internal.h | 304 - include/gtest/internal/gtest-filepath.h | 211 - include/gtest/internal/gtest-internal.h | 1380 --- include/gtest/internal/gtest-param-util.h | 883 -- include/gtest/internal/gtest-port-arch.h | 107 - include/gtest/internal/gtest-port.h | 2231 ----- include/gtest/internal/gtest-string.h | 171 - include/gtest/internal/gtest-type-util.h | 3335 -------- include/gtest/internal/gtest-type-util.h.pump | 302 - include/hiredis/adapters/ae.h | 130 - include/hiredis/adapters/glib.h | 156 - include/hiredis/adapters/ivykis.h | 84 - include/hiredis/adapters/libev.h | 179 - include/hiredis/adapters/libevent.h | 175 - include/hiredis/adapters/libuv.h | 117 - include/hiredis/adapters/macosx.h | 115 - include/hiredis/adapters/qt.h | 135 - include/hiredis/alloc.h | 91 - include/hiredis/async.h | 147 - include/hiredis/hiredis.h | 337 - include/hiredis/read.h | 129 - include/hiredis/sds.h | 278 - include/nettle/aes.h | 177 - include/nettle/arcfour.h | 79 - include/nettle/arctwo.h | 103 - include/nettle/asn1.h | 152 - include/nettle/base16.h | 110 - include/nettle/base64.h | 172 - include/nettle/bignum.h | 140 - include/nettle/blowfish.h | 89 - include/nettle/buffer.h | 106 - include/nettle/camellia.h | 143 - include/nettle/cast128.h | 86 - include/nettle/cbc.h | 86 - include/nettle/ccm.h | 302 - include/nettle/cfb.h | 87 - include/nettle/chacha-poly1305.h | 98 - include/nettle/chacha.h | 96 - include/nettle/ctr.h | 71 - include/nettle/curve25519.h | 60 - include/nettle/des-compat.h | 162 - include/nettle/des.h | 120 - include/nettle/dsa-compat.h | 183 - include/nettle/dsa.h | 216 - include/nettle/eax.h | 185 - include/nettle/ecc-curve.h | 71 - include/nettle/ecc.h | 159 - include/nettle/ecdsa.h | 103 - include/nettle/eddsa.h | 149 - include/nettle/gcm.h | 327 - include/nettle/gosthash94.h | 98 - include/nettle/hkdf.h | 67 - include/nettle/hmac.h | 210 - include/nettle/knuth-lfib.h | 80 - include/nettle/macros.h | 245 - include/nettle/md2.h | 79 - include/nettle/md4.h | 83 - include/nettle/md5-compat.h | 58 - include/nettle/md5.h | 86 - include/nettle/memops.h | 57 - include/nettle/memxor.h | 25 - include/nettle/nettle-meta.h | 277 - include/nettle/nettle-stdint.h | 286 - include/nettle/nettle-types.h | 110 - include/nettle/pbkdf2.h | 85 - include/nettle/pgp.h | 248 - include/nettle/pkcs1.h | 114 - include/nettle/poly1305.h | 128 - include/nettle/pss-mgf1.h | 58 - include/nettle/pss.h | 65 - include/nettle/realloc.h | 48 - include/nettle/ripemd160.h | 88 - include/nettle/rsa.h | 564 -- include/nettle/salsa20.h | 114 - include/nettle/serpent.h | 102 - include/nettle/sexp.h | 213 - include/nettle/sha.h | 42 - include/nettle/sha1.h | 88 - include/nettle/sha2.h | 206 - include/nettle/sha3.h | 193 - include/nettle/twofish.h | 98 - include/nettle/umac.h | 253 - include/nettle/version.h | 64 - include/nettle/yarrow.h | 145 - include/zip.h | 479 -- include/zipconf.h | 51 - omc/bin/alarmAgent | Bin 640232 -> 0 bytes omc/bin/alive | Bin 24228 -> 0 bytes omc/bin/bsscomm | Bin 202265 -> 0 bytes omc/bin/cdrCollector | Bin 773496 -> 0 bytes omc/bin/changehostname | 47 - omc/bin/chgDate | 19 - omc/bin/chkDb | 41 - omc/bin/clearDb | 26 - omc/bin/conf/NR.conf | 48 - omc/bin/conf/conv_prefix.conf | Bin 23616 -> 0 bytes omc/bin/conf/debug.conf | 6 - omc/bin/conf/hosts | 5 - omc/bin/conf/httpd.conf | 946 --- omc/bin/conf/manager_engine.conf | Bin 244 -> 0 bytes omc/bin/conf/mcms_conf.txt | 2 - omc/bin/conf/menu_page | 17 - omc/bin/conf/menu_page2 | 17 - omc/bin/conf/mtp3.conf | 1477 ---- omc/bin/conf/nrtrde_seq.conf | Bin 2004 -> 0 bytes omc/bin/conf/omc_db.conf | 50 - omc/bin/conf/omcd.conf_omc-0 | 19 - omc/bin/conf/omcd.conf_omc-1 | 19 - omc/bin/conf/omcd_serialnum.conf | 1 - omc/bin/conf/omctrap_iplist.conf | 14 - omc/bin/conf/profile | 48 - omc/bin/conf/raid.conf | 24 - omc/bin/conf/rsyncd.conf | 15 - omc/bin/conf/sccp.conf | 1058 --- omc/bin/conf/smeg.conf | Bin 508 -> 0 bytes omc/bin/conf/smpp.conf | 35 - omc/bin/conf/snmp.conf | 36 - omc/bin/conf/welcomeSMS.conf | 11 - omc/bin/cstaCollector | Bin 668472 -> 0 bytes omc/bin/dual/cdr_data_proc.sh | 54 - omc/bin/dual/cdr_io_proc.sh | 98 - omc/bin/dual/cdr_io_proc/file.index | Bin 4 -> 0 bytes omc/bin/dual/check_proc_status.sh | 119 - omc/bin/dual/dualstate | 1 - omc/bin/dual/procstatus | 1 - omc/bin/dual/sendfile | 38 - omc/bin/dual/sync_source.conf | 7 - omc/bin/ftpSend | Bin 665760 -> 0 bytes omc/bin/iptrans | Bin 576328 -> 0 bytes omc/bin/logCollector | Bin 695264 -> 0 bytes omc/bin/mib/LGC-SS-AAS-MIB.my | 260 - omc/bin/mib/LGC-SS-AMRMG-MIB.my | 263 - omc/bin/mib/LGC-SS-AUC-MIB.my | 567 -- omc/bin/mib/LGC-SS-AUC-MIB.my_bak | 184 - omc/bin/mib/LGC-SS-AUSF-MIB.my | 241 - omc/bin/mib/LGC-SS-EIR-MIB.my | 253 - omc/bin/mib/LGC-SS-GRS-MIB.my | 2225 ----- omc/bin/mib/LGC-SS-GbC-MIB.my | 287 - omc/bin/mib/LGC-SS-HLR-MIB.my | 7454 ----------------- omc/bin/mib/LGC-SS-IMS-MIB.my | 428 - omc/bin/mib/LGC-SS-MCA-MIB.my | 305 - omc/bin/mib/LGC-SS-MHC-MIB.my | 564 -- omc/bin/mib/LGC-SS-MME-MIB.my | 609 -- omc/bin/mib/LGC-SS-MME-MIB.my_bak | 689 -- omc/bin/mib/LGC-SS-MNP-MIB.my | 378 - omc/bin/mib/LGC-SS-MRFC-MIB.my | 381 - omc/bin/mib/LGC-SS-MSC-MIB.my | 4939 ----------- omc/bin/mib/LGC-SS-MSC-MIB_baknew.my | 4932 ----------- omc/bin/mib/LGC-SS-MTP3-MIB.my | 2414 ------ omc/bin/mib/LGC-SS-OPPS-MIB.my | 538 -- omc/bin/mib/LGC-SS-PALIM-MIB.my | 4985 ----------- omc/bin/mib/LGC-SS-PPS-MIB.my | 5116 ----------- omc/bin/mib/LGC-SS-RCM-MIB.my | 3779 --------- omc/bin/mib/LGC-SS-RCS-MIB.my | 1123 --- omc/bin/mib/LGC-SS-RLS-MIB.my | 588 -- omc/bin/mib/LGC-SS-RTPPROXY-MIB.my | 225 - omc/bin/mib/LGC-SS-SCCP-MIB.my | 1280 --- omc/bin/mib/LGC-SS-SMEG-MIB.my | 313 - omc/bin/mib/LGC-SS-SMPP-MIB.my | 400 - omc/bin/mib/LGC-SS-SMSC-MIB.my | 546 -- omc/bin/mib/LGC-SS-SPGW-MIB.my | 1207 --- omc/bin/mib/LGC-SS-TMG-MIB.my | 293 - omc/bin/mib/LGC-SS-UDM-MIB.my | 1384 --- omc/bin/mib/LGC-SS-VLR-MIB.my | 557 -- omc/bin/mib/LGC-SS-VMS-MIB.my | 3877 --------- omc/bin/mib/LGC-SS-XAPP-MIB.my | 689 -- omc/bin/mib/change | 5 - omc/bin/mib/index | 36 - omc/bin/myipcrm | 33 - omc/bin/mysql_OMCmain_Auditlog_filter | 4 - omc/bin/nrtrde | Bin 802872 -> 0 bytes omc/bin/omcCleaner | Bin 641440 -> 0 bytes omc/bin/omcMain | Bin 2255168 -> 0 bytes omc/bin/omcMain.nolicense | Bin 2254768 -> 0 bytes omc/bin/omcMainWatcher | 170 - omc/bin/paraComm | Bin 794888 -> 0 bytes omc/bin/raidAgent | Bin 660472 -> 0 bytes omc/bin/setRunMode | 260 - omc/bin/sftpSend | Bin 662024 -> 0 bytes omc/bin/smcli | Bin 912800 -> 0 bytes omc/bin/subsComm | Bin 722136 -> 0 bytes omc/bin/subsDataBackup | Bin 641928 -> 0 bytes omc/bin/wsms | Bin 1849176 -> 0 bytes omc/bin/wxc2_omcd | 189 - omc/bin/wxc2_omcdm | 24 - omc/config/cacert.pem | 21 - omc/config/client.crt | 61 - omc/config/client.csr | 13 - omc/config/client.key | 18 - omc/config/conv_prefix.conf | Bin 23616 -> 0 bytes omc/config/hosts | 5 - omc/config/httpd-ssl.conf | 232 - omc/config/httpd.conf_centos | 992 --- omc/config/my.cnf | 90 - omc/config/my.cnf_omc-0.ES | 98 - omc/config/my.cnf_single | 72 - omc/config/my.cnf_single.ES | 77 - omc/config/omc_db.conf | 50 - omc/config/omcd.conf | 20 - omc/config/omcd.conf_omc-0 | 19 - omc/config/omcd.conf_omc-1 | 19 - omc/config/omcd.conf_single | 19 - omc/config/php.ini | 1224 --- omc/config/php.ini_old_plat | 1223 --- omc/config/profile | 48 - omc/config/rsyncd.conf | 15 - omc/config/server.crt | 61 - omc/config/server.csr | 13 - omc/config/server.key | 15 - omc/config/snmp.conf | 19 - omc/plat/.copyarea.db | 29 - omc/plat/8ecp/.copyarea.db | 9 - omc/plat/8ecp/lib/lib8ecp.a | Bin 38998 -> 0 bytes omc/plat/8ecp/obj/8ecp.o | Bin 20488 -> 0 bytes omc/plat/8ecp/obj/8ecp_debug.o | Bin 17816 -> 0 bytes omc/plat/8ecp/src/.copyarea.db | 7 - omc/plat/8ecp/src/include/.copyarea.db | 6 - omc/plat/aif/.copyarea.db | 9 - omc/plat/aif/doc/.copyarea.db | 5 - omc/plat/aif/lib/libaif.a | Bin 900178 -> 0 bytes omc/plat/aif/obj/aifg.o | Bin 102720 -> 0 bytes omc/plat/aif/obj/aifg_csta.o | Bin 17896 -> 0 bytes omc/plat/aif/obj/aifg_debug.o | Bin 127864 -> 0 bytes omc/plat/aif/obj/aifg_ie.o | Bin 130312 -> 0 bytes omc/plat/aif/obj/aifg_m.o | Bin 147752 -> 0 bytes omc/plat/aif/obj/aifg_mpp.o | Bin 366840 -> 0 bytes omc/plat/aif/src/.copyarea.db | 11 - omc/plat/aif/src/include/.copyarea.db | 11 - omc/plat/aif/ut/.copyarea.db | 7 - omc/plat/bicc/.copyarea.db | 10 - omc/plat/bicc/lib/libbicc.a | Bin 328886 -> 0 bytes omc/plat/bicc/obj/bicc_apm.o | Bin 14960 -> 0 bytes omc/plat/bicc/obj/bicc_debug.o | Bin 44552 -> 0 bytes omc/plat/bicc/obj/bicc_fsm.o | Bin 61856 -> 0 bytes omc/plat/bicc/obj/bicc_ipbcp.o | Bin 17448 -> 0 bytes omc/plat/bicc/obj/bicc_msg.o | Bin 78176 -> 0 bytes omc/plat/bicc/obj/bicc_prm.o | Bin 34960 -> 0 bytes omc/plat/bicc/obj/biccif.o | Bin 72600 -> 0 bytes omc/plat/bicc/src.old/.copyarea.db | 13 - omc/plat/bicc/src.old/include/.copyarea.db | 12 - omc/plat/bicc/src/.copyarea.db | 12 - omc/plat/bicc/src/include/.copyarea.db | 12 - omc/plat/debug/.copyarea.db | 9 - omc/plat/debug/lib/libdebug.a | Bin 565778 -> 0 bytes omc/plat/debug/obj/debug.o | Bin 560432 -> 0 bytes omc/plat/debug/src/.copyarea.db | 6 - omc/plat/debug/src/include/.copyarea.db | 6 - omc/plat/debug/ut/.copyarea.db | 5 - omc/plat/haepub/.copyarea.db | 9 - omc/plat/haepub/lib/libhaepub.a | Bin 248900 -> 0 bytes omc/plat/haepub/obj/hae_function.o | Bin 153584 -> 0 bytes omc/plat/haepub/obj/hae_param.o | Bin 25952 -> 0 bytes omc/plat/haepub/obj/hae_sync.o | Bin 67872 -> 0 bytes omc/plat/haepub/src/.copyarea.db | 8 - omc/plat/haepub/src/include/.copyarea.db | 6 - omc/plat/iptrans/.copyarea.db | 9 - omc/plat/iptrans/iptrans | Bin 576328 -> 0 bytes omc/plat/iptrans/lib/libiptrans.a | Bin 220956 -> 0 bytes omc/plat/iptrans/obj/comfunc.o | Bin 9320 -> 0 bytes omc/plat/iptrans/obj/daemon.o | Bin 6656 -> 0 bytes omc/plat/iptrans/obj/error.o | Bin 11016 -> 0 bytes omc/plat/iptrans/obj/errorlog.o | Bin 12104 -> 0 bytes omc/plat/iptrans/obj/ipcfunc.o | Bin 8760 -> 0 bytes omc/plat/iptrans/obj/ipmsgfun.o | Bin 8344 -> 0 bytes omc/plat/iptrans/obj/iptrans.o | Bin 94536 -> 0 bytes omc/plat/iptrans/obj/iptrmain.o | Bin 15504 -> 0 bytes omc/plat/iptrans/obj/mcast_join.o | Bin 10592 -> 0 bytes omc/plat/iptrans/obj/queuefunc.o | Bin 9864 -> 0 bytes omc/plat/iptrans/obj/readmsg.o | Bin 22536 -> 0 bytes omc/plat/iptrans/obj/signal.o | Bin 4816 -> 0 bytes omc/plat/iptrans/obj/simu_debug.o | Bin 4416 -> 0 bytes omc/plat/iptrans/src/.copyarea.db | 18 - omc/plat/iptrans/src/include/.copyarea.db | 12 - omc/plat/isdn/.copyarea.db | 9 - omc/plat/isdn/doc/.copyarea.db | 5 - omc/plat/isdn/lib/libisdn.a | Bin 496930 -> 0 bytes omc/plat/isdn/obj/isdn_debug.o | Bin 70288 -> 0 bytes omc/plat/isdn/obj/isdn_fsm.o | Bin 114424 -> 0 bytes omc/plat/isdn/obj/isdn_ie.o | Bin 69272 -> 0 bytes omc/plat/isdn/obj/isdn_msg.o | Bin 142080 -> 0 bytes omc/plat/isdn/obj/isdn_rm.o | Bin 47504 -> 0 bytes omc/plat/isdn/obj/isdn_uif.o | Bin 48768 -> 0 bytes omc/plat/isdn/src/.copyarea.db | 12 - omc/plat/isdn/src/include/.copyarea.db | 13 - omc/plat/isdn/ut/.copyarea.db | 12 - omc/plat/isdn/ut/code/.copyarea.db | 26 - omc/plat/isup/.copyarea.db | 10 - omc/plat/isup/doc/.copyarea.db | 12 - omc/plat/isup/lib/libisup.a | Bin 626636 -> 0 bytes omc/plat/isup/obj/isup_debug.o | Bin 63312 -> 0 bytes omc/plat/isup/obj/isup_fsm.o | Bin 121624 -> 0 bytes omc/plat/isup/obj/isup_if.o | Bin 89496 -> 0 bytes omc/plat/isup/obj/isup_msg.o | Bin 332808 -> 0 bytes omc/plat/isup/obj/isup_transit.o | Bin 12960 -> 0 bytes omc/plat/isup/src/.copyarea.db | 11 - omc/plat/isup/src/include/.copyarea.db | 13 - omc/plat/isup/ut/.copyarea.db | 7 - omc/plat/m2ua/.copyarea.db | 10 - omc/plat/m2ua/doc/.copyarea.db | 5 - omc/plat/m2ua/lib/libm2ua.a | Bin 248904 -> 0 bytes omc/plat/m2ua/obj/m2ua.o | Bin 28632 -> 0 bytes omc/plat/m2ua/obj/m2ua_debug.o | Bin 32048 -> 0 bytes omc/plat/m2ua/obj/m2ua_fsm.o | Bin 60976 -> 0 bytes omc/plat/m2ua/obj/m2ua_msg.o | Bin 125056 -> 0 bytes omc/plat/m2ua/src/.copyarea.db | 9 - omc/plat/m2ua/src/include/.copyarea.db | 14 - omc/plat/m2ua/src_old/.copyarea.db | 9 - omc/plat/m2ua/src_old/include/.copyarea.db | 14 - omc/plat/m2ua/ut/.copyarea.db | 6 - omc/plat/m2ua/ut/testcate/.copyarea.db | 13 - omc/plat/m2ua/ut/xua_test/.copyarea.db | 7 - omc/plat/m2ua/ut/xua_test/conf/.copyarea.db | 35 - omc/plat/mgc/.copyarea.db | 9 - omc/plat/mgc/lib/libmgc.a | Bin 319040 -> 0 bytes omc/plat/mgc/obj/mgc.o | Bin 203840 -> 0 bytes omc/plat/mgc/obj/mgc_debug.o | Bin 33288 -> 0 bytes omc/plat/mgc/obj/mgc_fsm.o | Bin 61032 -> 0 bytes omc/plat/mgc/obj/mgc_sess_ctl.o | Bin 17496 -> 0 bytes omc/plat/mgc/src/.copyarea.db | 12 - omc/plat/mgc/src/include/.copyarea.db | 13 - omc/plat/mgc/src/mgc.c.bak | 4016 --------- omc/plat/mgc/src/mgc_fsm.c.bak | 1052 --- omc/plat/mgc_v2/.copyarea.db | 9 - omc/plat/mgc_v2/lib/libmgc_v2.a | Bin 714428 -> 0 bytes omc/plat/mgc_v2/obj/mgc.o | Bin 114504 -> 0 bytes omc/plat/mgc_v2/obj/mgc_8ecp.o | Bin 32160 -> 0 bytes omc/plat/mgc_v2/obj/mgc_chnl_info.o | Bin 38264 -> 0 bytes omc/plat/mgc_v2/obj/mgc_conn_info.o | Bin 69136 -> 0 bytes omc/plat/mgc_v2/obj/mgc_ctl.o | Bin 8440 -> 0 bytes omc/plat/mgc_v2/obj/mgc_debug.o | Bin 53240 -> 0 bytes omc/plat/mgc_v2/obj/mgc_internal.o | Bin 35344 -> 0 bytes omc/plat/mgc_v2/obj/mgc_mg_info.o | Bin 45464 -> 0 bytes omc/plat/mgc_v2/obj/mgc_mgcp.o | Bin 63104 -> 0 bytes omc/plat/mgc_v2/obj/mgc_phy_port.o | Bin 33888 -> 0 bytes omc/plat/mgc_v2/obj/mgc_port_info.o | Bin 68392 -> 0 bytes omc/plat/mgc_v2/obj/mgc_port_list.o | Bin 29312 -> 0 bytes omc/plat/mgc_v2/obj/mgc_sur_info.o | Bin 40488 -> 0 bytes omc/plat/mgc_v2/obj/mgc_tandem_info.o | Bin 71184 -> 0 bytes omc/plat/mgc_v2/src/.copyarea.db | 19 - omc/plat/mgc_v2/src/include/.copyarea.db | 21 - omc/plat/mgc_v2/ut/.copyarea.db | 14 - omc/plat/mgc_v2/ut/conf/.copyarea.db | 6 - omc/plat/mgc_v2/ut/include/.copyarea.db | 14 - omc/plat/mgcp/.copyarea.db | 9 - omc/plat/mgcp/lib/libmgcp.a | Bin 188092 -> 0 bytes omc/plat/mgcp/obj/mgcp.o | Bin 28976 -> 0 bytes omc/plat/mgcp/obj/mgcp_debug.o | Bin 31504 -> 0 bytes omc/plat/mgcp/obj/mgcp_msg.o | Bin 105664 -> 0 bytes omc/plat/mgcp/obj/mgcp_trans.o | Bin 19272 -> 0 bytes omc/plat/mgcp/src/.copyarea.db | 10 - omc/plat/mgcp/src/include/.copyarea.db | 13 - omc/plat/mgcp/src/mgcp_msg.c.bak | 2612 ------ omc/plat/mtp3/.copyarea.db | 9 - omc/plat/mtp3/lib/libmtp3.a | Bin 731062 -> 0 bytes omc/plat/mtp3/obj/mtp3lite.o | Bin 42472 -> 0 bytes omc/plat/mtp3/obj/mtpinit.o | Bin 121784 -> 0 bytes omc/plat/mtp3/obj/mtpm.o | Bin 119608 -> 0 bytes omc/plat/mtp3/obj/mtpmib.o | Bin 126712 -> 0 bytes omc/plat/mtp3/obj/mtpslm.o | Bin 23304 -> 0 bytes omc/plat/mtp3/obj/mtpsmh.o | Bin 174032 -> 0 bytes omc/plat/mtp3/obj/mtpsrm.o | Bin 21952 -> 0 bytes omc/plat/mtp3/obj/mtpstm.o | Bin 91176 -> 0 bytes omc/plat/mtp3/src/.copyarea.db | 13 - omc/plat/mtp3/src/include/.copyarea.db | 12 - omc/plat/mtp3_old/.copyarea.db | 9 - omc/plat/mtp3_old/src/.copyarea.db | 13 - omc/plat/mtp3_old/src/include/.copyarea.db | 12 - omc/plat/pal/.copyarea.db | 8 - omc/plat/pal/lib/libpal.a | Bin 19994 -> 0 bytes omc/plat/pal/rm.o | Bin 19456 -> 0 bytes omc/plat/public/.copyarea.db | 9 - omc/plat/public/lib/libpublic.a | Bin 570844 -> 0 bytes omc/plat/public/obj/apiKey.o | Bin 4776 -> 0 bytes omc/plat/public/obj/asn1.o | Bin 40544 -> 0 bytes omc/plat/public/obj/bisearch.o | Bin 11304 -> 0 bytes omc/plat/public/obj/cJSON.o | Bin 77544 -> 0 bytes omc/plat/public/obj/cdr.o | Bin 30456 -> 0 bytes omc/plat/public/obj/crypt.o | Bin 19304 -> 0 bytes omc/plat/public/obj/list.o | Bin 9832 -> 0 bytes omc/plat/public/obj/memwatch.o | Bin 92936 -> 0 bytes omc/plat/public/obj/number.o | Bin 14880 -> 0 bytes omc/plat/public/obj/numgrp.o | Bin 11872 -> 0 bytes omc/plat/public/obj/pub_conf.o | Bin 1352 -> 0 bytes omc/plat/public/obj/pub_debug.o | Bin 9088 -> 0 bytes omc/plat/public/obj/pub_file.o | Bin 7160 -> 0 bytes omc/plat/public/obj/pub_fmt.o | Bin 39680 -> 0 bytes omc/plat/public/obj/pub_inet.o | Bin 29576 -> 0 bytes omc/plat/public/obj/pub_log.o | Bin 10792 -> 0 bytes omc/plat/public/obj/pub_malloc.o | Bin 2864 -> 0 bytes omc/plat/public/obj/pub_netcap.o | Bin 20968 -> 0 bytes omc/plat/public/obj/pub_sdp.o | Bin 51920 -> 0 bytes omc/plat/public/obj/pub_str.o | Bin 10320 -> 0 bytes omc/plat/public/obj/pub_sys.o | Bin 20496 -> 0 bytes omc/plat/public/obj/pub_time.o | Bin 9104 -> 0 bytes omc/plat/public/obj/pub_timer.o | Bin 11416 -> 0 bytes omc/plat/public/obj/pub_wnet.o | Bin 15648 -> 0 bytes omc/plat/public/obj/shm.o | Bin 8648 -> 0 bytes omc/plat/public/src/.copyarea.db | 26 - omc/plat/public/src/include/.copyarea.db | 30 - omc/plat/public/src/uwav/.copyarea.db | 8 - omc/plat/public/ut/.copyarea.db | 12 - omc/plat/public/ut/asn.1/.copyarea.db | 5 - omc/plat/public/ut/bisearch/.copyarea.db | 5 - omc/plat/public/ut/debug_api/.copyarea.db | 6 - omc/plat/public/ut/inet/.copyarea.db | 5 - omc/plat/public/ut/main/.copyarea.db | 8 - omc/plat/public/ut/main/src/.copyarea.db | 5 - omc/plat/public/ut/public_test/.copyarea.db | 5 - omc/plat/public/ut/timer/.copyarea.db | 9 - omc/plat/public_bak/.copyarea.db | 9 - omc/plat/public_bak/src/.copyarea.db | 24 - omc/plat/public_bak/src/include/.copyarea.db | 29 - omc/plat/public_bak/src/uwav/.copyarea.db | 8 - omc/plat/public_bak/ut/.copyarea.db | 12 - omc/plat/public_bak/ut/asn.1/.copyarea.db | 5 - omc/plat/public_bak/ut/bisearch/.copyarea.db | 5 - omc/plat/public_bak/ut/debug_api/.copyarea.db | 6 - omc/plat/public_bak/ut/inet/.copyarea.db | 5 - omc/plat/public_bak/ut/main/.copyarea.db | 8 - omc/plat/public_bak/ut/main/src/.copyarea.db | 5 - .../public_bak/ut/public_test/.copyarea.db | 5 - omc/plat/public_bak/ut/timer/.copyarea.db | 9 - omc/plat/rtp/.copyarea.db | 9 - omc/plat/rtp/lib/librtp.a | Bin 41822 -> 0 bytes omc/plat/rtp/obj/rtp.o | Bin 25816 -> 0 bytes omc/plat/rtp/obj/rtp_msg.o | Bin 15048 -> 0 bytes omc/plat/rtp/src/.copyarea.db | 7 - omc/plat/rtp/src/include/.copyarea.db | 11 - omc/plat/sccp/.copyarea.db | 9 - omc/plat/sccp/lib/libsccp.a | Bin 779150 -> 0 bytes omc/plat/sccp/obj/sccp.o | Bin 42256 -> 0 bytes omc/plat/sccp/obj/sccp_debug.o | Bin 66496 -> 0 bytes omc/plat/sccp/obj/sccp_func.o | Bin 28904 -> 0 bytes omc/plat/sccp/obj/sccp_gtt.o | Bin 38136 -> 0 bytes omc/plat/sccp/obj/sccp_log.o | Bin 55640 -> 0 bytes omc/plat/sccp/obj/sccp_mib.o | Bin 31664 -> 0 bytes omc/plat/sccp/obj/sccp_msg.o | Bin 45224 -> 0 bytes omc/plat/sccp/obj/sccp_param.o | Bin 55512 -> 0 bytes omc/plat/sccp/obj/sclc.o | Bin 48304 -> 0 bytes omc/plat/sccp/obj/scmg.o | Bin 46504 -> 0 bytes omc/plat/sccp/obj/scoc.o | Bin 19128 -> 0 bytes omc/plat/sccp/obj/scoc_fsm.o | Bin 70640 -> 0 bytes omc/plat/sccp/obj/scoc_func.o | Bin 69992 -> 0 bytes omc/plat/sccp/obj/scoc_if.o | Bin 36992 -> 0 bytes omc/plat/sccp/obj/scoc_pool.o | Bin 39024 -> 0 bytes omc/plat/sccp/obj/scoc_pri.o | Bin 19144 -> 0 bytes omc/plat/sccp/obj/scrc.o | Bin 61608 -> 0 bytes omc/plat/sccp/src/.copyarea.db | 22 - omc/plat/sccp/src/include/.copyarea.db | 10 - omc/plat/sccp/ut/.copyarea.db | 7 - omc/plat/sccp/ut/fsmtest/.copyarea.db | 9 - omc/plat/sccp/ut/fsmtest/bin/.copyarea.db | 5 - .../sccp/ut/fsmtest/bin/conf/.copyarea.db | 28 - omc/plat/sccp/ut/fsmtest/obj/.copyarea.db | 8 - omc/plat/scf/.copyarea.db | 9 - omc/plat/scf/lib/libscf.a | Bin 84412 -> 0 bytes omc/plat/scf/obj/scfmsg.o | Bin 11528 -> 0 bytes omc/plat/scf/obj/scsm.o | Bin 71968 -> 0 bytes omc/plat/scf/src/.copyarea.db | 10 - omc/plat/scf/src/include/.copyarea.db | 7 - omc/plat/sip/.copyarea.db | 9 - omc/plat/sip/lib/libsip.a | Bin 632608 -> 0 bytes omc/plat/sip/obj/sip.o | Bin 40776 -> 0 bytes omc/plat/sip/obj/sip_debug.o | Bin 22168 -> 0 bytes omc/plat/sip/obj/sip_msg.o | Bin 69040 -> 0 bytes omc/plat/sip/obj/sip_msg_encode.o | Bin 91592 -> 0 bytes omc/plat/sip/obj/sip_msg_parse.o | Bin 153920 -> 0 bytes omc/plat/sip/obj/sip_transaction.o | Bin 44448 -> 0 bytes omc/plat/sip/obj/sip_transport.o | Bin 29920 -> 0 bytes omc/plat/sip/obj/sip_ua.o | Bin 46408 -> 0 bytes omc/plat/sip/obj/sip_ua_dialog.o | Bin 33392 -> 0 bytes omc/plat/sip/obj/sip_ua_fsm.o | Bin 34728 -> 0 bytes omc/plat/sip/obj/sip_ua_msg.o | Bin 57408 -> 0 bytes omc/plat/sip/src/.copyarea.db | 16 - omc/plat/sip/src/include/.copyarea.db | 24 - omc/plat/smpp/.copyarea.db | 9 - omc/plat/smpp/doc/.copyarea.db | 8 - omc/plat/smpp/lib/libsmpp.a | Bin 543914 -> 0 bytes omc/plat/smpp/obj/smpp_debug.o | Bin 44016 -> 0 bytes omc/plat/smpp/obj/smpp_fsm.o | Bin 69296 -> 0 bytes omc/plat/smpp/obj/smpp_func.o | Bin 101960 -> 0 bytes omc/plat/smpp/obj/smpp_mib.o | Bin 61328 -> 0 bytes omc/plat/smpp/obj/smpp_msg.o | Bin 265112 -> 0 bytes omc/plat/smpp/src/.copyarea.db | 10 - omc/plat/smpp/src/include/.copyarea.db | 10 - omc/plat/smpp/ut/.copyarea.db | 7 - omc/plat/smpp/ut/conf/.copyarea.db | 14 - omc/plat/smpp/ut/conf/MIB_files/.copyarea.db | 19 - omc/plat/smpp/ut/smpp_test/.copyarea.db | 5 - omc/plat/smpp/ut/smpp_ussd_test/.copyarea.db | 6 - omc/plat/snmp/.copyarea.db | 9 - omc/plat/snmp/lib/libsnmp.a | Bin 372044 -> 0 bytes omc/plat/snmp/obj/heartbeat.o | Bin 23096 -> 0 bytes omc/plat/snmp/obj/snmp.o | Bin 75024 -> 0 bytes omc/plat/snmp/obj/snmp_mib.o | Bin 135656 -> 0 bytes omc/plat/snmp/obj/snmp_mib_api.o | Bin 14736 -> 0 bytes omc/plat/snmp/obj/snmpdebug.o | Bin 38352 -> 0 bytes omc/plat/snmp/obj/snmpmib.o | Bin 23920 -> 0 bytes omc/plat/snmp/obj/snmptable.o | Bin 13984 -> 0 bytes omc/plat/snmp/obj/snmptest.o | Bin 23024 -> 0 bytes omc/plat/snmp/obj/sysctrl.o | Bin 22216 -> 0 bytes omc/plat/snmp/src/.copyarea.db | 13 - omc/plat/snmp/src/include/.copyarea.db | 9 - omc/plat/snmp/src/mib_parser/.copyarea.db | 8 - omc/plat/tcap/.copyarea.db | 9 - omc/plat/tcap/lib/libtcap.a | Bin 415422 -> 0 bytes omc/plat/tcap/obj/idmanage.o | Bin 41440 -> 0 bytes omc/plat/tcap/obj/itcap.o | Bin 65520 -> 0 bytes omc/plat/tcap/obj/tcap_coding.o | Bin 115696 -> 0 bytes omc/plat/tcap/obj/tcap_fsm.o | Bin 130400 -> 0 bytes omc/plat/tcap/obj/tcap_m.o | Bin 60272 -> 0 bytes omc/plat/tcap/src/.copyarea.db | 10 - omc/plat/tcap/src/include/.copyarea.db | 11 - omc/plat/xapp/.copyarea.db | 10 - omc/plat/xapp/conf/.copyarea.db | 8 - omc/plat/xapp/lib/libxapp.a | Bin 5755102 -> 0 bytes omc/plat/xapp/obj/Map_opr.o | Bin 58568 -> 0 bytes omc/plat/xapp/obj/cap_msg.o | Bin 104136 -> 0 bytes omc/plat/xapp/obj/cap_msgtype.o | Bin 57944 -> 0 bytes omc/plat/xapp/obj/cap_public.o | Bin 36616 -> 0 bytes omc/plat/xapp/obj/conv_prefix.o | Bin 50400 -> 0 bytes omc/plat/xapp/obj/is41_code_auc.o | Bin 191912 -> 0 bytes omc/plat/xapp/obj/is41_code_ms.o | Bin 296320 -> 0 bytes omc/plat/xapp/obj/is41_code_sms.o | Bin 183440 -> 0 bytes omc/plat/xapp/obj/is41_code_win.o | Bin 250824 -> 0 bytes omc/plat/xapp/obj/is41_coding.o | Bin 176672 -> 0 bytes omc/plat/xapp/obj/is41_debug.o | Bin 181672 -> 0 bytes omc/plat/xapp/obj/is41_init.o | Bin 3720 -> 0 bytes omc/plat/xapp/obj/map_LCSCode.o | Bin 32720 -> 0 bytes omc/plat/xapp/obj/map_code_auc.o | Bin 35064 -> 0 bytes omc/plat/xapp/obj/map_code_ch.o | Bin 106504 -> 0 bytes omc/plat/xapp/obj/map_code_dlgpdu.o | Bin 42568 -> 0 bytes omc/plat/xapp/obj/map_code_ms.o | Bin 231224 -> 0 bytes omc/plat/xapp/obj/map_code_om.o | Bin 33008 -> 0 bytes omc/plat/xapp/obj/map_code_sms.o | Bin 74872 -> 0 bytes omc/plat/xapp/obj/map_code_ss.o | Bin 93744 -> 0 bytes omc/plat/xapp/obj/map_coding.o | Bin 241216 -> 0 bytes omc/plat/xapp/obj/map_public.o | Bin 57872 -> 0 bytes omc/plat/xapp/obj/xap_cdmacdr.o | Bin 118032 -> 0 bytes omc/plat/xapp/obj/xap_interface.o | Bin 212384 -> 0 bytes omc/plat/xapp/obj/xap_monitor.o | Bin 103160 -> 0 bytes omc/plat/xapp/obj/xap_provider.o | Bin 250664 -> 0 bytes omc/plat/xapp/src/.copyarea.db | 18 - omc/plat/xapp/src/capp/.copyarea.db | 12 - omc/plat/xapp/src/include.bak/.copyarea.db | 10 - omc/plat/xapp/src/include.bak/ixap.h | 59 - omc/plat/xapp/src/include.bak/xap_provider.h | 182 - omc/plat/xapp/src/mapp/.copyarea.db | 35 - omc/plat/xapp/src/xap_cdmacdr.h | 898 -- omc/plat/xapp/src/xap_interfunc.h | 11 - omc/plat/xapp/src/xap_monitor.h | 19 - omc/plat/xapp/ut/.copyarea.db | 5 - omc/plat/xapp/ut/xapp_test/.copyarea.db | 12 - omc/plat/xapp/ut/xapp_test/conf/.copyarea.db | 34 - omc/pub_include.h | 39 - omc/src | 1 - {omc/plat => plat}/8ecp/Makefile | 5 +- {omc/plat => plat}/8ecp/src/8ecp.c | 0 {omc/plat => plat}/8ecp/src/8ecp_debug.c | 0 {omc/plat => plat}/8ecp/src/include/8ecp.h | 0 .../8ecp/src/include/8ecp_debug.h | 0 {omc/plat => plat}/aif/Makefile | 3 +- {omc/plat => plat}/aif/doc/release_note.txt | 0 {omc/plat => plat}/aif/src/aifg.c | 0 {omc/plat => plat}/aif/src/aifg_csta.c | 0 {omc/plat => plat}/aif/src/aifg_debug.c | 0 {omc/plat => plat}/aif/src/aifg_ie.c | 0 {omc/plat => plat}/aif/src/aifg_m.c | 0 {omc/plat => plat}/aif/src/aifg_mpp.c | 0 {omc/plat => plat}/aif/src/include/aifg.h | 0 {omc/plat => plat}/aif/src/include/aifg_ie.h | 0 {omc/plat => plat}/aif/src/include/aifg_if.h | 0 {omc/plat => plat}/aif/src/include/aifg_msg.h | 0 .../aif/src/include/aifg_public.h | 0 .../aif/src/include/aifg_type_def.h | 0 .../aif/src/include/aifg_var_ext.h | 0 {omc/plat => plat}/aif/ut/aifg_main.c | 0 {omc/plat => plat}/aif/ut/aifg_test.c | 0 {omc/plat => plat}/aif/ut/makefile | 0 {omc/plat => plat}/bicc/Makefile | 3 +- {omc/plat => plat}/bicc/src.old/bicc_apm.c | 0 {omc/plat => plat}/bicc/src.old/bicc_debug.c | 0 {omc/plat => plat}/bicc/src.old/bicc_fsm.c | 0 .../plat => plat}/bicc/src.old/bicc_fsm.c.old | 0 {omc/plat => plat}/bicc/src.old/bicc_ipbcp.c | 0 {omc/plat => plat}/bicc/src.old/bicc_msg.c | 0 {omc/plat => plat}/bicc/src.old/bicc_prm.c | 0 {omc/plat => plat}/bicc/src.old/biccif.c | 0 .../bicc/src.old/include/bicc_debug.h | 0 .../bicc/src.old/include/biccif.h | 0 .../bicc/src.old/include/define.h | 0 {omc/plat => plat}/bicc/src.old/include/inc.h | 0 .../bicc/src.old/include/ipbcp.h | 0 .../bicc/src.old/include/q1902_3e.h | 0 .../bicc/src.old/include/q765_5e.h | 0 .../bicc/src.old/include/var_ext.h | 0 {omc/plat => plat}/bicc/src/bicc_apm.c | 0 {omc/plat => plat}/bicc/src/bicc_debug.c | 0 {omc/plat => plat}/bicc/src/bicc_fsm.c | 0 {omc/plat => plat}/bicc/src/bicc_ipbcp.c | 0 {omc/plat => plat}/bicc/src/bicc_msg.c | 0 {omc/plat => plat}/bicc/src/bicc_prm.c | 0 {omc/plat => plat}/bicc/src/biccif.c | 0 .../bicc/src/include/bicc_debug.h | 0 {omc/plat => plat}/bicc/src/include/biccif.h | 0 {omc/plat => plat}/bicc/src/include/define.h | 0 {omc/plat => plat}/bicc/src/include/inc.h | 0 {omc/plat => plat}/bicc/src/include/ipbcp.h | 0 .../plat => plat}/bicc/src/include/q1902_3e.h | 0 {omc/plat => plat}/bicc/src/include/q765_5e.h | 0 {omc/plat => plat}/bicc/src/include/var_ext.h | 0 {omc/plat => plat}/debug/Makefile | 3 +- {omc/plat => plat}/debug/src/debug.c | 0 {omc/plat => plat}/debug/src/include/debug.h | 0 .../debug/src/include/debug_struct.h | 0 {omc/plat => plat}/debug/ut/debug_test.c | 0 {omc/plat => plat}/haepub/Makefile | 3 +- {omc/plat => plat}/haepub/src/hae_function.c | 0 {omc/plat => plat}/haepub/src/hae_param.c | 0 {omc/plat => plat}/haepub/src/hae_sync.c | 0 .../haepub/src/include/hae_function.h | 0 .../haepub/src/include/hae_include.h | 0 {omc/plat => plat}/iptrans/Makefile | 3 +- {omc/plat => plat}/iptrans/doc/iptrans_bak | Bin {omc/plat => plat}/iptrans/generate_iptrans | 0 plat/iptrans/iptrans | Bin 0 -> 575936 bytes {omc/plat => plat}/iptrans/iptrans_bak | Bin {omc/plat => plat}/iptrans/src/comfunc.c | 0 {omc/plat => plat}/iptrans/src/daemon.c | 0 {omc/plat => plat}/iptrans/src/error.c | 0 {omc/plat => plat}/iptrans/src/errorlog.c | 0 .../iptrans/src/generate_iptrans | 0 .../iptrans/src/include/config.h | 0 .../iptrans/src/include/dbsync.h | 0 .../plat => plat}/iptrans/src/include/debug.h | 0 .../iptrans/src/include/errlog.h | 0 .../iptrans/src/include/function.h | 0 .../iptrans/src/include/includes.h | 0 .../iptrans/src/include/iptrans.h | 0 .../iptrans/src/include/iptrfunc.h | 0 {omc/plat => plat}/iptrans/src/ipcfunc.c | 0 {omc/plat => plat}/iptrans/src/ipmsgfun.c | 0 {omc/plat => plat}/iptrans/src/iptrans.c | 0 {omc/plat => plat}/iptrans/src/iptrans_bak | Bin {omc/plat => plat}/iptrans/src/iptrmain.c | 0 {omc/plat => plat}/iptrans/src/mcast_join.c | 0 {omc/plat => plat}/iptrans/src/queuefunc.c | 0 {omc/plat => plat}/iptrans/src/readmsg.c | 0 {omc/plat => plat}/iptrans/src/signal.c | 0 {omc/plat => plat}/iptrans/src/simu_debug.c | 0 {omc/plat => plat}/isdn/Makefile | 3 +- {omc/plat => plat}/isdn/doc/D-500014-0-10.doc | Bin {omc/plat => plat}/isdn/src/Makefile | 0 .../isdn/src/include/isdn_const.h | 0 .../isdn/src/include/isdn_debug.h | 0 .../plat => plat}/isdn/src/include/isdn_ext.h | 0 {omc/plat => plat}/isdn/src/include/isdn_ie.h | 0 {omc/plat => plat}/isdn/src/include/isdn_if.h | 0 .../plat => plat}/isdn/src/include/isdn_inc.h | 0 .../plat => plat}/isdn/src/include/isdn_msg.h | 0 .../isdn/src/include/isdn_public.h | 0 {omc/plat => plat}/isdn/src/include/isdn_rm.h | 0 {omc/plat => plat}/isdn/src/isdn_debug.c | 0 {omc/plat => plat}/isdn/src/isdn_fsm.c | 0 {omc/plat => plat}/isdn/src/isdn_ie.c | 0 {omc/plat => plat}/isdn/src/isdn_msg.c | 0 {omc/plat => plat}/isdn/src/isdn_rm.c | 0 {omc/plat => plat}/isdn/src/isdn_uif.c | 0 {omc/plat => plat}/isdn/ut/Makefile | 0 {omc/plat => plat}/isdn/ut/code/data.Text | 0 .../isdn/ut/code/ds-service-01.Text | 0 .../isdn/ut/code/ds-service-02.Text | 0 {omc/plat => plat}/isdn/ut/code/headfile.txt | 0 {omc/plat => plat}/isdn/ut/code/iua data.txt | 0 .../isdn/ut/code/iua set up-bak.txt | 0 .../isdn/ut/code/iua set up.Text | 0 .../plat => plat}/isdn/ut/code/iua set up.txt | 0 .../isdn/ut/code/nt-2link-01.Text | 0 .../isdn/ut/code/nt-incoming-01.Text | 0 .../isdn/ut/code/nt-incoming-02.Text | 0 .../isdn/ut/code/nt-outgoing-01-.Text | 0 .../isdn/ut/code/nt-outgoing-01.Text | 0 .../isdn/ut/code/nt-outgoing-02.Text | 0 {omc/plat => plat}/isdn/ut/code/rest1-0.Text | 0 {omc/plat => plat}/isdn/ut/code/rest2-0.Text | 0 {omc/plat => plat}/isdn/ut/code/test-01.Text | 0 {omc/plat => plat}/isdn/ut/code/u01-01.Text | 0 {omc/plat => plat}/isdn/ut/code/u01-03.Text | 0 {omc/plat => plat}/isdn/ut/code/u01-05.Text | 0 {omc/plat => plat}/isdn/ut/code/u01-10.Text | 0 {omc/plat => plat}/isdn/ut/code/u03-13.Text | 0 {omc/plat => plat}/isdn/ut/isdn_main.c | 0 {omc/plat => plat}/isdn/ut/isdn_test.c | 0 {omc/plat => plat}/isdn/ut/test_main | Bin {omc/plat => plat}/isdn/ut/test_main_0526 | Bin {omc/plat => plat}/isup/Makefile | 3 +- .../isup/doc/ISUP_R9V0_01P07.doc | Bin .../isup/doc/ISUP_R9V0_01P08.doc | Bin .../plat => plat}/isup/doc/ISUP_R9V0_01P8.doc | Bin .../isup/doc/ISUP_R9V0_02P01.doc | Bin .../isup/doc/ISUP_R9V0_02P02.doc | Bin .../isup/doc/ISUP_R9V0_02P03-6.doc | Bin .../isup/doc/ISUP_R9V0_02P07.doc | Bin .../plat => plat}/isup/doc/ISUP_R9V0_02P1.doc | Bin {omc/plat => plat}/isup/src/include/inc.h | 0 .../isup/src/include/isup_const.h | 0 .../isup/src/include/isup_debug.h | 0 .../plat => plat}/isup/src/include/isup_def.h | 0 {omc/plat => plat}/isup/src/include/isup_if.h | 0 .../plat => plat}/isup/src/include/isup_msg.h | 0 .../isup/src/include/isup_public.h | 0 .../isup/src/include/isup_struct.h | 0 .../isup/src/include/vssver2.scc | Bin {omc/plat => plat}/isup/src/isup_debug.c | 0 {omc/plat => plat}/isup/src/isup_fsm.c | 0 {omc/plat => plat}/isup/src/isup_if.c | 0 {omc/plat => plat}/isup/src/isup_msg.c | 0 {omc/plat => plat}/isup/src/isup_transit.c | 0 {omc/plat => plat}/isup/src/vssver2.scc | Bin {omc/plat => plat}/isup/ut/isup_main.c | 0 {omc/plat => plat}/isup/ut/isup_msg_rv.txt | 0 {omc/plat => plat}/isup/ut/isup_msg_send.txt | 0 {omc/plat => plat}/m2ua/Makefile | 3 +- .../m2ua/doc/M2UA_R9V0_04P01.doc | Bin {omc/plat => plat}/m2ua/src/include/m2ua.h | 0 .../m2ua/src/include/m2ua_const.h | 0 .../m2ua/src/include/m2ua_debug.h | 0 .../plat => plat}/m2ua/src/include/m2ua_def.h | 0 .../plat => plat}/m2ua/src/include/m2ua_ext.h | 0 .../plat => plat}/m2ua/src/include/m2ua_fsm.h | 0 .../plat => plat}/m2ua/src/include/m2ua_msg.h | 0 .../plat => plat}/m2ua/src/include/m2ua_pub.h | 0 .../m2ua/src/include/m2ua_struct.h | 0 {omc/plat => plat}/m2ua/src/include/sctp.h | 0 {omc/plat => plat}/m2ua/src/m2ua.c | 0 {omc/plat => plat}/m2ua/src/m2ua_debug.c | 0 {omc/plat => plat}/m2ua/src/m2ua_fsm.c | 0 {omc/plat => plat}/m2ua/src/m2ua_msg.c | 0 .../plat => plat}/m2ua/src_old/include/m2ua.h | 0 .../m2ua/src_old/include/m2ua_const.h | 0 .../m2ua/src_old/include/m2ua_debug.h | 0 .../m2ua/src_old/include/m2ua_def.h | 0 .../m2ua/src_old/include/m2ua_ext.h | 0 .../m2ua/src_old/include/m2ua_fsm.h | 0 .../m2ua/src_old/include/m2ua_msg.h | 0 .../m2ua/src_old/include/m2ua_pub.h | 0 .../m2ua/src_old/include/m2ua_struct.h | 0 .../plat => plat}/m2ua/src_old/include/sctp.h | 0 {omc/plat => plat}/m2ua/src_old/m2ua.c | 0 {omc/plat => plat}/m2ua/src_old/m2ua_debug.c | 0 {omc/plat => plat}/m2ua/src_old/m2ua_fsm.c | 0 {omc/plat => plat}/m2ua/src_old/m2ua_msg.c | 0 .../m2ua/ut/testcate/MGC(IUA)_Client.txt | 0 .../m2ua/ut/testcate/MGC(IUA)_Server.txt | 0 .../m2ua/ut/testcate/MGC(M2UA)_Client.txt | 0 .../m2ua/ut/testcate/MGC(M2UA)_Server.txt | 0 .../m2ua/ut/testcate/SG(IUA)_Client.txt | 0 .../m2ua/ut/testcate/SG(IUA)_Server.txt | 0 .../m2ua/ut/testcate/SG(M2UA)_Client.txt | 0 .../m2ua/ut/testcate/SG(M2UA)_Server.txt | 0 .../m2ua/ut/testcate/headfile.txt | 0 {omc/plat => plat}/m2ua/ut/xua_test/Makefile | 0 .../m2ua/ut/xua_test/conf/AucSysPara | Bin .../m2ua/ut/xua_test/conf/EirSysPara | Bin .../m2ua/ut/xua_test/conf/HlrSysPara | Bin .../m2ua/ut/xua_test/conf/cap_acn.conf | 0 .../m2ua/ut/xua_test/conf/cap_operation.conf | 0 .../m2ua/ut/xua_test/conf/cc_table.conf | 0 .../m2ua/ut/xua_test/conf/conv_prefix.conf | Bin .../m2ua/ut/xua_test/conf/help_page | 0 .../m2ua/ut/xua_test/conf/hlr_parambit.conf | Bin .../m2ua/ut/xua_test/conf/iptrans.conf | 0 .../m2ua/ut/xua_test/conf/map_acn.conf | 0 .../m2ua/ut/xua_test/conf/map_operation.conf | 0 .../m2ua/ut/xua_test/conf/menu_page | 0 .../m2ua/ut/xua_test/conf/mnpf.conf | Bin .../m2ua/ut/xua_test/conf/msc_conf | Bin .../m2ua/ut/xua_test/conf/mtp3.conf | 0 .../m2ua/ut/xua_test/conf/ppsConf.txt | Bin .../m2ua/ut/xua_test/conf/ppsCrdConf.txt | Bin .../m2ua/ut/xua_test/conf/profile | 0 .../m2ua/ut/xua_test/conf/sccp.conf | 0 .../m2ua/ut/xua_test/conf/sccp_omt.conf | 0 .../m2ua/ut/xua_test/conf/sccp_sts.conf | 0 .../m2ua/ut/xua_test/conf/smsc_csta.conf | 0 .../m2ua/ut/xua_test/conf/smsc_parambit.conf | Bin .../m2ua/ut/xua_test/conf/smsc_sys.conf | 0 .../m2ua/ut/xua_test/conf/system.ini | Bin .../m2ua/ut/xua_test/conf/vlr.conf | Bin .../m2ua/ut/xua_test/conf/wxc2_sys.conf | 0 .../m2ua/ut/xua_test/conf/wxc2exit.txt | 0 .../m2ua/ut/xua_test/conf/xap_sysparam.conf | Bin {omc/plat => plat}/m2ua/ut/xua_test/xuatest.c | 0 {omc/plat => plat}/make_plat | 5 +- {omc/plat => plat}/mgc/Makefile | 3 +- {omc/plat => plat}/mgc/src/include/mgc.h | 0 .../plat => plat}/mgc/src/include/mgc_const.h | 0 .../plat => plat}/mgc/src/include/mgc_debug.h | 0 {omc/plat => plat}/mgc/src/include/mgc_def.h | 0 {omc/plat => plat}/mgc/src/include/mgc_ext.h | 0 {omc/plat => plat}/mgc/src/include/mgc_fsm.h | 0 {omc/plat => plat}/mgc/src/include/mgc_pub.h | 0 .../mgc/src/include/mgc_sess_ctl.h | 0 .../mgc/src/include/mgc_struct.h | 0 {omc/plat => plat}/mgc/src/mgc.c | 0 {omc/plat => plat}/mgc/src/mgc_debug.c | 0 {omc/plat => plat}/mgc/src/mgc_fsm.c | 0 {omc/plat => plat}/mgc/src/mgc_sess_ctl.c | 0 {omc/plat => plat}/mgc_v2/Makefile | 3 +- {omc/plat => plat}/mgc_v2/src/include/mgc.h | 0 .../mgc_v2/src/include/mgc_8ecp.h | 0 .../mgc_v2/src/include/mgc_chnl_info.h | 0 .../mgc_v2/src/include/mgc_conn_info.h | 0 .../mgc_v2/src/include/mgc_ctl.h | 0 .../mgc_v2/src/include/mgc_debug.h | 0 .../mgc_v2/src/include/mgc_internal.h | 0 .../mgc_v2/src/include/mgc_mg_info.h | 0 .../mgc_v2/src/include/mgc_mgcp.h | 0 .../mgc_v2/src/include/mgc_phy_port.h | 0 .../mgc_v2/src/include/mgc_port_info.h | 0 .../mgc_v2/src/include/mgc_port_list.h | 0 .../mgc_v2/src/include/mgc_pub.h | 0 .../mgc_v2/src/include/mgc_snmp.h | 0 .../mgc_v2/src/include/mgc_struct.h | 0 .../mgc_v2/src/include/mgc_sur_info.h | 0 .../mgc_v2/src/include/mgc_tandem_info.h | 0 {omc/plat => plat}/mgc_v2/src/mgc.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_8ecp.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_chnl_info.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_conn_info.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_ctl.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_debug.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_internal.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_mg_info.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_mgcp.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_phy_port.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_port_info.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_port_list.c | 0 {omc/plat => plat}/mgc_v2/src/mgc_sur_info.c | 0 .../mgc_v2/src/mgc_tandem_info.c | 0 {omc/plat => plat}/mgc_v2/ut/CUnit-List.dtd | 0 {omc/plat => plat}/mgc_v2/ut/CUnit-List.xsl | 0 {omc/plat => plat}/mgc_v2/ut/CUnit-Run.dtd | 0 {omc/plat => plat}/mgc_v2/ut/CUnit-Run.xsl | 0 {omc/plat => plat}/mgc_v2/ut/Makefile | 2 +- .../plat => plat}/mgc_v2/ut/conf/iptrans.conf | 0 {omc/plat => plat}/mgc_v2/ut/conf/menu_page | 0 .../mgc_v2/ut/include/Automated.h | 0 {omc/plat => plat}/mgc_v2/ut/include/Basic.h | 0 .../mgc_v2/ut/include/CUCurses.h | 0 .../plat => plat}/mgc_v2/ut/include/CUError.h | 0 {omc/plat => plat}/mgc_v2/ut/include/CUnit.h | 0 .../plat => plat}/mgc_v2/ut/include/Console.h | 0 {omc/plat => plat}/mgc_v2/ut/include/MyMem.h | 0 {omc/plat => plat}/mgc_v2/ut/include/TestDB.h | 0 .../plat => plat}/mgc_v2/ut/include/TestRun.h | 0 {omc/plat => plat}/mgc_v2/ut/include/Util.h | 0 {omc/plat => plat}/mgc_v2/ut/mgc_v2_test | Bin {omc/plat => plat}/mgc_v2/ut/mgc_v2_test.c | 0 {omc/plat => plat}/mgcp/Makefile | 3 +- {omc/plat => plat}/mgcp/src/include/mgcp.h | 0 .../mgcp/src/include/mgcp_const.h | 0 .../mgcp/src/include/mgcp_debug.h | 0 .../plat => plat}/mgcp/src/include/mgcp_def.h | 0 .../plat => plat}/mgcp/src/include/mgcp_ext.h | 0 .../plat => plat}/mgcp/src/include/mgcp_msg.h | 0 .../plat => plat}/mgcp/src/include/mgcp_pub.h | 0 .../mgcp/src/include/mgcp_struct.h | 0 .../mgcp/src/include/mgcp_trans.h | 0 {omc/plat => plat}/mgcp/src/mgcp.c | 0 {omc/plat => plat}/mgcp/src/mgcp_debug.c | 0 {omc/plat => plat}/mgcp/src/mgcp_msg.c | 0 {omc/plat => plat}/mgcp/src/mgcp_trans.c | 0 {omc/plat => plat}/mtp3/Makefile | 3 +- {omc/plat => plat}/mtp3/src/include/mtp3.h | 0 .../plat => plat}/mtp3/src/include/mtp3lite.h | 0 .../mtp3/src/include/mtp3lite_pub.h | 0 .../plat => plat}/mtp3/src/include/mtpconst.h | 0 {omc/plat => plat}/mtp3/src/include/mtpdef.h | 0 {omc/plat => plat}/mtp3/src/include/mtpext.h | 0 {omc/plat => plat}/mtp3/src/include/mtpfunc.h | 0 {omc/plat => plat}/mtp3/src/include/mtpstm.h | 0 {omc/plat => plat}/mtp3/src/mtp3lite.c | 0 {omc/plat => plat}/mtp3/src/mtpinit.c | 0 {omc/plat => plat}/mtp3/src/mtpm.c | 0 {omc/plat => plat}/mtp3/src/mtpmib.c | 0 {omc/plat => plat}/mtp3/src/mtpslm.c | 0 {omc/plat => plat}/mtp3/src/mtpsmh.c | 0 {omc/plat => plat}/mtp3/src/mtpsrm.c | 0 {omc/plat => plat}/mtp3/src/mtpstm.c | 0 {omc/plat => plat}/mtp3_old/Makefile | 3 +- .../plat => plat}/mtp3_old/src/include/mtp3.h | 0 .../mtp3_old/src/include/mtp3lite.h | 0 .../mtp3_old/src/include/mtp3lite_pub.h | 0 .../mtp3_old/src/include/mtpconst.h | 0 .../mtp3_old/src/include/mtpdef.h | 0 .../mtp3_old/src/include/mtpext.h | 0 .../mtp3_old/src/include/mtpfunc.h | 0 .../mtp3_old/src/include/mtpstm.h | 0 {omc/plat => plat}/mtp3_old/src/mtp3lite.c | 0 {omc/plat => plat}/mtp3_old/src/mtpinit.c | 0 {omc/plat => plat}/mtp3_old/src/mtpm.c | 0 {omc/plat => plat}/mtp3_old/src/mtpmib.c | 0 {omc/plat => plat}/mtp3_old/src/mtpslm.c | 0 {omc/plat => plat}/mtp3_old/src/mtpsmh.c | 0 {omc/plat => plat}/mtp3_old/src/mtpsrm.c | 0 {omc/plat => plat}/mtp3_old/src/mtpstm.c | 0 {omc/plat => plat}/pal/Makefile | 0 .../lib/Just for creating lib directory.txt | 0 {omc/plat => plat}/pal/pal.h | 0 {omc/plat => plat}/pal/rm.c | 0 {omc/plat => plat}/public/Makefile | 3 +- {omc/plat => plat}/public/src/apiKey.c | 0 {omc/plat => plat}/public/src/asn1.c | 0 {omc/plat => plat}/public/src/bisearch.c | 0 {omc/plat => plat}/public/src/cJSON.c | 0 {omc/plat => plat}/public/src/cdr.c | 0 {omc/plat => plat}/public/src/crypt.c | 0 {omc/plat => plat}/public/src/include/asn1.h | 0 .../public/src/include/bisearch.h | 0 {omc/plat => plat}/public/src/include/cJSON.h | 0 {omc/plat => plat}/public/src/include/cdr.h | 0 {omc/plat => plat}/public/src/include/crypt.h | 0 .../public/src/include/includes.h | 0 .../public/src/include/keyValuePair.h | 0 .../public/src/include/license_id.h | 0 {omc/plat => plat}/public/src/include/list.h | 0 .../public/src/include/memwatch.h | 0 .../public/src/include/omc_public.h | 0 .../public/src/include/pub_base.h | 0 .../public/src/include/pub_debug.h | 0 .../public/src/include/pub_file.h | 0 .../public/src/include/pub_fmt.h | 0 .../public/src/include/pub_include.h | 0 .../public/src/include/pub_inet.h | 0 .../public/src/include/pub_list.h | 0 .../public/src/include/pub_log.h | 0 .../public/src/include/pub_malloc.h | 0 .../public/src/include/pub_netcap.h | 0 .../public/src/include/pub_sdp.h | 0 .../public/src/include/pub_str.h | 0 .../public/src/include/pub_sys.h | 0 .../public/src/include/pub_time.h | 0 .../public/src/include/pub_timer.h | 0 .../public/src/include/pub_wnet.h | 0 .../plat => plat}/public/src/include/public.h | 0 .../public/src/include/svrstat.h | 0 {omc/plat => plat}/public/src/list.c | 0 {omc/plat => plat}/public/src/memwatch.c | 0 {omc/plat => plat}/public/src/pub_conf.c | 0 {omc/plat => plat}/public/src/pub_debug.c | 0 {omc/plat => plat}/public/src/pub_file.c | 0 {omc/plat => plat}/public/src/pub_fmt.c | 0 {omc/plat => plat}/public/src/pub_inet.c | 0 {omc/plat => plat}/public/src/pub_log.c | 0 {omc/plat => plat}/public/src/pub_malloc.c | 0 {omc/plat => plat}/public/src/pub_netcap.c | 0 {omc/plat => plat}/public/src/pub_sdp.c | 0 {omc/plat => plat}/public/src/pub_str.c | 0 {omc/plat => plat}/public/src/pub_sys.c | 0 {omc/plat => plat}/public/src/pub_time.c | 0 {omc/plat => plat}/public/src/pub_timer.c | 0 {omc/plat => plat}/public/src/pub_wnet.c | 0 {omc/plat => plat}/public/src/shm.c | 0 {omc/plat => plat}/public/src/uwav/number.c | 0 {omc/plat => plat}/public/src/uwav/number.h | 0 {omc/plat => plat}/public/src/uwav/numgrp.c | 0 {omc/plat => plat}/public/src/uwav/numgrp.h | 0 {omc/plat => plat}/public/ut/asn.1/asntest.c | 0 .../public/ut/bisearch/bisearch_test.c | 0 {omc/plat => plat}/public/ut/debug_api/debug | Bin .../public/ut/debug_api/wxc_debug_test.c | 0 {omc/plat => plat}/public/ut/function.c | 0 .../public/ut/inet/pub_inet_test.c | 0 .../public}/ut/main/Makefile | 2 +- {omc/plat => plat}/public/ut/main/src/main.c | 0 .../public/ut/public_test/public_test.c | 0 {omc/plat => plat}/public/ut/timer/Makefile | 2 +- .../public/ut/timer/wxc_tmtest.c | 0 {omc/plat => plat}/public_bak/Makefile | 3 +- {omc/plat => plat}/public_bak/src/asn1.c | 0 {omc/plat => plat}/public_bak/src/bisearch.c | 0 {omc/plat => plat}/public_bak/src/crypt.c | 0 .../public_bak/src/include/asn1.h | 0 .../public_bak/src/include/bisearch.h | 0 .../public_bak/src/include/crypt.h | 0 .../public_bak/src/include/includes.h | 0 .../public_bak/src/include/license_id.h | 0 .../public_bak/src/include/memwatch.h | 0 .../public_bak/src/include/omc_public.h | 0 .../public_bak/src/include/pub_base.h | 0 .../public_bak/src/include/pub_debug.h | 0 .../public_bak/src/include/pub_file.h | 0 .../public_bak/src/include/pub_fmt.h | 0 .../public_bak/src/include/pub_include.h | 0 .../public_bak/src/include/pub_inet.h | 0 .../public_bak/src/include/pub_list.h | 0 .../public_bak/src/include/pub_log.h | 0 .../public_bak/src/include/pub_malloc.h | 0 .../public_bak/src/include/pub_netcap.h | 0 .../public_bak/src/include/pub_sdp.h | 0 .../public_bak/src/include/pub_str.h | 0 .../public_bak/src/include/pub_sys.h | 0 .../public_bak/src/include/pub_time.h | 0 .../public_bak/src/include/pub_timer.h | 0 .../public_bak/src/include/pub_wnet.h | 0 .../public_bak/src/include/public.h | 0 .../public_bak/src/include/svrstat.h | 0 {omc/plat => plat}/public_bak/src/memwatch.c | 0 {omc/plat => plat}/public_bak/src/pub_conf.c | 0 {omc/plat => plat}/public_bak/src/pub_debug.c | 0 {omc/plat => plat}/public_bak/src/pub_file.c | 0 {omc/plat => plat}/public_bak/src/pub_fmt.c | 0 {omc/plat => plat}/public_bak/src/pub_inet.c | 0 {omc/plat => plat}/public_bak/src/pub_log.c | 0 .../plat => plat}/public_bak/src/pub_malloc.c | 0 .../plat => plat}/public_bak/src/pub_netcap.c | 0 {omc/plat => plat}/public_bak/src/pub_sdp.c | 0 {omc/plat => plat}/public_bak/src/pub_str.c | 0 {omc/plat => plat}/public_bak/src/pub_sys.c | 0 {omc/plat => plat}/public_bak/src/pub_time.c | 0 {omc/plat => plat}/public_bak/src/pub_timer.c | 0 {omc/plat => plat}/public_bak/src/pub_wnet.c | 0 .../public_bak/src/uwav/number.c | 0 .../public_bak/src/uwav/number.h | 0 .../public_bak/src/uwav/numgrp.c | 0 .../public_bak/src/uwav/numgrp.h | 0 .../public_bak/ut/asn.1/asntest.c | 0 .../public_bak/ut/bisearch/bisearch_test.c | 0 .../public_bak/ut/debug_api/debug | Bin .../public_bak/ut/debug_api/wxc_debug_test.c | 0 {omc/plat => plat}/public_bak/ut/function.c | 0 .../public_bak/ut/inet/pub_inet_test.c | 0 .../public_bak}/ut/main/Makefile | 2 +- .../public_bak/ut/main/src/main.c | 0 .../public_bak/ut/public_test/public_test.c | 0 .../public_bak/ut/timer/Makefile | 2 +- .../public_bak/ut/timer/wxc_tmtest.c | 0 {omc/plat => plat}/rtp/Makefile | 3 +- {omc/plat => plat}/rtp/src/include/rtp.h | 0 .../plat => plat}/rtp/src/include/rtp_const.h | 0 {omc/plat => plat}/rtp/src/include/rtp_def.h | 0 {omc/plat => plat}/rtp/src/include/rtp_ext.h | 0 {omc/plat => plat}/rtp/src/include/rtp_msg.h | 0 {omc/plat => plat}/rtp/src/include/rtp_pub.h | 0 .../rtp/src/include/rtp_struct.h | 0 {omc/plat => plat}/rtp/src/rtp.c | 0 {omc/plat => plat}/rtp/src/rtp_msg.c | 0 {omc/plat => plat}/sccp/Makefile | 3 +- {omc/plat => plat}/sccp/src/include/sccp.h | 0 .../sccp/src/include/sccp_func.h | 0 .../plat => plat}/sccp/src/include/sccp_pub.h | 0 .../sccp/src/include/sccpconst.h | 0 {omc/plat => plat}/sccp/src/include/scoc.h | 0 {omc/plat => plat}/sccp/src/include/scoc_if.h | 0 {omc/plat => plat}/sccp/src/sccp.c | 0 {omc/plat => plat}/sccp/src/sccp_debug.c | 0 {omc/plat => plat}/sccp/src/sccp_func.c | 0 {omc/plat => plat}/sccp/src/sccp_gtt.c | 0 {omc/plat => plat}/sccp/src/sccp_log.c | 0 {omc/plat => plat}/sccp/src/sccp_mib.c | 0 {omc/plat => plat}/sccp/src/sccp_msg.c | 0 {omc/plat => plat}/sccp/src/sccp_param.c | 0 {omc/plat => plat}/sccp/src/sclc.c | 0 {omc/plat => plat}/sccp/src/scmg.c | 0 {omc/plat => plat}/sccp/src/scoc.c | 0 {omc/plat => plat}/sccp/src/scoc_fsm.c | 0 {omc/plat => plat}/sccp/src/scoc_func.c | 0 {omc/plat => plat}/sccp/src/scoc_if.c | 0 {omc/plat => plat}/sccp/src/scoc_pool.c | 0 {omc/plat => plat}/sccp/src/scoc_pri.c | 0 {omc/plat => plat}/sccp/src/scrc.c | 0 {omc/plat => plat}/sccp/ut/fsmtest/Makefile | 2 +- .../sccp/ut/fsmtest/bin/conf/HlrSysPara | Bin .../sccp/ut/fsmtest/bin/conf/cap_acn.conf | 0 .../ut/fsmtest/bin/conf/cap_operation.conf | 0 .../sccp/ut/fsmtest/bin/conf/cc_table.conf | 0 .../sccp/ut/fsmtest/bin/conf/conv_prefix.conf | Bin .../sccp/ut/fsmtest/bin/conf/hae_sys.conf | 0 .../sccp/ut/fsmtest/bin/conf/help_page | 0 .../ut/fsmtest/bin/conf/hlr_parambit.conf | Bin .../sccp/ut/fsmtest/bin/conf/iptrans.conf | 0 .../sccp/ut/fsmtest/bin/conf/map_acn.conf | 0 .../ut/fsmtest/bin/conf/map_operation.conf | 0 .../sccp/ut/fsmtest/bin/conf/menu_page | 0 .../sccp/ut/fsmtest/bin/conf/mtp3.conf | 0 .../sccp/ut/fsmtest/bin/conf/ppsConf.txt | Bin .../sccp/ut/fsmtest/bin/conf/profile | 0 .../sccp/ut/fsmtest/bin/conf/sccp.conf | 0 .../sccp/ut/fsmtest/bin/conf/sccp_test.conf | 0 .../sccp/ut/fsmtest/bin/conf/smsc_csta.conf | 0 .../ut/fsmtest/bin/conf/smsc_parambit.conf | Bin .../sccp/ut/fsmtest/bin/conf/smsc_sys.conf | 0 .../sccp/ut/fsmtest/bin/conf/system.ini | Bin .../sccp/ut/fsmtest/bin/conf/wxc2_sys.conf | 0 .../sccp/ut/fsmtest/bin/conf/wxc2exit.txt | 0 .../ut/fsmtest/bin/conf/xap_sysparam.conf | Bin .../sccp/ut/fsmtest/obj/sccp_test.gcno | Bin .../sccp/ut/fsmtest/obj/scoc_test.gcno | Bin .../plat => plat}/sccp/ut/fsmtest/sccp_test.c | 0 .../plat => plat}/sccp/ut/fsmtest/scoc_test.c | 0 {omc/plat => plat}/scf/Makefile | 3 +- {omc/plat => plat}/scf/src/include/scfdef.h | 0 {omc/plat => plat}/scf/src/include/scfmsg.h | 0 {omc/plat => plat}/scf/src/include/scfpub.h | 0 {omc/plat => plat}/scf/src/scfdef.h | 0 {omc/plat => plat}/scf/src/scfmsg.c | 0 {omc/plat => plat}/scf/src/scfmsg.h | 0 {omc/plat => plat}/scf/src/scfpub.h | 0 {omc/plat => plat}/scf/src/scsm.c | 0 {omc/plat => plat}/sip/Makefile | 3 +- {omc/plat => plat}/sip/src/include/sip.h | 0 .../plat => plat}/sip/src/include/sip_const.h | 0 .../plat => plat}/sip/src/include/sip_debug.h | 0 {omc/plat => plat}/sip/src/include/sip_def.h | 0 {omc/plat => plat}/sip/src/include/sip_ext.h | 0 {omc/plat => plat}/sip/src/include/sip_msg.h | 0 .../sip/src/include/sip_msg_encode.h | 0 .../sip/src/include/sip_msg_parse.h | 0 {omc/plat => plat}/sip/src/include/sip_pub.h | 0 .../sip/src/include/sip_struct.h | 0 .../sip/src/include/sip_transaction.h | 0 .../sip/src/include/sip_transport.h | 0 {omc/plat => plat}/sip/src/include/sip_ua.h | 0 .../sip/src/include/sip_ua_const.h | 0 .../sip/src/include/sip_ua_def.h | 0 .../sip/src/include/sip_ua_dialog.h | 0 .../sip/src/include/sip_ua_ext.h | 0 .../sip/src/include/sip_ua_msg.h | 0 .../sip/src/include/sip_ua_pub.h | 0 .../sip/src/include/sip_ua_struct.h | 0 {omc/plat => plat}/sip/src/sip.c | 0 {omc/plat => plat}/sip/src/sip_debug.c | 0 {omc/plat => plat}/sip/src/sip_msg.c | 0 {omc/plat => plat}/sip/src/sip_msg_encode.c | 0 {omc/plat => plat}/sip/src/sip_msg_parse.c | 0 {omc/plat => plat}/sip/src/sip_transaction.c | 0 {omc/plat => plat}/sip/src/sip_transport.c | 0 {omc/plat => plat}/sip/src/sip_ua.c | 0 {omc/plat => plat}/sip/src/sip_ua_dialog.c | 0 {omc/plat => plat}/sip/src/sip_ua_fsm.c | 0 {omc/plat => plat}/sip/src/sip_ua_msg.c | 0 {omc/plat => plat}/smpp/Makefile | 3 +- .../smpp/doc/SMPP_R9V0_01P12.doc | Bin .../smpp/doc/SMPP_R9V0_01P13.doc | Bin .../smpp/doc/SMPP_R9V0_01P14.doc | Bin .../smpp/doc/SMPP_R9V0_01P15.doc | Bin {omc/plat => plat}/smpp/src/include/smpp.h | 0 .../smpp/src/include/smpp_const.h | 0 .../plat => plat}/smpp/src/include/smpp_def.h | 0 .../plat => plat}/smpp/src/include/smpp_ext.h | 0 .../plat => plat}/smpp/src/include/smpp_msg.h | 0 .../smpp/src/include/smpp_public.h | 0 {omc/plat => plat}/smpp/src/smpp_debug.c | 0 {omc/plat => plat}/smpp/src/smpp_fsm.c | 0 {omc/plat => plat}/smpp/src/smpp_func.c | 15 +- {omc/plat => plat}/smpp/src/smpp_mib.c | 0 {omc/plat => plat}/smpp/src/smpp_msg.c | 0 .../smpp/ut/conf/MIB_files/IWV-SMI.txt | 0 .../ut/conf/MIB_files/Special_App-SMI.txt | 0 .../smpp/ut/conf/MIB_files/System_IP_List.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-AUC-MIB.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-HLR-MIB.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-MSC-MIB.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-MSS-MIB.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-PPS-MIB.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-SMI.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-SMSC-MIB.txt | 0 .../smpp/ut/conf/MIB_files/WXC2-SS7-MIB.txt | 0 .../smpp/ut/conf/MIB_files/menu_page | 0 .../smpp/ut/conf/MIB_files/menu_tree.txt | 0 .../smpp/ut/conf/MIB_files/mib_list_file.txt | 0 .../smpp/ut/conf/MIB_files/mib_write_tree.txt | 0 .../smpp/ut/conf/guess_number_test.conf | 0 {omc/plat => plat}/smpp/ut/conf/help_page | 0 {omc/plat => plat}/smpp/ut/conf/iptrans.conf | 0 {omc/plat => plat}/smpp/ut/conf/menu_page | 0 {omc/plat => plat}/smpp/ut/conf/mtp3.conf | 0 {omc/plat => plat}/smpp/ut/conf/sccp.conf | 0 {omc/plat => plat}/smpp/ut/conf/smpp.conf | 0 .../smpp/ut/smpp_test/smpp_test.c | 0 .../smpp/ut/smpp_ussd_test/guess_number.c | 0 .../smpp/ut/smpp_ussd_test/pppchat.c | 0 {omc/plat => plat}/snmp/Makefile | 3 +- {omc/plat => plat}/snmp/src/heartbeat.c | 0 .../snmp/src/include/heartbeat.h | 0 {omc/plat => plat}/snmp/src/include/macro.h | 0 {omc/plat => plat}/snmp/src/include/snmp.h | 0 {omc/plat => plat}/snmp/src/include/sysctrl.h | 0 {omc/plat => plat}/snmp/src/include/table.h | 0 .../snmp/src/mib_parser/snmp_mib.c | 0 .../snmp/src/mib_parser/snmp_mib.h | 0 .../snmp/src/mib_parser/snmp_mib_api.c | 0 .../snmp/src/mib_parser/snmp_mib_api.h | 0 {omc/plat => plat}/snmp/src/snmp.c | 0 {omc/plat => plat}/snmp/src/snmpdebug.c | 0 {omc/plat => plat}/snmp/src/snmpmib.c | 0 {omc/plat => plat}/snmp/src/snmptable.c | 0 {omc/plat => plat}/snmp/src/snmptest.c | 0 {omc/plat => plat}/snmp/src/sysctrl.c | 4 + {omc/plat => plat}/tcap/Makefile | 3 +- {omc/plat => plat}/tcap/src/idmanage.c | 0 .../plat => plat}/tcap/src/include/idmanage.h | 0 {omc/plat => plat}/tcap/src/include/itcap.h | 0 .../tcap/src/include/tcap_head.h | 0 {omc/plat => plat}/tcap/src/include/tcap_m.h | 0 .../tcap/src/include/tcap_proc.h | 0 .../tcap/src/include/tcap_public.h | 0 .../tcap/src/include/tcap_struct.h | 0 {omc/plat => plat}/tcap/src/itcap.c | 0 {omc/plat => plat}/tcap/src/tcap_coding.c | 0 {omc/plat => plat}/tcap/src/tcap_fsm.c | 0 {omc/plat => plat}/tcap/src/tcap_m.c | 0 {omc/plat => plat}/xapp/Makefile | 3 +- {omc/plat => plat}/xapp/conf/cap_acn.conf | 0 .../xapp/conf/cap_operation.conf | 0 {omc/plat => plat}/xapp/conf/map_acn.conf | 0 .../xapp/conf/map_operation.conf | 0 {omc/plat => plat}/xapp/src/capp/cap_coding.h | 0 {omc/plat => plat}/xapp/src/capp/cap_head.h | 0 {omc/plat => plat}/xapp/src/capp/cap_msg.c | 0 {omc/plat => plat}/xapp/src/capp/cap_msg.h | 0 .../plat => plat}/xapp/src/capp/cap_msgtype.c | 0 {omc/plat => plat}/xapp/src/capp/cap_public.c | 0 {omc/plat => plat}/xapp/src/capp/cap_public.h | 0 {omc/plat => plat}/xapp/src/capp/icap.h | 0 {omc/plat => plat}/xapp/src/conv_prefix.c | 0 {omc/plat => plat}/xapp/src/conv_prefix.h | 0 {omc/plat => plat}/xapp/src/ixap.h | 0 {omc/plat => plat}/xapp/src/mapp/Map_opr.c | 0 {omc/plat => plat}/xapp/src/mapp/imap.h | 0 {omc/plat => plat}/xapp/src/mapp/is41_code.h | 0 .../xapp/src/mapp/is41_code_auc.c | 0 .../xapp/src/mapp/is41_code_ms.c | 0 .../xapp/src/mapp/is41_code_sms.c | 0 .../xapp/src/mapp/is41_code_win.c | 0 .../plat => plat}/xapp/src/mapp/is41_coding.c | 0 {omc/plat => plat}/xapp/src/mapp/is41_debug.c | 0 {omc/plat => plat}/xapp/src/mapp/is41_init.c | 0 .../plat => plat}/xapp/src/mapp/map_LCSCode.c | 0 .../plat => plat}/xapp/src/mapp/map_LCSCode.h | 0 {omc/plat => plat}/xapp/src/mapp/map_acn.h | 0 {omc/plat => plat}/xapp/src/mapp/map_code.h | 0 .../xapp/src/mapp/map_code_auc.c | 0 .../plat => plat}/xapp/src/mapp/map_code_ch.c | 0 .../xapp/src/mapp/map_code_dlgpdu.c | 0 .../plat => plat}/xapp/src/mapp/map_code_ms.c | 0 .../plat => plat}/xapp/src/mapp/map_code_om.c | 0 .../xapp/src/mapp/map_code_sms.c | 0 .../plat => plat}/xapp/src/mapp/map_code_ss.c | 0 {omc/plat => plat}/xapp/src/mapp/map_coding.c | 0 {omc/plat => plat}/xapp/src/mapp/map_coding.h | 0 {omc/plat => plat}/xapp/src/mapp/map_const.h | 0 {omc/plat => plat}/xapp/src/mapp/map_dlgpdu.h | 0 .../xapp/src/mapp/map_includes.h | 0 .../xapp/src/mapp/map_opr_func.h | 0 {omc/plat => plat}/xapp/src/mapp/map_public.c | 0 {omc/plat => plat}/xapp/src/mapp/map_public.h | 0 {omc/plat => plat}/xapp/src/mapp/map_struct.h | 0 {omc/plat => plat}/xapp/src/mapp/win_struct.h | 0 {omc/plat => plat}/xapp/src/xap_cdmacdr.c | 0 .../xapp/src}/xap_cdmacdr.h | 0 {omc/plat => plat}/xapp/src/xap_interface.c | 0 .../xapp/src}/xap_interfunc.h | 0 {omc/plat => plat}/xapp/src/xap_monitor.c | 0 .../xapp/src}/xap_monitor.h | 0 {omc/plat => plat}/xapp/src/xap_provider.c | 0 {omc/plat => plat}/xapp/src/xap_provider.h | 0 {omc/plat => plat}/xapp/ut/xapp_test/Makefile | 0 .../xapp/ut/xapp_test/conf/.sccp.conf.swo | Bin .../xapp/ut/xapp_test/conf/HlrSysPara | Bin .../xapp/ut/xapp_test/conf/cap_acn.conf | 0 .../xapp/ut/xapp_test/conf/cap_operation.conf | 0 .../xapp/ut/xapp_test/conf/cc_table.conf | 0 .../xapp/ut/xapp_test/conf/conf.rar | Bin .../xapp/ut/xapp_test/conf/conv_prefix.conf | Bin .../xapp/ut/xapp_test/conf/hae_sys.conf | 0 .../xapp/ut/xapp_test/conf/help_page | 0 .../xapp/ut/xapp_test/conf/hlr_parambit.conf | Bin .../xapp/ut/xapp_test/conf/iptrans.conf | 0 .../xapp/ut/xapp_test/conf/map_acn.conf | 0 .../xapp/ut/xapp_test/conf/map_operation.conf | 0 .../xapp/ut/xapp_test/conf/menu_page | 0 .../xapp/ut/xapp_test/conf/mtp3.conf | 0 .../xapp/ut/xapp_test/conf/ppsConf.txt | Bin .../xapp/ut/xapp_test/conf/profile | 0 .../xapp/ut/xapp_test/conf/sccp.conf | 0 .../xapp/ut/xapp_test/conf/smsc_csta.conf | 0 .../xapp/ut/xapp_test/conf/smsc_parambit.conf | Bin .../xapp/ut/xapp_test/conf/smsc_sys.conf | 0 .../xapp/ut/xapp_test/conf/system.ini | Bin .../xapp/ut/xapp_test/conf/system.ini.100k | Bin .../xapp/ut/xapp_test/conf/system.ini.30K | Bin .../ut/xapp_test/conf/system.inimscvlrhlr | Bin .../xapp/ut/xapp_test/conf/wxc2_sys.conf | 0 .../xapp/ut/xapp_test/conf/wxc2exit.txt | 0 .../xapp/ut/xapp_test/conf/xap_sysparam.conf | Bin .../xapp/ut/xapp_test/conf/xapp_test.conf | 0 .../xapp/ut/xapp_test/xapp_coding_test.c | 0 .../xapp/ut/xapp_test/xapp_coding_test.h | 0 .../xapp/ut/xapp_test/xapp_main.c | 0 .../xapp/ut/xapp_test/xapp_main.h | 0 .../xapp/ut/xapp_test/xapp_op_test.c | 0 .../xapp/ut/xapp_test/xapp_op_test.h | 0 src/README.md | 24 + .../c_program/cdrCollector/Makefile | 90 + src/accountMgr/c_program/cdrCollector/cdr.c | 2494 ++++++ src/accountMgr/c_program/cdrCollector/cdr.h | 145 + src/accountMgr/c_program/cdrCollector/cdrdb.c | 1534 ++++ .../c_program/cdrCollector/cdrmain.c | 132 + .../c_program/cdrCollector/test.txt | 29 + src/accountMgr/c_program/ftpsend/Makefile | 77 + src/accountMgr/c_program/ftpsend/ftpsend.c | 1062 +++ src/accountMgr/c_program/ftpsend/ftpsend.h | 32 + src/accountMgr/c_program/ftpsend/run | 8 + src/accountMgr/c_program/nrtrde/Makefile | 54 + .../accountMgr/c_program/nrtrde/conf}/NR.conf | 0 src/accountMgr/c_program/nrtrde/conv_prefix.c | 148 + .../c_program/nrtrde}/conv_prefix.h | 24 +- src/accountMgr/c_program/nrtrde/createCDRs | 7206 ++++++++++++++++ src/accountMgr/c_program/nrtrde/decodeASN.c | 4937 +++++++++++ src/accountMgr/c_program/nrtrde/encodeASN.c | 1954 +++++ src/accountMgr/c_program/nrtrde/init | 19 + src/accountMgr/c_program/nrtrde/nrtrde.c | 2139 +++++ src/accountMgr/c_program/nrtrde/nrtrde.h | 130 + src/accountMgr/c_program/nrtrde/seq_num_mng.c | 204 + src/accountMgr/c_program/sftpSend/Makefile | 52 + .../c_program/sftpSend/conf/NR.conf | 45 + src/accountMgr/c_program/sftpSend/init | 4 + .../accountMgr/c_program/sftpSend}/initKeys | 0 .../c_program/sftpSend}/parseResult | 0 .../accountMgr/c_program/sftpSend}/sendfile | 2 +- src/accountMgr/c_program/sftpSend/sftp.c | 2032 +++++ src/accountMgr/c_program/sftpSend/sftp.h | 127 + src/accountMgr/c_program/sftpSend/sftpSend.c | 126 + src/accountMgr/c_program/smcli/Makefile | 92 + src/accountMgr/c_program/smcli/commands.c | 5068 +++++++++++ src/accountMgr/c_program/smcli/pmcli.c | 1226 +++ src/accountMgr/c_program/smcli/smcli.c | 5203 ++++++++++++ src/accountMgr/c_program/smcli/smcli.h | 300 + src/accountMgr/c_program/subsComm/Makefile | 78 + src/accountMgr/c_program/subsComm/remark.txt | 27 + src/accountMgr/c_program/subsComm/subsComm.c | 2121 +++++ src/accountMgr/c_program/subsComm/subsComm.h | 173 + .../c_program/subsComm/subsCommMain.c | 173 + src/accountMgr/c_program/subsComm/testReport | 28 + .../c_program/subsDataBackup/Makefile | 84 + .../c_program/subsDataBackup/subsDataBackup.c | 669 ++ .../c_program/subsDataBackup/subsDataBackup.h | 88 + .../subsDataBackup/subsDataBackupMain.c | 107 + src/accountMgr/c_program/wsms/Makefile | 90 + src/accountMgr/c_program/wsms/wsms.c | 1198 +++ src/accountMgr/c_program/wsms/wsms.h | 52 + src/accountMgr/c_program/wsms/wsmsmain.c | 102 + .../wxc1AndWxc2ConverseTools/Makefile | 104 + .../c_program/wxc1AndWxc2ConverseTools/cdr.c | 2393 ++++++ .../c_program/wxc1AndWxc2ConverseTools/cdr.h | 155 + .../wxc1AndWxc2ConverseTools/cdrdb.c | 990 +++ .../wxc1AndWxc2ConverseTools/cdrdebug.c | 115 + .../wxc1AndWxc2ConverseTools/cdrlog.c | 194 + .../wxc1AndWxc2ConverseTools/cdrmain.c | 139 + .../wxc1AndWxc2ConverseTools/converseTools | 14 + src/configMgr/c_program/impmod/Makefile | 91 + src/configMgr/c_program/impmod/alive.c | 365 + src/configMgr/c_program/impmod/bss_hb.c | 500 ++ src/configMgr/c_program/impmod/bss_hb.h | 140 + src/configMgr/c_program/impmod/bsscomm.c | 4618 ++++++++++ src/configMgr/c_program/impmod/bsscomm.h | 358 + src/configMgr/c_program/impmod/includes.h | 90 + src/configMgr/c_program/impmod/iwtypes.h | 41 + src/configMgr/c_program/impmod/nmimp.c | 2478 ++++++ src/configMgr/c_program/impmod/nmimp.h | 459 + src/configMgr/c_program/impmod/nmstatus.h | 110 + src/configMgr/c_program/impmod/nmtypes.c | 503 ++ src/configMgr/c_program/impmod/nmtypes.h | 201 + src/configMgr/c_program/paraComm/Makefile | 84 + .../c_program/paraComm/initParaConf.c | 478 ++ .../c_program/paraComm}/mib/LGC-MIB.my | 6 +- .../c_program/paraComm/mib/LGC-SS-MSC-MIB.my | 2601 +++--- .../paraComm/mib/LGC-SS-MSC-MIB_070824.my | 4356 ++++++++++ .../c_program/paraComm}/mib/SNMPv2-SMI | 0 .../c_program/paraComm}/mib/SNMPv2-TC | 0 src/configMgr/c_program/paraComm/mib/index | 5 + src/configMgr/c_program/paraComm/paraComm.c | 1916 +++++ src/configMgr/c_program/paraComm/paraComm.h | 220 + .../c_program/paraComm/paraCommMain.c | 137 + src/faultMgr/c_program/alarmAgent/Makefile | 79 + .../c_program/alarmAgent/alarmAgent.c | 89 + .../c_program/alarmAgent/alarmAgent.h | 55 + src/faultMgr/c_program/alarmAgent/alarmSnmp.c | 1044 +++ .../c_program/alarmGenerator/Alarm List.xls | Bin 0 -> 105472 bytes .../c_program/alarmGenerator/Makefile | 77 + .../WXCII_AlarmSupport_Test_report.doc | Bin 0 -> 225280 bytes .../c_program/alarmGenerator/alarmAgent.c | 86 + .../c_program/alarmGenerator/alarmAgent.h | 47 + .../c_program/alarmGenerator/alarmGen.c | 1176 +++ .../c_program/alarmGenerator/alarmGen.h | 30 + .../c_program/alarmGenerator/alarmMain.c | 86 + .../c_program/alarmGenerator/conf.tgz | Bin 0 -> 52086 bytes .../alarmGenerator/conf/MIB_files/IWV-SMI.txt | 40 + .../conf/MIB_files/Special_App-SMI.txt | 43 + .../conf/MIB_files/System_IP_List.txt | 60 + .../conf/MIB_files/WXC2-SMI.txt | 57 + .../conf/MIB_files/WXC2-SS7-MIB.txt | 3729 +++++++++ .../alarmGenerator/conf/MIB_files/help_page | 885 ++ .../alarmGenerator/conf/MIB_files/menu_page | 13 + .../conf/MIB_files/menu_tree.txt | 63 + .../conf/MIB_files/mib_list_file.txt | 14 + .../conf/MIB_files/mib_write_tree.txt | 4141 +++++++++ .../alarmGenerator/conf/MIB_files/sdf | 3630 ++++++++ .../conf/MIB_files_bak/IWV-SMI.txt | 40 + .../conf/MIB_files_bak/Special_App-SMI.txt | 43 + .../conf/MIB_files_bak/System_IP_List.txt | 60 + .../conf/MIB_files_bak/WXC2-SMI.txt | 57 + .../conf/MIB_files_bak/WXC2-SS7-MIB.txt | 3630 ++++++++ .../conf/MIB_files_bak/help_page | 885 ++ .../conf/MIB_files_bak/menu_page | 13 + .../conf/MIB_files_bak/menu_tree.txt | 63 + .../conf/MIB_files_bak/mib_list_file.txt | 14 + .../conf/MIB_files_bak/mib_write_tree.txt | 281 + .../alarmGenerator/conf/alarmGen.conf | 1 + .../c_program/alarmGenerator}/conf/chkDb.conf | 0 .../alarmGenerator/conf/conference_par.conf | Bin 0 -> 17676 bytes .../alarmGenerator/conf/download.conf | 69 + .../c_program/alarmGenerator}/conf/help_page | 2 +- .../alarmGenerator/conf/intercept.conf | 7 + .../alarmGenerator}/conf/iptrans.conf | 22 +- .../c_program/alarmGenerator/conf/menu_page | 9 + .../c_program/alarmGenerator/conf/mtp3.conf | 1477 ++++ .../c_program/alarmGenerator/conf/omc_db.conf | 35 + .../c_program/alarmGenerator}/conf/omcd.conf | 2 +- .../alarmGenerator}/conf/omcd.conf_bak | 2 +- .../c_program/alarmGenerator/conf/sccp.conf | 23 + .../alarmGenerator/conf}/server.conf | 25 +- .../alarmGenerator/conf/server.conf_bak | 26 + .../alarmGenerator/conf/sormAgent.conf | 13 + src/faultMgr/c_program/beatProc/Makefile | 80 + src/faultMgr/c_program/beatProc/beatProc.c | 637 ++ src/faultMgr/c_program/beatProc/beatProc.h | 102 + .../c_program/beatProc/beatProcMain.c | 12 + src/faultMgr/c_program/beatProc/makeomcmain | 6 + src/faultMgr/c_program/beatSend/Makefile | 84 + src/faultMgr/c_program/beatSend/beatSend.c | 915 ++ src/faultMgr/c_program/beatSend/beatSend.h | 100 + .../c_program/beatSend/beatSendMain.c | 131 + .../c_program/beatSend/conf/iptrans.conf | 7 + .../faultMgr/c_program/beatSend/conf/my.cnf | 74 +- .../c_program/beatSend/conf/my_master.cnf | 70 +- .../c_program/beatSend/conf/my_slave.cnf | 72 +- src/faultMgr/c_program/beatSend/conf/omcconf | 156 + .../c_program/beatSend/conf/server.conf | 14 + src/faultMgr/c_program/beatSend/make | 18 + src/faultMgr/c_program/beatSend/sys_stat.c | 288 + src/faultMgr/c_program/dualsrv/Makefile | 117 + src/faultMgr/c_program/dualsrv/dualsrv.c | 199 + src/faultMgr/c_program/dualsrv/dualsrv.h | 128 + .../c_program/dualsrv/dualsrv_debug.c | 93 + src/faultMgr/c_program/dualsrv/dualsrv_func.c | 274 + .../faultMgr/c_program/dualsrv/dualsrv_main.c | 0 src/faultMgr/c_program/dualsrv/dualsrv_pub.h | 9 + src/faultMgr/c_program/dualsrv/make.sh | 12 + src/faultMgr/c_program/makefile.sh | 18 + src/faultMgr/c_program/raidAgent/Makefile | 54 + src/faultMgr/c_program/raidAgent/make | 11 + src/faultMgr/c_program/raidAgent/raid_agent.c | 1124 +++ src/faultMgr/c_program/raidAgent/raid_agent.h | 117 + .../c_program/raidAgent/raid_agent_main.c | 56 + .../c_program/raidAgent/raid_agent_task.c | 115 + src/faultMgr/c_program/sysStat/Makefile | 33 + src/faultMgr/c_program/sysStat/includes.h | 37 + src/faultMgr/c_program/sysStat/statTest.c | 80 + src/faultMgr/c_program/sysStat/sysStat.c | 494 ++ src/faultMgr/c_program/sysStat/sysStat.h | 108 + src/makeall.sh | 195 + src/omcLib/c_program/ftp/Makefile | 61 + src/omcLib/c_program/ftp/ftp.c | 1246 +++ src/omcLib/c_program/ftp/ftp.h | 45 + src/omcLib/c_program/ftp/ftpclient.c | 85 + src/omcLib/c_program/omcLib/Makefile | 80 + src/omcLib/c_program/omcLib/mib_parse.c | 1774 ++++ src/omcLib/c_program/omcLib/mib_parse.h | 310 + src/omcLib/c_program/omcLib/omcDbLib.c | 437 + src/omcLib/c_program/omcLib/omcDbLib.h | 42 + src/omcLib/c_program/omcLib/omcFuncLib.c | 501 ++ src/omcLib/c_program/omcLib/omcFuncLib.h | 64 + src/omcLib/c_program/omcLib/omcLib.h | 27 + src/omcLib/c_program/omcLib/omcLibMain.c | 71 + src/omcMain/c_program/omcMain/Makefile | 105 + .../c_program/omcMain/conf}/chkDb.conf | 0 .../omcMain/conf/conference_par.conf | Bin 0 -> 17676 bytes .../c_program/omcMain/conf/download.conf | 69 + src/omcMain/c_program/omcMain/conf/help_page | 16 + .../c_program/omcMain/conf/iptrans.conf | 25 + src/omcMain/c_program/omcMain/conf/menu_page | 13 + src/omcMain/c_program/omcMain/conf/mtp3.conf | 699 ++ .../c_program/omcMain/conf/omc_db.conf | 33 + .../omcMain/c_program/omcMain/conf/omcd.conf | 2 +- src/omcMain/c_program/omcMain/conf/sccp.conf | 15 + .../c_program/omcMain}/conf/server.conf | 0 src/omcMain/c_program/omcMain/omcMain.c | 1153 +++ src/omcMain/c_program/omcMain/omcMain.h | 59 + .../c_program/cstaCollector/Makefile | 84 + .../c_program/cstaCollector/csta.c | 1804 ++++ .../c_program/cstaCollector/csta.h | 146 + .../c_program/cstaCollector/cstamain.c | 184 + .../c_program/logCollector/Makefile | 84 + .../c_program/logCollector/logCollector.c | 1102 +++ .../c_program/logCollector/logCollector.h | 118 + .../c_program/logCollector/logCollectorMain.c | 122 + src/securityMgr/c_program/omcCleaner/Makefile | 54 + .../c_program/omcCleaner/omc_cleaner.c | 553 ++ .../c_program/omcCleaner/omc_cleaner.h | 72 + .../c_program/omcCleaner/omc_cleaner_main.c | 56 + .../c_program/omcCleaner/omc_task.c | 122 + src/smeg/Makefile | 60 + src/smeg/make.sh | 11 + src/smeg/src/alert_smtp.c | 118 + src/smeg/src/dba_conn.c | 302 + src/smeg/src/debug.txt | 1 + src/smeg/src/include/db_adaptor.h | 47 + src/smeg/src/include/smeg_pub.h | 107 + src/smeg/src/include/smeg_smpp.h | 29 + src/smeg/src/include/smtp.h | 253 + src/smeg/src/include/smtp_const.h | 27 + src/smeg/src/include/smtp_struct.h | 35 + src/smeg/src/include/statistic_data.h | 53 + src/smeg/src/include/tcp_client.h | 41 + src/smeg/src/smeg.c | 572 ++ src/smeg/src/smeg_debug.c | 111 + src/smeg/src/smeg_mib.c | 1119 +++ src/smeg/src/smeg_smpp.c | 1527 ++++ src/smeg/src/smeg_smtp.c | 2088 +++++ src/smeg/src/tcp_client.c | 140 + 1551 files changed, 110216 insertions(+), 102864 deletions(-) rename omc/bin/conf/sync.conf => bin/.gitkeep (100%) delete mode 100644 include/Makefile.rules.bak delete mode 100644 include/gtest/gtest-death-test.h delete mode 100644 include/gtest/gtest-matchers.h delete mode 100644 include/gtest/gtest-message.h delete mode 100644 include/gtest/gtest-param-test.h delete mode 100644 include/gtest/gtest-printers.h delete mode 100644 include/gtest/gtest-spi.h delete mode 100644 include/gtest/gtest-test-part.h delete mode 100644 include/gtest/gtest-typed-test.h delete mode 100644 include/gtest/gtest.h delete mode 100644 include/gtest/gtest_pred_impl.h delete mode 100644 include/gtest/gtest_prod.h delete mode 100644 include/gtest/internal/custom/README.md delete mode 100644 include/gtest/internal/custom/gtest-port.h delete mode 100644 include/gtest/internal/custom/gtest-printers.h delete mode 100644 include/gtest/internal/custom/gtest.h delete mode 100644 include/gtest/internal/gtest-death-test-internal.h delete mode 100644 include/gtest/internal/gtest-filepath.h delete mode 100644 include/gtest/internal/gtest-internal.h delete mode 100644 include/gtest/internal/gtest-param-util.h delete mode 100644 include/gtest/internal/gtest-port-arch.h delete mode 100644 include/gtest/internal/gtest-port.h delete mode 100644 include/gtest/internal/gtest-string.h delete mode 100644 include/gtest/internal/gtest-type-util.h delete mode 100644 include/gtest/internal/gtest-type-util.h.pump delete mode 100644 include/hiredis/adapters/ae.h delete mode 100644 include/hiredis/adapters/glib.h delete mode 100644 include/hiredis/adapters/ivykis.h delete mode 100644 include/hiredis/adapters/libev.h delete mode 100644 include/hiredis/adapters/libevent.h delete mode 100644 include/hiredis/adapters/libuv.h delete mode 100644 include/hiredis/adapters/macosx.h delete mode 100644 include/hiredis/adapters/qt.h delete mode 100644 include/hiredis/alloc.h delete mode 100644 include/hiredis/async.h delete mode 100644 include/hiredis/hiredis.h delete mode 100644 include/hiredis/read.h delete mode 100644 include/hiredis/sds.h delete mode 100644 include/nettle/aes.h delete mode 100644 include/nettle/arcfour.h delete mode 100644 include/nettle/arctwo.h delete mode 100644 include/nettle/asn1.h delete mode 100644 include/nettle/base16.h delete mode 100644 include/nettle/base64.h delete mode 100644 include/nettle/bignum.h delete mode 100644 include/nettle/blowfish.h delete mode 100644 include/nettle/buffer.h delete mode 100644 include/nettle/camellia.h delete mode 100644 include/nettle/cast128.h delete mode 100644 include/nettle/cbc.h delete mode 100644 include/nettle/ccm.h delete mode 100644 include/nettle/cfb.h delete mode 100644 include/nettle/chacha-poly1305.h delete mode 100644 include/nettle/chacha.h delete mode 100644 include/nettle/ctr.h delete mode 100644 include/nettle/curve25519.h delete mode 100644 include/nettle/des-compat.h delete mode 100644 include/nettle/des.h delete mode 100644 include/nettle/dsa-compat.h delete mode 100644 include/nettle/dsa.h delete mode 100644 include/nettle/eax.h delete mode 100644 include/nettle/ecc-curve.h delete mode 100644 include/nettle/ecc.h delete mode 100644 include/nettle/ecdsa.h delete mode 100644 include/nettle/eddsa.h delete mode 100644 include/nettle/gcm.h delete mode 100644 include/nettle/gosthash94.h delete mode 100644 include/nettle/hkdf.h delete mode 100644 include/nettle/hmac.h delete mode 100644 include/nettle/knuth-lfib.h delete mode 100644 include/nettle/macros.h delete mode 100644 include/nettle/md2.h delete mode 100644 include/nettle/md4.h delete mode 100644 include/nettle/md5-compat.h delete mode 100644 include/nettle/md5.h delete mode 100644 include/nettle/memops.h delete mode 100644 include/nettle/memxor.h delete mode 100644 include/nettle/nettle-meta.h delete mode 100644 include/nettle/nettle-stdint.h delete mode 100644 include/nettle/nettle-types.h delete mode 100644 include/nettle/pbkdf2.h delete mode 100644 include/nettle/pgp.h delete mode 100644 include/nettle/pkcs1.h delete mode 100644 include/nettle/poly1305.h delete mode 100644 include/nettle/pss-mgf1.h delete mode 100644 include/nettle/pss.h delete mode 100644 include/nettle/realloc.h delete mode 100644 include/nettle/ripemd160.h delete mode 100644 include/nettle/rsa.h delete mode 100644 include/nettle/salsa20.h delete mode 100644 include/nettle/serpent.h delete mode 100644 include/nettle/sexp.h delete mode 100644 include/nettle/sha.h delete mode 100644 include/nettle/sha1.h delete mode 100644 include/nettle/sha2.h delete mode 100644 include/nettle/sha3.h delete mode 100644 include/nettle/twofish.h delete mode 100644 include/nettle/umac.h delete mode 100644 include/nettle/version.h delete mode 100644 include/nettle/yarrow.h delete mode 100644 include/zip.h delete mode 100644 include/zipconf.h delete mode 100644 omc/bin/alarmAgent delete mode 100644 omc/bin/alive delete mode 100644 omc/bin/bsscomm delete mode 100644 omc/bin/cdrCollector delete mode 100644 omc/bin/changehostname delete mode 100644 omc/bin/chgDate delete mode 100644 omc/bin/chkDb delete mode 100644 omc/bin/clearDb delete mode 100644 omc/bin/conf/NR.conf delete mode 100644 omc/bin/conf/conv_prefix.conf delete mode 100644 omc/bin/conf/debug.conf delete mode 100644 omc/bin/conf/hosts delete mode 100644 omc/bin/conf/httpd.conf delete mode 100644 omc/bin/conf/manager_engine.conf delete mode 100644 omc/bin/conf/mcms_conf.txt delete mode 100644 omc/bin/conf/menu_page delete mode 100644 omc/bin/conf/menu_page2 delete mode 100644 omc/bin/conf/mtp3.conf delete mode 100644 omc/bin/conf/nrtrde_seq.conf delete mode 100644 omc/bin/conf/omc_db.conf delete mode 100644 omc/bin/conf/omcd.conf_omc-0 delete mode 100644 omc/bin/conf/omcd.conf_omc-1 delete mode 100644 omc/bin/conf/omcd_serialnum.conf delete mode 100644 omc/bin/conf/omctrap_iplist.conf delete mode 100644 omc/bin/conf/profile delete mode 100644 omc/bin/conf/raid.conf delete mode 100644 omc/bin/conf/rsyncd.conf delete mode 100644 omc/bin/conf/sccp.conf delete mode 100644 omc/bin/conf/smeg.conf delete mode 100644 omc/bin/conf/smpp.conf delete mode 100644 omc/bin/conf/snmp.conf delete mode 100644 omc/bin/conf/welcomeSMS.conf delete mode 100644 omc/bin/cstaCollector delete mode 100644 omc/bin/dual/cdr_data_proc.sh delete mode 100644 omc/bin/dual/cdr_io_proc.sh delete mode 100644 omc/bin/dual/cdr_io_proc/file.index delete mode 100644 omc/bin/dual/check_proc_status.sh delete mode 100644 omc/bin/dual/dualstate delete mode 100644 omc/bin/dual/procstatus delete mode 100644 omc/bin/dual/sendfile delete mode 100644 omc/bin/dual/sync_source.conf delete mode 100644 omc/bin/ftpSend delete mode 100644 omc/bin/iptrans delete mode 100644 omc/bin/logCollector delete mode 100644 omc/bin/mib/LGC-SS-AAS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-AMRMG-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-AUC-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-AUC-MIB.my_bak delete mode 100644 omc/bin/mib/LGC-SS-AUSF-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-EIR-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-GRS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-GbC-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-HLR-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-IMS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MCA-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MHC-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MME-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MME-MIB.my_bak delete mode 100644 omc/bin/mib/LGC-SS-MNP-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MRFC-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MSC-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-MSC-MIB_baknew.my delete mode 100644 omc/bin/mib/LGC-SS-MTP3-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-OPPS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-PALIM-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-PPS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-RCM-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-RCS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-RLS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-RTPPROXY-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-SCCP-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-SMEG-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-SMPP-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-SMSC-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-SPGW-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-TMG-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-UDM-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-VLR-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-VMS-MIB.my delete mode 100644 omc/bin/mib/LGC-SS-XAPP-MIB.my delete mode 100644 omc/bin/mib/change delete mode 100644 omc/bin/mib/index delete mode 100644 omc/bin/myipcrm delete mode 100644 omc/bin/mysql_OMCmain_Auditlog_filter delete mode 100644 omc/bin/nrtrde delete mode 100644 omc/bin/omcCleaner delete mode 100644 omc/bin/omcMain delete mode 100644 omc/bin/omcMain.nolicense delete mode 100644 omc/bin/omcMainWatcher delete mode 100644 omc/bin/paraComm delete mode 100644 omc/bin/raidAgent delete mode 100644 omc/bin/setRunMode delete mode 100644 omc/bin/sftpSend delete mode 100644 omc/bin/smcli delete mode 100644 omc/bin/subsComm delete mode 100644 omc/bin/subsDataBackup delete mode 100644 omc/bin/wsms delete mode 100644 omc/bin/wxc2_omcd delete mode 100644 omc/bin/wxc2_omcdm delete mode 100644 omc/config/cacert.pem delete mode 100644 omc/config/client.crt delete mode 100644 omc/config/client.csr delete mode 100644 omc/config/client.key delete mode 100644 omc/config/conv_prefix.conf delete mode 100644 omc/config/hosts delete mode 100644 omc/config/httpd-ssl.conf delete mode 100644 omc/config/httpd.conf_centos delete mode 100644 omc/config/my.cnf delete mode 100644 omc/config/my.cnf_omc-0.ES delete mode 100644 omc/config/my.cnf_single delete mode 100644 omc/config/my.cnf_single.ES delete mode 100644 omc/config/omc_db.conf delete mode 100644 omc/config/omcd.conf delete mode 100644 omc/config/omcd.conf_omc-0 delete mode 100644 omc/config/omcd.conf_omc-1 delete mode 100644 omc/config/omcd.conf_single delete mode 100644 omc/config/php.ini delete mode 100644 omc/config/php.ini_old_plat delete mode 100644 omc/config/profile delete mode 100644 omc/config/rsyncd.conf delete mode 100644 omc/config/server.crt delete mode 100644 omc/config/server.csr delete mode 100644 omc/config/server.key delete mode 100644 omc/config/snmp.conf delete mode 100644 omc/plat/.copyarea.db delete mode 100644 omc/plat/8ecp/.copyarea.db delete mode 100644 omc/plat/8ecp/lib/lib8ecp.a delete mode 100644 omc/plat/8ecp/obj/8ecp.o delete mode 100644 omc/plat/8ecp/obj/8ecp_debug.o delete mode 100644 omc/plat/8ecp/src/.copyarea.db delete mode 100644 omc/plat/8ecp/src/include/.copyarea.db delete mode 100644 omc/plat/aif/.copyarea.db delete mode 100644 omc/plat/aif/doc/.copyarea.db delete mode 100644 omc/plat/aif/lib/libaif.a delete mode 100644 omc/plat/aif/obj/aifg.o delete mode 100644 omc/plat/aif/obj/aifg_csta.o delete mode 100644 omc/plat/aif/obj/aifg_debug.o delete mode 100644 omc/plat/aif/obj/aifg_ie.o delete mode 100644 omc/plat/aif/obj/aifg_m.o delete mode 100644 omc/plat/aif/obj/aifg_mpp.o delete mode 100644 omc/plat/aif/src/.copyarea.db delete mode 100644 omc/plat/aif/src/include/.copyarea.db delete mode 100644 omc/plat/aif/ut/.copyarea.db delete mode 100644 omc/plat/bicc/.copyarea.db delete mode 100644 omc/plat/bicc/lib/libbicc.a delete mode 100644 omc/plat/bicc/obj/bicc_apm.o delete mode 100644 omc/plat/bicc/obj/bicc_debug.o delete mode 100644 omc/plat/bicc/obj/bicc_fsm.o delete mode 100644 omc/plat/bicc/obj/bicc_ipbcp.o delete mode 100644 omc/plat/bicc/obj/bicc_msg.o delete mode 100644 omc/plat/bicc/obj/bicc_prm.o delete mode 100644 omc/plat/bicc/obj/biccif.o delete mode 100644 omc/plat/bicc/src.old/.copyarea.db delete mode 100644 omc/plat/bicc/src.old/include/.copyarea.db delete mode 100644 omc/plat/bicc/src/.copyarea.db delete mode 100644 omc/plat/bicc/src/include/.copyarea.db delete mode 100644 omc/plat/debug/.copyarea.db delete mode 100644 omc/plat/debug/lib/libdebug.a delete mode 100644 omc/plat/debug/obj/debug.o delete mode 100644 omc/plat/debug/src/.copyarea.db delete mode 100644 omc/plat/debug/src/include/.copyarea.db delete mode 100644 omc/plat/debug/ut/.copyarea.db delete mode 100644 omc/plat/haepub/.copyarea.db delete mode 100644 omc/plat/haepub/lib/libhaepub.a delete mode 100644 omc/plat/haepub/obj/hae_function.o delete mode 100644 omc/plat/haepub/obj/hae_param.o delete mode 100644 omc/plat/haepub/obj/hae_sync.o delete mode 100644 omc/plat/haepub/src/.copyarea.db delete mode 100644 omc/plat/haepub/src/include/.copyarea.db delete mode 100644 omc/plat/iptrans/.copyarea.db delete mode 100644 omc/plat/iptrans/iptrans delete mode 100644 omc/plat/iptrans/lib/libiptrans.a delete mode 100644 omc/plat/iptrans/obj/comfunc.o delete mode 100644 omc/plat/iptrans/obj/daemon.o delete mode 100644 omc/plat/iptrans/obj/error.o delete mode 100644 omc/plat/iptrans/obj/errorlog.o delete mode 100644 omc/plat/iptrans/obj/ipcfunc.o delete mode 100644 omc/plat/iptrans/obj/ipmsgfun.o delete mode 100644 omc/plat/iptrans/obj/iptrans.o delete mode 100644 omc/plat/iptrans/obj/iptrmain.o delete mode 100644 omc/plat/iptrans/obj/mcast_join.o delete mode 100644 omc/plat/iptrans/obj/queuefunc.o delete mode 100644 omc/plat/iptrans/obj/readmsg.o delete mode 100644 omc/plat/iptrans/obj/signal.o delete mode 100644 omc/plat/iptrans/obj/simu_debug.o delete mode 100644 omc/plat/iptrans/src/.copyarea.db delete mode 100644 omc/plat/iptrans/src/include/.copyarea.db delete mode 100644 omc/plat/isdn/.copyarea.db delete mode 100644 omc/plat/isdn/doc/.copyarea.db delete mode 100644 omc/plat/isdn/lib/libisdn.a delete mode 100644 omc/plat/isdn/obj/isdn_debug.o delete mode 100644 omc/plat/isdn/obj/isdn_fsm.o delete mode 100644 omc/plat/isdn/obj/isdn_ie.o delete mode 100644 omc/plat/isdn/obj/isdn_msg.o delete mode 100644 omc/plat/isdn/obj/isdn_rm.o delete mode 100644 omc/plat/isdn/obj/isdn_uif.o delete mode 100644 omc/plat/isdn/src/.copyarea.db delete mode 100644 omc/plat/isdn/src/include/.copyarea.db delete mode 100644 omc/plat/isdn/ut/.copyarea.db delete mode 100644 omc/plat/isdn/ut/code/.copyarea.db delete mode 100644 omc/plat/isup/.copyarea.db delete mode 100644 omc/plat/isup/doc/.copyarea.db delete mode 100644 omc/plat/isup/lib/libisup.a delete mode 100644 omc/plat/isup/obj/isup_debug.o delete mode 100644 omc/plat/isup/obj/isup_fsm.o delete mode 100644 omc/plat/isup/obj/isup_if.o delete mode 100644 omc/plat/isup/obj/isup_msg.o delete mode 100644 omc/plat/isup/obj/isup_transit.o delete mode 100644 omc/plat/isup/src/.copyarea.db delete mode 100644 omc/plat/isup/src/include/.copyarea.db delete mode 100644 omc/plat/isup/ut/.copyarea.db delete mode 100644 omc/plat/m2ua/.copyarea.db delete mode 100644 omc/plat/m2ua/doc/.copyarea.db delete mode 100644 omc/plat/m2ua/lib/libm2ua.a delete mode 100644 omc/plat/m2ua/obj/m2ua.o delete mode 100644 omc/plat/m2ua/obj/m2ua_debug.o delete mode 100644 omc/plat/m2ua/obj/m2ua_fsm.o delete mode 100644 omc/plat/m2ua/obj/m2ua_msg.o delete mode 100644 omc/plat/m2ua/src/.copyarea.db delete mode 100644 omc/plat/m2ua/src/include/.copyarea.db delete mode 100644 omc/plat/m2ua/src_old/.copyarea.db delete mode 100644 omc/plat/m2ua/src_old/include/.copyarea.db delete mode 100644 omc/plat/m2ua/ut/.copyarea.db delete mode 100644 omc/plat/m2ua/ut/testcate/.copyarea.db delete mode 100644 omc/plat/m2ua/ut/xua_test/.copyarea.db delete mode 100644 omc/plat/m2ua/ut/xua_test/conf/.copyarea.db delete mode 100644 omc/plat/mgc/.copyarea.db delete mode 100644 omc/plat/mgc/lib/libmgc.a delete mode 100644 omc/plat/mgc/obj/mgc.o delete mode 100644 omc/plat/mgc/obj/mgc_debug.o delete mode 100644 omc/plat/mgc/obj/mgc_fsm.o delete mode 100644 omc/plat/mgc/obj/mgc_sess_ctl.o delete mode 100644 omc/plat/mgc/src/.copyarea.db delete mode 100644 omc/plat/mgc/src/include/.copyarea.db delete mode 100644 omc/plat/mgc/src/mgc.c.bak delete mode 100644 omc/plat/mgc/src/mgc_fsm.c.bak delete mode 100644 omc/plat/mgc_v2/.copyarea.db delete mode 100644 omc/plat/mgc_v2/lib/libmgc_v2.a delete mode 100644 omc/plat/mgc_v2/obj/mgc.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_8ecp.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_chnl_info.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_conn_info.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_ctl.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_debug.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_internal.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_mg_info.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_mgcp.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_phy_port.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_port_info.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_port_list.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_sur_info.o delete mode 100644 omc/plat/mgc_v2/obj/mgc_tandem_info.o delete mode 100644 omc/plat/mgc_v2/src/.copyarea.db delete mode 100644 omc/plat/mgc_v2/src/include/.copyarea.db delete mode 100644 omc/plat/mgc_v2/ut/.copyarea.db delete mode 100644 omc/plat/mgc_v2/ut/conf/.copyarea.db delete mode 100644 omc/plat/mgc_v2/ut/include/.copyarea.db delete mode 100644 omc/plat/mgcp/.copyarea.db delete mode 100644 omc/plat/mgcp/lib/libmgcp.a delete mode 100644 omc/plat/mgcp/obj/mgcp.o delete mode 100644 omc/plat/mgcp/obj/mgcp_debug.o delete mode 100644 omc/plat/mgcp/obj/mgcp_msg.o delete mode 100644 omc/plat/mgcp/obj/mgcp_trans.o delete mode 100644 omc/plat/mgcp/src/.copyarea.db delete mode 100644 omc/plat/mgcp/src/include/.copyarea.db delete mode 100644 omc/plat/mgcp/src/mgcp_msg.c.bak delete mode 100644 omc/plat/mtp3/.copyarea.db delete mode 100644 omc/plat/mtp3/lib/libmtp3.a delete mode 100644 omc/plat/mtp3/obj/mtp3lite.o delete mode 100644 omc/plat/mtp3/obj/mtpinit.o delete mode 100644 omc/plat/mtp3/obj/mtpm.o delete mode 100644 omc/plat/mtp3/obj/mtpmib.o delete mode 100644 omc/plat/mtp3/obj/mtpslm.o delete mode 100644 omc/plat/mtp3/obj/mtpsmh.o delete mode 100644 omc/plat/mtp3/obj/mtpsrm.o delete mode 100644 omc/plat/mtp3/obj/mtpstm.o delete mode 100644 omc/plat/mtp3/src/.copyarea.db delete mode 100644 omc/plat/mtp3/src/include/.copyarea.db delete mode 100644 omc/plat/mtp3_old/.copyarea.db delete mode 100644 omc/plat/mtp3_old/src/.copyarea.db delete mode 100644 omc/plat/mtp3_old/src/include/.copyarea.db delete mode 100644 omc/plat/pal/.copyarea.db delete mode 100644 omc/plat/pal/lib/libpal.a delete mode 100644 omc/plat/pal/rm.o delete mode 100644 omc/plat/public/.copyarea.db delete mode 100644 omc/plat/public/lib/libpublic.a delete mode 100644 omc/plat/public/obj/apiKey.o delete mode 100644 omc/plat/public/obj/asn1.o delete mode 100644 omc/plat/public/obj/bisearch.o delete mode 100644 omc/plat/public/obj/cJSON.o delete mode 100644 omc/plat/public/obj/cdr.o delete mode 100644 omc/plat/public/obj/crypt.o delete mode 100644 omc/plat/public/obj/list.o delete mode 100644 omc/plat/public/obj/memwatch.o delete mode 100644 omc/plat/public/obj/number.o delete mode 100644 omc/plat/public/obj/numgrp.o delete mode 100644 omc/plat/public/obj/pub_conf.o delete mode 100644 omc/plat/public/obj/pub_debug.o delete mode 100644 omc/plat/public/obj/pub_file.o delete mode 100644 omc/plat/public/obj/pub_fmt.o delete mode 100644 omc/plat/public/obj/pub_inet.o delete mode 100644 omc/plat/public/obj/pub_log.o delete mode 100644 omc/plat/public/obj/pub_malloc.o delete mode 100644 omc/plat/public/obj/pub_netcap.o delete mode 100644 omc/plat/public/obj/pub_sdp.o delete mode 100644 omc/plat/public/obj/pub_str.o delete mode 100644 omc/plat/public/obj/pub_sys.o delete mode 100644 omc/plat/public/obj/pub_time.o delete mode 100644 omc/plat/public/obj/pub_timer.o delete mode 100644 omc/plat/public/obj/pub_wnet.o delete mode 100644 omc/plat/public/obj/shm.o delete mode 100644 omc/plat/public/src/.copyarea.db delete mode 100644 omc/plat/public/src/include/.copyarea.db delete mode 100644 omc/plat/public/src/uwav/.copyarea.db delete mode 100644 omc/plat/public/ut/.copyarea.db delete mode 100644 omc/plat/public/ut/asn.1/.copyarea.db delete mode 100644 omc/plat/public/ut/bisearch/.copyarea.db delete mode 100644 omc/plat/public/ut/debug_api/.copyarea.db delete mode 100644 omc/plat/public/ut/inet/.copyarea.db delete mode 100644 omc/plat/public/ut/main/.copyarea.db delete mode 100644 omc/plat/public/ut/main/src/.copyarea.db delete mode 100644 omc/plat/public/ut/public_test/.copyarea.db delete mode 100644 omc/plat/public/ut/timer/.copyarea.db delete mode 100644 omc/plat/public_bak/.copyarea.db delete mode 100644 omc/plat/public_bak/src/.copyarea.db delete mode 100644 omc/plat/public_bak/src/include/.copyarea.db delete mode 100644 omc/plat/public_bak/src/uwav/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/asn.1/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/bisearch/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/debug_api/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/inet/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/main/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/main/src/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/public_test/.copyarea.db delete mode 100644 omc/plat/public_bak/ut/timer/.copyarea.db delete mode 100644 omc/plat/rtp/.copyarea.db delete mode 100644 omc/plat/rtp/lib/librtp.a delete mode 100644 omc/plat/rtp/obj/rtp.o delete mode 100644 omc/plat/rtp/obj/rtp_msg.o delete mode 100644 omc/plat/rtp/src/.copyarea.db delete mode 100644 omc/plat/rtp/src/include/.copyarea.db delete mode 100644 omc/plat/sccp/.copyarea.db delete mode 100644 omc/plat/sccp/lib/libsccp.a delete mode 100644 omc/plat/sccp/obj/sccp.o delete mode 100644 omc/plat/sccp/obj/sccp_debug.o delete mode 100644 omc/plat/sccp/obj/sccp_func.o delete mode 100644 omc/plat/sccp/obj/sccp_gtt.o delete mode 100644 omc/plat/sccp/obj/sccp_log.o delete mode 100644 omc/plat/sccp/obj/sccp_mib.o delete mode 100644 omc/plat/sccp/obj/sccp_msg.o delete mode 100644 omc/plat/sccp/obj/sccp_param.o delete mode 100644 omc/plat/sccp/obj/sclc.o delete mode 100644 omc/plat/sccp/obj/scmg.o delete mode 100644 omc/plat/sccp/obj/scoc.o delete mode 100644 omc/plat/sccp/obj/scoc_fsm.o delete mode 100644 omc/plat/sccp/obj/scoc_func.o delete mode 100644 omc/plat/sccp/obj/scoc_if.o delete mode 100644 omc/plat/sccp/obj/scoc_pool.o delete mode 100644 omc/plat/sccp/obj/scoc_pri.o delete mode 100644 omc/plat/sccp/obj/scrc.o delete mode 100644 omc/plat/sccp/src/.copyarea.db delete mode 100644 omc/plat/sccp/src/include/.copyarea.db delete mode 100644 omc/plat/sccp/ut/.copyarea.db delete mode 100644 omc/plat/sccp/ut/fsmtest/.copyarea.db delete mode 100644 omc/plat/sccp/ut/fsmtest/bin/.copyarea.db delete mode 100644 omc/plat/sccp/ut/fsmtest/bin/conf/.copyarea.db delete mode 100644 omc/plat/sccp/ut/fsmtest/obj/.copyarea.db delete mode 100644 omc/plat/scf/.copyarea.db delete mode 100644 omc/plat/scf/lib/libscf.a delete mode 100644 omc/plat/scf/obj/scfmsg.o delete mode 100644 omc/plat/scf/obj/scsm.o delete mode 100644 omc/plat/scf/src/.copyarea.db delete mode 100644 omc/plat/scf/src/include/.copyarea.db delete mode 100644 omc/plat/sip/.copyarea.db delete mode 100644 omc/plat/sip/lib/libsip.a delete mode 100644 omc/plat/sip/obj/sip.o delete mode 100644 omc/plat/sip/obj/sip_debug.o delete mode 100644 omc/plat/sip/obj/sip_msg.o delete mode 100644 omc/plat/sip/obj/sip_msg_encode.o delete mode 100644 omc/plat/sip/obj/sip_msg_parse.o delete mode 100644 omc/plat/sip/obj/sip_transaction.o delete mode 100644 omc/plat/sip/obj/sip_transport.o delete mode 100644 omc/plat/sip/obj/sip_ua.o delete mode 100644 omc/plat/sip/obj/sip_ua_dialog.o delete mode 100644 omc/plat/sip/obj/sip_ua_fsm.o delete mode 100644 omc/plat/sip/obj/sip_ua_msg.o delete mode 100644 omc/plat/sip/src/.copyarea.db delete mode 100644 omc/plat/sip/src/include/.copyarea.db delete mode 100644 omc/plat/smpp/.copyarea.db delete mode 100644 omc/plat/smpp/doc/.copyarea.db delete mode 100644 omc/plat/smpp/lib/libsmpp.a delete mode 100644 omc/plat/smpp/obj/smpp_debug.o delete mode 100644 omc/plat/smpp/obj/smpp_fsm.o delete mode 100644 omc/plat/smpp/obj/smpp_func.o delete mode 100644 omc/plat/smpp/obj/smpp_mib.o delete mode 100644 omc/plat/smpp/obj/smpp_msg.o delete mode 100644 omc/plat/smpp/src/.copyarea.db delete mode 100644 omc/plat/smpp/src/include/.copyarea.db delete mode 100644 omc/plat/smpp/ut/.copyarea.db delete mode 100644 omc/plat/smpp/ut/conf/.copyarea.db delete mode 100644 omc/plat/smpp/ut/conf/MIB_files/.copyarea.db delete mode 100644 omc/plat/smpp/ut/smpp_test/.copyarea.db delete mode 100644 omc/plat/smpp/ut/smpp_ussd_test/.copyarea.db delete mode 100644 omc/plat/snmp/.copyarea.db delete mode 100644 omc/plat/snmp/lib/libsnmp.a delete mode 100644 omc/plat/snmp/obj/heartbeat.o delete mode 100644 omc/plat/snmp/obj/snmp.o delete mode 100644 omc/plat/snmp/obj/snmp_mib.o delete mode 100644 omc/plat/snmp/obj/snmp_mib_api.o delete mode 100644 omc/plat/snmp/obj/snmpdebug.o delete mode 100644 omc/plat/snmp/obj/snmpmib.o delete mode 100644 omc/plat/snmp/obj/snmptable.o delete mode 100644 omc/plat/snmp/obj/snmptest.o delete mode 100644 omc/plat/snmp/obj/sysctrl.o delete mode 100644 omc/plat/snmp/src/.copyarea.db delete mode 100644 omc/plat/snmp/src/include/.copyarea.db delete mode 100644 omc/plat/snmp/src/mib_parser/.copyarea.db delete mode 100644 omc/plat/tcap/.copyarea.db delete mode 100644 omc/plat/tcap/lib/libtcap.a delete mode 100644 omc/plat/tcap/obj/idmanage.o delete mode 100644 omc/plat/tcap/obj/itcap.o delete mode 100644 omc/plat/tcap/obj/tcap_coding.o delete mode 100644 omc/plat/tcap/obj/tcap_fsm.o delete mode 100644 omc/plat/tcap/obj/tcap_m.o delete mode 100644 omc/plat/tcap/src/.copyarea.db delete mode 100644 omc/plat/tcap/src/include/.copyarea.db delete mode 100644 omc/plat/xapp/.copyarea.db delete mode 100644 omc/plat/xapp/conf/.copyarea.db delete mode 100644 omc/plat/xapp/lib/libxapp.a delete mode 100644 omc/plat/xapp/obj/Map_opr.o delete mode 100644 omc/plat/xapp/obj/cap_msg.o delete mode 100644 omc/plat/xapp/obj/cap_msgtype.o delete mode 100644 omc/plat/xapp/obj/cap_public.o delete mode 100644 omc/plat/xapp/obj/conv_prefix.o delete mode 100644 omc/plat/xapp/obj/is41_code_auc.o delete mode 100644 omc/plat/xapp/obj/is41_code_ms.o delete mode 100644 omc/plat/xapp/obj/is41_code_sms.o delete mode 100644 omc/plat/xapp/obj/is41_code_win.o delete mode 100644 omc/plat/xapp/obj/is41_coding.o delete mode 100644 omc/plat/xapp/obj/is41_debug.o delete mode 100644 omc/plat/xapp/obj/is41_init.o delete mode 100644 omc/plat/xapp/obj/map_LCSCode.o delete mode 100644 omc/plat/xapp/obj/map_code_auc.o delete mode 100644 omc/plat/xapp/obj/map_code_ch.o delete mode 100644 omc/plat/xapp/obj/map_code_dlgpdu.o delete mode 100644 omc/plat/xapp/obj/map_code_ms.o delete mode 100644 omc/plat/xapp/obj/map_code_om.o delete mode 100644 omc/plat/xapp/obj/map_code_sms.o delete mode 100644 omc/plat/xapp/obj/map_code_ss.o delete mode 100644 omc/plat/xapp/obj/map_coding.o delete mode 100644 omc/plat/xapp/obj/map_public.o delete mode 100644 omc/plat/xapp/obj/xap_cdmacdr.o delete mode 100644 omc/plat/xapp/obj/xap_interface.o delete mode 100644 omc/plat/xapp/obj/xap_monitor.o delete mode 100644 omc/plat/xapp/obj/xap_provider.o delete mode 100644 omc/plat/xapp/src/.copyarea.db delete mode 100644 omc/plat/xapp/src/capp/.copyarea.db delete mode 100644 omc/plat/xapp/src/include.bak/.copyarea.db delete mode 100644 omc/plat/xapp/src/include.bak/ixap.h delete mode 100644 omc/plat/xapp/src/include.bak/xap_provider.h delete mode 100644 omc/plat/xapp/src/mapp/.copyarea.db delete mode 100644 omc/plat/xapp/src/xap_cdmacdr.h delete mode 100644 omc/plat/xapp/src/xap_interfunc.h delete mode 100644 omc/plat/xapp/src/xap_monitor.h delete mode 100644 omc/plat/xapp/ut/.copyarea.db delete mode 100644 omc/plat/xapp/ut/xapp_test/.copyarea.db delete mode 100644 omc/plat/xapp/ut/xapp_test/conf/.copyarea.db delete mode 100644 omc/pub_include.h delete mode 160000 omc/src rename {omc/plat => plat}/8ecp/Makefile (96%) rename {omc/plat => plat}/8ecp/src/8ecp.c (100%) rename {omc/plat => plat}/8ecp/src/8ecp_debug.c (100%) rename {omc/plat => plat}/8ecp/src/include/8ecp.h (100%) rename {omc/plat => plat}/8ecp/src/include/8ecp_debug.h (100%) rename {omc/plat => plat}/aif/Makefile (97%) rename {omc/plat => plat}/aif/doc/release_note.txt (100%) rename {omc/plat => plat}/aif/src/aifg.c (100%) rename {omc/plat => plat}/aif/src/aifg_csta.c (100%) rename {omc/plat => plat}/aif/src/aifg_debug.c (100%) rename {omc/plat => plat}/aif/src/aifg_ie.c (100%) rename {omc/plat => plat}/aif/src/aifg_m.c (100%) rename {omc/plat => plat}/aif/src/aifg_mpp.c (100%) rename {omc/plat => plat}/aif/src/include/aifg.h (100%) rename {omc/plat => plat}/aif/src/include/aifg_ie.h (100%) rename {omc/plat => plat}/aif/src/include/aifg_if.h (100%) rename {omc/plat => plat}/aif/src/include/aifg_msg.h (100%) rename {omc/plat => plat}/aif/src/include/aifg_public.h (100%) rename {omc/plat => plat}/aif/src/include/aifg_type_def.h (100%) rename {omc/plat => plat}/aif/src/include/aifg_var_ext.h (100%) rename {omc/plat => plat}/aif/ut/aifg_main.c (100%) rename {omc/plat => plat}/aif/ut/aifg_test.c (100%) rename {omc/plat => plat}/aif/ut/makefile (100%) rename {omc/plat => plat}/bicc/Makefile (97%) rename {omc/plat => plat}/bicc/src.old/bicc_apm.c (100%) rename {omc/plat => plat}/bicc/src.old/bicc_debug.c (100%) rename {omc/plat => plat}/bicc/src.old/bicc_fsm.c (100%) rename {omc/plat => plat}/bicc/src.old/bicc_fsm.c.old (100%) rename {omc/plat => plat}/bicc/src.old/bicc_ipbcp.c (100%) rename {omc/plat => plat}/bicc/src.old/bicc_msg.c (100%) rename {omc/plat => plat}/bicc/src.old/bicc_prm.c (100%) rename {omc/plat => plat}/bicc/src.old/biccif.c (100%) rename {omc/plat => plat}/bicc/src.old/include/bicc_debug.h (100%) rename {omc/plat => plat}/bicc/src.old/include/biccif.h (100%) rename {omc/plat => plat}/bicc/src.old/include/define.h (100%) rename {omc/plat => plat}/bicc/src.old/include/inc.h (100%) rename {omc/plat => plat}/bicc/src.old/include/ipbcp.h (100%) rename {omc/plat => plat}/bicc/src.old/include/q1902_3e.h (100%) rename {omc/plat => plat}/bicc/src.old/include/q765_5e.h (100%) rename {omc/plat => plat}/bicc/src.old/include/var_ext.h (100%) rename {omc/plat => plat}/bicc/src/bicc_apm.c (100%) rename {omc/plat => plat}/bicc/src/bicc_debug.c (100%) rename {omc/plat => plat}/bicc/src/bicc_fsm.c (100%) rename {omc/plat => plat}/bicc/src/bicc_ipbcp.c (100%) rename {omc/plat => plat}/bicc/src/bicc_msg.c (100%) rename {omc/plat => plat}/bicc/src/bicc_prm.c (100%) rename {omc/plat => plat}/bicc/src/biccif.c (100%) rename {omc/plat => plat}/bicc/src/include/bicc_debug.h (100%) rename {omc/plat => plat}/bicc/src/include/biccif.h (100%) rename {omc/plat => plat}/bicc/src/include/define.h (100%) rename {omc/plat => plat}/bicc/src/include/inc.h (100%) rename {omc/plat => plat}/bicc/src/include/ipbcp.h (100%) rename {omc/plat => plat}/bicc/src/include/q1902_3e.h (100%) rename {omc/plat => plat}/bicc/src/include/q765_5e.h (100%) rename {omc/plat => plat}/bicc/src/include/var_ext.h (100%) rename {omc/plat => plat}/debug/Makefile (97%) rename {omc/plat => plat}/debug/src/debug.c (100%) rename {omc/plat => plat}/debug/src/include/debug.h (100%) rename {omc/plat => plat}/debug/src/include/debug_struct.h (100%) rename {omc/plat => plat}/debug/ut/debug_test.c (100%) rename {omc/plat => plat}/haepub/Makefile (97%) rename {omc/plat => plat}/haepub/src/hae_function.c (100%) rename {omc/plat => plat}/haepub/src/hae_param.c (100%) rename {omc/plat => plat}/haepub/src/hae_sync.c (100%) rename {omc/plat => plat}/haepub/src/include/hae_function.h (100%) rename {omc/plat => plat}/haepub/src/include/hae_include.h (100%) rename {omc/plat => plat}/iptrans/Makefile (97%) rename {omc/plat => plat}/iptrans/doc/iptrans_bak (100%) rename {omc/plat => plat}/iptrans/generate_iptrans (100%) create mode 100644 plat/iptrans/iptrans rename {omc/plat => plat}/iptrans/iptrans_bak (100%) rename {omc/plat => plat}/iptrans/src/comfunc.c (100%) rename {omc/plat => plat}/iptrans/src/daemon.c (100%) rename {omc/plat => plat}/iptrans/src/error.c (100%) rename {omc/plat => plat}/iptrans/src/errorlog.c (100%) rename {omc/plat => plat}/iptrans/src/generate_iptrans (100%) rename {omc/plat => plat}/iptrans/src/include/config.h (100%) rename {omc/plat => plat}/iptrans/src/include/dbsync.h (100%) rename {omc/plat => plat}/iptrans/src/include/debug.h (100%) rename {omc/plat => plat}/iptrans/src/include/errlog.h (100%) rename {omc/plat => plat}/iptrans/src/include/function.h (100%) rename {omc/plat => plat}/iptrans/src/include/includes.h (100%) rename {omc/plat => plat}/iptrans/src/include/iptrans.h (100%) rename {omc/plat => plat}/iptrans/src/include/iptrfunc.h (100%) rename {omc/plat => plat}/iptrans/src/ipcfunc.c (100%) rename {omc/plat => plat}/iptrans/src/ipmsgfun.c (100%) rename {omc/plat => plat}/iptrans/src/iptrans.c (100%) rename {omc/plat => plat}/iptrans/src/iptrans_bak (100%) rename {omc/plat => plat}/iptrans/src/iptrmain.c (100%) rename {omc/plat => plat}/iptrans/src/mcast_join.c (100%) rename {omc/plat => plat}/iptrans/src/queuefunc.c (100%) rename {omc/plat => plat}/iptrans/src/readmsg.c (100%) rename {omc/plat => plat}/iptrans/src/signal.c (100%) rename {omc/plat => plat}/iptrans/src/simu_debug.c (100%) rename {omc/plat => plat}/isdn/Makefile (97%) rename {omc/plat => plat}/isdn/doc/D-500014-0-10.doc (100%) rename {omc/plat => plat}/isdn/src/Makefile (100%) rename {omc/plat => plat}/isdn/src/include/isdn_const.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_debug.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_ext.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_ie.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_if.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_inc.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_msg.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_public.h (100%) rename {omc/plat => plat}/isdn/src/include/isdn_rm.h (100%) rename {omc/plat => plat}/isdn/src/isdn_debug.c (100%) rename {omc/plat => plat}/isdn/src/isdn_fsm.c (100%) rename {omc/plat => plat}/isdn/src/isdn_ie.c (100%) rename {omc/plat => plat}/isdn/src/isdn_msg.c (100%) rename {omc/plat => plat}/isdn/src/isdn_rm.c (100%) rename {omc/plat => plat}/isdn/src/isdn_uif.c (100%) rename {omc/plat => plat}/isdn/ut/Makefile (100%) rename {omc/plat => plat}/isdn/ut/code/data.Text (100%) rename {omc/plat => plat}/isdn/ut/code/ds-service-01.Text (100%) rename {omc/plat => plat}/isdn/ut/code/ds-service-02.Text (100%) rename {omc/plat => plat}/isdn/ut/code/headfile.txt (100%) rename {omc/plat => plat}/isdn/ut/code/iua data.txt (100%) rename {omc/plat => plat}/isdn/ut/code/iua set up-bak.txt (100%) rename {omc/plat => plat}/isdn/ut/code/iua set up.Text (100%) rename {omc/plat => plat}/isdn/ut/code/iua set up.txt (100%) rename {omc/plat => plat}/isdn/ut/code/nt-2link-01.Text (100%) rename {omc/plat => plat}/isdn/ut/code/nt-incoming-01.Text (100%) rename {omc/plat => plat}/isdn/ut/code/nt-incoming-02.Text (100%) rename {omc/plat => plat}/isdn/ut/code/nt-outgoing-01-.Text (100%) rename {omc/plat => plat}/isdn/ut/code/nt-outgoing-01.Text (100%) rename {omc/plat => plat}/isdn/ut/code/nt-outgoing-02.Text (100%) rename {omc/plat => plat}/isdn/ut/code/rest1-0.Text (100%) rename {omc/plat => plat}/isdn/ut/code/rest2-0.Text (100%) rename {omc/plat => plat}/isdn/ut/code/test-01.Text (100%) rename {omc/plat => plat}/isdn/ut/code/u01-01.Text (100%) rename {omc/plat => plat}/isdn/ut/code/u01-03.Text (100%) rename {omc/plat => plat}/isdn/ut/code/u01-05.Text (100%) rename {omc/plat => plat}/isdn/ut/code/u01-10.Text (100%) rename {omc/plat => plat}/isdn/ut/code/u03-13.Text (100%) rename {omc/plat => plat}/isdn/ut/isdn_main.c (100%) rename {omc/plat => plat}/isdn/ut/isdn_test.c (100%) rename {omc/plat => plat}/isdn/ut/test_main (100%) rename {omc/plat => plat}/isdn/ut/test_main_0526 (100%) rename {omc/plat => plat}/isup/Makefile (97%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_01P07.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_01P08.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_01P8.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_02P01.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_02P02.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_02P03-6.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_02P07.doc (100%) rename {omc/plat => plat}/isup/doc/ISUP_R9V0_02P1.doc (100%) rename {omc/plat => plat}/isup/src/include/inc.h (100%) rename {omc/plat => plat}/isup/src/include/isup_const.h (100%) rename {omc/plat => plat}/isup/src/include/isup_debug.h (100%) rename {omc/plat => plat}/isup/src/include/isup_def.h (100%) rename {omc/plat => plat}/isup/src/include/isup_if.h (100%) rename {omc/plat => plat}/isup/src/include/isup_msg.h (100%) rename {omc/plat => plat}/isup/src/include/isup_public.h (100%) rename {omc/plat => plat}/isup/src/include/isup_struct.h (100%) rename {omc/plat => plat}/isup/src/include/vssver2.scc (100%) rename {omc/plat => plat}/isup/src/isup_debug.c (100%) rename {omc/plat => plat}/isup/src/isup_fsm.c (100%) rename {omc/plat => plat}/isup/src/isup_if.c (100%) rename {omc/plat => plat}/isup/src/isup_msg.c (100%) rename {omc/plat => plat}/isup/src/isup_transit.c (100%) rename {omc/plat => plat}/isup/src/vssver2.scc (100%) rename {omc/plat => plat}/isup/ut/isup_main.c (100%) rename {omc/plat => plat}/isup/ut/isup_msg_rv.txt (100%) rename {omc/plat => plat}/isup/ut/isup_msg_send.txt (100%) rename {omc/plat => plat}/m2ua/Makefile (97%) rename {omc/plat => plat}/m2ua/doc/M2UA_R9V0_04P01.doc (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_const.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_debug.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_def.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_ext.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_fsm.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_msg.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_pub.h (100%) rename {omc/plat => plat}/m2ua/src/include/m2ua_struct.h (100%) rename {omc/plat => plat}/m2ua/src/include/sctp.h (100%) rename {omc/plat => plat}/m2ua/src/m2ua.c (100%) rename {omc/plat => plat}/m2ua/src/m2ua_debug.c (100%) rename {omc/plat => plat}/m2ua/src/m2ua_fsm.c (100%) rename {omc/plat => plat}/m2ua/src/m2ua_msg.c (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_const.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_debug.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_def.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_ext.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_fsm.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_msg.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_pub.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/m2ua_struct.h (100%) rename {omc/plat => plat}/m2ua/src_old/include/sctp.h (100%) rename {omc/plat => plat}/m2ua/src_old/m2ua.c (100%) rename {omc/plat => plat}/m2ua/src_old/m2ua_debug.c (100%) rename {omc/plat => plat}/m2ua/src_old/m2ua_fsm.c (100%) rename {omc/plat => plat}/m2ua/src_old/m2ua_msg.c (100%) rename {omc/plat => plat}/m2ua/ut/testcate/MGC(IUA)_Client.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/MGC(IUA)_Server.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/MGC(M2UA)_Client.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/MGC(M2UA)_Server.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/SG(IUA)_Client.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/SG(IUA)_Server.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/SG(M2UA)_Client.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/SG(M2UA)_Server.txt (100%) rename {omc/plat => plat}/m2ua/ut/testcate/headfile.txt (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/Makefile (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/AucSysPara (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/EirSysPara (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/HlrSysPara (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/cap_acn.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/cap_operation.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/cc_table.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/conv_prefix.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/help_page (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/hlr_parambit.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/iptrans.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/map_acn.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/map_operation.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/menu_page (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/mnpf.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/msc_conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/mtp3.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/ppsConf.txt (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/ppsCrdConf.txt (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/profile (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/sccp.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/sccp_omt.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/sccp_sts.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/smsc_csta.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/smsc_parambit.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/smsc_sys.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/system.ini (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/vlr.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/wxc2_sys.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/wxc2exit.txt (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/conf/xap_sysparam.conf (100%) rename {omc/plat => plat}/m2ua/ut/xua_test/xuatest.c (100%) rename {omc/plat => plat}/make_plat (78%) rename {omc/plat => plat}/mgc/Makefile (97%) rename {omc/plat => plat}/mgc/src/include/mgc.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_const.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_debug.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_def.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_ext.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_fsm.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_pub.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_sess_ctl.h (100%) rename {omc/plat => plat}/mgc/src/include/mgc_struct.h (100%) rename {omc/plat => plat}/mgc/src/mgc.c (100%) rename {omc/plat => plat}/mgc/src/mgc_debug.c (100%) rename {omc/plat => plat}/mgc/src/mgc_fsm.c (100%) rename {omc/plat => plat}/mgc/src/mgc_sess_ctl.c (100%) rename {omc/plat => plat}/mgc_v2/Makefile (97%) rename {omc/plat => plat}/mgc_v2/src/include/mgc.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_8ecp.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_chnl_info.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_conn_info.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_ctl.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_debug.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_internal.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_mg_info.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_mgcp.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_phy_port.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_port_info.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_port_list.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_pub.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_snmp.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_struct.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_sur_info.h (100%) rename {omc/plat => plat}/mgc_v2/src/include/mgc_tandem_info.h (100%) rename {omc/plat => plat}/mgc_v2/src/mgc.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_8ecp.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_chnl_info.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_conn_info.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_ctl.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_debug.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_internal.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_mg_info.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_mgcp.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_phy_port.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_port_info.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_port_list.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_sur_info.c (100%) rename {omc/plat => plat}/mgc_v2/src/mgc_tandem_info.c (100%) rename {omc/plat => plat}/mgc_v2/ut/CUnit-List.dtd (100%) rename {omc/plat => plat}/mgc_v2/ut/CUnit-List.xsl (100%) rename {omc/plat => plat}/mgc_v2/ut/CUnit-Run.dtd (100%) rename {omc/plat => plat}/mgc_v2/ut/CUnit-Run.xsl (100%) rename {omc/plat => plat}/mgc_v2/ut/Makefile (98%) rename {omc/plat => plat}/mgc_v2/ut/conf/iptrans.conf (100%) rename {omc/plat => plat}/mgc_v2/ut/conf/menu_page (100%) rename {omc/plat => plat}/mgc_v2/ut/include/Automated.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/Basic.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/CUCurses.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/CUError.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/CUnit.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/Console.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/MyMem.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/TestDB.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/TestRun.h (100%) rename {omc/plat => plat}/mgc_v2/ut/include/Util.h (100%) rename {omc/plat => plat}/mgc_v2/ut/mgc_v2_test (100%) rename {omc/plat => plat}/mgc_v2/ut/mgc_v2_test.c (100%) rename {omc/plat => plat}/mgcp/Makefile (97%) rename {omc/plat => plat}/mgcp/src/include/mgcp.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_const.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_debug.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_def.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_ext.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_msg.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_pub.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_struct.h (100%) rename {omc/plat => plat}/mgcp/src/include/mgcp_trans.h (100%) rename {omc/plat => plat}/mgcp/src/mgcp.c (100%) rename {omc/plat => plat}/mgcp/src/mgcp_debug.c (100%) rename {omc/plat => plat}/mgcp/src/mgcp_msg.c (100%) rename {omc/plat => plat}/mgcp/src/mgcp_trans.c (100%) rename {omc/plat => plat}/mtp3/Makefile (97%) rename {omc/plat => plat}/mtp3/src/include/mtp3.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtp3lite.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtp3lite_pub.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtpconst.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtpdef.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtpext.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtpfunc.h (100%) rename {omc/plat => plat}/mtp3/src/include/mtpstm.h (100%) rename {omc/plat => plat}/mtp3/src/mtp3lite.c (100%) rename {omc/plat => plat}/mtp3/src/mtpinit.c (100%) rename {omc/plat => plat}/mtp3/src/mtpm.c (100%) rename {omc/plat => plat}/mtp3/src/mtpmib.c (100%) rename {omc/plat => plat}/mtp3/src/mtpslm.c (100%) rename {omc/plat => plat}/mtp3/src/mtpsmh.c (100%) rename {omc/plat => plat}/mtp3/src/mtpsrm.c (100%) rename {omc/plat => plat}/mtp3/src/mtpstm.c (100%) rename {omc/plat => plat}/mtp3_old/Makefile (97%) rename {omc/plat => plat}/mtp3_old/src/include/mtp3.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtp3lite.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtp3lite_pub.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtpconst.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtpdef.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtpext.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtpfunc.h (100%) rename {omc/plat => plat}/mtp3_old/src/include/mtpstm.h (100%) rename {omc/plat => plat}/mtp3_old/src/mtp3lite.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpinit.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpm.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpmib.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpslm.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpsmh.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpsrm.c (100%) rename {omc/plat => plat}/mtp3_old/src/mtpstm.c (100%) rename {omc/plat => plat}/pal/Makefile (100%) rename {omc/plat => plat}/pal/lib/Just for creating lib directory.txt (100%) rename {omc/plat => plat}/pal/pal.h (100%) rename {omc/plat => plat}/pal/rm.c (100%) rename {omc/plat => plat}/public/Makefile (97%) rename {omc/plat => plat}/public/src/apiKey.c (100%) rename {omc/plat => plat}/public/src/asn1.c (100%) rename {omc/plat => plat}/public/src/bisearch.c (100%) rename {omc/plat => plat}/public/src/cJSON.c (100%) rename {omc/plat => plat}/public/src/cdr.c (100%) rename {omc/plat => plat}/public/src/crypt.c (100%) rename {omc/plat => plat}/public/src/include/asn1.h (100%) rename {omc/plat => plat}/public/src/include/bisearch.h (100%) rename {omc/plat => plat}/public/src/include/cJSON.h (100%) rename {omc/plat => plat}/public/src/include/cdr.h (100%) rename {omc/plat => plat}/public/src/include/crypt.h (100%) rename {omc/plat => plat}/public/src/include/includes.h (100%) rename {omc/plat => plat}/public/src/include/keyValuePair.h (100%) rename {omc/plat => plat}/public/src/include/license_id.h (100%) rename {omc/plat => plat}/public/src/include/list.h (100%) rename {omc/plat => plat}/public/src/include/memwatch.h (100%) rename {omc/plat => plat}/public/src/include/omc_public.h (100%) rename {omc/plat => plat}/public/src/include/pub_base.h (100%) rename {omc/plat => plat}/public/src/include/pub_debug.h (100%) rename {omc/plat => plat}/public/src/include/pub_file.h (100%) rename {omc/plat => plat}/public/src/include/pub_fmt.h (100%) rename {omc/plat => plat}/public/src/include/pub_include.h (100%) rename {omc/plat => plat}/public/src/include/pub_inet.h (100%) rename {omc/plat => plat}/public/src/include/pub_list.h (100%) rename {omc/plat => plat}/public/src/include/pub_log.h (100%) rename {omc/plat => plat}/public/src/include/pub_malloc.h (100%) rename {omc/plat => plat}/public/src/include/pub_netcap.h (100%) rename {omc/plat => plat}/public/src/include/pub_sdp.h (100%) rename {omc/plat => plat}/public/src/include/pub_str.h (100%) rename {omc/plat => plat}/public/src/include/pub_sys.h (100%) rename {omc/plat => plat}/public/src/include/pub_time.h (100%) rename {omc/plat => plat}/public/src/include/pub_timer.h (100%) rename {omc/plat => plat}/public/src/include/pub_wnet.h (100%) rename {omc/plat => plat}/public/src/include/public.h (100%) rename {omc/plat => plat}/public/src/include/svrstat.h (100%) rename {omc/plat => plat}/public/src/list.c (100%) rename {omc/plat => plat}/public/src/memwatch.c (100%) rename {omc/plat => plat}/public/src/pub_conf.c (100%) rename {omc/plat => plat}/public/src/pub_debug.c (100%) rename {omc/plat => plat}/public/src/pub_file.c (100%) rename {omc/plat => plat}/public/src/pub_fmt.c (100%) rename {omc/plat => plat}/public/src/pub_inet.c (100%) rename {omc/plat => plat}/public/src/pub_log.c (100%) rename {omc/plat => plat}/public/src/pub_malloc.c (100%) rename {omc/plat => plat}/public/src/pub_netcap.c (100%) rename {omc/plat => plat}/public/src/pub_sdp.c (100%) rename {omc/plat => plat}/public/src/pub_str.c (100%) rename {omc/plat => plat}/public/src/pub_sys.c (100%) rename {omc/plat => plat}/public/src/pub_time.c (100%) rename {omc/plat => plat}/public/src/pub_timer.c (100%) rename {omc/plat => plat}/public/src/pub_wnet.c (100%) rename {omc/plat => plat}/public/src/shm.c (100%) rename {omc/plat => plat}/public/src/uwav/number.c (100%) rename {omc/plat => plat}/public/src/uwav/number.h (100%) rename {omc/plat => plat}/public/src/uwav/numgrp.c (100%) rename {omc/plat => plat}/public/src/uwav/numgrp.h (100%) rename {omc/plat => plat}/public/ut/asn.1/asntest.c (100%) rename {omc/plat => plat}/public/ut/bisearch/bisearch_test.c (100%) rename {omc/plat => plat}/public/ut/debug_api/debug (100%) rename {omc/plat => plat}/public/ut/debug_api/wxc_debug_test.c (100%) rename {omc/plat => plat}/public/ut/function.c (100%) rename {omc/plat => plat}/public/ut/inet/pub_inet_test.c (100%) rename {omc/plat/public_bak => plat/public}/ut/main/Makefile (98%) rename {omc/plat => plat}/public/ut/main/src/main.c (100%) rename {omc/plat => plat}/public/ut/public_test/public_test.c (100%) rename {omc/plat => plat}/public/ut/timer/Makefile (97%) rename {omc/plat => plat}/public/ut/timer/wxc_tmtest.c (100%) rename {omc/plat => plat}/public_bak/Makefile (97%) rename {omc/plat => plat}/public_bak/src/asn1.c (100%) rename {omc/plat => plat}/public_bak/src/bisearch.c (100%) rename {omc/plat => plat}/public_bak/src/crypt.c (100%) rename {omc/plat => plat}/public_bak/src/include/asn1.h (100%) rename {omc/plat => plat}/public_bak/src/include/bisearch.h (100%) rename {omc/plat => plat}/public_bak/src/include/crypt.h (100%) rename {omc/plat => plat}/public_bak/src/include/includes.h (100%) rename {omc/plat => plat}/public_bak/src/include/license_id.h (100%) rename {omc/plat => plat}/public_bak/src/include/memwatch.h (100%) rename {omc/plat => plat}/public_bak/src/include/omc_public.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_base.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_debug.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_file.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_fmt.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_include.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_inet.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_list.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_log.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_malloc.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_netcap.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_sdp.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_str.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_sys.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_time.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_timer.h (100%) rename {omc/plat => plat}/public_bak/src/include/pub_wnet.h (100%) rename {omc/plat => plat}/public_bak/src/include/public.h (100%) rename {omc/plat => plat}/public_bak/src/include/svrstat.h (100%) rename {omc/plat => plat}/public_bak/src/memwatch.c (100%) rename {omc/plat => plat}/public_bak/src/pub_conf.c (100%) rename {omc/plat => plat}/public_bak/src/pub_debug.c (100%) rename {omc/plat => plat}/public_bak/src/pub_file.c (100%) rename {omc/plat => plat}/public_bak/src/pub_fmt.c (100%) rename {omc/plat => plat}/public_bak/src/pub_inet.c (100%) rename {omc/plat => plat}/public_bak/src/pub_log.c (100%) rename {omc/plat => plat}/public_bak/src/pub_malloc.c (100%) rename {omc/plat => plat}/public_bak/src/pub_netcap.c (100%) rename {omc/plat => plat}/public_bak/src/pub_sdp.c (100%) rename {omc/plat => plat}/public_bak/src/pub_str.c (100%) rename {omc/plat => plat}/public_bak/src/pub_sys.c (100%) rename {omc/plat => plat}/public_bak/src/pub_time.c (100%) rename {omc/plat => plat}/public_bak/src/pub_timer.c (100%) rename {omc/plat => plat}/public_bak/src/pub_wnet.c (100%) rename {omc/plat => plat}/public_bak/src/uwav/number.c (100%) rename {omc/plat => plat}/public_bak/src/uwav/number.h (100%) rename {omc/plat => plat}/public_bak/src/uwav/numgrp.c (100%) rename {omc/plat => plat}/public_bak/src/uwav/numgrp.h (100%) rename {omc/plat => plat}/public_bak/ut/asn.1/asntest.c (100%) rename {omc/plat => plat}/public_bak/ut/bisearch/bisearch_test.c (100%) rename {omc/plat => plat}/public_bak/ut/debug_api/debug (100%) rename {omc/plat => plat}/public_bak/ut/debug_api/wxc_debug_test.c (100%) rename {omc/plat => plat}/public_bak/ut/function.c (100%) rename {omc/plat => plat}/public_bak/ut/inet/pub_inet_test.c (100%) rename {omc/plat/public => plat/public_bak}/ut/main/Makefile (98%) rename {omc/plat => plat}/public_bak/ut/main/src/main.c (100%) rename {omc/plat => plat}/public_bak/ut/public_test/public_test.c (100%) rename {omc/plat => plat}/public_bak/ut/timer/Makefile (97%) rename {omc/plat => plat}/public_bak/ut/timer/wxc_tmtest.c (100%) rename {omc/plat => plat}/rtp/Makefile (97%) rename {omc/plat => plat}/rtp/src/include/rtp.h (100%) rename {omc/plat => plat}/rtp/src/include/rtp_const.h (100%) rename {omc/plat => plat}/rtp/src/include/rtp_def.h (100%) rename {omc/plat => plat}/rtp/src/include/rtp_ext.h (100%) rename {omc/plat => plat}/rtp/src/include/rtp_msg.h (100%) rename {omc/plat => plat}/rtp/src/include/rtp_pub.h (100%) rename {omc/plat => plat}/rtp/src/include/rtp_struct.h (100%) rename {omc/plat => plat}/rtp/src/rtp.c (100%) rename {omc/plat => plat}/rtp/src/rtp_msg.c (100%) rename {omc/plat => plat}/sccp/Makefile (97%) rename {omc/plat => plat}/sccp/src/include/sccp.h (100%) rename {omc/plat => plat}/sccp/src/include/sccp_func.h (100%) rename {omc/plat => plat}/sccp/src/include/sccp_pub.h (100%) rename {omc/plat => plat}/sccp/src/include/sccpconst.h (100%) rename {omc/plat => plat}/sccp/src/include/scoc.h (100%) rename {omc/plat => plat}/sccp/src/include/scoc_if.h (100%) rename {omc/plat => plat}/sccp/src/sccp.c (100%) rename {omc/plat => plat}/sccp/src/sccp_debug.c (100%) rename {omc/plat => plat}/sccp/src/sccp_func.c (100%) rename {omc/plat => plat}/sccp/src/sccp_gtt.c (100%) rename {omc/plat => plat}/sccp/src/sccp_log.c (100%) rename {omc/plat => plat}/sccp/src/sccp_mib.c (100%) rename {omc/plat => plat}/sccp/src/sccp_msg.c (100%) rename {omc/plat => plat}/sccp/src/sccp_param.c (100%) rename {omc/plat => plat}/sccp/src/sclc.c (100%) rename {omc/plat => plat}/sccp/src/scmg.c (100%) rename {omc/plat => plat}/sccp/src/scoc.c (100%) rename {omc/plat => plat}/sccp/src/scoc_fsm.c (100%) rename {omc/plat => plat}/sccp/src/scoc_func.c (100%) rename {omc/plat => plat}/sccp/src/scoc_if.c (100%) rename {omc/plat => plat}/sccp/src/scoc_pool.c (100%) rename {omc/plat => plat}/sccp/src/scoc_pri.c (100%) rename {omc/plat => plat}/sccp/src/scrc.c (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/Makefile (98%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/HlrSysPara (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/cap_acn.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/cap_operation.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/cc_table.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/conv_prefix.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/hae_sys.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/help_page (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/hlr_parambit.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/iptrans.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/map_acn.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/map_operation.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/menu_page (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/mtp3.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/ppsConf.txt (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/profile (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/sccp.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/sccp_test.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/smsc_csta.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/smsc_parambit.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/smsc_sys.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/system.ini (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/wxc2_sys.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/wxc2exit.txt (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/bin/conf/xap_sysparam.conf (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/obj/sccp_test.gcno (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/obj/scoc_test.gcno (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/sccp_test.c (100%) rename {omc/plat => plat}/sccp/ut/fsmtest/scoc_test.c (100%) rename {omc/plat => plat}/scf/Makefile (97%) rename {omc/plat => plat}/scf/src/include/scfdef.h (100%) rename {omc/plat => plat}/scf/src/include/scfmsg.h (100%) rename {omc/plat => plat}/scf/src/include/scfpub.h (100%) rename {omc/plat => plat}/scf/src/scfdef.h (100%) rename {omc/plat => plat}/scf/src/scfmsg.c (100%) rename {omc/plat => plat}/scf/src/scfmsg.h (100%) rename {omc/plat => plat}/scf/src/scfpub.h (100%) rename {omc/plat => plat}/scf/src/scsm.c (100%) rename {omc/plat => plat}/sip/Makefile (97%) rename {omc/plat => plat}/sip/src/include/sip.h (100%) rename {omc/plat => plat}/sip/src/include/sip_const.h (100%) rename {omc/plat => plat}/sip/src/include/sip_debug.h (100%) rename {omc/plat => plat}/sip/src/include/sip_def.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ext.h (100%) rename {omc/plat => plat}/sip/src/include/sip_msg.h (100%) rename {omc/plat => plat}/sip/src/include/sip_msg_encode.h (100%) rename {omc/plat => plat}/sip/src/include/sip_msg_parse.h (100%) rename {omc/plat => plat}/sip/src/include/sip_pub.h (100%) rename {omc/plat => plat}/sip/src/include/sip_struct.h (100%) rename {omc/plat => plat}/sip/src/include/sip_transaction.h (100%) rename {omc/plat => plat}/sip/src/include/sip_transport.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_const.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_def.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_dialog.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_ext.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_msg.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_pub.h (100%) rename {omc/plat => plat}/sip/src/include/sip_ua_struct.h (100%) rename {omc/plat => plat}/sip/src/sip.c (100%) rename {omc/plat => plat}/sip/src/sip_debug.c (100%) rename {omc/plat => plat}/sip/src/sip_msg.c (100%) rename {omc/plat => plat}/sip/src/sip_msg_encode.c (100%) rename {omc/plat => plat}/sip/src/sip_msg_parse.c (100%) rename {omc/plat => plat}/sip/src/sip_transaction.c (100%) rename {omc/plat => plat}/sip/src/sip_transport.c (100%) rename {omc/plat => plat}/sip/src/sip_ua.c (100%) rename {omc/plat => plat}/sip/src/sip_ua_dialog.c (100%) rename {omc/plat => plat}/sip/src/sip_ua_fsm.c (100%) rename {omc/plat => plat}/sip/src/sip_ua_msg.c (100%) rename {omc/plat => plat}/smpp/Makefile (97%) rename {omc/plat => plat}/smpp/doc/SMPP_R9V0_01P12.doc (100%) rename {omc/plat => plat}/smpp/doc/SMPP_R9V0_01P13.doc (100%) rename {omc/plat => plat}/smpp/doc/SMPP_R9V0_01P14.doc (100%) rename {omc/plat => plat}/smpp/doc/SMPP_R9V0_01P15.doc (100%) rename {omc/plat => plat}/smpp/src/include/smpp.h (100%) rename {omc/plat => plat}/smpp/src/include/smpp_const.h (100%) rename {omc/plat => plat}/smpp/src/include/smpp_def.h (100%) rename {omc/plat => plat}/smpp/src/include/smpp_ext.h (100%) rename {omc/plat => plat}/smpp/src/include/smpp_msg.h (100%) rename {omc/plat => plat}/smpp/src/include/smpp_public.h (100%) rename {omc/plat => plat}/smpp/src/smpp_debug.c (100%) rename {omc/plat => plat}/smpp/src/smpp_fsm.c (100%) rename {omc/plat => plat}/smpp/src/smpp_func.c (98%) rename {omc/plat => plat}/smpp/src/smpp_mib.c (100%) rename {omc/plat => plat}/smpp/src/smpp_msg.c (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/IWV-SMI.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/Special_App-SMI.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/System_IP_List.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-AUC-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-HLR-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-MSC-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-MSS-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-PPS-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-SMI.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-SMSC-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/WXC2-SS7-MIB.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/menu_page (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/menu_tree.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/mib_list_file.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/MIB_files/mib_write_tree.txt (100%) rename {omc/plat => plat}/smpp/ut/conf/guess_number_test.conf (100%) rename {omc/plat => plat}/smpp/ut/conf/help_page (100%) rename {omc/plat => plat}/smpp/ut/conf/iptrans.conf (100%) rename {omc/plat => plat}/smpp/ut/conf/menu_page (100%) rename {omc/plat => plat}/smpp/ut/conf/mtp3.conf (100%) rename {omc/plat => plat}/smpp/ut/conf/sccp.conf (100%) rename {omc/plat => plat}/smpp/ut/conf/smpp.conf (100%) rename {omc/plat => plat}/smpp/ut/smpp_test/smpp_test.c (100%) rename {omc/plat => plat}/smpp/ut/smpp_ussd_test/guess_number.c (100%) rename {omc/plat => plat}/smpp/ut/smpp_ussd_test/pppchat.c (100%) rename {omc/plat => plat}/snmp/Makefile (97%) rename {omc/plat => plat}/snmp/src/heartbeat.c (100%) rename {omc/plat => plat}/snmp/src/include/heartbeat.h (100%) rename {omc/plat => plat}/snmp/src/include/macro.h (100%) rename {omc/plat => plat}/snmp/src/include/snmp.h (100%) rename {omc/plat => plat}/snmp/src/include/sysctrl.h (100%) rename {omc/plat => plat}/snmp/src/include/table.h (100%) rename {omc/plat => plat}/snmp/src/mib_parser/snmp_mib.c (100%) rename {omc/plat => plat}/snmp/src/mib_parser/snmp_mib.h (100%) rename {omc/plat => plat}/snmp/src/mib_parser/snmp_mib_api.c (100%) rename {omc/plat => plat}/snmp/src/mib_parser/snmp_mib_api.h (100%) rename {omc/plat => plat}/snmp/src/snmp.c (100%) rename {omc/plat => plat}/snmp/src/snmpdebug.c (100%) rename {omc/plat => plat}/snmp/src/snmpmib.c (100%) rename {omc/plat => plat}/snmp/src/snmptable.c (100%) rename {omc/plat => plat}/snmp/src/snmptest.c (100%) rename {omc/plat => plat}/snmp/src/sysctrl.c (99%) rename {omc/plat => plat}/tcap/Makefile (97%) rename {omc/plat => plat}/tcap/src/idmanage.c (100%) rename {omc/plat => plat}/tcap/src/include/idmanage.h (100%) rename {omc/plat => plat}/tcap/src/include/itcap.h (100%) rename {omc/plat => plat}/tcap/src/include/tcap_head.h (100%) rename {omc/plat => plat}/tcap/src/include/tcap_m.h (100%) rename {omc/plat => plat}/tcap/src/include/tcap_proc.h (100%) rename {omc/plat => plat}/tcap/src/include/tcap_public.h (100%) rename {omc/plat => plat}/tcap/src/include/tcap_struct.h (100%) rename {omc/plat => plat}/tcap/src/itcap.c (100%) rename {omc/plat => plat}/tcap/src/tcap_coding.c (100%) rename {omc/plat => plat}/tcap/src/tcap_fsm.c (100%) rename {omc/plat => plat}/tcap/src/tcap_m.c (100%) rename {omc/plat => plat}/xapp/Makefile (97%) rename {omc/plat => plat}/xapp/conf/cap_acn.conf (100%) rename {omc/plat => plat}/xapp/conf/cap_operation.conf (100%) rename {omc/plat => plat}/xapp/conf/map_acn.conf (100%) rename {omc/plat => plat}/xapp/conf/map_operation.conf (100%) rename {omc/plat => plat}/xapp/src/capp/cap_coding.h (100%) rename {omc/plat => plat}/xapp/src/capp/cap_head.h (100%) rename {omc/plat => plat}/xapp/src/capp/cap_msg.c (100%) rename {omc/plat => plat}/xapp/src/capp/cap_msg.h (100%) rename {omc/plat => plat}/xapp/src/capp/cap_msgtype.c (100%) rename {omc/plat => plat}/xapp/src/capp/cap_public.c (100%) rename {omc/plat => plat}/xapp/src/capp/cap_public.h (100%) rename {omc/plat => plat}/xapp/src/capp/icap.h (100%) rename {omc/plat => plat}/xapp/src/conv_prefix.c (100%) rename {omc/plat => plat}/xapp/src/conv_prefix.h (100%) rename {omc/plat => plat}/xapp/src/ixap.h (100%) rename {omc/plat => plat}/xapp/src/mapp/Map_opr.c (100%) rename {omc/plat => plat}/xapp/src/mapp/imap.h (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_code.h (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_code_auc.c (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_code_ms.c (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_code_sms.c (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_code_win.c (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_coding.c (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_debug.c (100%) rename {omc/plat => plat}/xapp/src/mapp/is41_init.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_LCSCode.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_LCSCode.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_acn.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_auc.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_ch.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_dlgpdu.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_ms.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_om.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_sms.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_code_ss.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_coding.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_coding.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_const.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_dlgpdu.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_includes.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_opr_func.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_public.c (100%) rename {omc/plat => plat}/xapp/src/mapp/map_public.h (100%) rename {omc/plat => plat}/xapp/src/mapp/map_struct.h (100%) rename {omc/plat => plat}/xapp/src/mapp/win_struct.h (100%) rename {omc/plat => plat}/xapp/src/xap_cdmacdr.c (100%) rename {omc/plat/xapp/src/include.bak => plat/xapp/src}/xap_cdmacdr.h (100%) rename {omc/plat => plat}/xapp/src/xap_interface.c (100%) rename {omc/plat/xapp/src/include.bak => plat/xapp/src}/xap_interfunc.h (100%) rename {omc/plat => plat}/xapp/src/xap_monitor.c (100%) rename {omc/plat/xapp/src/include.bak => plat/xapp/src}/xap_monitor.h (100%) rename {omc/plat => plat}/xapp/src/xap_provider.c (100%) rename {omc/plat => plat}/xapp/src/xap_provider.h (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/Makefile (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/.sccp.conf.swo (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/HlrSysPara (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/cap_acn.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/cap_operation.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/cc_table.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/conf.rar (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/conv_prefix.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/hae_sys.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/help_page (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/hlr_parambit.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/iptrans.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/map_acn.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/map_operation.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/menu_page (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/mtp3.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/ppsConf.txt (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/profile (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/sccp.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/smsc_csta.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/smsc_parambit.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/smsc_sys.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/system.ini (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/system.ini.100k (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/system.ini.30K (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/system.inimscvlrhlr (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/wxc2_sys.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/wxc2exit.txt (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/xap_sysparam.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/conf/xapp_test.conf (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/xapp_coding_test.c (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/xapp_coding_test.h (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/xapp_main.c (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/xapp_main.h (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/xapp_op_test.c (100%) rename {omc/plat => plat}/xapp/ut/xapp_test/xapp_op_test.h (100%) create mode 100644 src/README.md create mode 100644 src/accountMgr/c_program/cdrCollector/Makefile create mode 100644 src/accountMgr/c_program/cdrCollector/cdr.c create mode 100644 src/accountMgr/c_program/cdrCollector/cdr.h create mode 100644 src/accountMgr/c_program/cdrCollector/cdrdb.c create mode 100644 src/accountMgr/c_program/cdrCollector/cdrmain.c create mode 100644 src/accountMgr/c_program/cdrCollector/test.txt create mode 100644 src/accountMgr/c_program/ftpsend/Makefile create mode 100644 src/accountMgr/c_program/ftpsend/ftpsend.c create mode 100644 src/accountMgr/c_program/ftpsend/ftpsend.h create mode 100644 src/accountMgr/c_program/ftpsend/run create mode 100644 src/accountMgr/c_program/nrtrde/Makefile rename {omc/config => src/accountMgr/c_program/nrtrde/conf}/NR.conf (100%) create mode 100644 src/accountMgr/c_program/nrtrde/conv_prefix.c rename {omc/plat/xapp/src/include.bak => src/accountMgr/c_program/nrtrde}/conv_prefix.h (65%) create mode 100644 src/accountMgr/c_program/nrtrde/createCDRs create mode 100644 src/accountMgr/c_program/nrtrde/decodeASN.c create mode 100644 src/accountMgr/c_program/nrtrde/encodeASN.c create mode 100644 src/accountMgr/c_program/nrtrde/init create mode 100644 src/accountMgr/c_program/nrtrde/nrtrde.c create mode 100644 src/accountMgr/c_program/nrtrde/nrtrde.h create mode 100644 src/accountMgr/c_program/nrtrde/seq_num_mng.c create mode 100644 src/accountMgr/c_program/sftpSend/Makefile create mode 100644 src/accountMgr/c_program/sftpSend/conf/NR.conf create mode 100644 src/accountMgr/c_program/sftpSend/init rename {omc/bin => src/accountMgr/c_program/sftpSend}/initKeys (100%) rename {omc/bin => src/accountMgr/c_program/sftpSend}/parseResult (100%) rename {omc/bin => src/accountMgr/c_program/sftpSend}/sendfile (91%) create mode 100644 src/accountMgr/c_program/sftpSend/sftp.c create mode 100644 src/accountMgr/c_program/sftpSend/sftp.h create mode 100644 src/accountMgr/c_program/sftpSend/sftpSend.c create mode 100644 src/accountMgr/c_program/smcli/Makefile create mode 100644 src/accountMgr/c_program/smcli/commands.c create mode 100644 src/accountMgr/c_program/smcli/pmcli.c create mode 100644 src/accountMgr/c_program/smcli/smcli.c create mode 100644 src/accountMgr/c_program/smcli/smcli.h create mode 100644 src/accountMgr/c_program/subsComm/Makefile create mode 100644 src/accountMgr/c_program/subsComm/remark.txt create mode 100644 src/accountMgr/c_program/subsComm/subsComm.c create mode 100644 src/accountMgr/c_program/subsComm/subsComm.h create mode 100644 src/accountMgr/c_program/subsComm/subsCommMain.c create mode 100644 src/accountMgr/c_program/subsComm/testReport create mode 100644 src/accountMgr/c_program/subsDataBackup/Makefile create mode 100644 src/accountMgr/c_program/subsDataBackup/subsDataBackup.c create mode 100644 src/accountMgr/c_program/subsDataBackup/subsDataBackup.h create mode 100644 src/accountMgr/c_program/subsDataBackup/subsDataBackupMain.c create mode 100644 src/accountMgr/c_program/wsms/Makefile create mode 100644 src/accountMgr/c_program/wsms/wsms.c create mode 100644 src/accountMgr/c_program/wsms/wsms.h create mode 100644 src/accountMgr/c_program/wsms/wsmsmain.c create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/Makefile create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/cdr.c create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/cdr.h create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/cdrdb.c create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/cdrdebug.c create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/cdrlog.c create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/cdrmain.c create mode 100644 src/accountMgr/c_program/wxc1AndWxc2ConverseTools/converseTools create mode 100644 src/configMgr/c_program/impmod/Makefile create mode 100644 src/configMgr/c_program/impmod/alive.c create mode 100644 src/configMgr/c_program/impmod/bss_hb.c create mode 100644 src/configMgr/c_program/impmod/bss_hb.h create mode 100644 src/configMgr/c_program/impmod/bsscomm.c create mode 100644 src/configMgr/c_program/impmod/bsscomm.h create mode 100644 src/configMgr/c_program/impmod/includes.h create mode 100644 src/configMgr/c_program/impmod/iwtypes.h create mode 100644 src/configMgr/c_program/impmod/nmimp.c create mode 100644 src/configMgr/c_program/impmod/nmimp.h create mode 100644 src/configMgr/c_program/impmod/nmstatus.h create mode 100644 src/configMgr/c_program/impmod/nmtypes.c create mode 100644 src/configMgr/c_program/impmod/nmtypes.h create mode 100644 src/configMgr/c_program/paraComm/Makefile create mode 100644 src/configMgr/c_program/paraComm/initParaConf.c rename {omc/bin => src/configMgr/c_program/paraComm}/mib/LGC-MIB.my (99%) rename omc/bin/mib/LGC-SS-MSC-MIB_bak.my => src/configMgr/c_program/paraComm/mib/LGC-SS-MSC-MIB.my (53%) create mode 100644 src/configMgr/c_program/paraComm/mib/LGC-SS-MSC-MIB_070824.my rename {omc/bin => src/configMgr/c_program/paraComm}/mib/SNMPv2-SMI (100%) rename {omc/bin => src/configMgr/c_program/paraComm}/mib/SNMPv2-TC (100%) create mode 100644 src/configMgr/c_program/paraComm/mib/index create mode 100644 src/configMgr/c_program/paraComm/paraComm.c create mode 100644 src/configMgr/c_program/paraComm/paraComm.h create mode 100644 src/configMgr/c_program/paraComm/paraCommMain.c create mode 100644 src/faultMgr/c_program/alarmAgent/Makefile create mode 100644 src/faultMgr/c_program/alarmAgent/alarmAgent.c create mode 100644 src/faultMgr/c_program/alarmAgent/alarmAgent.h create mode 100644 src/faultMgr/c_program/alarmAgent/alarmSnmp.c create mode 100644 src/faultMgr/c_program/alarmGenerator/Alarm List.xls create mode 100644 src/faultMgr/c_program/alarmGenerator/Makefile create mode 100644 src/faultMgr/c_program/alarmGenerator/WXCII_AlarmSupport_Test_report.doc create mode 100644 src/faultMgr/c_program/alarmGenerator/alarmAgent.c create mode 100644 src/faultMgr/c_program/alarmGenerator/alarmAgent.h create mode 100644 src/faultMgr/c_program/alarmGenerator/alarmGen.c create mode 100644 src/faultMgr/c_program/alarmGenerator/alarmGen.h create mode 100644 src/faultMgr/c_program/alarmGenerator/alarmMain.c create mode 100644 src/faultMgr/c_program/alarmGenerator/conf.tgz create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/IWV-SMI.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/Special_App-SMI.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/System_IP_List.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/WXC2-SMI.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/WXC2-SS7-MIB.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/help_page create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/menu_page create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/menu_tree.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/mib_list_file.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/mib_write_tree.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files/sdf create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/IWV-SMI.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/Special_App-SMI.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/System_IP_List.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/WXC2-SMI.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/WXC2-SS7-MIB.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/help_page create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/menu_page create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/menu_tree.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/mib_list_file.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/MIB_files_bak/mib_write_tree.txt create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/alarmGen.conf rename {omc/bin => src/faultMgr/c_program/alarmGenerator}/conf/chkDb.conf (100%) create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/conference_par.conf create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/download.conf rename {omc/bin => src/faultMgr/c_program/alarmGenerator}/conf/help_page (92%) create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/intercept.conf rename {omc/bin => src/faultMgr/c_program/alarmGenerator}/conf/iptrans.conf (56%) create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/menu_page create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/mtp3.conf create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/omc_db.conf rename {omc/bin => src/faultMgr/c_program/alarmGenerator}/conf/omcd.conf (91%) rename {omc/bin => src/faultMgr/c_program/alarmGenerator}/conf/omcd.conf_bak (91%) create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/sccp.conf rename {omc/config => src/faultMgr/c_program/alarmGenerator/conf}/server.conf (54%) create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/server.conf_bak create mode 100644 src/faultMgr/c_program/alarmGenerator/conf/sormAgent.conf create mode 100644 src/faultMgr/c_program/beatProc/Makefile create mode 100644 src/faultMgr/c_program/beatProc/beatProc.c create mode 100644 src/faultMgr/c_program/beatProc/beatProc.h create mode 100644 src/faultMgr/c_program/beatProc/beatProcMain.c create mode 100644 src/faultMgr/c_program/beatProc/makeomcmain create mode 100644 src/faultMgr/c_program/beatSend/Makefile create mode 100644 src/faultMgr/c_program/beatSend/beatSend.c create mode 100644 src/faultMgr/c_program/beatSend/beatSend.h create mode 100644 src/faultMgr/c_program/beatSend/beatSendMain.c create mode 100644 src/faultMgr/c_program/beatSend/conf/iptrans.conf rename omc/config/my.cnf_omc-1.ES => src/faultMgr/c_program/beatSend/conf/my.cnf (60%) rename omc/config/my.cnf_omc-1 => src/faultMgr/c_program/beatSend/conf/my_master.cnf (60%) rename omc/config/my.cnf_omc-0 => src/faultMgr/c_program/beatSend/conf/my_slave.cnf (59%) create mode 100644 src/faultMgr/c_program/beatSend/conf/omcconf create mode 100644 src/faultMgr/c_program/beatSend/conf/server.conf create mode 100644 src/faultMgr/c_program/beatSend/make create mode 100644 src/faultMgr/c_program/beatSend/sys_stat.c create mode 100644 src/faultMgr/c_program/dualsrv/Makefile create mode 100644 src/faultMgr/c_program/dualsrv/dualsrv.c create mode 100644 src/faultMgr/c_program/dualsrv/dualsrv.h create mode 100644 src/faultMgr/c_program/dualsrv/dualsrv_debug.c create mode 100644 src/faultMgr/c_program/dualsrv/dualsrv_func.c rename omc/config/httpd.conf => src/faultMgr/c_program/dualsrv/dualsrv_main.c (100%) create mode 100644 src/faultMgr/c_program/dualsrv/dualsrv_pub.h create mode 100644 src/faultMgr/c_program/dualsrv/make.sh create mode 100644 src/faultMgr/c_program/makefile.sh create mode 100644 src/faultMgr/c_program/raidAgent/Makefile create mode 100644 src/faultMgr/c_program/raidAgent/make create mode 100644 src/faultMgr/c_program/raidAgent/raid_agent.c create mode 100644 src/faultMgr/c_program/raidAgent/raid_agent.h create mode 100644 src/faultMgr/c_program/raidAgent/raid_agent_main.c create mode 100644 src/faultMgr/c_program/raidAgent/raid_agent_task.c create mode 100644 src/faultMgr/c_program/sysStat/Makefile create mode 100644 src/faultMgr/c_program/sysStat/includes.h create mode 100644 src/faultMgr/c_program/sysStat/statTest.c create mode 100644 src/faultMgr/c_program/sysStat/sysStat.c create mode 100644 src/faultMgr/c_program/sysStat/sysStat.h create mode 100644 src/makeall.sh create mode 100644 src/omcLib/c_program/ftp/Makefile create mode 100644 src/omcLib/c_program/ftp/ftp.c create mode 100644 src/omcLib/c_program/ftp/ftp.h create mode 100644 src/omcLib/c_program/ftp/ftpclient.c create mode 100644 src/omcLib/c_program/omcLib/Makefile create mode 100644 src/omcLib/c_program/omcLib/mib_parse.c create mode 100644 src/omcLib/c_program/omcLib/mib_parse.h create mode 100644 src/omcLib/c_program/omcLib/omcDbLib.c create mode 100644 src/omcLib/c_program/omcLib/omcDbLib.h create mode 100644 src/omcLib/c_program/omcLib/omcFuncLib.c create mode 100644 src/omcLib/c_program/omcLib/omcFuncLib.h create mode 100644 src/omcLib/c_program/omcLib/omcLib.h create mode 100644 src/omcLib/c_program/omcLib/omcLibMain.c create mode 100644 src/omcMain/c_program/omcMain/Makefile rename {omc/config => src/omcMain/c_program/omcMain/conf}/chkDb.conf (100%) create mode 100644 src/omcMain/c_program/omcMain/conf/conference_par.conf create mode 100644 src/omcMain/c_program/omcMain/conf/download.conf create mode 100644 src/omcMain/c_program/omcMain/conf/help_page create mode 100644 src/omcMain/c_program/omcMain/conf/iptrans.conf create mode 100644 src/omcMain/c_program/omcMain/conf/menu_page create mode 100644 src/omcMain/c_program/omcMain/conf/mtp3.conf create mode 100644 src/omcMain/c_program/omcMain/conf/omc_db.conf rename omc/bin/conf/omcd.conf_single => src/omcMain/c_program/omcMain/conf/omcd.conf (90%) create mode 100644 src/omcMain/c_program/omcMain/conf/sccp.conf rename {omc/bin => src/omcMain/c_program/omcMain}/conf/server.conf (100%) create mode 100644 src/omcMain/c_program/omcMain/omcMain.c create mode 100644 src/omcMain/c_program/omcMain/omcMain.h create mode 100644 src/performanceMgr/c_program/cstaCollector/Makefile create mode 100644 src/performanceMgr/c_program/cstaCollector/csta.c create mode 100644 src/performanceMgr/c_program/cstaCollector/csta.h create mode 100644 src/performanceMgr/c_program/cstaCollector/cstamain.c create mode 100644 src/performanceMgr/c_program/logCollector/Makefile create mode 100644 src/performanceMgr/c_program/logCollector/logCollector.c create mode 100644 src/performanceMgr/c_program/logCollector/logCollector.h create mode 100644 src/performanceMgr/c_program/logCollector/logCollectorMain.c create mode 100644 src/securityMgr/c_program/omcCleaner/Makefile create mode 100644 src/securityMgr/c_program/omcCleaner/omc_cleaner.c create mode 100644 src/securityMgr/c_program/omcCleaner/omc_cleaner.h create mode 100644 src/securityMgr/c_program/omcCleaner/omc_cleaner_main.c create mode 100644 src/securityMgr/c_program/omcCleaner/omc_task.c create mode 100644 src/smeg/Makefile create mode 100644 src/smeg/make.sh create mode 100644 src/smeg/src/alert_smtp.c create mode 100644 src/smeg/src/dba_conn.c create mode 100644 src/smeg/src/debug.txt create mode 100644 src/smeg/src/include/db_adaptor.h create mode 100644 src/smeg/src/include/smeg_pub.h create mode 100644 src/smeg/src/include/smeg_smpp.h create mode 100644 src/smeg/src/include/smtp.h create mode 100644 src/smeg/src/include/smtp_const.h create mode 100644 src/smeg/src/include/smtp_struct.h create mode 100644 src/smeg/src/include/statistic_data.h create mode 100644 src/smeg/src/include/tcp_client.h create mode 100644 src/smeg/src/smeg.c create mode 100644 src/smeg/src/smeg_debug.c create mode 100644 src/smeg/src/smeg_mib.c create mode 100644 src/smeg/src/smeg_smpp.c create mode 100644 src/smeg/src/smeg_smtp.c create mode 100644 src/smeg/src/tcp_client.c diff --git a/.gitignore b/.gitignore index fda2452..64eab31 100644 --- a/.gitignore +++ b/.gitignore @@ -11,8 +11,7 @@ .idea/ # Run temp file and dir -reference -omc/tools + # Built Visual Studio Code Extensions *.o diff --git a/omc/bin/conf/sync.conf b/bin/.gitkeep similarity index 100% rename from omc/bin/conf/sync.conf rename to bin/.gitkeep diff --git a/include/Makefile.rules.bak b/include/Makefile.rules.bak deleted file mode 100644 index 8774bc9..0000000 --- a/include/Makefile.rules.bak +++ /dev/null @@ -1,352 +0,0 @@ - -##----------------------------------------------------------## -## ## -## Universal Makefile Rules ## -## ## -## Created : Wei Liu 07/03/07 ## -## Revision: [Last]Wei Liu 07/07/07 ## -## ## -##----------------------------------------------------------## - - -UMAKE_VERSION := V2.0 - -##------------------------------------- -## -## Work Directory : /usr/local/include -## Default Target : all -## -##------------------------------------- -default: all -.PHONY: all clean rebuild test indent splint doc \ - dir config check bk lsbk rmbk unzip umakever usage\ - FORCE -.SUFFIXES: - -umakever: - @echo "Universal Makefile (UMake) Version: $(UMAKE_VERSION)" - -##-------------------------------------- -## -## Makefile CFG defination check -## -##-------------------------------------- - -ifeq "$(MODULE)" "" -$(error Please input the module name (MODULE = )in makefile. ) -endif - -ifeq "$(CFG)" "" -CFG=debug -$(warnning No configuration specified for CFG. Defaulting to $(MODULE) - debug. ) -endif - -ifeq "$(BUILD)" "" -BUILD=lib -$(warnning No configuration specified for BUILD. Defaulting to create lib$(MODULE).a. ) -endif - -ifeq "$(SRC_PATH)" "" -SRC_PATH=. -$(warnning No configuration specified for SRC_PATH. Defaulting to ./. ) -endif - -COVER_NEED ?= no -PLT_PATH ?= ../../plat -APP_PATH ?= ../../app -TYPE ?= plat - -##-------------------------------------- -## -## Gcc Flag for debug or release -## -##-------------------------------------- -#CC := arm-linux-gnueabi-gcc -CC := gcc -GCC_CFLAGS := -Wall -MM -#AR_LINK := arm-linux-gnueabi-ar -r -AR_LINK := ar -r -ARM_INCLUDE := /opt/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabi/usr/include -RELS_FLAGS_ADD += -DNDEBUG -RELEASE_CFLAGS += -g -I. -I$(ARM_INCLUDE) $(RELS_FLAGS_ADD) -RELEASE_LINK_CFLAGS = -g $(RELS_FLAGS_ADD) -o -DEBUG_CFLAGS += -g -rdynamic -finline-functions -DDEBUG -I. -I$(ARM_INCLUDE) $(DBUG_FLAGS_ADD) -DEBUG_LINK_CFLAGS = -g -rdynamic -DDEBUG -o - -ifeq "$(COVER_NEED)" "yes" -DEBUG_CFLAGS += -fprofile-arcs -ftest-coverage -pg -endif - -GCC_CFLAGS=$(DEBUG_CFLAGS) -GCC_LINK_CFLAGS=$(DEBUG_LINK_CFLAGS) - -##-------------------------------------- -## -## Project setting -## -##-------------------------------------- -OBJDIR:=./obj -LIBDIR:=./lib -UTDIR :=./ut -DOCDIR:=./doc -DIRBUILD=$(OBJDIR) - -ifeq "$(BUILD)" "lib" -BINDIR:=./bin -OUTFILE=$(LIBDIR)/lib$(MODULE).a -DIRNEED=$(UTDIR) $(DOCDIR) -DIRBUILD+=$(LIBDIR) -else -BINDIR:=. -OUTFILE=$(BINDIR)/$(MODULE) -DIRNEED= -DIRBUILD+=$(BINDIR) -endif - -##-------------------------------------- -## -## source , object and dependencies files -## -##-------------------------------------- - -SRC_SUBDIR := $(shell find $(SRC_PATH) -type d) - -vpath %.c $(SRC_SUBDIR) -vpath %.o $(OBJDIR) -vpath %.d $(OBJDIR) - -SRC_FULL_PATH = $(foreach dir,$(SRC_SUBDIR),$(wildcard $(dir)/*.c)) -SRC_FILES = $(foreach file, $(notdir $(SRC_FULL_PATH)) ,$(OBJDIR)/$(file)) -COMMON_OBJ = $(SRC_FILES:%.c=%.o) - -TEST_OBJ_PATH ?= ../../obj - -TEST_OBJ = $(foreach dir,$(TEST_OBJ_PATH),$(wildcard $(dir)/*.o)) - -OBJ=$(COMMON_OBJ) $(OBJ_ADD) -ALL_OBJ := $(OBJ) $(TEST_OBJ) - -##-------------------------------------- -## -## Lib setting -## -##-------------------------------------- - -ifeq "$(COVER_NEED)" "yes" -LIBCOVER=-lgcov -endif - -MODULE_PLT_LIB=$(foreach lib,$(PLT_LIB), -L$(PLT_PATH)/$(lib)/lib/ -l$(lib) ) -MODULE_PLT_LIB+=-lm - - -MODULE_APP_LIB=$(foreach lib,$(APP_LIB),-L$(APP_PATH)/$(lib)/lib -l$(lib)) - -ifneq (,$(findstring hlr,$(PLT_LIB))) -MODULE_APP_LIB= -##-L../app/ae/src/lib -lpubfunc -endif - -ifneq (,$(findstring auceir,$(PLT_LIB))) -MODULE_APP_LIB= -##-L../app/ae/src/lib -lpubfunc -L../usr/lib -la3a8 -ldl -lpopt -endif - -##-------------------------------------- -## -## Rules -## -##-------------------------------------- -CCFLAG_SWITCH ?= off -CC_COMPILE =$(CC) $(GCC_CFLAGS) -c $< -o $@ -CC_PRG_LINK=$(CC) $(GCC_LINK_CFLAGS) $(OUTFILE) $(ALL_OBJ) $(LIBCOVER) $(MODULE_APP_LIB) $(MODULE_PLT_LIB) $(LIB_ADD) -CC_LIB_LINK=$(AR_LINK) $(OUTFILE) $(ALL_OBJ) - -COMPILE=$(CC_COMPILE) -PRG_LINK=$(CC_PRG_LINK) -LIB_LINK=$(CC_LIB_LINK) - -ifeq "$(BUILD)" "exef" -LINK=$(PRG_LINK) -else -LINK=$(LIB_LINK) -endif - -# Build rules - -all: preproc start dir $(ALL_OBJ) #prtdebug - @echo Linking :$(OUTFILE) -ifeq "$(CCFLAG_SWITCH)" "off" - @$(LINK) -else - $(LINK) -endif - @$(POSTPROC_CMD) - @echo -e "\n================================================================================\n" - -sinclude $(DEPENDS) - -release : CC_COMPILE =$(CC) $(RELEASE_CFLAGS) -c $< -o $@ -release : CC_PRG_LINK=$(CC) $(RELEASE_LINK_CFLAGS) $(OUTFILE) $(ALL_OBJ) $(MODULE_APP_LIB) $(MODULE_PLT_LIB) $(LIB_ADD) -release : all - -##-------------------------------------- -## -## Make command to use for dependencies -## -##-------------------------------------- - -MAKE :=make -RM :=rm -MKDIR :=mkdir - -preproc: - @$(PREPROC_CMD) - -start: - @echo -e "\n================================================================================\n" - @echo "[Building Project]: $(notdir $(MODULE))" -ifeq "$(CCFLAG_SWITCH)" "off" - @echo "Show Gcc Flags switch = OFF" -endif - -prtdebug: - @echo "$(MODULE)-$(BUILD)[$(CFG)] build source file:" "$(SRC_FULL_PATH)" - @echo SRC_SUBDIR: $(SRC_SUBDIR) - @echo SRC_FULL_PATH : $(SRC_FULL_PATH) - @echo SRC_FILES : $(SRC_FILES) - @echo ALL_OBJ : $(ALL_OBJ) - @echo LIB:$(MODULE_PLT_LIB) - @echo PLT_LIB: $(PLT_LIB) - @echo CCFLAG_SWITCH :$(CCFLAG_SWITCH) - -config: dir - -dir: - @$(foreach dir,$(DIRNEED),$(MKDIR) -p $(DIRNEED) --mode=0777; ) - @$(foreach dir,$(DIRBUILD),$(MKDIR) -p $(dir) --mode=0777; ) - -##-------------------------------------- -## -## Make Rebuild and clean -## -##-------------------------------------- - -ifneq "$(PROJ)" "" -FRIEND_PROJ := $(shell ) -endif - -jumprebuild: -ifneq "$(PROJ)" "" - @cd $(FRIEND_PROJ); mak rebuild ; cd - -endif - -# Rebuild this project -rebuild: jumprebuild cleanall all - -# Clean this project and all dependencies -cleanall: clean - -# Clean this project -clean: - @echo -e "||--------------------------------------------------------------- " - @echo -e "|| Umake clean gcc , lcov, doxygen generated and temporary files. " - @echo -e "||--------------------------------------------------------------- " - @$(RM) -rf $(OBJDIR) $(OUTFILE) $(COVER_REPORT_PATH) ./doc/doxygen.conf ./doc/html ./doc/latex ./doc/rtf $(foreach dir,$(SRC_SUBDIR),$(dir)/*~) - - -##-------------------------------------- -## -## indent Makefile.indent -## -##-------------------------------------- -include Makefile.indent - -indent: - @chmod 777 $(SRC_FULL_PATH) - @echo ===================================Indent START================================= - @echo - @echo "[Indent source file ]: $(SRC_FULL_PATH)" - $(call MAKE_INDENT , $(SRC_FULL_PATH)) - -##-------------------------------------- -## -## splint makefile.splint -## -##-------------------------------------- -include Makefile.splint - -SPLINT_FLAG_SWITCH ?= off - -splint: - @chmod 777 $(SRC_FULL_PATH) - @echo =================================Splint START================================== - @echo -ifeq "$(SPLINT_FLAG_SWITCH)" "on" - @echo "[Splint flags ]: $(SPLINT_FLAGS)" -endif - @echo "[Lint Clean Project]: $(notdir $(MODULE))" - $(call MAKE_SPLINT, $(SRC_FULL_PATH)) - -##-------------------------------------- -## -## doc Makefile.doxygen -## -##-------------------------------------- -include Makefile.doxygen - -doc: - @chmod 777 $(SRC_FULL_PATH) - @echo ==================================Doxygen START================================= - @echo - $(call MAKE_DOC, $(SRC_FULL_PATH)) - - -##-------------------------------------- -## -## backup Makefile.backup -## -##-------------------------------------- -include Makefile.backup - -##-------------------------------------- -## -## cov Makefile.cov -## -##-------------------------------------- -include Makefile.cov - -##-------------------------------------- -## -## usage Makefile.usage -## -##-------------------------------------- -include Makefile.usage - -##-------------------------------------- -## -## Make dependencies -## -##-------------------------------------- - -$(OBJDIR)/%.d:%.c - @$(CC) $< -MM -MD -o $@ - -$(OBJDIR)/%.o:%.c - -ifeq "$(CCFLAG_SWITCH)" "off" - @echo -e "building: $(notdir $@) \t\t\t\t please wait ..." - @$(COMPILE) -else - $(COMPILE) -endif - -DEPENDS=$(COMMON_OBJ:.o=.d) - -##-------------------------------------- -## -## Make force -## -##-------------------------------------- -FORCE: - diff --git a/include/gtest/gtest-death-test.h b/include/gtest/gtest-death-test.h deleted file mode 100644 index dc878ff..0000000 --- a/include/gtest/gtest-death-test.h +++ /dev/null @@ -1,343 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the public API for death tests. It is -// #included by gtest.h so a user doesn't need to include this -// directly. -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ - -#include "gtest/internal/gtest-death-test-internal.h" - -namespace testing { - -// This flag controls the style of death tests. Valid values are "threadsafe", -// meaning that the death test child process will re-execute the test binary -// from the start, running only a single death test, or "fast", -// meaning that the child process will execute the test logic immediately -// after forking. -GTEST_DECLARE_string_(death_test_style); - -#if GTEST_HAS_DEATH_TEST - -namespace internal { - -// Returns a Boolean value indicating whether the caller is currently -// executing in the context of the death test child process. Tools such as -// Valgrind heap checkers may need this to modify their behavior in death -// tests. IMPORTANT: This is an internal utility. Using it may break the -// implementation of death tests. User code MUST NOT use it. -GTEST_API_ bool InDeathTestChild(); - -} // namespace internal - -// The following macros are useful for writing death tests. - -// Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is -// executed: -// -// 1. It generates a warning if there is more than one active -// thread. This is because it's safe to fork() or clone() only -// when there is a single thread. -// -// 2. The parent process clone()s a sub-process and runs the death -// test in it; the sub-process exits with code 0 at the end of the -// death test, if it hasn't exited already. -// -// 3. The parent process waits for the sub-process to terminate. -// -// 4. The parent process checks the exit code and error message of -// the sub-process. -// -// Examples: -// -// ASSERT_DEATH(server.SendMessage(56, "Hello"), "Invalid port number"); -// for (int i = 0; i < 5; i++) { -// EXPECT_DEATH(server.ProcessRequest(i), -// "Invalid request .* in ProcessRequest()") -// << "Failed to die on request " << i; -// } -// -// ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); -// -// bool KilledBySIGHUP(int exit_code) { -// return WIFSIGNALED(exit_code) && WTERMSIG(exit_code) == SIGHUP; -// } -// -// ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!"); -// -// On the regular expressions used in death tests: -// -// GOOGLETEST_CM0005 DO NOT DELETE -// On POSIX-compliant systems (*nix), we use the library, -// which uses the POSIX extended regex syntax. -// -// On other platforms (e.g. Windows or Mac), we only support a simple regex -// syntax implemented as part of Google Test. This limited -// implementation should be enough most of the time when writing -// death tests; though it lacks many features you can find in PCRE -// or POSIX extended regex syntax. For example, we don't support -// union ("x|y"), grouping ("(xy)"), brackets ("[xy]"), and -// repetition count ("x{5,7}"), among others. -// -// Below is the syntax that we do support. We chose it to be a -// subset of both PCRE and POSIX extended regex, so it's easy to -// learn wherever you come from. In the following: 'A' denotes a -// literal character, period (.), or a single \\ escape sequence; -// 'x' and 'y' denote regular expressions; 'm' and 'n' are for -// natural numbers. -// -// c matches any literal character c -// \\d matches any decimal digit -// \\D matches any character that's not a decimal digit -// \\f matches \f -// \\n matches \n -// \\r matches \r -// \\s matches any ASCII whitespace, including \n -// \\S matches any character that's not a whitespace -// \\t matches \t -// \\v matches \v -// \\w matches any letter, _, or decimal digit -// \\W matches any character that \\w doesn't match -// \\c matches any literal character c, which must be a punctuation -// . matches any single character except \n -// A? matches 0 or 1 occurrences of A -// A* matches 0 or many occurrences of A -// A+ matches 1 or many occurrences of A -// ^ matches the beginning of a string (not that of each line) -// $ matches the end of a string (not that of each line) -// xy matches x followed by y -// -// If you accidentally use PCRE or POSIX extended regex features -// not implemented by us, you will get a run-time failure. In that -// case, please try to rewrite your regular expression within the -// above syntax. -// -// This implementation is *not* meant to be as highly tuned or robust -// as a compiled regex library, but should perform well enough for a -// death test, which already incurs significant overhead by launching -// a child process. -// -// Known caveats: -// -// A "threadsafe" style death test obtains the path to the test -// program from argv[0] and re-executes it in the sub-process. For -// simplicity, the current implementation doesn't search the PATH -// when launching the sub-process. This means that the user must -// invoke the test program via a path that contains at least one -// path separator (e.g. path/to/foo_test and -// /absolute/path/to/bar_test are fine, but foo_test is not). This -// is rarely a problem as people usually don't put the test binary -// directory in PATH. -// - -// Asserts that a given statement causes the program to exit, with an -// integer exit status that satisfies predicate, and emitting error output -// that matches regex. -# define ASSERT_EXIT(statement, predicate, regex) \ - GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_) - -// Like ASSERT_EXIT, but continues on to successive tests in the -// test suite, if any: -# define EXPECT_EXIT(statement, predicate, regex) \ - GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_) - -// Asserts that a given statement causes the program to exit, either by -// explicitly exiting with a nonzero exit code or being killed by a -// signal, and emitting error output that matches regex. -# define ASSERT_DEATH(statement, regex) \ - ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) - -// Like ASSERT_DEATH, but continues on to successive tests in the -// test suite, if any: -# define EXPECT_DEATH(statement, regex) \ - EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) - -// Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*: - -// Tests that an exit code describes a normal exit with a given exit code. -class GTEST_API_ ExitedWithCode { - public: - explicit ExitedWithCode(int exit_code); - bool operator()(int exit_status) const; - private: - // No implementation - assignment is unsupported. - void operator=(const ExitedWithCode& other); - - const int exit_code_; -}; - -# if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA -// Tests that an exit code describes an exit due to termination by a -// given signal. -// GOOGLETEST_CM0006 DO NOT DELETE -class GTEST_API_ KilledBySignal { - public: - explicit KilledBySignal(int signum); - bool operator()(int exit_status) const; - private: - const int signum_; -}; -# endif // !GTEST_OS_WINDOWS - -// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. -// The death testing framework causes this to have interesting semantics, -// since the sideeffects of the call are only visible in opt mode, and not -// in debug mode. -// -// In practice, this can be used to test functions that utilize the -// LOG(DFATAL) macro using the following style: -// -// int DieInDebugOr12(int* sideeffect) { -// if (sideeffect) { -// *sideeffect = 12; -// } -// LOG(DFATAL) << "death"; -// return 12; -// } -// -// TEST(TestSuite, TestDieOr12WorksInDgbAndOpt) { -// int sideeffect = 0; -// // Only asserts in dbg. -// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); -// -// #ifdef NDEBUG -// // opt-mode has sideeffect visible. -// EXPECT_EQ(12, sideeffect); -// #else -// // dbg-mode no visible sideeffect. -// EXPECT_EQ(0, sideeffect); -// #endif -// } -// -// This will assert that DieInDebugReturn12InOpt() crashes in debug -// mode, usually due to a DCHECK or LOG(DFATAL), but returns the -// appropriate fallback value (12 in this case) in opt mode. If you -// need to test that a function has appropriate side-effects in opt -// mode, include assertions against the side-effects. A general -// pattern for this is: -// -// EXPECT_DEBUG_DEATH({ -// // Side-effects here will have an effect after this statement in -// // opt mode, but none in debug mode. -// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); -// }, "death"); -// -# ifdef NDEBUG - -# define EXPECT_DEBUG_DEATH(statement, regex) \ - GTEST_EXECUTE_STATEMENT_(statement, regex) - -# define ASSERT_DEBUG_DEATH(statement, regex) \ - GTEST_EXECUTE_STATEMENT_(statement, regex) - -# else - -# define EXPECT_DEBUG_DEATH(statement, regex) \ - EXPECT_DEATH(statement, regex) - -# define ASSERT_DEBUG_DEATH(statement, regex) \ - ASSERT_DEATH(statement, regex) - -# endif // NDEBUG for EXPECT_DEBUG_DEATH -#endif // GTEST_HAS_DEATH_TEST - -// This macro is used for implementing macros such as -// EXPECT_DEATH_IF_SUPPORTED and ASSERT_DEATH_IF_SUPPORTED on systems where -// death tests are not supported. Those macros must compile on such systems -// if and only if EXPECT_DEATH and ASSERT_DEATH compile with the same parameters -// on systems that support death tests. This allows one to write such a macro on -// a system that does not support death tests and be sure that it will compile -// on a death-test supporting system. It is exposed publicly so that systems -// that have death-tests with stricter requirements than GTEST_HAS_DEATH_TEST -// can write their own equivalent of EXPECT_DEATH_IF_SUPPORTED and -// ASSERT_DEATH_IF_SUPPORTED. -// -// Parameters: -// statement - A statement that a macro such as EXPECT_DEATH would test -// for program termination. This macro has to make sure this -// statement is compiled but not executed, to ensure that -// EXPECT_DEATH_IF_SUPPORTED compiles with a certain -// parameter if and only if EXPECT_DEATH compiles with it. -// regex - A regex that a macro such as EXPECT_DEATH would use to test -// the output of statement. This parameter has to be -// compiled but not evaluated by this macro, to ensure that -// this macro only accepts expressions that a macro such as -// EXPECT_DEATH would accept. -// terminator - Must be an empty statement for EXPECT_DEATH_IF_SUPPORTED -// and a return statement for ASSERT_DEATH_IF_SUPPORTED. -// This ensures that ASSERT_DEATH_IF_SUPPORTED will not -// compile inside functions where ASSERT_DEATH doesn't -// compile. -// -// The branch that has an always false condition is used to ensure that -// statement and regex are compiled (and thus syntactically correct) but -// never executed. The unreachable code macro protects the terminator -// statement from generating an 'unreachable code' warning in case -// statement unconditionally returns or throws. The Message constructor at -// the end allows the syntax of streaming additional messages into the -// macro, for compilational compatibility with EXPECT_DEATH/ASSERT_DEATH. -# define GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, terminator) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - GTEST_LOG_(WARNING) \ - << "Death tests are not supported on this platform.\n" \ - << "Statement '" #statement "' cannot be verified."; \ - } else if (::testing::internal::AlwaysFalse()) { \ - ::testing::internal::RE::PartialMatch(".*", (regex)); \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - terminator; \ - } else \ - ::testing::Message() - -// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and -// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if -// death tests are supported; otherwise they just issue a warning. This is -// useful when you are combining death test assertions with normal test -// assertions in one test. -#if GTEST_HAS_DEATH_TEST -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - EXPECT_DEATH(statement, regex) -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - ASSERT_DEATH(statement, regex) -#else -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, ) -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST(statement, regex, return) -#endif - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ diff --git a/include/gtest/gtest-matchers.h b/include/gtest/gtest-matchers.h deleted file mode 100644 index 9de6c2e..0000000 --- a/include/gtest/gtest-matchers.h +++ /dev/null @@ -1,750 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This file implements just enough of the matcher interface to allow -// EXPECT_DEATH and friends to accept a matcher argument. - -// IWYU pragma: private, include "testing/base/public/gunit.h" -// IWYU pragma: friend third_party/googletest/googlemock/.* -// IWYU pragma: friend third_party/googletest/googletest/.* - -#ifndef GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ -#define GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ - -#include -#include -#include -#include - -#include "gtest/gtest-printers.h" -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -// MSVC warning C5046 is new as of VS2017 version 15.8. -#if defined(_MSC_VER) && _MSC_VER >= 1915 -#define GTEST_MAYBE_5046_ 5046 -#else -#define GTEST_MAYBE_5046_ -#endif - -GTEST_DISABLE_MSC_WARNINGS_PUSH_( - 4251 GTEST_MAYBE_5046_ /* class A needs to have dll-interface to be used by - clients of class B */ - /* Symbol involving type with internal linkage not defined */) - -namespace testing { - -// To implement a matcher Foo for type T, define: -// 1. a class FooMatcherImpl that implements the -// MatcherInterface interface, and -// 2. a factory function that creates a Matcher object from a -// FooMatcherImpl*. -// -// The two-level delegation design makes it possible to allow a user -// to write "v" instead of "Eq(v)" where a Matcher is expected, which -// is impossible if we pass matchers by pointers. It also eases -// ownership management as Matcher objects can now be copied like -// plain values. - -// MatchResultListener is an abstract class. Its << operator can be -// used by a matcher to explain why a value matches or doesn't match. -// -class MatchResultListener { - public: - // Creates a listener object with the given underlying ostream. The - // listener does not own the ostream, and does not dereference it - // in the constructor or destructor. - explicit MatchResultListener(::std::ostream* os) : stream_(os) {} - virtual ~MatchResultListener() = 0; // Makes this class abstract. - - // Streams x to the underlying ostream; does nothing if the ostream - // is NULL. - template - MatchResultListener& operator<<(const T& x) { - if (stream_ != nullptr) *stream_ << x; - return *this; - } - - // Returns the underlying ostream. - ::std::ostream* stream() { return stream_; } - - // Returns true if and only if the listener is interested in an explanation - // of the match result. A matcher's MatchAndExplain() method can use - // this information to avoid generating the explanation when no one - // intends to hear it. - bool IsInterested() const { return stream_ != nullptr; } - - private: - ::std::ostream* const stream_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(MatchResultListener); -}; - -inline MatchResultListener::~MatchResultListener() { -} - -// An instance of a subclass of this knows how to describe itself as a -// matcher. -class MatcherDescriberInterface { - public: - virtual ~MatcherDescriberInterface() {} - - // Describes this matcher to an ostream. The function should print - // a verb phrase that describes the property a value matching this - // matcher should have. The subject of the verb phrase is the value - // being matched. For example, the DescribeTo() method of the Gt(7) - // matcher prints "is greater than 7". - virtual void DescribeTo(::std::ostream* os) const = 0; - - // Describes the negation of this matcher to an ostream. For - // example, if the description of this matcher is "is greater than - // 7", the negated description could be "is not greater than 7". - // You are not required to override this when implementing - // MatcherInterface, but it is highly advised so that your matcher - // can produce good error messages. - virtual void DescribeNegationTo(::std::ostream* os) const { - *os << "not ("; - DescribeTo(os); - *os << ")"; - } -}; - -// The implementation of a matcher. -template -class MatcherInterface : public MatcherDescriberInterface { - public: - // Returns true if and only if the matcher matches x; also explains the - // match result to 'listener' if necessary (see the next paragraph), in - // the form of a non-restrictive relative clause ("which ...", - // "whose ...", etc) that describes x. For example, the - // MatchAndExplain() method of the Pointee(...) matcher should - // generate an explanation like "which points to ...". - // - // Implementations of MatchAndExplain() should add an explanation of - // the match result *if and only if* they can provide additional - // information that's not already present (or not obvious) in the - // print-out of x and the matcher's description. Whether the match - // succeeds is not a factor in deciding whether an explanation is - // needed, as sometimes the caller needs to print a failure message - // when the match succeeds (e.g. when the matcher is used inside - // Not()). - // - // For example, a "has at least 10 elements" matcher should explain - // what the actual element count is, regardless of the match result, - // as it is useful information to the reader; on the other hand, an - // "is empty" matcher probably only needs to explain what the actual - // size is when the match fails, as it's redundant to say that the - // size is 0 when the value is already known to be empty. - // - // You should override this method when defining a new matcher. - // - // It's the responsibility of the caller (Google Test) to guarantee - // that 'listener' is not NULL. This helps to simplify a matcher's - // implementation when it doesn't care about the performance, as it - // can talk to 'listener' without checking its validity first. - // However, in order to implement dummy listeners efficiently, - // listener->stream() may be NULL. - virtual bool MatchAndExplain(T x, MatchResultListener* listener) const = 0; - - // Inherits these methods from MatcherDescriberInterface: - // virtual void DescribeTo(::std::ostream* os) const = 0; - // virtual void DescribeNegationTo(::std::ostream* os) const; -}; - -namespace internal { - -// Converts a MatcherInterface to a MatcherInterface. -template -class MatcherInterfaceAdapter : public MatcherInterface { - public: - explicit MatcherInterfaceAdapter(const MatcherInterface* impl) - : impl_(impl) {} - ~MatcherInterfaceAdapter() override { delete impl_; } - - void DescribeTo(::std::ostream* os) const override { impl_->DescribeTo(os); } - - void DescribeNegationTo(::std::ostream* os) const override { - impl_->DescribeNegationTo(os); - } - - bool MatchAndExplain(const T& x, - MatchResultListener* listener) const override { - return impl_->MatchAndExplain(x, listener); - } - - private: - const MatcherInterface* const impl_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(MatcherInterfaceAdapter); -}; - -struct AnyEq { - template - bool operator()(const A& a, const B& b) const { return a == b; } -}; -struct AnyNe { - template - bool operator()(const A& a, const B& b) const { return a != b; } -}; -struct AnyLt { - template - bool operator()(const A& a, const B& b) const { return a < b; } -}; -struct AnyGt { - template - bool operator()(const A& a, const B& b) const { return a > b; } -}; -struct AnyLe { - template - bool operator()(const A& a, const B& b) const { return a <= b; } -}; -struct AnyGe { - template - bool operator()(const A& a, const B& b) const { return a >= b; } -}; - -// A match result listener that ignores the explanation. -class DummyMatchResultListener : public MatchResultListener { - public: - DummyMatchResultListener() : MatchResultListener(nullptr) {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener); -}; - -// A match result listener that forwards the explanation to a given -// ostream. The difference between this and MatchResultListener is -// that the former is concrete. -class StreamMatchResultListener : public MatchResultListener { - public: - explicit StreamMatchResultListener(::std::ostream* os) - : MatchResultListener(os) {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamMatchResultListener); -}; - -// An internal class for implementing Matcher, which will derive -// from it. We put functionalities common to all Matcher -// specializations here to avoid code duplication. -template -class MatcherBase { - public: - // Returns true if and only if the matcher matches x; also explains the - // match result to 'listener'. - bool MatchAndExplain(const T& x, MatchResultListener* listener) const { - return impl_->MatchAndExplain(x, listener); - } - - // Returns true if and only if this matcher matches x. - bool Matches(const T& x) const { - DummyMatchResultListener dummy; - return MatchAndExplain(x, &dummy); - } - - // Describes this matcher to an ostream. - void DescribeTo(::std::ostream* os) const { impl_->DescribeTo(os); } - - // Describes the negation of this matcher to an ostream. - void DescribeNegationTo(::std::ostream* os) const { - impl_->DescribeNegationTo(os); - } - - // Explains why x matches, or doesn't match, the matcher. - void ExplainMatchResultTo(const T& x, ::std::ostream* os) const { - StreamMatchResultListener listener(os); - MatchAndExplain(x, &listener); - } - - // Returns the describer for this matcher object; retains ownership - // of the describer, which is only guaranteed to be alive when - // this matcher object is alive. - const MatcherDescriberInterface* GetDescriber() const { - return impl_.get(); - } - - protected: - MatcherBase() {} - - // Constructs a matcher from its implementation. - explicit MatcherBase(const MatcherInterface* impl) : impl_(impl) {} - - template - explicit MatcherBase( - const MatcherInterface* impl, - typename std::enable_if::value>::type* = - nullptr) - : impl_(new internal::MatcherInterfaceAdapter(impl)) {} - - MatcherBase(const MatcherBase&) = default; - MatcherBase& operator=(const MatcherBase&) = default; - MatcherBase(MatcherBase&&) = default; - MatcherBase& operator=(MatcherBase&&) = default; - - virtual ~MatcherBase() {} - - private: - std::shared_ptr> impl_; -}; - -} // namespace internal - -// A Matcher is a copyable and IMMUTABLE (except by assignment) -// object that can check whether a value of type T matches. The -// implementation of Matcher is just a std::shared_ptr to const -// MatcherInterface. Don't inherit from Matcher! -template -class Matcher : public internal::MatcherBase { - public: - // Constructs a null matcher. Needed for storing Matcher objects in STL - // containers. A default-constructed matcher is not yet initialized. You - // cannot use it until a valid value has been assigned to it. - explicit Matcher() {} // NOLINT - - // Constructs a matcher from its implementation. - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - template - explicit Matcher( - const MatcherInterface* impl, - typename std::enable_if::value>::type* = - nullptr) - : internal::MatcherBase(impl) {} - - // Implicit constructor here allows people to write - // EXPECT_CALL(foo, Bar(5)) instead of EXPECT_CALL(foo, Bar(Eq(5))) sometimes - Matcher(T value); // NOLINT -}; - -// The following two specializations allow the user to write str -// instead of Eq(str) and "foo" instead of Eq("foo") when a std::string -// matcher is expected. -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT -}; - -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT -}; - -#if GTEST_HAS_ABSL -// The following two specializations allow the user to write str -// instead of Eq(str) and "foo" instead of Eq("foo") when a absl::string_view -// matcher is expected. -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT - - // Allows the user to pass absl::string_views directly. - Matcher(absl::string_view s); // NOLINT -}; - -template <> -class GTEST_API_ Matcher - : public internal::MatcherBase { - public: - Matcher() {} - - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - explicit Matcher(const MatcherInterface* impl) - : internal::MatcherBase(impl) {} - - // Allows the user to write str instead of Eq(str) sometimes, where - // str is a std::string object. - Matcher(const std::string& s); // NOLINT - - // Allows the user to write "foo" instead of Eq("foo") sometimes. - Matcher(const char* s); // NOLINT - - // Allows the user to pass absl::string_views directly. - Matcher(absl::string_view s); // NOLINT -}; -#endif // GTEST_HAS_ABSL - -// Prints a matcher in a human-readable format. -template -std::ostream& operator<<(std::ostream& os, const Matcher& matcher) { - matcher.DescribeTo(&os); - return os; -} - -// The PolymorphicMatcher class template makes it easy to implement a -// polymorphic matcher (i.e. a matcher that can match values of more -// than one type, e.g. Eq(n) and NotNull()). -// -// To define a polymorphic matcher, a user should provide an Impl -// class that has a DescribeTo() method and a DescribeNegationTo() -// method, and define a member function (or member function template) -// -// bool MatchAndExplain(const Value& value, -// MatchResultListener* listener) const; -// -// See the definition of NotNull() for a complete example. -template -class PolymorphicMatcher { - public: - explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {} - - // Returns a mutable reference to the underlying matcher - // implementation object. - Impl& mutable_impl() { return impl_; } - - // Returns an immutable reference to the underlying matcher - // implementation object. - const Impl& impl() const { return impl_; } - - template - operator Matcher() const { - return Matcher(new MonomorphicImpl(impl_)); - } - - private: - template - class MonomorphicImpl : public MatcherInterface { - public: - explicit MonomorphicImpl(const Impl& impl) : impl_(impl) {} - - virtual void DescribeTo(::std::ostream* os) const { impl_.DescribeTo(os); } - - virtual void DescribeNegationTo(::std::ostream* os) const { - impl_.DescribeNegationTo(os); - } - - virtual bool MatchAndExplain(T x, MatchResultListener* listener) const { - return impl_.MatchAndExplain(x, listener); - } - - private: - const Impl impl_; - }; - - Impl impl_; -}; - -// Creates a matcher from its implementation. -// DEPRECATED: Especially in the generic code, prefer: -// Matcher(new MyMatcherImpl(...)); -// -// MakeMatcher may create a Matcher that accepts its argument by value, which -// leads to unnecessary copies & lack of support for non-copyable types. -template -inline Matcher MakeMatcher(const MatcherInterface* impl) { - return Matcher(impl); -} - -// Creates a polymorphic matcher from its implementation. This is -// easier to use than the PolymorphicMatcher constructor as it -// doesn't require you to explicitly write the template argument, e.g. -// -// MakePolymorphicMatcher(foo); -// vs -// PolymorphicMatcher(foo); -template -inline PolymorphicMatcher MakePolymorphicMatcher(const Impl& impl) { - return PolymorphicMatcher(impl); -} - -namespace internal { -// Implements a matcher that compares a given value with a -// pre-supplied value using one of the ==, <=, <, etc, operators. The -// two values being compared don't have to have the same type. -// -// The matcher defined here is polymorphic (for example, Eq(5) can be -// used to match an int, a short, a double, etc). Therefore we use -// a template type conversion operator in the implementation. -// -// The following template definition assumes that the Rhs parameter is -// a "bare" type (i.e. neither 'const T' nor 'T&'). -template -class ComparisonBase { - public: - explicit ComparisonBase(const Rhs& rhs) : rhs_(rhs) {} - template - operator Matcher() const { - return Matcher(new Impl(rhs_)); - } - - private: - template - static const T& Unwrap(const T& v) { return v; } - template - static const T& Unwrap(std::reference_wrapper v) { return v; } - - template - class Impl : public MatcherInterface { - public: - explicit Impl(const Rhs& rhs) : rhs_(rhs) {} - bool MatchAndExplain(Lhs lhs, - MatchResultListener* /* listener */) const override { - return Op()(lhs, Unwrap(rhs_)); - } - void DescribeTo(::std::ostream* os) const override { - *os << D::Desc() << " "; - UniversalPrint(Unwrap(rhs_), os); - } - void DescribeNegationTo(::std::ostream* os) const override { - *os << D::NegatedDesc() << " "; - UniversalPrint(Unwrap(rhs_), os); - } - - private: - Rhs rhs_; - }; - Rhs rhs_; -}; - -template -class EqMatcher : public ComparisonBase, Rhs, AnyEq> { - public: - explicit EqMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyEq>(rhs) { } - static const char* Desc() { return "is equal to"; } - static const char* NegatedDesc() { return "isn't equal to"; } -}; -template -class NeMatcher : public ComparisonBase, Rhs, AnyNe> { - public: - explicit NeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyNe>(rhs) { } - static const char* Desc() { return "isn't equal to"; } - static const char* NegatedDesc() { return "is equal to"; } -}; -template -class LtMatcher : public ComparisonBase, Rhs, AnyLt> { - public: - explicit LtMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyLt>(rhs) { } - static const char* Desc() { return "is <"; } - static const char* NegatedDesc() { return "isn't <"; } -}; -template -class GtMatcher : public ComparisonBase, Rhs, AnyGt> { - public: - explicit GtMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyGt>(rhs) { } - static const char* Desc() { return "is >"; } - static const char* NegatedDesc() { return "isn't >"; } -}; -template -class LeMatcher : public ComparisonBase, Rhs, AnyLe> { - public: - explicit LeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyLe>(rhs) { } - static const char* Desc() { return "is <="; } - static const char* NegatedDesc() { return "isn't <="; } -}; -template -class GeMatcher : public ComparisonBase, Rhs, AnyGe> { - public: - explicit GeMatcher(const Rhs& rhs) - : ComparisonBase, Rhs, AnyGe>(rhs) { } - static const char* Desc() { return "is >="; } - static const char* NegatedDesc() { return "isn't >="; } -}; - -// Implements polymorphic matchers MatchesRegex(regex) and -// ContainsRegex(regex), which can be used as a Matcher as long as -// T can be converted to a string. -class MatchesRegexMatcher { - public: - MatchesRegexMatcher(const RE* regex, bool full_match) - : regex_(regex), full_match_(full_match) {} - -#if GTEST_HAS_ABSL - bool MatchAndExplain(const absl::string_view& s, - MatchResultListener* listener) const { - return MatchAndExplain(std::string(s), listener); - } -#endif // GTEST_HAS_ABSL - - // Accepts pointer types, particularly: - // const char* - // char* - // const wchar_t* - // wchar_t* - template - bool MatchAndExplain(CharType* s, MatchResultListener* listener) const { - return s != nullptr && MatchAndExplain(std::string(s), listener); - } - - // Matches anything that can convert to std::string. - // - // This is a template, not just a plain function with const std::string&, - // because absl::string_view has some interfering non-explicit constructors. - template - bool MatchAndExplain(const MatcheeStringType& s, - MatchResultListener* /* listener */) const { - const std::string& s2(s); - return full_match_ ? RE::FullMatch(s2, *regex_) - : RE::PartialMatch(s2, *regex_); - } - - void DescribeTo(::std::ostream* os) const { - *os << (full_match_ ? "matches" : "contains") << " regular expression "; - UniversalPrinter::Print(regex_->pattern(), os); - } - - void DescribeNegationTo(::std::ostream* os) const { - *os << "doesn't " << (full_match_ ? "match" : "contain") - << " regular expression "; - UniversalPrinter::Print(regex_->pattern(), os); - } - - private: - const std::shared_ptr regex_; - const bool full_match_; -}; -} // namespace internal - -// Matches a string that fully matches regular expression 'regex'. -// The matcher takes ownership of 'regex'. -inline PolymorphicMatcher MatchesRegex( - const internal::RE* regex) { - return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, true)); -} -inline PolymorphicMatcher MatchesRegex( - const std::string& regex) { - return MatchesRegex(new internal::RE(regex)); -} - -// Matches a string that contains regular expression 'regex'. -// The matcher takes ownership of 'regex'. -inline PolymorphicMatcher ContainsRegex( - const internal::RE* regex) { - return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, false)); -} -inline PolymorphicMatcher ContainsRegex( - const std::string& regex) { - return ContainsRegex(new internal::RE(regex)); -} - -// Creates a polymorphic matcher that matches anything equal to x. -// Note: if the parameter of Eq() were declared as const T&, Eq("foo") -// wouldn't compile. -template -inline internal::EqMatcher Eq(T x) { return internal::EqMatcher(x); } - -// Constructs a Matcher from a 'value' of type T. The constructed -// matcher matches any value that's equal to 'value'. -template -Matcher::Matcher(T value) { *this = Eq(value); } - -// Creates a monomorphic matcher that matches anything with type Lhs -// and equal to rhs. A user may need to use this instead of Eq(...) -// in order to resolve an overloading ambiguity. -// -// TypedEq(x) is just a convenient short-hand for Matcher(Eq(x)) -// or Matcher(x), but more readable than the latter. -// -// We could define similar monomorphic matchers for other comparison -// operations (e.g. TypedLt, TypedGe, and etc), but decided not to do -// it yet as those are used much less than Eq() in practice. A user -// can always write Matcher(Lt(5)) to be explicit about the type, -// for example. -template -inline Matcher TypedEq(const Rhs& rhs) { return Eq(rhs); } - -// Creates a polymorphic matcher that matches anything >= x. -template -inline internal::GeMatcher Ge(Rhs x) { - return internal::GeMatcher(x); -} - -// Creates a polymorphic matcher that matches anything > x. -template -inline internal::GtMatcher Gt(Rhs x) { - return internal::GtMatcher(x); -} - -// Creates a polymorphic matcher that matches anything <= x. -template -inline internal::LeMatcher Le(Rhs x) { - return internal::LeMatcher(x); -} - -// Creates a polymorphic matcher that matches anything < x. -template -inline internal::LtMatcher Lt(Rhs x) { - return internal::LtMatcher(x); -} - -// Creates a polymorphic matcher that matches anything != x. -template -inline internal::NeMatcher Ne(Rhs x) { - return internal::NeMatcher(x); -} -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 5046 - -#endif // GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_ diff --git a/include/gtest/gtest-message.h b/include/gtest/gtest-message.h deleted file mode 100644 index 4a80e11..0000000 --- a/include/gtest/gtest-message.h +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the Message class. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ -#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ - -#include -#include - -#include "gtest/internal/gtest-port.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// Ensures that there is at least one operator<< in the global namespace. -// See Message& operator<<(...) below for why. -void operator<<(const testing::internal::Secret&, int); - -namespace testing { - -// The Message class works like an ostream repeater. -// -// Typical usage: -// -// 1. You stream a bunch of values to a Message object. -// It will remember the text in a stringstream. -// 2. Then you stream the Message object to an ostream. -// This causes the text in the Message to be streamed -// to the ostream. -// -// For example; -// -// testing::Message foo; -// foo << 1 << " != " << 2; -// std::cout << foo; -// -// will print "1 != 2". -// -// Message is not intended to be inherited from. In particular, its -// destructor is not virtual. -// -// Note that stringstream behaves differently in gcc and in MSVC. You -// can stream a NULL char pointer to it in the former, but not in the -// latter (it causes an access violation if you do). The Message -// class hides this difference by treating a NULL char pointer as -// "(null)". -class GTEST_API_ Message { - private: - // The type of basic IO manipulators (endl, ends, and flush) for - // narrow streams. - typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); - - public: - // Constructs an empty Message. - Message(); - - // Copy constructor. - Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT - *ss_ << msg.GetString(); - } - - // Constructs a Message from a C-string. - explicit Message(const char* str) : ss_(new ::std::stringstream) { - *ss_ << str; - } - - // Streams a non-pointer value to this object. - template - inline Message& operator <<(const T& val) { - // Some libraries overload << for STL containers. These - // overloads are defined in the global namespace instead of ::std. - // - // C++'s symbol lookup rule (i.e. Koenig lookup) says that these - // overloads are visible in either the std namespace or the global - // namespace, but not other namespaces, including the testing - // namespace which Google Test's Message class is in. - // - // To allow STL containers (and other types that has a << operator - // defined in the global namespace) to be used in Google Test - // assertions, testing::Message must access the custom << operator - // from the global namespace. With this using declaration, - // overloads of << defined in the global namespace and those - // visible via Koenig lookup are both exposed in this function. - using ::operator <<; - *ss_ << val; - return *this; - } - - // Streams a pointer value to this object. - // - // This function is an overload of the previous one. When you - // stream a pointer to a Message, this definition will be used as it - // is more specialized. (The C++ Standard, section - // [temp.func.order].) If you stream a non-pointer, then the - // previous definition will be used. - // - // The reason for this overload is that streaming a NULL pointer to - // ostream is undefined behavior. Depending on the compiler, you - // may get "0", "(nil)", "(null)", or an access violation. To - // ensure consistent result across compilers, we always treat NULL - // as "(null)". - template - inline Message& operator <<(T* const& pointer) { // NOLINT - if (pointer == nullptr) { - *ss_ << "(null)"; - } else { - *ss_ << pointer; - } - return *this; - } - - // Since the basic IO manipulators are overloaded for both narrow - // and wide streams, we have to provide this specialized definition - // of operator <<, even though its body is the same as the - // templatized version above. Without this definition, streaming - // endl or other basic IO manipulators to Message will confuse the - // compiler. - Message& operator <<(BasicNarrowIoManip val) { - *ss_ << val; - return *this; - } - - // Instead of 1/0, we want to see true/false for bool values. - Message& operator <<(bool b) { - return *this << (b ? "true" : "false"); - } - - // These two overloads allow streaming a wide C string to a Message - // using the UTF-8 encoding. - Message& operator <<(const wchar_t* wide_c_str); - Message& operator <<(wchar_t* wide_c_str); - -#if GTEST_HAS_STD_WSTRING - // Converts the given wide string to a narrow string using the UTF-8 - // encoding, and streams the result to this Message object. - Message& operator <<(const ::std::wstring& wstr); -#endif // GTEST_HAS_STD_WSTRING - - // Gets the text streamed to this object so far as an std::string. - // Each '\0' character in the buffer is replaced with "\\0". - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - std::string GetString() const; - - private: - // We'll hold the text streamed to this object here. - const std::unique_ptr< ::std::stringstream> ss_; - - // We declare (but don't implement) this to prevent the compiler - // from implementing the assignment operator. - void operator=(const Message&); -}; - -// Streams a Message to an ostream. -inline std::ostream& operator <<(std::ostream& os, const Message& sb) { - return os << sb.GetString(); -} - -namespace internal { - -// Converts a streamable value to an std::string. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -template -std::string StreamableToString(const T& streamable) { - return (Message() << streamable).GetString(); -} - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ diff --git a/include/gtest/gtest-param-test.h b/include/gtest/gtest-param-test.h deleted file mode 100644 index c2e6eae..0000000 --- a/include/gtest/gtest-param-test.h +++ /dev/null @@ -1,503 +0,0 @@ -// Copyright 2008, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Macros and functions for implementing parameterized tests -// in Google C++ Testing and Mocking Framework (Google Test) -// -// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! -// -// GOOGLETEST_CM0001 DO NOT DELETE -#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ - - -// Value-parameterized tests allow you to test your code with different -// parameters without writing multiple copies of the same test. -// -// Here is how you use value-parameterized tests: - -#if 0 - -// To write value-parameterized tests, first you should define a fixture -// class. It is usually derived from testing::TestWithParam (see below for -// another inheritance scheme that's sometimes useful in more complicated -// class hierarchies), where the type of your parameter values. -// TestWithParam is itself derived from testing::Test. T can be any -// copyable type. If it's a raw pointer, you are responsible for managing the -// lifespan of the pointed values. - -class FooTest : public ::testing::TestWithParam { - // You can implement all the usual class fixture members here. -}; - -// Then, use the TEST_P macro to define as many parameterized tests -// for this fixture as you want. The _P suffix is for "parameterized" -// or "pattern", whichever you prefer to think. - -TEST_P(FooTest, DoesBlah) { - // Inside a test, access the test parameter with the GetParam() method - // of the TestWithParam class: - EXPECT_TRUE(foo.Blah(GetParam())); - ... -} - -TEST_P(FooTest, HasBlahBlah) { - ... -} - -// Finally, you can use INSTANTIATE_TEST_SUITE_P to instantiate the test -// case with any set of parameters you want. Google Test defines a number -// of functions for generating test parameters. They return what we call -// (surprise!) parameter generators. Here is a summary of them, which -// are all in the testing namespace: -// -// -// Range(begin, end [, step]) - Yields values {begin, begin+step, -// begin+step+step, ...}. The values do not -// include end. step defaults to 1. -// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. -// ValuesIn(container) - Yields values from a C-style array, an STL -// ValuesIn(begin,end) container, or an iterator range [begin, end). -// Bool() - Yields sequence {false, true}. -// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product -// for the math savvy) of the values generated -// by the N generators. -// -// For more details, see comments at the definitions of these functions below -// in this file. -// -// The following statement will instantiate tests from the FooTest test suite -// each with parameter values "meeny", "miny", and "moe". - -INSTANTIATE_TEST_SUITE_P(InstantiationName, - FooTest, - Values("meeny", "miny", "moe")); - -// To distinguish different instances of the pattern, (yes, you -// can instantiate it more than once) the first argument to the -// INSTANTIATE_TEST_SUITE_P macro is a prefix that will be added to the -// actual test suite name. Remember to pick unique prefixes for different -// instantiations. The tests from the instantiation above will have -// these names: -// -// * InstantiationName/FooTest.DoesBlah/0 for "meeny" -// * InstantiationName/FooTest.DoesBlah/1 for "miny" -// * InstantiationName/FooTest.DoesBlah/2 for "moe" -// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" -// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" -// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" -// -// You can use these names in --gtest_filter. -// -// This statement will instantiate all tests from FooTest again, each -// with parameter values "cat" and "dog": - -const char* pets[] = {"cat", "dog"}; -INSTANTIATE_TEST_SUITE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); - -// The tests from the instantiation above will have these names: -// -// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" -// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" -// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" -// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" -// -// Please note that INSTANTIATE_TEST_SUITE_P will instantiate all tests -// in the given test suite, whether their definitions come before or -// AFTER the INSTANTIATE_TEST_SUITE_P statement. -// -// Please also note that generator expressions (including parameters to the -// generators) are evaluated in InitGoogleTest(), after main() has started. -// This allows the user on one hand, to adjust generator parameters in order -// to dynamically determine a set of tests to run and on the other hand, -// give the user a chance to inspect the generated tests with Google Test -// reflection API before RUN_ALL_TESTS() is executed. -// -// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc -// for more examples. -// -// In the future, we plan to publish the API for defining new parameter -// generators. But for now this interface remains part of the internal -// implementation and is subject to change. -// -// -// A parameterized test fixture must be derived from testing::Test and from -// testing::WithParamInterface, where T is the type of the parameter -// values. Inheriting from TestWithParam satisfies that requirement because -// TestWithParam inherits from both Test and WithParamInterface. In more -// complicated hierarchies, however, it is occasionally useful to inherit -// separately from Test and WithParamInterface. For example: - -class BaseTest : public ::testing::Test { - // You can inherit all the usual members for a non-parameterized test - // fixture here. -}; - -class DerivedTest : public BaseTest, public ::testing::WithParamInterface { - // The usual test fixture members go here too. -}; - -TEST_F(BaseTest, HasFoo) { - // This is an ordinary non-parameterized test. -} - -TEST_P(DerivedTest, DoesBlah) { - // GetParam works just the same here as if you inherit from TestWithParam. - EXPECT_TRUE(foo.Blah(GetParam())); -} - -#endif // 0 - -#include -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-param-util.h" -#include "gtest/internal/gtest-port.h" - -namespace testing { - -// Functions producing parameter generators. -// -// Google Test uses these generators to produce parameters for value- -// parameterized tests. When a parameterized test suite is instantiated -// with a particular generator, Google Test creates and runs tests -// for each element in the sequence produced by the generator. -// -// In the following sample, tests from test suite FooTest are instantiated -// each three times with parameter values 3, 5, and 8: -// -// class FooTest : public TestWithParam { ... }; -// -// TEST_P(FooTest, TestThis) { -// } -// TEST_P(FooTest, TestThat) { -// } -// INSTANTIATE_TEST_SUITE_P(TestSequence, FooTest, Values(3, 5, 8)); -// - -// Range() returns generators providing sequences of values in a range. -// -// Synopsis: -// Range(start, end) -// - returns a generator producing a sequence of values {start, start+1, -// start+2, ..., }. -// Range(start, end, step) -// - returns a generator producing a sequence of values {start, start+step, -// start+step+step, ..., }. -// Notes: -// * The generated sequences never include end. For example, Range(1, 5) -// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) -// returns a generator producing {1, 3, 5, 7}. -// * start and end must have the same type. That type may be any integral or -// floating-point type or a user defined type satisfying these conditions: -// * It must be assignable (have operator=() defined). -// * It must have operator+() (operator+(int-compatible type) for -// two-operand version). -// * It must have operator<() defined. -// Elements in the resulting sequences will also have that type. -// * Condition start < end must be satisfied in order for resulting sequences -// to contain any elements. -// -template -internal::ParamGenerator Range(T start, T end, IncrementT step) { - return internal::ParamGenerator( - new internal::RangeGenerator(start, end, step)); -} - -template -internal::ParamGenerator Range(T start, T end) { - return Range(start, end, 1); -} - -// ValuesIn() function allows generation of tests with parameters coming from -// a container. -// -// Synopsis: -// ValuesIn(const T (&array)[N]) -// - returns a generator producing sequences with elements from -// a C-style array. -// ValuesIn(const Container& container) -// - returns a generator producing sequences with elements from -// an STL-style container. -// ValuesIn(Iterator begin, Iterator end) -// - returns a generator producing sequences with elements from -// a range [begin, end) defined by a pair of STL-style iterators. These -// iterators can also be plain C pointers. -// -// Please note that ValuesIn copies the values from the containers -// passed in and keeps them to generate tests in RUN_ALL_TESTS(). -// -// Examples: -// -// This instantiates tests from test suite StringTest -// each with C-string values of "foo", "bar", and "baz": -// -// const char* strings[] = {"foo", "bar", "baz"}; -// INSTANTIATE_TEST_SUITE_P(StringSequence, StringTest, ValuesIn(strings)); -// -// This instantiates tests from test suite StlStringTest -// each with STL strings with values "a" and "b": -// -// ::std::vector< ::std::string> GetParameterStrings() { -// ::std::vector< ::std::string> v; -// v.push_back("a"); -// v.push_back("b"); -// return v; -// } -// -// INSTANTIATE_TEST_SUITE_P(CharSequence, -// StlStringTest, -// ValuesIn(GetParameterStrings())); -// -// -// This will also instantiate tests from CharTest -// each with parameter values 'a' and 'b': -// -// ::std::list GetParameterChars() { -// ::std::list list; -// list.push_back('a'); -// list.push_back('b'); -// return list; -// } -// ::std::list l = GetParameterChars(); -// INSTANTIATE_TEST_SUITE_P(CharSequence2, -// CharTest, -// ValuesIn(l.begin(), l.end())); -// -template -internal::ParamGenerator< - typename std::iterator_traits::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end) { - typedef typename std::iterator_traits::value_type ParamType; - return internal::ParamGenerator( - new internal::ValuesInIteratorRangeGenerator(begin, end)); -} - -template -internal::ParamGenerator ValuesIn(const T (&array)[N]) { - return ValuesIn(array, array + N); -} - -template -internal::ParamGenerator ValuesIn( - const Container& container) { - return ValuesIn(container.begin(), container.end()); -} - -// Values() allows generating tests from explicitly specified list of -// parameters. -// -// Synopsis: -// Values(T v1, T v2, ..., T vN) -// - returns a generator producing sequences with elements v1, v2, ..., vN. -// -// For example, this instantiates tests from test suite BarTest each -// with values "one", "two", and "three": -// -// INSTANTIATE_TEST_SUITE_P(NumSequence, -// BarTest, -// Values("one", "two", "three")); -// -// This instantiates tests from test suite BazTest each with values 1, 2, 3.5. -// The exact type of values will depend on the type of parameter in BazTest. -// -// INSTANTIATE_TEST_SUITE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); -// -// -template -internal::ValueArray Values(T... v) { - return internal::ValueArray(std::move(v)...); -} - -// Bool() allows generating tests with parameters in a set of (false, true). -// -// Synopsis: -// Bool() -// - returns a generator producing sequences with elements {false, true}. -// -// It is useful when testing code that depends on Boolean flags. Combinations -// of multiple flags can be tested when several Bool()'s are combined using -// Combine() function. -// -// In the following example all tests in the test suite FlagDependentTest -// will be instantiated twice with parameters false and true. -// -// class FlagDependentTest : public testing::TestWithParam { -// virtual void SetUp() { -// external_flag = GetParam(); -// } -// } -// INSTANTIATE_TEST_SUITE_P(BoolSequence, FlagDependentTest, Bool()); -// -inline internal::ParamGenerator Bool() { - return Values(false, true); -} - -// Combine() allows the user to combine two or more sequences to produce -// values of a Cartesian product of those sequences' elements. -// -// Synopsis: -// Combine(gen1, gen2, ..., genN) -// - returns a generator producing sequences with elements coming from -// the Cartesian product of elements from the sequences generated by -// gen1, gen2, ..., genN. The sequence elements will have a type of -// std::tuple where T1, T2, ..., TN are the types -// of elements from sequences produces by gen1, gen2, ..., genN. -// -// Combine can have up to 10 arguments. -// -// Example: -// -// This will instantiate tests in test suite AnimalTest each one with -// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), -// tuple("dog", BLACK), and tuple("dog", WHITE): -// -// enum Color { BLACK, GRAY, WHITE }; -// class AnimalTest -// : public testing::TestWithParam > {...}; -// -// TEST_P(AnimalTest, AnimalLooksNice) {...} -// -// INSTANTIATE_TEST_SUITE_P(AnimalVariations, AnimalTest, -// Combine(Values("cat", "dog"), -// Values(BLACK, WHITE))); -// -// This will instantiate tests in FlagDependentTest with all variations of two -// Boolean flags: -// -// class FlagDependentTest -// : public testing::TestWithParam > { -// virtual void SetUp() { -// // Assigns external_flag_1 and external_flag_2 values from the tuple. -// std::tie(external_flag_1, external_flag_2) = GetParam(); -// } -// }; -// -// TEST_P(FlagDependentTest, TestFeature1) { -// // Test your code using external_flag_1 and external_flag_2 here. -// } -// INSTANTIATE_TEST_SUITE_P(TwoBoolSequence, FlagDependentTest, -// Combine(Bool(), Bool())); -// -template -internal::CartesianProductHolder Combine(const Generator&... g) { - return internal::CartesianProductHolder(g...); -} - -#define TEST_P(test_suite_name, test_name) \ - class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public test_suite_name { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {} \ - virtual void TestBody(); \ - \ - private: \ - static int AddToRegistry() { \ - ::testing::UnitTest::GetInstance() \ - ->parameterized_test_registry() \ - .GetTestSuitePatternHolder( \ - #test_suite_name, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)) \ - ->AddTestPattern( \ - GTEST_STRINGIFY_(test_suite_name), GTEST_STRINGIFY_(test_name), \ - new ::testing::internal::TestMetaFactory()); \ - return 0; \ - } \ - static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \ - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)); \ - }; \ - int GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)::gtest_registering_dummy_ = \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::AddToRegistry(); \ - void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody() - -// The last argument to INSTANTIATE_TEST_SUITE_P allows the user to specify -// generator and an optional function or functor that generates custom test name -// suffixes based on the test parameters. Such a function or functor should -// accept one argument of type testing::TestParamInfo, and -// return std::string. -// -// testing::PrintToStringParamName is a builtin test suffix generator that -// returns the value of testing::PrintToString(GetParam()). -// -// Note: test names must be non-empty, unique, and may only contain ASCII -// alphanumeric characters or underscore. Because PrintToString adds quotes -// to std::string and C strings, it won't work for these types. - -#define GTEST_EXPAND_(arg) arg -#define GTEST_GET_FIRST_(first, ...) first -#define GTEST_GET_SECOND_(first, second, ...) second - -#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...) \ - static ::testing::internal::ParamGenerator \ - gtest_##prefix##test_suite_name##_EvalGenerator_() { \ - return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_)); \ - } \ - static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_( \ - const ::testing::TestParamInfo& info) { \ - if (::testing::internal::AlwaysFalse()) { \ - ::testing::internal::TestNotEmpty(GTEST_EXPAND_(GTEST_GET_SECOND_( \ - __VA_ARGS__, \ - ::testing::internal::DefaultParamName, \ - DUMMY_PARAM_))); \ - auto t = std::make_tuple(__VA_ARGS__); \ - static_assert(std::tuple_size::value <= 2, \ - "Too Many Args!"); \ - } \ - return ((GTEST_EXPAND_(GTEST_GET_SECOND_( \ - __VA_ARGS__, \ - ::testing::internal::DefaultParamName, \ - DUMMY_PARAM_))))(info); \ - } \ - static int gtest_##prefix##test_suite_name##_dummy_ \ - GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::UnitTest::GetInstance() \ - ->parameterized_test_registry() \ - .GetTestSuitePatternHolder( \ - #test_suite_name, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__)) \ - ->AddTestSuiteInstantiation( \ - #prefix, >est_##prefix##test_suite_name##_EvalGenerator_, \ - >est_##prefix##test_suite_name##_EvalGenerateName_, \ - __FILE__, __LINE__) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define INSTANTIATE_TEST_CASE_P \ - static_assert(::testing::internal::InstantiateTestCase_P_IsDeprecated(), \ - ""); \ - INSTANTIATE_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ diff --git a/include/gtest/gtest-printers.h b/include/gtest/gtest-printers.h deleted file mode 100644 index 56a0545..0000000 --- a/include/gtest/gtest-printers.h +++ /dev/null @@ -1,928 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Google Test - The Google C++ Testing and Mocking Framework -// -// This file implements a universal value printer that can print a -// value of any type T: -// -// void ::testing::internal::UniversalPrinter::Print(value, ostream_ptr); -// -// A user can teach this function how to print a class type T by -// defining either operator<<() or PrintTo() in the namespace that -// defines T. More specifically, the FIRST defined function in the -// following list will be used (assuming T is defined in namespace -// foo): -// -// 1. foo::PrintTo(const T&, ostream*) -// 2. operator<<(ostream&, const T&) defined in either foo or the -// global namespace. -// -// However if T is an STL-style container then it is printed element-wise -// unless foo::PrintTo(const T&, ostream*) is defined. Note that -// operator<<() is ignored for container types. -// -// If none of the above is defined, it will print the debug string of -// the value if it is a protocol buffer, or print the raw bytes in the -// value otherwise. -// -// To aid debugging: when T is a reference type, the address of the -// value is also printed; when T is a (const) char pointer, both the -// pointer value and the NUL-terminated string it points to are -// printed. -// -// We also provide some convenient wrappers: -// -// // Prints a value to a string. For a (const or not) char -// // pointer, the NUL-terminated string (but not the pointer) is -// // printed. -// std::string ::testing::PrintToString(const T& value); -// -// // Prints a value tersely: for a reference type, the referenced -// // value (but not the address) is printed; for a (const or not) char -// // pointer, the NUL-terminated string (but not the pointer) is -// // printed. -// void ::testing::internal::UniversalTersePrint(const T& value, ostream*); -// -// // Prints value using the type inferred by the compiler. The difference -// // from UniversalTersePrint() is that this function prints both the -// // pointer and the NUL-terminated string for a (const or not) char pointer. -// void ::testing::internal::UniversalPrint(const T& value, ostream*); -// -// // Prints the fields of a tuple tersely to a string vector, one -// // element for each field. Tuple support must be enabled in -// // gtest-port.h. -// std::vector UniversalTersePrintTupleFieldsToStrings( -// const Tuple& value); -// -// Known limitation: -// -// The print primitives print the elements of an STL-style container -// using the compiler-inferred type of *iter where iter is a -// const_iterator of the container. When const_iterator is an input -// iterator but not a forward iterator, this inferred type may not -// match value_type, and the print output may be incorrect. In -// practice, this is rarely a problem as for most containers -// const_iterator is a forward iterator. We'll fix this if there's an -// actual need for it. Note that this fix cannot rely on value_type -// being defined as many user-defined container types don't have -// value_type. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ - -#include -#include // NOLINT -#include -#include -#include -#include -#include -#include -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" - -#if GTEST_HAS_ABSL -#include "absl/strings/string_view.h" -#include "absl/types/optional.h" -#include "absl/types/variant.h" -#endif // GTEST_HAS_ABSL - -namespace testing { - -// Definitions in the 'internal' and 'internal2' name spaces are -// subject to change without notice. DO NOT USE THEM IN USER CODE! -namespace internal2 { - -// Prints the given number of bytes in the given object to the given -// ostream. -GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes, - size_t count, - ::std::ostream* os); - -// For selecting which printer to use when a given type has neither << -// nor PrintTo(). -enum TypeKind { - kProtobuf, // a protobuf type - kConvertibleToInteger, // a type implicitly convertible to BiggestInt - // (e.g. a named or unnamed enum type) -#if GTEST_HAS_ABSL - kConvertibleToStringView, // a type implicitly convertible to - // absl::string_view -#endif - kOtherType // anything else -}; - -// TypeWithoutFormatter::PrintValue(value, os) is called -// by the universal printer to print a value of type T when neither -// operator<< nor PrintTo() is defined for T, where kTypeKind is the -// "kind" of T as defined by enum TypeKind. -template -class TypeWithoutFormatter { - public: - // This default version is called when kTypeKind is kOtherType. - static void PrintValue(const T& value, ::std::ostream* os) { - PrintBytesInObjectTo( - static_cast( - reinterpret_cast(std::addressof(value))), - sizeof(value), os); - } -}; - -// We print a protobuf using its ShortDebugString() when the string -// doesn't exceed this many characters; otherwise we print it using -// DebugString() for better readability. -const size_t kProtobufOneLinerMaxLength = 50; - -template -class TypeWithoutFormatter { - public: - static void PrintValue(const T& value, ::std::ostream* os) { - std::string pretty_str = value.ShortDebugString(); - if (pretty_str.length() > kProtobufOneLinerMaxLength) { - pretty_str = "\n" + value.DebugString(); - } - *os << ("<" + pretty_str + ">"); - } -}; - -template -class TypeWithoutFormatter { - public: - // Since T has no << operator or PrintTo() but can be implicitly - // converted to BiggestInt, we print it as a BiggestInt. - // - // Most likely T is an enum type (either named or unnamed), in which - // case printing it as an integer is the desired behavior. In case - // T is not an enum, printing it as an integer is the best we can do - // given that it has no user-defined printer. - static void PrintValue(const T& value, ::std::ostream* os) { - const internal::BiggestInt kBigInt = value; - *os << kBigInt; - } -}; - -#if GTEST_HAS_ABSL -template -class TypeWithoutFormatter { - public: - // Since T has neither operator<< nor PrintTo() but can be implicitly - // converted to absl::string_view, we print it as a absl::string_view. - // - // Note: the implementation is further below, as it depends on - // internal::PrintTo symbol which is defined later in the file. - static void PrintValue(const T& value, ::std::ostream* os); -}; -#endif - -// Prints the given value to the given ostream. If the value is a -// protocol message, its debug string is printed; if it's an enum or -// of a type implicitly convertible to BiggestInt, it's printed as an -// integer; otherwise the bytes in the value are printed. This is -// what UniversalPrinter::Print() does when it knows nothing about -// type T and T has neither << operator nor PrintTo(). -// -// A user can override this behavior for a class type Foo by defining -// a << operator in the namespace where Foo is defined. -// -// We put this operator in namespace 'internal2' instead of 'internal' -// to simplify the implementation, as much code in 'internal' needs to -// use << in STL, which would conflict with our own << were it defined -// in 'internal'. -// -// Note that this operator<< takes a generic std::basic_ostream type instead of the more restricted std::ostream. If -// we define it to take an std::ostream instead, we'll get an -// "ambiguous overloads" compiler error when trying to print a type -// Foo that supports streaming to std::basic_ostream, as the compiler cannot tell whether -// operator<<(std::ostream&, const T&) or -// operator<<(std::basic_stream, const Foo&) is more -// specific. -template -::std::basic_ostream& operator<<( - ::std::basic_ostream& os, const T& x) { - TypeWithoutFormatter::value - ? kProtobuf - : std::is_convertible< - const T&, internal::BiggestInt>::value - ? kConvertibleToInteger - : -#if GTEST_HAS_ABSL - std::is_convertible< - const T&, absl::string_view>::value - ? kConvertibleToStringView - : -#endif - kOtherType)>::PrintValue(x, &os); - return os; -} - -} // namespace internal2 -} // namespace testing - -// This namespace MUST NOT BE NESTED IN ::testing, or the name look-up -// magic needed for implementing UniversalPrinter won't work. -namespace testing_internal { - -// Used to print a value that is not an STL-style container when the -// user doesn't define PrintTo() for it. -template -void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) { - // With the following statement, during unqualified name lookup, - // testing::internal2::operator<< appears as if it was declared in - // the nearest enclosing namespace that contains both - // ::testing_internal and ::testing::internal2, i.e. the global - // namespace. For more details, refer to the C++ Standard section - // 7.3.4-1 [namespace.udir]. This allows us to fall back onto - // testing::internal2::operator<< in case T doesn't come with a << - // operator. - // - // We cannot write 'using ::testing::internal2::operator<<;', which - // gcc 3.3 fails to compile due to a compiler bug. - using namespace ::testing::internal2; // NOLINT - - // Assuming T is defined in namespace foo, in the next statement, - // the compiler will consider all of: - // - // 1. foo::operator<< (thanks to Koenig look-up), - // 2. ::operator<< (as the current namespace is enclosed in ::), - // 3. testing::internal2::operator<< (thanks to the using statement above). - // - // The operator<< whose type matches T best will be picked. - // - // We deliberately allow #2 to be a candidate, as sometimes it's - // impossible to define #1 (e.g. when foo is ::std, defining - // anything in it is undefined behavior unless you are a compiler - // vendor.). - *os << value; -} - -} // namespace testing_internal - -namespace testing { -namespace internal { - -// FormatForComparison::Format(value) formats a -// value of type ToPrint that is an operand of a comparison assertion -// (e.g. ASSERT_EQ). OtherOperand is the type of the other operand in -// the comparison, and is used to help determine the best way to -// format the value. In particular, when the value is a C string -// (char pointer) and the other operand is an STL string object, we -// want to format the C string as a string, since we know it is -// compared by value with the string object. If the value is a char -// pointer but the other operand is not an STL string object, we don't -// know whether the pointer is supposed to point to a NUL-terminated -// string, and thus want to print it as a pointer to be safe. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -// The default case. -template -class FormatForComparison { - public: - static ::std::string Format(const ToPrint& value) { - return ::testing::PrintToString(value); - } -}; - -// Array. -template -class FormatForComparison { - public: - static ::std::string Format(const ToPrint* value) { - return FormatForComparison::Format(value); - } -}; - -// By default, print C string as pointers to be safe, as we don't know -// whether they actually point to a NUL-terminated string. - -#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ - template \ - class FormatForComparison { \ - public: \ - static ::std::string Format(CharType* value) { \ - return ::testing::PrintToString(static_cast(value)); \ - } \ - } - -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t); -GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t); - -#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ - -// If a C string is compared with an STL string object, we know it's meant -// to point to a NUL-terminated string, and thus can print it as a string. - -#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ - template <> \ - class FormatForComparison { \ - public: \ - static ::std::string Format(CharType* value) { \ - return ::testing::PrintToString(value); \ - } \ - } - -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string); - -#if GTEST_HAS_STD_WSTRING -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring); -GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring); -#endif - -#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ - -// Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc) -// operand to be used in a failure message. The type (but not value) -// of the other operand may affect the format. This allows us to -// print a char* as a raw pointer when it is compared against another -// char* or void*, and print it as a C string when it is compared -// against an std::string object, for example. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -template -std::string FormatForComparisonFailureMessage( - const T1& value, const T2& /* other_operand */) { - return FormatForComparison::Format(value); -} - -// UniversalPrinter::Print(value, ostream_ptr) prints the given -// value to the given ostream. The caller must ensure that -// 'ostream_ptr' is not NULL, or the behavior is undefined. -// -// We define UniversalPrinter as a class template (as opposed to a -// function template), as we need to partially specialize it for -// reference types, which cannot be done with function templates. -template -class UniversalPrinter; - -template -void UniversalPrint(const T& value, ::std::ostream* os); - -enum DefaultPrinterType { - kPrintContainer, - kPrintPointer, - kPrintFunctionPointer, - kPrintOther, -}; -template struct WrapPrinterType {}; - -// Used to print an STL-style container when the user doesn't define -// a PrintTo() for it. -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - const C& container, ::std::ostream* os) { - const size_t kMaxCount = 32; // The maximum number of elements to print. - *os << '{'; - size_t count = 0; - for (typename C::const_iterator it = container.begin(); - it != container.end(); ++it, ++count) { - if (count > 0) { - *os << ','; - if (count == kMaxCount) { // Enough has been printed. - *os << " ..."; - break; - } - } - *os << ' '; - // We cannot call PrintTo(*it, os) here as PrintTo() doesn't - // handle *it being a native array. - internal::UniversalPrint(*it, os); - } - - if (count > 0) { - *os << ' '; - } - *os << '}'; -} - -// Used to print a pointer that is neither a char pointer nor a member -// pointer, when the user doesn't define PrintTo() for it. (A member -// variable pointer or member function pointer doesn't really point to -// a location in the address space. Their representation is -// implementation-defined. Therefore they will be printed as raw -// bytes.) -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - T* p, ::std::ostream* os) { - if (p == nullptr) { - *os << "NULL"; - } else { - // T is not a function type. We just call << to print p, - // relying on ADL to pick up user-defined << for their pointer - // types, if any. - *os << p; - } -} -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - T* p, ::std::ostream* os) { - if (p == nullptr) { - *os << "NULL"; - } else { - // T is a function type, so '*os << p' doesn't do what we want - // (it just prints p as bool). We want to print p as a const - // void*. - *os << reinterpret_cast(p); - } -} - -// Used to print a non-container, non-pointer value when the user -// doesn't define PrintTo() for it. -template -void DefaultPrintTo(WrapPrinterType /* dummy */, - const T& value, ::std::ostream* os) { - ::testing_internal::DefaultPrintNonContainerTo(value, os); -} - -// Prints the given value using the << operator if it has one; -// otherwise prints the bytes in it. This is what -// UniversalPrinter::Print() does when PrintTo() is not specialized -// or overloaded for type T. -// -// A user can override this behavior for a class type Foo by defining -// an overload of PrintTo() in the namespace where Foo is defined. We -// give the user this option as sometimes defining a << operator for -// Foo is not desirable (e.g. the coding style may prevent doing it, -// or there is already a << operator but it doesn't do what the user -// wants). -template -void PrintTo(const T& value, ::std::ostream* os) { - // DefaultPrintTo() is overloaded. The type of its first argument - // determines which version will be picked. - // - // Note that we check for container types here, prior to we check - // for protocol message types in our operator<<. The rationale is: - // - // For protocol messages, we want to give people a chance to - // override Google Mock's format by defining a PrintTo() or - // operator<<. For STL containers, other formats can be - // incompatible with Google Mock's format for the container - // elements; therefore we check for container types here to ensure - // that our format is used. - // - // Note that MSVC and clang-cl do allow an implicit conversion from - // pointer-to-function to pointer-to-object, but clang-cl warns on it. - // So don't use ImplicitlyConvertible if it can be helped since it will - // cause this warning, and use a separate overload of DefaultPrintTo for - // function pointers so that the `*os << p` in the object pointer overload - // doesn't cause that warning either. - DefaultPrintTo( - WrapPrinterType < - (sizeof(IsContainerTest(0)) == sizeof(IsContainer)) && - !IsRecursiveContainer::value - ? kPrintContainer - : !std::is_pointer::value - ? kPrintOther - : std::is_function::type>::value - ? kPrintFunctionPointer - : kPrintPointer > (), - value, os); -} - -// The following list of PrintTo() overloads tells -// UniversalPrinter::Print() how to print standard types (built-in -// types, strings, plain arrays, and pointers). - -// Overloads for various char types. -GTEST_API_ void PrintTo(unsigned char c, ::std::ostream* os); -GTEST_API_ void PrintTo(signed char c, ::std::ostream* os); -inline void PrintTo(char c, ::std::ostream* os) { - // When printing a plain char, we always treat it as unsigned. This - // way, the output won't be affected by whether the compiler thinks - // char is signed or not. - PrintTo(static_cast(c), os); -} - -// Overloads for other simple built-in types. -inline void PrintTo(bool x, ::std::ostream* os) { - *os << (x ? "true" : "false"); -} - -// Overload for wchar_t type. -// Prints a wchar_t as a symbol if it is printable or as its internal -// code otherwise and also as its decimal code (except for L'\0'). -// The L'\0' char is printed as "L'\\0'". The decimal code is printed -// as signed integer when wchar_t is implemented by the compiler -// as a signed type and is printed as an unsigned integer when wchar_t -// is implemented as an unsigned type. -GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os); - -// Overloads for C strings. -GTEST_API_ void PrintTo(const char* s, ::std::ostream* os); -inline void PrintTo(char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} - -// signed/unsigned char is often used for representing binary data, so -// we print pointers to it as void* to be safe. -inline void PrintTo(const signed char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(signed char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(const unsigned char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -inline void PrintTo(unsigned char* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} - -// MSVC can be configured to define wchar_t as a typedef of unsigned -// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native -// type. When wchar_t is a typedef, defining an overload for const -// wchar_t* would cause unsigned short* be printed as a wide string, -// possibly causing invalid memory accesses. -#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) -// Overloads for wide C strings -GTEST_API_ void PrintTo(const wchar_t* s, ::std::ostream* os); -inline void PrintTo(wchar_t* s, ::std::ostream* os) { - PrintTo(ImplicitCast_(s), os); -} -#endif - -// Overload for C arrays. Multi-dimensional arrays are printed -// properly. - -// Prints the given number of elements in an array, without printing -// the curly braces. -template -void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) { - UniversalPrint(a[0], os); - for (size_t i = 1; i != count; i++) { - *os << ", "; - UniversalPrint(a[i], os); - } -} - -// Overloads for ::std::string. -GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os); -inline void PrintTo(const ::std::string& s, ::std::ostream* os) { - PrintStringTo(s, os); -} - -// Overloads for ::std::wstring. -#if GTEST_HAS_STD_WSTRING -GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os); -inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) { - PrintWideStringTo(s, os); -} -#endif // GTEST_HAS_STD_WSTRING - -#if GTEST_HAS_ABSL -// Overload for absl::string_view. -inline void PrintTo(absl::string_view sp, ::std::ostream* os) { - PrintTo(::std::string(sp), os); -} -#endif // GTEST_HAS_ABSL - -inline void PrintTo(std::nullptr_t, ::std::ostream* os) { *os << "(nullptr)"; } - -template -void PrintTo(std::reference_wrapper ref, ::std::ostream* os) { - UniversalPrinter::Print(ref.get(), os); -} - -// Helper function for printing a tuple. T must be instantiated with -// a tuple type. -template -void PrintTupleTo(const T&, std::integral_constant, - ::std::ostream*) {} - -template -void PrintTupleTo(const T& t, std::integral_constant, - ::std::ostream* os) { - PrintTupleTo(t, std::integral_constant(), os); - GTEST_INTENTIONAL_CONST_COND_PUSH_() - if (I > 1) { - GTEST_INTENTIONAL_CONST_COND_POP_() - *os << ", "; - } - UniversalPrinter::type>::Print( - std::get(t), os); -} - -template -void PrintTo(const ::std::tuple& t, ::std::ostream* os) { - *os << "("; - PrintTupleTo(t, std::integral_constant(), os); - *os << ")"; -} - -// Overload for std::pair. -template -void PrintTo(const ::std::pair& value, ::std::ostream* os) { - *os << '('; - // We cannot use UniversalPrint(value.first, os) here, as T1 may be - // a reference type. The same for printing value.second. - UniversalPrinter::Print(value.first, os); - *os << ", "; - UniversalPrinter::Print(value.second, os); - *os << ')'; -} - -// Implements printing a non-reference type T by letting the compiler -// pick the right overload of PrintTo() for T. -template -class UniversalPrinter { - public: - // MSVC warns about adding const to a function type, so we want to - // disable the warning. - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180) - - // Note: we deliberately don't call this PrintTo(), as that name - // conflicts with ::testing::internal::PrintTo in the body of the - // function. - static void Print(const T& value, ::std::ostream* os) { - // By default, ::testing::internal::PrintTo() is used for printing - // the value. - // - // Thanks to Koenig look-up, if T is a class and has its own - // PrintTo() function defined in its namespace, that function will - // be visible here. Since it is more specific than the generic ones - // in ::testing::internal, it will be picked by the compiler in the - // following statement - exactly what we want. - PrintTo(value, os); - } - - GTEST_DISABLE_MSC_WARNINGS_POP_() -}; - -#if GTEST_HAS_ABSL - -// Printer for absl::optional - -template -class UniversalPrinter<::absl::optional> { - public: - static void Print(const ::absl::optional& value, ::std::ostream* os) { - *os << '('; - if (!value) { - *os << "nullopt"; - } else { - UniversalPrint(*value, os); - } - *os << ')'; - } -}; - -// Printer for absl::variant - -template -class UniversalPrinter<::absl::variant> { - public: - static void Print(const ::absl::variant& value, ::std::ostream* os) { - *os << '('; - absl::visit(Visitor{os}, value); - *os << ')'; - } - - private: - struct Visitor { - template - void operator()(const U& u) const { - *os << "'" << GetTypeName() << "' with value "; - UniversalPrint(u, os); - } - ::std::ostream* os; - }; -}; - -#endif // GTEST_HAS_ABSL - -// UniversalPrintArray(begin, len, os) prints an array of 'len' -// elements, starting at address 'begin'. -template -void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { - if (len == 0) { - *os << "{}"; - } else { - *os << "{ "; - const size_t kThreshold = 18; - const size_t kChunkSize = 8; - // If the array has more than kThreshold elements, we'll have to - // omit some details by printing only the first and the last - // kChunkSize elements. - if (len <= kThreshold) { - PrintRawArrayTo(begin, len, os); - } else { - PrintRawArrayTo(begin, kChunkSize, os); - *os << ", ..., "; - PrintRawArrayTo(begin + len - kChunkSize, kChunkSize, os); - } - *os << " }"; - } -} -// This overload prints a (const) char array compactly. -GTEST_API_ void UniversalPrintArray( - const char* begin, size_t len, ::std::ostream* os); - -// This overload prints a (const) wchar_t array compactly. -GTEST_API_ void UniversalPrintArray( - const wchar_t* begin, size_t len, ::std::ostream* os); - -// Implements printing an array type T[N]. -template -class UniversalPrinter { - public: - // Prints the given array, omitting some elements when there are too - // many. - static void Print(const T (&a)[N], ::std::ostream* os) { - UniversalPrintArray(a, N, os); - } -}; - -// Implements printing a reference type T&. -template -class UniversalPrinter { - public: - // MSVC warns about adding const to a function type, so we want to - // disable the warning. - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4180) - - static void Print(const T& value, ::std::ostream* os) { - // Prints the address of the value. We use reinterpret_cast here - // as static_cast doesn't compile when T is a function type. - *os << "@" << reinterpret_cast(&value) << " "; - - // Then prints the value itself. - UniversalPrint(value, os); - } - - GTEST_DISABLE_MSC_WARNINGS_POP_() -}; - -// Prints a value tersely: for a reference type, the referenced value -// (but not the address) is printed; for a (const) char pointer, the -// NUL-terminated string (but not the pointer) is printed. - -template -class UniversalTersePrinter { - public: - static void Print(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); - } -}; -template -class UniversalTersePrinter { - public: - static void Print(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); - } -}; -template -class UniversalTersePrinter { - public: - static void Print(const T (&value)[N], ::std::ostream* os) { - UniversalPrinter::Print(value, os); - } -}; -template <> -class UniversalTersePrinter { - public: - static void Print(const char* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(std::string(str), os); - } - } -}; -template <> -class UniversalTersePrinter { - public: - static void Print(char* str, ::std::ostream* os) { - UniversalTersePrinter::Print(str, os); - } -}; - -#if GTEST_HAS_STD_WSTRING -template <> -class UniversalTersePrinter { - public: - static void Print(const wchar_t* str, ::std::ostream* os) { - if (str == nullptr) { - *os << "NULL"; - } else { - UniversalPrint(::std::wstring(str), os); - } - } -}; -#endif - -template <> -class UniversalTersePrinter { - public: - static void Print(wchar_t* str, ::std::ostream* os) { - UniversalTersePrinter::Print(str, os); - } -}; - -template -void UniversalTersePrint(const T& value, ::std::ostream* os) { - UniversalTersePrinter::Print(value, os); -} - -// Prints a value using the type inferred by the compiler. The -// difference between this and UniversalTersePrint() is that for a -// (const) char pointer, this prints both the pointer and the -// NUL-terminated string. -template -void UniversalPrint(const T& value, ::std::ostream* os) { - // A workarond for the bug in VC++ 7.1 that prevents us from instantiating - // UniversalPrinter with T directly. - typedef T T1; - UniversalPrinter::Print(value, os); -} - -typedef ::std::vector< ::std::string> Strings; - - // Tersely prints the first N fields of a tuple to a string vector, - // one element for each field. -template -void TersePrintPrefixToStrings(const Tuple&, std::integral_constant, - Strings*) {} -template -void TersePrintPrefixToStrings(const Tuple& t, - std::integral_constant, - Strings* strings) { - TersePrintPrefixToStrings(t, std::integral_constant(), - strings); - ::std::stringstream ss; - UniversalTersePrint(std::get(t), &ss); - strings->push_back(ss.str()); -} - -// Prints the fields of a tuple tersely to a string vector, one -// element for each field. See the comment before -// UniversalTersePrint() for how we define "tersely". -template -Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) { - Strings result; - TersePrintPrefixToStrings( - value, std::integral_constant::value>(), - &result); - return result; -} - -} // namespace internal - -#if GTEST_HAS_ABSL -namespace internal2 { -template -void TypeWithoutFormatter::PrintValue( - const T& value, ::std::ostream* os) { - internal::PrintTo(absl::string_view(value), os); -} -} // namespace internal2 -#endif - -template -::std::string PrintToString(const T& value) { - ::std::stringstream ss; - internal::UniversalTersePrinter::Print(value, &ss); - return ss.str(); -} - -} // namespace testing - -// Include any custom printer added by the local installation. -// We must include this header at the end to make sure it can use the -// declarations from this file. -#include "gtest/internal/custom/gtest-printers.h" - -#endif // GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ diff --git a/include/gtest/gtest-spi.h b/include/gtest/gtest-spi.h deleted file mode 100644 index aa38870..0000000 --- a/include/gtest/gtest-spi.h +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright 2007, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// -// Utilities for testing Google Test itself and code that uses Google Test -// (e.g. frameworks built on top of Google Test). - -// GOOGLETEST_CM0004 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_SPI_H_ -#define GTEST_INCLUDE_GTEST_GTEST_SPI_H_ - -#include "gtest/gtest.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// This helper class can be used to mock out Google Test failure reporting -// so that we can test Google Test or code that builds on Google Test. -// -// An object of this class appends a TestPartResult object to the -// TestPartResultArray object given in the constructor whenever a Google Test -// failure is reported. It can either intercept only failures that are -// generated in the same thread that created this object or it can intercept -// all generated failures. The scope of this mock object can be controlled with -// the second argument to the two arguments constructor. -class GTEST_API_ ScopedFakeTestPartResultReporter - : public TestPartResultReporterInterface { - public: - // The two possible mocking modes of this object. - enum InterceptMode { - INTERCEPT_ONLY_CURRENT_THREAD, // Intercepts only thread local failures. - INTERCEPT_ALL_THREADS // Intercepts all failures. - }; - - // The c'tor sets this object as the test part result reporter used - // by Google Test. The 'result' parameter specifies where to report the - // results. This reporter will only catch failures generated in the current - // thread. DEPRECATED - explicit ScopedFakeTestPartResultReporter(TestPartResultArray* result); - - // Same as above, but you can choose the interception scope of this object. - ScopedFakeTestPartResultReporter(InterceptMode intercept_mode, - TestPartResultArray* result); - - // The d'tor restores the previous test part result reporter. - ~ScopedFakeTestPartResultReporter() override; - - // Appends the TestPartResult object to the TestPartResultArray - // received in the constructor. - // - // This method is from the TestPartResultReporterInterface - // interface. - void ReportTestPartResult(const TestPartResult& result) override; - - private: - void Init(); - - const InterceptMode intercept_mode_; - TestPartResultReporterInterface* old_reporter_; - TestPartResultArray* const result_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedFakeTestPartResultReporter); -}; - -namespace internal { - -// A helper class for implementing EXPECT_FATAL_FAILURE() and -// EXPECT_NONFATAL_FAILURE(). Its destructor verifies that the given -// TestPartResultArray contains exactly one failure that has the given -// type and contains the given substring. If that's not the case, a -// non-fatal failure will be generated. -class GTEST_API_ SingleFailureChecker { - public: - // The constructor remembers the arguments. - SingleFailureChecker(const TestPartResultArray* results, - TestPartResult::Type type, const std::string& substr); - ~SingleFailureChecker(); - private: - const TestPartResultArray* const results_; - const TestPartResult::Type type_; - const std::string substr_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(SingleFailureChecker); -}; - -} // namespace internal - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// A set of macros for testing Google Test assertions or code that's expected -// to generate Google Test fatal failures. It verifies that the given -// statement will cause exactly one fatal Google Test failure with 'substr' -// being part of the failure message. -// -// There are two different versions of this macro. EXPECT_FATAL_FAILURE only -// affects and considers failures generated in the current thread and -// EXPECT_FATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. -// -// The verification of the assertion is done correctly even when the statement -// throws an exception or aborts the current function. -// -// Known restrictions: -// - 'statement' cannot reference local non-static variables or -// non-static members of the current object. -// - 'statement' cannot return a value. -// - You cannot stream a failure message to this macro. -// -// Note that even though the implementations of the following two -// macros are much alike, we cannot refactor them to use a common -// helper macro, due to some peculiarity in how the preprocessor -// works. The AcceptsMacroThatExpandsToUnprotectedComma test in -// gtest_unittest.cc will fail to compile if we do that. -#define EXPECT_FATAL_FAILURE(statement, substr) \ - do { \ - class GTestExpectFatalFailureHelper {\ - public:\ - static void Execute() { statement; }\ - };\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\ - GTestExpectFatalFailureHelper::Execute();\ - }\ - } while (::testing::internal::AlwaysFalse()) - -#define EXPECT_FATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ - do { \ - class GTestExpectFatalFailureHelper {\ - public:\ - static void Execute() { statement; }\ - };\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kFatalFailure, (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ALL_THREADS, >est_failures);\ - GTestExpectFatalFailureHelper::Execute();\ - }\ - } while (::testing::internal::AlwaysFalse()) - -// A macro for testing Google Test assertions or code that's expected to -// generate Google Test non-fatal failures. It asserts that the given -// statement will cause exactly one non-fatal Google Test failure with 'substr' -// being part of the failure message. -// -// There are two different versions of this macro. EXPECT_NONFATAL_FAILURE only -// affects and considers failures generated in the current thread and -// EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS does the same but for all threads. -// -// 'statement' is allowed to reference local variables and members of -// the current object. -// -// The verification of the assertion is done correctly even when the statement -// throws an exception or aborts the current function. -// -// Known restrictions: -// - You cannot stream a failure message to this macro. -// -// Note that even though the implementations of the following two -// macros are much alike, we cannot refactor them to use a common -// helper macro, due to some peculiarity in how the preprocessor -// works. If we do that, the code won't compile when the user gives -// EXPECT_NONFATAL_FAILURE() a statement that contains a macro that -// expands to code containing an unprotected comma. The -// AcceptsMacroThatExpandsToUnprotectedComma test in gtest_unittest.cc -// catches that. -// -// For the same reason, we have to write -// if (::testing::internal::AlwaysTrue()) { statement; } -// instead of -// GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) -// to avoid an MSVC warning on unreachable code. -#define EXPECT_NONFATAL_FAILURE(statement, substr) \ - do {\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ - (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter:: \ - INTERCEPT_ONLY_CURRENT_THREAD, >est_failures);\ - if (::testing::internal::AlwaysTrue()) { statement; }\ - }\ - } while (::testing::internal::AlwaysFalse()) - -#define EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(statement, substr) \ - do {\ - ::testing::TestPartResultArray gtest_failures;\ - ::testing::internal::SingleFailureChecker gtest_checker(\ - >est_failures, ::testing::TestPartResult::kNonFatalFailure, \ - (substr));\ - {\ - ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ - >est_failures);\ - if (::testing::internal::AlwaysTrue()) { statement; }\ - }\ - } while (::testing::internal::AlwaysFalse()) - -#endif // GTEST_INCLUDE_GTEST_GTEST_SPI_H_ diff --git a/include/gtest/gtest-test-part.h b/include/gtest/gtest-test-part.h deleted file mode 100644 index 05a7985..0000000 --- a/include/gtest/gtest-test-part.h +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2008, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ -#define GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ - -#include -#include -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-string.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// A copyable object representing the result of a test part (i.e. an -// assertion or an explicit FAIL(), ADD_FAILURE(), or SUCCESS()). -// -// Don't inherit from TestPartResult as its destructor is not virtual. -class GTEST_API_ TestPartResult { - public: - // The possible outcomes of a test part (i.e. an assertion or an - // explicit SUCCEED(), FAIL(), or ADD_FAILURE()). - enum Type { - kSuccess, // Succeeded. - kNonFatalFailure, // Failed but the test can continue. - kFatalFailure, // Failed and the test should be terminated. - kSkip // Skipped. - }; - - // C'tor. TestPartResult does NOT have a default constructor. - // Always use this constructor (with parameters) to create a - // TestPartResult object. - TestPartResult(Type a_type, const char* a_file_name, int a_line_number, - const char* a_message) - : type_(a_type), - file_name_(a_file_name == nullptr ? "" : a_file_name), - line_number_(a_line_number), - summary_(ExtractSummary(a_message)), - message_(a_message) {} - - // Gets the outcome of the test part. - Type type() const { return type_; } - - // Gets the name of the source file where the test part took place, or - // NULL if it's unknown. - const char* file_name() const { - return file_name_.empty() ? nullptr : file_name_.c_str(); - } - - // Gets the line in the source file where the test part took place, - // or -1 if it's unknown. - int line_number() const { return line_number_; } - - // Gets the summary of the failure message. - const char* summary() const { return summary_.c_str(); } - - // Gets the message associated with the test part. - const char* message() const { return message_.c_str(); } - - // Returns true if and only if the test part was skipped. - bool skipped() const { return type_ == kSkip; } - - // Returns true if and only if the test part passed. - bool passed() const { return type_ == kSuccess; } - - // Returns true if and only if the test part non-fatally failed. - bool nonfatally_failed() const { return type_ == kNonFatalFailure; } - - // Returns true if and only if the test part fatally failed. - bool fatally_failed() const { return type_ == kFatalFailure; } - - // Returns true if and only if the test part failed. - bool failed() const { return fatally_failed() || nonfatally_failed(); } - - private: - Type type_; - - // Gets the summary of the failure message by omitting the stack - // trace in it. - static std::string ExtractSummary(const char* message); - - // The name of the source file where the test part took place, or - // "" if the source file is unknown. - std::string file_name_; - // The line in the source file where the test part took place, or -1 - // if the line number is unknown. - int line_number_; - std::string summary_; // The test failure summary. - std::string message_; // The test failure message. -}; - -// Prints a TestPartResult object. -std::ostream& operator<<(std::ostream& os, const TestPartResult& result); - -// An array of TestPartResult objects. -// -// Don't inherit from TestPartResultArray as its destructor is not -// virtual. -class GTEST_API_ TestPartResultArray { - public: - TestPartResultArray() {} - - // Appends the given TestPartResult to the array. - void Append(const TestPartResult& result); - - // Returns the TestPartResult at the given index (0-based). - const TestPartResult& GetTestPartResult(int index) const; - - // Returns the number of TestPartResult objects in the array. - int size() const; - - private: - std::vector array_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestPartResultArray); -}; - -// This interface knows how to report a test part result. -class GTEST_API_ TestPartResultReporterInterface { - public: - virtual ~TestPartResultReporterInterface() {} - - virtual void ReportTestPartResult(const TestPartResult& result) = 0; -}; - -namespace internal { - -// This helper class is used by {ASSERT|EXPECT}_NO_FATAL_FAILURE to check if a -// statement generates new fatal failures. To do so it registers itself as the -// current test part result reporter. Besides checking if fatal failures were -// reported, it only delegates the reporting to the former result reporter. -// The original result reporter is restored in the destructor. -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -class GTEST_API_ HasNewFatalFailureHelper - : public TestPartResultReporterInterface { - public: - HasNewFatalFailureHelper(); - ~HasNewFatalFailureHelper() override; - void ReportTestPartResult(const TestPartResult& result) override; - bool has_new_fatal_failure() const { return has_new_fatal_failure_; } - private: - bool has_new_fatal_failure_; - TestPartResultReporterInterface* original_reporter_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(HasNewFatalFailureHelper); -}; - -} // namespace internal - -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_GTEST_TEST_PART_H_ diff --git a/include/gtest/gtest-typed-test.h b/include/gtest/gtest-typed-test.h deleted file mode 100644 index 095ce05..0000000 --- a/include/gtest/gtest-typed-test.h +++ /dev/null @@ -1,330 +0,0 @@ -// Copyright 2008 Google Inc. -// All Rights Reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ - -// This header implements typed tests and type-parameterized tests. - -// Typed (aka type-driven) tests repeat the same test for types in a -// list. You must know which types you want to test with when writing -// typed tests. Here's how you do it: - -#if 0 - -// First, define a fixture class template. It should be parameterized -// by a type. Remember to derive it from testing::Test. -template -class FooTest : public testing::Test { - public: - ... - typedef std::list List; - static T shared_; - T value_; -}; - -// Next, associate a list of types with the test suite, which will be -// repeated for each type in the list. The typedef is necessary for -// the macro to parse correctly. -typedef testing::Types MyTypes; -TYPED_TEST_SUITE(FooTest, MyTypes); - -// If the type list contains only one type, you can write that type -// directly without Types<...>: -// TYPED_TEST_SUITE(FooTest, int); - -// Then, use TYPED_TEST() instead of TEST_F() to define as many typed -// tests for this test suite as you want. -TYPED_TEST(FooTest, DoesBlah) { - // Inside a test, refer to the special name TypeParam to get the type - // parameter. Since we are inside a derived class template, C++ requires - // us to visit the members of FooTest via 'this'. - TypeParam n = this->value_; - - // To visit static members of the fixture, add the TestFixture:: - // prefix. - n += TestFixture::shared_; - - // To refer to typedefs in the fixture, add the "typename - // TestFixture::" prefix. - typename TestFixture::List values; - values.push_back(n); - ... -} - -TYPED_TEST(FooTest, HasPropertyA) { ... } - -// TYPED_TEST_SUITE takes an optional third argument which allows to specify a -// class that generates custom test name suffixes based on the type. This should -// be a class which has a static template function GetName(int index) returning -// a string for each type. The provided integer index equals the index of the -// type in the provided type list. In many cases the index can be ignored. -// -// For example: -// class MyTypeNames { -// public: -// template -// static std::string GetName(int) { -// if (std::is_same()) return "char"; -// if (std::is_same()) return "int"; -// if (std::is_same()) return "unsignedInt"; -// } -// }; -// TYPED_TEST_SUITE(FooTest, MyTypes, MyTypeNames); - -#endif // 0 - -// Type-parameterized tests are abstract test patterns parameterized -// by a type. Compared with typed tests, type-parameterized tests -// allow you to define the test pattern without knowing what the type -// parameters are. The defined pattern can be instantiated with -// different types any number of times, in any number of translation -// units. -// -// If you are designing an interface or concept, you can define a -// suite of type-parameterized tests to verify properties that any -// valid implementation of the interface/concept should have. Then, -// each implementation can easily instantiate the test suite to verify -// that it conforms to the requirements, without having to write -// similar tests repeatedly. Here's an example: - -#if 0 - -// First, define a fixture class template. It should be parameterized -// by a type. Remember to derive it from testing::Test. -template -class FooTest : public testing::Test { - ... -}; - -// Next, declare that you will define a type-parameterized test suite -// (the _P suffix is for "parameterized" or "pattern", whichever you -// prefer): -TYPED_TEST_SUITE_P(FooTest); - -// Then, use TYPED_TEST_P() to define as many type-parameterized tests -// for this type-parameterized test suite as you want. -TYPED_TEST_P(FooTest, DoesBlah) { - // Inside a test, refer to TypeParam to get the type parameter. - TypeParam n = 0; - ... -} - -TYPED_TEST_P(FooTest, HasPropertyA) { ... } - -// Now the tricky part: you need to register all test patterns before -// you can instantiate them. The first argument of the macro is the -// test suite name; the rest are the names of the tests in this test -// case. -REGISTER_TYPED_TEST_SUITE_P(FooTest, - DoesBlah, HasPropertyA); - -// Finally, you are free to instantiate the pattern with the types you -// want. If you put the above code in a header file, you can #include -// it in multiple C++ source files and instantiate it multiple times. -// -// To distinguish different instances of the pattern, the first -// argument to the INSTANTIATE_* macro is a prefix that will be added -// to the actual test suite name. Remember to pick unique prefixes for -// different instances. -typedef testing::Types MyTypes; -INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes); - -// If the type list contains only one type, you can write that type -// directly without Types<...>: -// INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, int); -// -// Similar to the optional argument of TYPED_TEST_SUITE above, -// INSTANTIATE_TEST_SUITE_P takes an optional fourth argument which allows to -// generate custom names. -// INSTANTIATE_TYPED_TEST_SUITE_P(My, FooTest, MyTypes, MyTypeNames); - -#endif // 0 - -#include "gtest/internal/gtest-port.h" -#include "gtest/internal/gtest-type-util.h" - -// Implements typed tests. - -#if GTEST_HAS_TYPED_TEST - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the name of the typedef for the type parameters of the -// given test suite. -#define GTEST_TYPE_PARAMS_(TestSuiteName) gtest_type_params_##TestSuiteName##_ - -// Expands to the name of the typedef for the NameGenerator, responsible for -// creating the suffixes of the name. -#define GTEST_NAME_GENERATOR_(TestSuiteName) \ - gtest_type_params_##TestSuiteName##_NameGenerator - -#define TYPED_TEST_SUITE(CaseName, Types, ...) \ - typedef ::testing::internal::TypeList::type GTEST_TYPE_PARAMS_( \ - CaseName); \ - typedef ::testing::internal::NameGeneratorSelector<__VA_ARGS__>::type \ - GTEST_NAME_GENERATOR_(CaseName) - -# define TYPED_TEST(CaseName, TestName) \ - template \ - class GTEST_TEST_CLASS_NAME_(CaseName, TestName) \ - : public CaseName { \ - private: \ - typedef CaseName TestFixture; \ - typedef gtest_TypeParam_ TypeParam; \ - virtual void TestBody(); \ - }; \ - static bool gtest_##CaseName##_##TestName##_registered_ \ - GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::internal::TypeParameterizedTest< \ - CaseName, \ - ::testing::internal::TemplateSel, \ - GTEST_TYPE_PARAMS_( \ - CaseName)>::Register("", \ - ::testing::internal::CodeLocation( \ - __FILE__, __LINE__), \ - #CaseName, #TestName, 0, \ - ::testing::internal::GenerateNames< \ - GTEST_NAME_GENERATOR_(CaseName), \ - GTEST_TYPE_PARAMS_(CaseName)>()); \ - template \ - void GTEST_TEST_CLASS_NAME_(CaseName, \ - TestName)::TestBody() - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define TYPED_TEST_CASE \ - static_assert(::testing::internal::TypedTestCaseIsDeprecated(), ""); \ - TYPED_TEST_SUITE -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#endif // GTEST_HAS_TYPED_TEST - -// Implements type-parameterized tests. - -#if GTEST_HAS_TYPED_TEST_P - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the namespace name that the type-parameterized tests for -// the given type-parameterized test suite are defined in. The exact -// name of the namespace is subject to change without notice. -#define GTEST_SUITE_NAMESPACE_(TestSuiteName) gtest_suite_##TestSuiteName##_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Expands to the name of the variable used to remember the names of -// the defined tests in the given test suite. -#define GTEST_TYPED_TEST_SUITE_P_STATE_(TestSuiteName) \ - gtest_typed_test_suite_p_state_##TestSuiteName##_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE DIRECTLY. -// -// Expands to the name of the variable used to remember the names of -// the registered tests in the given test suite. -#define GTEST_REGISTERED_TEST_NAMES_(TestSuiteName) \ - gtest_registered_test_names_##TestSuiteName##_ - -// The variables defined in the type-parameterized test macros are -// static as typically these macros are used in a .h file that can be -// #included in multiple translation units linked together. -#define TYPED_TEST_SUITE_P(SuiteName) \ - static ::testing::internal::TypedTestSuitePState \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define TYPED_TEST_CASE_P \ - static_assert(::testing::internal::TypedTestCase_P_IsDeprecated(), ""); \ - TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#define TYPED_TEST_P(SuiteName, TestName) \ - namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ - template \ - class TestName : public SuiteName { \ - private: \ - typedef SuiteName TestFixture; \ - typedef gtest_TypeParam_ TypeParam; \ - virtual void TestBody(); \ - }; \ - static bool gtest_##TestName##_defined_ GTEST_ATTRIBUTE_UNUSED_ = \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).AddTestName( \ - __FILE__, __LINE__, #SuiteName, #TestName); \ - } \ - template \ - void GTEST_SUITE_NAMESPACE_( \ - SuiteName)::TestName::TestBody() - -#define REGISTER_TYPED_TEST_SUITE_P(SuiteName, ...) \ - namespace GTEST_SUITE_NAMESPACE_(SuiteName) { \ - typedef ::testing::internal::Templates<__VA_ARGS__>::type gtest_AllTests_; \ - } \ - static const char* const GTEST_REGISTERED_TEST_NAMES_( \ - SuiteName) GTEST_ATTRIBUTE_UNUSED_ = \ - GTEST_TYPED_TEST_SUITE_P_STATE_(SuiteName).VerifyRegisteredTestNames( \ - __FILE__, __LINE__, #__VA_ARGS__) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define REGISTER_TYPED_TEST_CASE_P \ - static_assert(::testing::internal::RegisterTypedTestCase_P_IsDeprecated(), \ - ""); \ - REGISTER_TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#define INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, SuiteName, Types, ...) \ - static bool gtest_##Prefix##_##SuiteName GTEST_ATTRIBUTE_UNUSED_ = \ - ::testing::internal::TypeParameterizedTestSuite< \ - SuiteName, GTEST_SUITE_NAMESPACE_(SuiteName)::gtest_AllTests_, \ - ::testing::internal::TypeList::type>:: \ - Register(#Prefix, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__), \ - >EST_TYPED_TEST_SUITE_P_STATE_(SuiteName), #SuiteName, \ - GTEST_REGISTERED_TEST_NAMES_(SuiteName), \ - ::testing::internal::GenerateNames< \ - ::testing::internal::NameGeneratorSelector< \ - __VA_ARGS__>::type, \ - ::testing::internal::TypeList::type>()) - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -#define INSTANTIATE_TYPED_TEST_CASE_P \ - static_assert( \ - ::testing::internal::InstantiateTypedTestCase_P_IsDeprecated(), ""); \ - INSTANTIATE_TYPED_TEST_SUITE_P -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -#endif // GTEST_HAS_TYPED_TEST_P - -#endif // GTEST_INCLUDE_GTEST_GTEST_TYPED_TEST_H_ diff --git a/include/gtest/gtest.h b/include/gtest/gtest.h deleted file mode 100644 index dbe5b1c..0000000 --- a/include/gtest/gtest.h +++ /dev/null @@ -1,2478 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the public API for Google Test. It should be -// included by any test program that uses Google Test. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! -// -// Acknowledgment: Google Test borrowed the idea of automatic test -// registration from Barthelemy Dagenais' (barthelemy@prologique.com) -// easyUnit framework. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_H_ -#define GTEST_INCLUDE_GTEST_GTEST_H_ - -#include -#include -#include -#include -#include -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-string.h" -#include "gtest/gtest-death-test.h" -#include "gtest/gtest-matchers.h" -#include "gtest/gtest-message.h" -#include "gtest/gtest-param-test.h" -#include "gtest/gtest-printers.h" -#include "gtest/gtest_prod.h" -#include "gtest/gtest-test-part.h" -#include "gtest/gtest-typed-test.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { - -// Silence C4100 (unreferenced formal parameter) and 4805 -// unsafe mix of type 'const int' and type 'const bool' -#ifdef _MSC_VER -# pragma warning(push) -# pragma warning(disable:4805) -# pragma warning(disable:4100) -#endif - - -// Declares the flags. - -// This flag temporary enables the disabled tests. -GTEST_DECLARE_bool_(also_run_disabled_tests); - -// This flag brings the debugger on an assertion failure. -GTEST_DECLARE_bool_(break_on_failure); - -// This flag controls whether Google Test catches all test-thrown exceptions -// and logs them as failures. -GTEST_DECLARE_bool_(catch_exceptions); - -// This flag enables using colors in terminal output. Available values are -// "yes" to enable colors, "no" (disable colors), or "auto" (the default) -// to let Google Test decide. -GTEST_DECLARE_string_(color); - -// This flag sets up the filter to select by name using a glob pattern -// the tests to run. If the filter is not given all tests are executed. -GTEST_DECLARE_string_(filter); - -// This flag controls whether Google Test installs a signal handler that dumps -// debugging information when fatal signals are raised. -GTEST_DECLARE_bool_(install_failure_signal_handler); - -// This flag causes the Google Test to list tests. None of the tests listed -// are actually run if the flag is provided. -GTEST_DECLARE_bool_(list_tests); - -// This flag controls whether Google Test emits a detailed XML report to a file -// in addition to its normal textual output. -GTEST_DECLARE_string_(output); - -// This flags control whether Google Test prints the elapsed time for each -// test. -GTEST_DECLARE_bool_(print_time); - -// This flags control whether Google Test prints UTF8 characters as text. -GTEST_DECLARE_bool_(print_utf8); - -// This flag specifies the random number seed. -GTEST_DECLARE_int32_(random_seed); - -// This flag sets how many times the tests are repeated. The default value -// is 1. If the value is -1 the tests are repeating forever. -GTEST_DECLARE_int32_(repeat); - -// This flag controls whether Google Test includes Google Test internal -// stack frames in failure stack traces. -GTEST_DECLARE_bool_(show_internal_stack_frames); - -// When this flag is specified, tests' order is randomized on every iteration. -GTEST_DECLARE_bool_(shuffle); - -// This flag specifies the maximum number of stack frames to be -// printed in a failure message. -GTEST_DECLARE_int32_(stack_trace_depth); - -// When this flag is specified, a failed assertion will throw an -// exception if exceptions are enabled, or exit the program with a -// non-zero code otherwise. For use with an external test framework. -GTEST_DECLARE_bool_(throw_on_failure); - -// When this flag is set with a "host:port" string, on supported -// platforms test results are streamed to the specified port on -// the specified host machine. -GTEST_DECLARE_string_(stream_result_to); - -#if GTEST_USE_OWN_FLAGFILE_FLAG_ -GTEST_DECLARE_string_(flagfile); -#endif // GTEST_USE_OWN_FLAGFILE_FLAG_ - -// The upper limit for valid stack trace depths. -const int kMaxStackTraceDepth = 100; - -namespace internal { - -class AssertHelper; -class DefaultGlobalTestPartResultReporter; -class ExecDeathTest; -class NoExecDeathTest; -class FinalSuccessChecker; -class GTestFlagSaver; -class StreamingListenerTest; -class TestResultAccessor; -class TestEventListenersAccessor; -class TestEventRepeater; -class UnitTestRecordPropertyTestHelper; -class WindowsDeathTest; -class FuchsiaDeathTest; -class UnitTestImpl* GetUnitTestImpl(); -void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const std::string& message); - -} // namespace internal - -// The friend relationship of some of these classes is cyclic. -// If we don't forward declare them the compiler might confuse the classes -// in friendship clauses with same named classes on the scope. -class Test; -class TestSuite; - -// Old API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -using TestCase = TestSuite; -#endif -class TestInfo; -class UnitTest; - -// A class for indicating whether an assertion was successful. When -// the assertion wasn't successful, the AssertionResult object -// remembers a non-empty message that describes how it failed. -// -// To create an instance of this class, use one of the factory functions -// (AssertionSuccess() and AssertionFailure()). -// -// This class is useful for two purposes: -// 1. Defining predicate functions to be used with Boolean test assertions -// EXPECT_TRUE/EXPECT_FALSE and their ASSERT_ counterparts -// 2. Defining predicate-format functions to be -// used with predicate assertions (ASSERT_PRED_FORMAT*, etc). -// -// For example, if you define IsEven predicate: -// -// testing::AssertionResult IsEven(int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess(); -// else -// return testing::AssertionFailure() << n << " is odd"; -// } -// -// Then the failed expectation EXPECT_TRUE(IsEven(Fib(5))) -// will print the message -// -// Value of: IsEven(Fib(5)) -// Actual: false (5 is odd) -// Expected: true -// -// instead of a more opaque -// -// Value of: IsEven(Fib(5)) -// Actual: false -// Expected: true -// -// in case IsEven is a simple Boolean predicate. -// -// If you expect your predicate to be reused and want to support informative -// messages in EXPECT_FALSE and ASSERT_FALSE (negative assertions show up -// about half as often as positive ones in our tests), supply messages for -// both success and failure cases: -// -// testing::AssertionResult IsEven(int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess() << n << " is even"; -// else -// return testing::AssertionFailure() << n << " is odd"; -// } -// -// Then a statement EXPECT_FALSE(IsEven(Fib(6))) will print -// -// Value of: IsEven(Fib(6)) -// Actual: true (8 is even) -// Expected: false -// -// NB: Predicates that support negative Boolean assertions have reduced -// performance in positive ones so be careful not to use them in tests -// that have lots (tens of thousands) of positive Boolean assertions. -// -// To use this class with EXPECT_PRED_FORMAT assertions such as: -// -// // Verifies that Foo() returns an even number. -// EXPECT_PRED_FORMAT1(IsEven, Foo()); -// -// you need to define: -// -// testing::AssertionResult IsEven(const char* expr, int n) { -// if ((n % 2) == 0) -// return testing::AssertionSuccess(); -// else -// return testing::AssertionFailure() -// << "Expected: " << expr << " is even\n Actual: it's " << n; -// } -// -// If Foo() returns 5, you will see the following message: -// -// Expected: Foo() is even -// Actual: it's 5 -// -class GTEST_API_ AssertionResult { - public: - // Copy constructor. - // Used in EXPECT_TRUE/FALSE(assertion_result). - AssertionResult(const AssertionResult& other); - -#if defined(_MSC_VER) && _MSC_VER < 1910 - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */) -#endif - - // Used in the EXPECT_TRUE/FALSE(bool_expression). - // - // T must be contextually convertible to bool. - // - // The second parameter prevents this overload from being considered if - // the argument is implicitly convertible to AssertionResult. In that case - // we want AssertionResult's copy constructor to be used. - template - explicit AssertionResult( - const T& success, - typename std::enable_if< - !std::is_convertible::value>::type* - /*enabler*/ - = nullptr) - : success_(success) {} - -#if defined(_MSC_VER) && _MSC_VER < 1910 - GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - - // Assignment operator. - AssertionResult& operator=(AssertionResult other) { - swap(other); - return *this; - } - - // Returns true if and only if the assertion succeeded. - operator bool() const { return success_; } // NOLINT - - // Returns the assertion's negation. Used with EXPECT/ASSERT_FALSE. - AssertionResult operator!() const; - - // Returns the text streamed into this AssertionResult. Test assertions - // use it when they fail (i.e., the predicate's outcome doesn't match the - // assertion's expectation). When nothing has been streamed into the - // object, returns an empty string. - const char* message() const { - return message_.get() != nullptr ? message_->c_str() : ""; - } - // Deprecated; please use message() instead. - const char* failure_message() const { return message(); } - - // Streams a custom failure message into this object. - template AssertionResult& operator<<(const T& value) { - AppendMessage(Message() << value); - return *this; - } - - // Allows streaming basic output manipulators such as endl or flush into - // this object. - AssertionResult& operator<<( - ::std::ostream& (*basic_manipulator)(::std::ostream& stream)) { - AppendMessage(Message() << basic_manipulator); - return *this; - } - - private: - // Appends the contents of message to message_. - void AppendMessage(const Message& a_message) { - if (message_.get() == nullptr) message_.reset(new ::std::string); - message_->append(a_message.GetString().c_str()); - } - - // Swap the contents of this AssertionResult with other. - void swap(AssertionResult& other); - - // Stores result of the assertion predicate. - bool success_; - // Stores the message describing the condition in case the expectation - // construct is not satisfied with the predicate's outcome. - // Referenced via a pointer to avoid taking too much stack frame space - // with test assertions. - std::unique_ptr< ::std::string> message_; -}; - -// Makes a successful assertion result. -GTEST_API_ AssertionResult AssertionSuccess(); - -// Makes a failed assertion result. -GTEST_API_ AssertionResult AssertionFailure(); - -// Makes a failed assertion result with the given failure message. -// Deprecated; use AssertionFailure() << msg. -GTEST_API_ AssertionResult AssertionFailure(const Message& msg); - -} // namespace testing - -// Includes the auto-generated header that implements a family of generic -// predicate assertion macros. This include comes late because it relies on -// APIs declared above. -#include "gtest/gtest_pred_impl.h" - -namespace testing { - -// The abstract class that all tests inherit from. -// -// In Google Test, a unit test program contains one or many TestSuites, and -// each TestSuite contains one or many Tests. -// -// When you define a test using the TEST macro, you don't need to -// explicitly derive from Test - the TEST macro automatically does -// this for you. -// -// The only time you derive from Test is when defining a test fixture -// to be used in a TEST_F. For example: -// -// class FooTest : public testing::Test { -// protected: -// void SetUp() override { ... } -// void TearDown() override { ... } -// ... -// }; -// -// TEST_F(FooTest, Bar) { ... } -// TEST_F(FooTest, Baz) { ... } -// -// Test is not copyable. -class GTEST_API_ Test { - public: - friend class TestInfo; - - // The d'tor is virtual as we intend to inherit from Test. - virtual ~Test(); - - // Sets up the stuff shared by all tests in this test case. - // - // Google Test will call Foo::SetUpTestSuite() before running the first - // test in test case Foo. Hence a sub-class can define its own - // SetUpTestSuite() method to shadow the one defined in the super - // class. - // Failures that happen during SetUpTestSuite are logged but otherwise - // ignored. - static void SetUpTestSuite() {} - - // Tears down the stuff shared by all tests in this test suite. - // - // Google Test will call Foo::TearDownTestSuite() after running the last - // test in test case Foo. Hence a sub-class can define its own - // TearDownTestSuite() method to shadow the one defined in the super - // class. - // Failures that happen during TearDownTestSuite are logged but otherwise - // ignored. - static void TearDownTestSuite() {} - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - static void TearDownTestCase() {} - static void SetUpTestCase() {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns true if and only if the current test has a fatal failure. - static bool HasFatalFailure(); - - // Returns true if and only if the current test has a non-fatal failure. - static bool HasNonfatalFailure(); - - // Returns true if and only if the current test was skipped. - static bool IsSkipped(); - - // Returns true if and only if the current test has a (either fatal or - // non-fatal) failure. - static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); } - - // Logs a property for the current test, test suite, or for the entire - // invocation of the test program when used outside of the context of a - // test suite. Only the last value for a given key is remembered. These - // are public static so they can be called from utility functions that are - // not members of the test fixture. Calls to RecordProperty made during - // lifespan of the test (from the moment its constructor starts to the - // moment its destructor finishes) will be output in XML as attributes of - // the element. Properties recorded from fixture's - // SetUpTestSuite or TearDownTestSuite are logged as attributes of the - // corresponding element. Calls to RecordProperty made in the - // global context (before or after invocation of RUN_ALL_TESTS and from - // SetUp/TearDown method of Environment objects registered with Google - // Test) will be output as attributes of the element. - static void RecordProperty(const std::string& key, const std::string& value); - static void RecordProperty(const std::string& key, int value); - - protected: - // Creates a Test object. - Test(); - - // Sets up the test fixture. - virtual void SetUp(); - - // Tears down the test fixture. - virtual void TearDown(); - - private: - // Returns true if and only if the current test has the same fixture class - // as the first test in the current test suite. - static bool HasSameFixtureClass(); - - // Runs the test after the test fixture has been set up. - // - // A sub-class must implement this to define the test logic. - // - // DO NOT OVERRIDE THIS FUNCTION DIRECTLY IN A USER PROGRAM. - // Instead, use the TEST or TEST_F macro. - virtual void TestBody() = 0; - - // Sets up, executes, and tears down the test. - void Run(); - - // Deletes self. We deliberately pick an unusual name for this - // internal method to avoid clashing with names used in user TESTs. - void DeleteSelf_() { delete this; } - - const std::unique_ptr gtest_flag_saver_; - - // Often a user misspells SetUp() as Setup() and spends a long time - // wondering why it is never called by Google Test. The declaration of - // the following method is solely for catching such an error at - // compile time: - // - // - The return type is deliberately chosen to be not void, so it - // will be a conflict if void Setup() is declared in the user's - // test fixture. - // - // - This method is private, so it will be another compiler error - // if the method is called from the user's test fixture. - // - // DO NOT OVERRIDE THIS FUNCTION. - // - // If you see an error about overriding the following function or - // about it being private, you have mis-spelled SetUp() as Setup(). - struct Setup_should_be_spelled_SetUp {}; - virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; } - - // We disallow copying Tests. - GTEST_DISALLOW_COPY_AND_ASSIGN_(Test); -}; - -typedef internal::TimeInMillis TimeInMillis; - -// A copyable object representing a user specified test property which can be -// output as a key/value string pair. -// -// Don't inherit from TestProperty as its destructor is not virtual. -class TestProperty { - public: - // C'tor. TestProperty does NOT have a default constructor. - // Always use this constructor (with parameters) to create a - // TestProperty object. - TestProperty(const std::string& a_key, const std::string& a_value) : - key_(a_key), value_(a_value) { - } - - // Gets the user supplied key. - const char* key() const { - return key_.c_str(); - } - - // Gets the user supplied value. - const char* value() const { - return value_.c_str(); - } - - // Sets a new value, overriding the one supplied in the constructor. - void SetValue(const std::string& new_value) { - value_ = new_value; - } - - private: - // The key supplied by the user. - std::string key_; - // The value supplied by the user. - std::string value_; -}; - -// The result of a single Test. This includes a list of -// TestPartResults, a list of TestProperties, a count of how many -// death tests there are in the Test, and how much time it took to run -// the Test. -// -// TestResult is not copyable. -class GTEST_API_ TestResult { - public: - // Creates an empty TestResult. - TestResult(); - - // D'tor. Do not inherit from TestResult. - ~TestResult(); - - // Gets the number of all test parts. This is the sum of the number - // of successful test parts and the number of failed test parts. - int total_part_count() const; - - // Returns the number of the test properties. - int test_property_count() const; - - // Returns true if and only if the test passed (i.e. no test part failed). - bool Passed() const { return !Skipped() && !Failed(); } - - // Returns true if and only if the test was skipped. - bool Skipped() const; - - // Returns true if and only if the test failed. - bool Failed() const; - - // Returns true if and only if the test fatally failed. - bool HasFatalFailure() const; - - // Returns true if and only if the test has a non-fatal failure. - bool HasNonfatalFailure() const; - - // Returns the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Gets the time of the test case start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const { return start_timestamp_; } - - // Returns the i-th test part result among all the results. i can range from 0 - // to total_part_count() - 1. If i is not in that range, aborts the program. - const TestPartResult& GetTestPartResult(int i) const; - - // Returns the i-th test property. i can range from 0 to - // test_property_count() - 1. If i is not in that range, aborts the - // program. - const TestProperty& GetTestProperty(int i) const; - - private: - friend class TestInfo; - friend class TestSuite; - friend class UnitTest; - friend class internal::DefaultGlobalTestPartResultReporter; - friend class internal::ExecDeathTest; - friend class internal::TestResultAccessor; - friend class internal::UnitTestImpl; - friend class internal::WindowsDeathTest; - friend class internal::FuchsiaDeathTest; - - // Gets the vector of TestPartResults. - const std::vector& test_part_results() const { - return test_part_results_; - } - - // Gets the vector of TestProperties. - const std::vector& test_properties() const { - return test_properties_; - } - - // Sets the start time. - void set_start_timestamp(TimeInMillis start) { start_timestamp_ = start; } - - // Sets the elapsed time. - void set_elapsed_time(TimeInMillis elapsed) { elapsed_time_ = elapsed; } - - // Adds a test property to the list. The property is validated and may add - // a non-fatal failure if invalid (e.g., if it conflicts with reserved - // key names). If a property is already recorded for the same key, the - // value will be updated, rather than storing multiple values for the same - // key. xml_element specifies the element for which the property is being - // recorded and is used for validation. - void RecordProperty(const std::string& xml_element, - const TestProperty& test_property); - - // Adds a failure if the key is a reserved attribute of Google Test - // testsuite tags. Returns true if the property is valid. - // FIXME: Validate attribute names are legal and human readable. - static bool ValidateTestProperty(const std::string& xml_element, - const TestProperty& test_property); - - // Adds a test part result to the list. - void AddTestPartResult(const TestPartResult& test_part_result); - - // Returns the death test count. - int death_test_count() const { return death_test_count_; } - - // Increments the death test count, returning the new count. - int increment_death_test_count() { return ++death_test_count_; } - - // Clears the test part results. - void ClearTestPartResults(); - - // Clears the object. - void Clear(); - - // Protects mutable state of the property vector and of owned - // properties, whose values may be updated. - internal::Mutex test_properites_mutex_; - - // The vector of TestPartResults - std::vector test_part_results_; - // The vector of TestProperties - std::vector test_properties_; - // Running count of death tests. - int death_test_count_; - // The start time, in milliseconds since UNIX Epoch. - TimeInMillis start_timestamp_; - // The elapsed time, in milliseconds. - TimeInMillis elapsed_time_; - - // We disallow copying TestResult. - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestResult); -}; // class TestResult - -// A TestInfo object stores the following information about a test: -// -// Test suite name -// Test name -// Whether the test should be run -// A function pointer that creates the test object when invoked -// Test result -// -// The constructor of TestInfo registers itself with the UnitTest -// singleton such that the RUN_ALL_TESTS() macro knows which tests to -// run. -class GTEST_API_ TestInfo { - public: - // Destructs a TestInfo object. This function is not virtual, so - // don't inherit from TestInfo. - ~TestInfo(); - - // Returns the test suite name. - const char* test_suite_name() const { return test_suite_name_.c_str(); } - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const char* test_case_name() const { return test_suite_name(); } -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns the test name. - const char* name() const { return name_.c_str(); } - - // Returns the name of the parameter type, or NULL if this is not a typed - // or a type-parameterized test. - const char* type_param() const { - if (type_param_.get() != nullptr) return type_param_->c_str(); - return nullptr; - } - - // Returns the text representation of the value parameter, or NULL if this - // is not a value-parameterized test. - const char* value_param() const { - if (value_param_.get() != nullptr) return value_param_->c_str(); - return nullptr; - } - - // Returns the file name where this test is defined. - const char* file() const { return location_.file.c_str(); } - - // Returns the line where this test is defined. - int line() const { return location_.line; } - - // Return true if this test should not be run because it's in another shard. - bool is_in_another_shard() const { return is_in_another_shard_; } - - // Returns true if this test should run, that is if the test is not - // disabled (or it is disabled but the also_run_disabled_tests flag has - // been specified) and its full name matches the user-specified filter. - // - // Google Test allows the user to filter the tests by their full names. - // The full name of a test Bar in test suite Foo is defined as - // "Foo.Bar". Only the tests that match the filter will run. - // - // A filter is a colon-separated list of glob (not regex) patterns, - // optionally followed by a '-' and a colon-separated list of - // negative patterns (tests to exclude). A test is run if it - // matches one of the positive patterns and does not match any of - // the negative patterns. - // - // For example, *A*:Foo.* is a filter that matches any string that - // contains the character 'A' or starts with "Foo.". - bool should_run() const { return should_run_; } - - // Returns true if and only if this test will appear in the XML report. - bool is_reportable() const { - // The XML report includes tests matching the filter, excluding those - // run in other shards. - return matches_filter_ && !is_in_another_shard_; - } - - // Returns the result of the test. - const TestResult* result() const { return &result_; } - - private: -#if GTEST_HAS_DEATH_TEST - friend class internal::DefaultDeathTestFactory; -#endif // GTEST_HAS_DEATH_TEST - friend class Test; - friend class TestSuite; - friend class internal::UnitTestImpl; - friend class internal::StreamingListenerTest; - friend TestInfo* internal::MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, internal::CodeLocation code_location, - internal::TypeId fixture_class_id, internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc, - internal::TestFactoryBase* factory); - - // Constructs a TestInfo object. The newly constructed instance assumes - // ownership of the factory object. - TestInfo(const std::string& test_suite_name, const std::string& name, - const char* a_type_param, // NULL if not a type-parameterized test - const char* a_value_param, // NULL if not a value-parameterized test - internal::CodeLocation a_code_location, - internal::TypeId fixture_class_id, - internal::TestFactoryBase* factory); - - // Increments the number of death tests encountered in this test so - // far. - int increment_death_test_count() { - return result_.increment_death_test_count(); - } - - // Creates the test object, runs it, records its result, and then - // deletes it. - void Run(); - - static void ClearTestResult(TestInfo* test_info) { - test_info->result_.Clear(); - } - - // These fields are immutable properties of the test. - const std::string test_suite_name_; // test suite name - const std::string name_; // Test name - // Name of the parameter type, or NULL if this is not a typed or a - // type-parameterized test. - const std::unique_ptr type_param_; - // Text representation of the value parameter, or NULL if this is not a - // value-parameterized test. - const std::unique_ptr value_param_; - internal::CodeLocation location_; - const internal::TypeId fixture_class_id_; // ID of the test fixture class - bool should_run_; // True if and only if this test should run - bool is_disabled_; // True if and only if this test is disabled - bool matches_filter_; // True if this test matches the - // user-specified filter. - bool is_in_another_shard_; // Will be run in another shard. - internal::TestFactoryBase* const factory_; // The factory that creates - // the test object - - // This field is mutable and needs to be reset before running the - // test for the second time. - TestResult result_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestInfo); -}; - -// A test suite, which consists of a vector of TestInfos. -// -// TestSuite is not copyable. -class GTEST_API_ TestSuite { - public: - // Creates a TestSuite with the given name. - // - // TestSuite does NOT have a default constructor. Always use this - // constructor to create a TestSuite object. - // - // Arguments: - // - // name: name of the test suite - // a_type_param: the name of the test's type parameter, or NULL if - // this is not a type-parameterized test. - // set_up_tc: pointer to the function that sets up the test suite - // tear_down_tc: pointer to the function that tears down the test suite - TestSuite(const char* name, const char* a_type_param, - internal::SetUpTestSuiteFunc set_up_tc, - internal::TearDownTestSuiteFunc tear_down_tc); - - // Destructor of TestSuite. - virtual ~TestSuite(); - - // Gets the name of the TestSuite. - const char* name() const { return name_.c_str(); } - - // Returns the name of the parameter type, or NULL if this is not a - // type-parameterized test suite. - const char* type_param() const { - if (type_param_.get() != nullptr) return type_param_->c_str(); - return nullptr; - } - - // Returns true if any test in this test suite should run. - bool should_run() const { return should_run_; } - - // Gets the number of successful tests in this test suite. - int successful_test_count() const; - - // Gets the number of skipped tests in this test suite. - int skipped_test_count() const; - - // Gets the number of failed tests in this test suite. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests in this test suite. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Get the number of tests in this test suite that should run. - int test_to_run_count() const; - - // Gets the number of all tests in this test suite. - int total_test_count() const; - - // Returns true if and only if the test suite passed. - bool Passed() const { return !Failed(); } - - // Returns true if and only if the test suite failed. - bool Failed() const { return failed_test_count() > 0; } - - // Returns the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const { return elapsed_time_; } - - // Gets the time of the test suite start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const { return start_timestamp_; } - - // Returns the i-th test among all the tests. i can range from 0 to - // total_test_count() - 1. If i is not in that range, returns NULL. - const TestInfo* GetTestInfo(int i) const; - - // Returns the TestResult that holds test properties recorded during - // execution of SetUpTestSuite and TearDownTestSuite. - const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; } - - private: - friend class Test; - friend class internal::UnitTestImpl; - - // Gets the (mutable) vector of TestInfos in this TestSuite. - std::vector& test_info_list() { return test_info_list_; } - - // Gets the (immutable) vector of TestInfos in this TestSuite. - const std::vector& test_info_list() const { - return test_info_list_; - } - - // Returns the i-th test among all the tests. i can range from 0 to - // total_test_count() - 1. If i is not in that range, returns NULL. - TestInfo* GetMutableTestInfo(int i); - - // Sets the should_run member. - void set_should_run(bool should) { should_run_ = should; } - - // Adds a TestInfo to this test suite. Will delete the TestInfo upon - // destruction of the TestSuite object. - void AddTestInfo(TestInfo * test_info); - - // Clears the results of all tests in this test suite. - void ClearResult(); - - // Clears the results of all tests in the given test suite. - static void ClearTestSuiteResult(TestSuite* test_suite) { - test_suite->ClearResult(); - } - - // Runs every test in this TestSuite. - void Run(); - - // Runs SetUpTestSuite() for this TestSuite. This wrapper is needed - // for catching exceptions thrown from SetUpTestSuite(). - void RunSetUpTestSuite() { - if (set_up_tc_ != nullptr) { - (*set_up_tc_)(); - } - } - - // Runs TearDownTestSuite() for this TestSuite. This wrapper is - // needed for catching exceptions thrown from TearDownTestSuite(). - void RunTearDownTestSuite() { - if (tear_down_tc_ != nullptr) { - (*tear_down_tc_)(); - } - } - - // Returns true if and only if test passed. - static bool TestPassed(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Passed(); - } - - // Returns true if and only if test skipped. - static bool TestSkipped(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Skipped(); - } - - // Returns true if and only if test failed. - static bool TestFailed(const TestInfo* test_info) { - return test_info->should_run() && test_info->result()->Failed(); - } - - // Returns true if and only if the test is disabled and will be reported in - // the XML report. - static bool TestReportableDisabled(const TestInfo* test_info) { - return test_info->is_reportable() && test_info->is_disabled_; - } - - // Returns true if and only if test is disabled. - static bool TestDisabled(const TestInfo* test_info) { - return test_info->is_disabled_; - } - - // Returns true if and only if this test will appear in the XML report. - static bool TestReportable(const TestInfo* test_info) { - return test_info->is_reportable(); - } - - // Returns true if the given test should run. - static bool ShouldRunTest(const TestInfo* test_info) { - return test_info->should_run(); - } - - // Shuffles the tests in this test suite. - void ShuffleTests(internal::Random* random); - - // Restores the test order to before the first shuffle. - void UnshuffleTests(); - - // Name of the test suite. - std::string name_; - // Name of the parameter type, or NULL if this is not a typed or a - // type-parameterized test. - const std::unique_ptr type_param_; - // The vector of TestInfos in their original order. It owns the - // elements in the vector. - std::vector test_info_list_; - // Provides a level of indirection for the test list to allow easy - // shuffling and restoring the test order. The i-th element in this - // vector is the index of the i-th test in the shuffled test list. - std::vector test_indices_; - // Pointer to the function that sets up the test suite. - internal::SetUpTestSuiteFunc set_up_tc_; - // Pointer to the function that tears down the test suite. - internal::TearDownTestSuiteFunc tear_down_tc_; - // True if and only if any test in this test suite should run. - bool should_run_; - // The start time, in milliseconds since UNIX Epoch. - TimeInMillis start_timestamp_; - // Elapsed time, in milliseconds. - TimeInMillis elapsed_time_; - // Holds test properties recorded during execution of SetUpTestSuite and - // TearDownTestSuite. - TestResult ad_hoc_test_result_; - - // We disallow copying TestSuites. - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestSuite); -}; - -// An Environment object is capable of setting up and tearing down an -// environment. You should subclass this to define your own -// environment(s). -// -// An Environment object does the set-up and tear-down in virtual -// methods SetUp() and TearDown() instead of the constructor and the -// destructor, as: -// -// 1. You cannot safely throw from a destructor. This is a problem -// as in some cases Google Test is used where exceptions are enabled, and -// we may want to implement ASSERT_* using exceptions where they are -// available. -// 2. You cannot use ASSERT_* directly in a constructor or -// destructor. -class Environment { - public: - // The d'tor is virtual as we need to subclass Environment. - virtual ~Environment() {} - - // Override this to define how to set up the environment. - virtual void SetUp() {} - - // Override this to define how to tear down the environment. - virtual void TearDown() {} - private: - // If you see an error about overriding the following function or - // about it being private, you have mis-spelled SetUp() as Setup(). - struct Setup_should_be_spelled_SetUp {}; - virtual Setup_should_be_spelled_SetUp* Setup() { return nullptr; } -}; - -#if GTEST_HAS_EXCEPTIONS - -// Exception which can be thrown from TestEventListener::OnTestPartResult. -class GTEST_API_ AssertionException - : public internal::GoogleTestFailureException { - public: - explicit AssertionException(const TestPartResult& result) - : GoogleTestFailureException(result) {} -}; - -#endif // GTEST_HAS_EXCEPTIONS - -// The interface for tracing execution of tests. The methods are organized in -// the order the corresponding events are fired. -class TestEventListener { - public: - virtual ~TestEventListener() {} - - // Fired before any test activity starts. - virtual void OnTestProgramStart(const UnitTest& unit_test) = 0; - - // Fired before each iteration of tests starts. There may be more than - // one iteration if GTEST_FLAG(repeat) is set. iteration is the iteration - // index, starting from 0. - virtual void OnTestIterationStart(const UnitTest& unit_test, - int iteration) = 0; - - // Fired before environment set-up for each iteration of tests starts. - virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) = 0; - - // Fired after environment set-up for each iteration of tests ends. - virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) = 0; - - // Fired before the test suite starts. - virtual void OnTestSuiteStart(const TestSuite& /*test_suite*/) {} - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - virtual void OnTestCaseStart(const TestCase& /*test_case*/) {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Fired before the test starts. - virtual void OnTestStart(const TestInfo& test_info) = 0; - - // Fired after a failed assertion or a SUCCEED() invocation. - // If you want to throw an exception from this function to skip to the next - // TEST, it must be AssertionException defined above, or inherited from it. - virtual void OnTestPartResult(const TestPartResult& test_part_result) = 0; - - // Fired after the test ends. - virtual void OnTestEnd(const TestInfo& test_info) = 0; - - // Fired after the test suite ends. - virtual void OnTestSuiteEnd(const TestSuite& /*test_suite*/) {} - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Fired before environment tear-down for each iteration of tests starts. - virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) = 0; - - // Fired after environment tear-down for each iteration of tests ends. - virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) = 0; - - // Fired after each iteration of tests finishes. - virtual void OnTestIterationEnd(const UnitTest& unit_test, - int iteration) = 0; - - // Fired after all test activities have ended. - virtual void OnTestProgramEnd(const UnitTest& unit_test) = 0; -}; - -// The convenience class for users who need to override just one or two -// methods and are not concerned that a possible change to a signature of -// the methods they override will not be caught during the build. For -// comments about each method please see the definition of TestEventListener -// above. -class EmptyTestEventListener : public TestEventListener { - public: - void OnTestProgramStart(const UnitTest& /*unit_test*/) override {} - void OnTestIterationStart(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {} - void OnTestSuiteStart(const TestSuite& /*test_suite*/) override {} -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseStart(const TestCase& /*test_case*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnTestStart(const TestInfo& /*test_info*/) override {} - void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {} - void OnTestEnd(const TestInfo& /*test_info*/) override {} - void OnTestSuiteEnd(const TestSuite& /*test_suite*/) override {} -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - void OnTestCaseEnd(const TestCase& /*test_case*/) override {} -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) override {} - void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {} - void OnTestIterationEnd(const UnitTest& /*unit_test*/, - int /*iteration*/) override {} - void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {} -}; - -// TestEventListeners lets users add listeners to track events in Google Test. -class GTEST_API_ TestEventListeners { - public: - TestEventListeners(); - ~TestEventListeners(); - - // Appends an event listener to the end of the list. Google Test assumes - // the ownership of the listener (i.e. it will delete the listener when - // the test program finishes). - void Append(TestEventListener* listener); - - // Removes the given event listener from the list and returns it. It then - // becomes the caller's responsibility to delete the listener. Returns - // NULL if the listener is not found in the list. - TestEventListener* Release(TestEventListener* listener); - - // Returns the standard listener responsible for the default console - // output. Can be removed from the listeners list to shut down default - // console output. Note that removing this object from the listener list - // with Release transfers its ownership to the caller and makes this - // function return NULL the next time. - TestEventListener* default_result_printer() const { - return default_result_printer_; - } - - // Returns the standard listener responsible for the default XML output - // controlled by the --gtest_output=xml flag. Can be removed from the - // listeners list by users who want to shut down the default XML output - // controlled by this flag and substitute it with custom one. Note that - // removing this object from the listener list with Release transfers its - // ownership to the caller and makes this function return NULL the next - // time. - TestEventListener* default_xml_generator() const { - return default_xml_generator_; - } - - private: - friend class TestSuite; - friend class TestInfo; - friend class internal::DefaultGlobalTestPartResultReporter; - friend class internal::NoExecDeathTest; - friend class internal::TestEventListenersAccessor; - friend class internal::UnitTestImpl; - - // Returns repeater that broadcasts the TestEventListener events to all - // subscribers. - TestEventListener* repeater(); - - // Sets the default_result_printer attribute to the provided listener. - // The listener is also added to the listener list and previous - // default_result_printer is removed from it and deleted. The listener can - // also be NULL in which case it will not be added to the list. Does - // nothing if the previous and the current listener objects are the same. - void SetDefaultResultPrinter(TestEventListener* listener); - - // Sets the default_xml_generator attribute to the provided listener. The - // listener is also added to the listener list and previous - // default_xml_generator is removed from it and deleted. The listener can - // also be NULL in which case it will not be added to the list. Does - // nothing if the previous and the current listener objects are the same. - void SetDefaultXmlGenerator(TestEventListener* listener); - - // Controls whether events will be forwarded by the repeater to the - // listeners in the list. - bool EventForwardingEnabled() const; - void SuppressEventForwarding(); - - // The actual list of listeners. - internal::TestEventRepeater* repeater_; - // Listener responsible for the standard result output. - TestEventListener* default_result_printer_; - // Listener responsible for the creation of the XML output file. - TestEventListener* default_xml_generator_; - - // We disallow copying TestEventListeners. - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestEventListeners); -}; - -// A UnitTest consists of a vector of TestSuites. -// -// This is a singleton class. The only instance of UnitTest is -// created when UnitTest::GetInstance() is first called. This -// instance is never deleted. -// -// UnitTest is not copyable. -// -// This class is thread-safe as long as the methods are called -// according to their specification. -class GTEST_API_ UnitTest { - public: - // Gets the singleton UnitTest object. The first time this method - // is called, a UnitTest object is constructed and returned. - // Consecutive calls will return the same object. - static UnitTest* GetInstance(); - - // Runs all tests in this UnitTest object and prints the result. - // Returns 0 if successful, or 1 otherwise. - // - // This method can only be called from the main thread. - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - int Run() GTEST_MUST_USE_RESULT_; - - // Returns the working directory when the first TEST() or TEST_F() - // was executed. The UnitTest object owns the string. - const char* original_working_dir() const; - - // Returns the TestSuite object for the test that's currently running, - // or NULL if no test is running. - const TestSuite* current_test_suite() const GTEST_LOCK_EXCLUDED_(mutex_); - -// Legacy API is still available but deprecated -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* current_test_case() const GTEST_LOCK_EXCLUDED_(mutex_); -#endif - - // Returns the TestInfo object for the test that's currently running, - // or NULL if no test is running. - const TestInfo* current_test_info() const - GTEST_LOCK_EXCLUDED_(mutex_); - - // Returns the random seed used at the start of the current test run. - int random_seed() const; - - // Returns the ParameterizedTestSuiteRegistry object used to keep track of - // value-parameterized tests and instantiate and register them. - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::ParameterizedTestSuiteRegistry& parameterized_test_registry() - GTEST_LOCK_EXCLUDED_(mutex_); - - // Gets the number of successful test suites. - int successful_test_suite_count() const; - - // Gets the number of failed test suites. - int failed_test_suite_count() const; - - // Gets the number of all test suites. - int total_test_suite_count() const; - - // Gets the number of all test suites that contain at least one test - // that should run. - int test_suite_to_run_count() const; - - // Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - int successful_test_case_count() const; - int failed_test_case_count() const; - int total_test_case_count() const; - int test_case_to_run_count() const; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Gets the number of successful tests. - int successful_test_count() const; - - // Gets the number of skipped tests. - int skipped_test_count() const; - - // Gets the number of failed tests. - int failed_test_count() const; - - // Gets the number of disabled tests that will be reported in the XML report. - int reportable_disabled_test_count() const; - - // Gets the number of disabled tests. - int disabled_test_count() const; - - // Gets the number of tests to be printed in the XML report. - int reportable_test_count() const; - - // Gets the number of all tests. - int total_test_count() const; - - // Gets the number of tests that should run. - int test_to_run_count() const; - - // Gets the time of the test program start, in ms from the start of the - // UNIX epoch. - TimeInMillis start_timestamp() const; - - // Gets the elapsed time, in milliseconds. - TimeInMillis elapsed_time() const; - - // Returns true if and only if the unit test passed (i.e. all test suites - // passed). - bool Passed() const; - - // Returns true if and only if the unit test failed (i.e. some test suite - // failed or something outside of all tests failed). - bool Failed() const; - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - const TestSuite* GetTestSuite(int i) const; - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - const TestCase* GetTestCase(int i) const; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - // Returns the TestResult containing information on test failures and - // properties logged outside of individual test suites. - const TestResult& ad_hoc_test_result() const; - - // Returns the list of event listeners that can be used to track events - // inside Google Test. - TestEventListeners& listeners(); - - private: - // Registers and returns a global test environment. When a test - // program is run, all global test environments will be set-up in - // the order they were registered. After all tests in the program - // have finished, all global test environments will be torn-down in - // the *reverse* order they were registered. - // - // The UnitTest object takes ownership of the given environment. - // - // This method can only be called from the main thread. - Environment* AddEnvironment(Environment* env); - - // Adds a TestPartResult to the current TestResult object. All - // Google Test assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) - // eventually call this to report their results. The user code - // should use the assertion macros instead of calling this directly. - void AddTestPartResult(TestPartResult::Type result_type, - const char* file_name, - int line_number, - const std::string& message, - const std::string& os_stack_trace) - GTEST_LOCK_EXCLUDED_(mutex_); - - // Adds a TestProperty to the current TestResult object when invoked from - // inside a test, to current TestSuite's ad_hoc_test_result_ when invoked - // from SetUpTestSuite or TearDownTestSuite, or to the global property set - // when invoked elsewhere. If the result already contains a property with - // the same key, the value will be updated. - void RecordProperty(const std::string& key, const std::string& value); - - // Gets the i-th test suite among all the test suites. i can range from 0 to - // total_test_suite_count() - 1. If i is not in that range, returns NULL. - TestSuite* GetMutableTestSuite(int i); - - // Accessors for the implementation object. - internal::UnitTestImpl* impl() { return impl_; } - const internal::UnitTestImpl* impl() const { return impl_; } - - // These classes and functions are friends as they need to access private - // members of UnitTest. - friend class ScopedTrace; - friend class Test; - friend class internal::AssertHelper; - friend class internal::StreamingListenerTest; - friend class internal::UnitTestRecordPropertyTestHelper; - friend Environment* AddGlobalTestEnvironment(Environment* env); - friend internal::UnitTestImpl* internal::GetUnitTestImpl(); - friend void internal::ReportFailureInUnknownLocation( - TestPartResult::Type result_type, - const std::string& message); - - // Creates an empty UnitTest. - UnitTest(); - - // D'tor - virtual ~UnitTest(); - - // Pushes a trace defined by SCOPED_TRACE() on to the per-thread - // Google Test trace stack. - void PushGTestTrace(const internal::TraceInfo& trace) - GTEST_LOCK_EXCLUDED_(mutex_); - - // Pops a trace from the per-thread Google Test trace stack. - void PopGTestTrace() - GTEST_LOCK_EXCLUDED_(mutex_); - - // Protects mutable state in *impl_. This is mutable as some const - // methods need to lock it too. - mutable internal::Mutex mutex_; - - // Opaque implementation object. This field is never changed once - // the object is constructed. We don't mark it as const here, as - // doing so will cause a warning in the constructor of UnitTest. - // Mutable state in *impl_ is protected by mutex_. - internal::UnitTestImpl* impl_; - - // We disallow copying UnitTest. - GTEST_DISALLOW_COPY_AND_ASSIGN_(UnitTest); -}; - -// A convenient wrapper for adding an environment for the test -// program. -// -// You should call this before RUN_ALL_TESTS() is called, probably in -// main(). If you use gtest_main, you need to call this before main() -// starts for it to take effect. For example, you can define a global -// variable like this: -// -// testing::Environment* const foo_env = -// testing::AddGlobalTestEnvironment(new FooEnvironment); -// -// However, we strongly recommend you to write your own main() and -// call AddGlobalTestEnvironment() there, as relying on initialization -// of global variables makes the code harder to read and may cause -// problems when you register multiple environments from different -// translation units and the environments have dependencies among them -// (remember that the compiler doesn't guarantee the order in which -// global variables from different translation units are initialized). -inline Environment* AddGlobalTestEnvironment(Environment* env) { - return UnitTest::GetInstance()->AddEnvironment(env); -} - -// Initializes Google Test. This must be called before calling -// RUN_ALL_TESTS(). In particular, it parses a command line for the -// flags that Google Test recognizes. Whenever a Google Test flag is -// seen, it is removed from argv, and *argc is decremented. -// -// No value is returned. Instead, the Google Test flag variables are -// updated. -// -// Calling the function for the second time has no user-visible effect. -GTEST_API_ void InitGoogleTest(int* argc, char** argv); - -// This overloaded version can be used in Windows programs compiled in -// UNICODE mode. -GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv); - -// This overloaded version can be used on Arduino/embedded platforms where -// there is no argc/argv. -GTEST_API_ void InitGoogleTest(); - -namespace internal { - -// Separate the error generating code from the code path to reduce the stack -// frame size of CmpHelperEQ. This helps reduce the overhead of some sanitizers -// when calling EXPECT_* in a tight loop. -template -AssertionResult CmpHelperEQFailure(const char* lhs_expression, - const char* rhs_expression, - const T1& lhs, const T2& rhs) { - return EqFailure(lhs_expression, - rhs_expression, - FormatForComparisonFailureMessage(lhs, rhs), - FormatForComparisonFailureMessage(rhs, lhs), - false); -} - -// This block of code defines operator==/!= -// to block lexical scope lookup. -// It prevents using invalid operator==/!= defined at namespace scope. -struct faketype {}; -inline bool operator==(faketype, faketype) { return true; } -inline bool operator!=(faketype, faketype) { return false; } - -// The helper function for {ASSERT|EXPECT}_EQ. -template -AssertionResult CmpHelperEQ(const char* lhs_expression, - const char* rhs_expression, - const T1& lhs, - const T2& rhs) { - if (lhs == rhs) { - return AssertionSuccess(); - } - - return CmpHelperEQFailure(lhs_expression, rhs_expression, lhs, rhs); -} - -// With this overloaded version, we allow anonymous enums to be used -// in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous enums -// can be implicitly cast to BiggestInt. -GTEST_API_ AssertionResult CmpHelperEQ(const char* lhs_expression, - const char* rhs_expression, - BiggestInt lhs, - BiggestInt rhs); - -class EqHelper { - public: - // This templatized version is for the general case. - template < - typename T1, typename T2, - // Disable this overload for cases where one argument is a pointer - // and the other is the null pointer constant. - typename std::enable_if::value || - !std::is_pointer::value>::type* = nullptr> - static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, const T1& lhs, - const T2& rhs) { - return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); - } - - // With this overloaded version, we allow anonymous enums to be used - // in {ASSERT|EXPECT}_EQ when compiled with gcc 4, as anonymous - // enums can be implicitly cast to BiggestInt. - // - // Even though its body looks the same as the above version, we - // cannot merge the two, as it will make anonymous enums unhappy. - static AssertionResult Compare(const char* lhs_expression, - const char* rhs_expression, - BiggestInt lhs, - BiggestInt rhs) { - return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs); - } - - template - static AssertionResult Compare( - const char* lhs_expression, const char* rhs_expression, - // Handle cases where '0' is used as a null pointer literal. - std::nullptr_t /* lhs */, T* rhs) { - // We already know that 'lhs' is a null pointer. - return CmpHelperEQ(lhs_expression, rhs_expression, static_cast(nullptr), - rhs); - } -}; - -// Separate the error generating code from the code path to reduce the stack -// frame size of CmpHelperOP. This helps reduce the overhead of some sanitizers -// when calling EXPECT_OP in a tight loop. -template -AssertionResult CmpHelperOpFailure(const char* expr1, const char* expr2, - const T1& val1, const T2& val2, - const char* op) { - return AssertionFailure() - << "Expected: (" << expr1 << ") " << op << " (" << expr2 - << "), actual: " << FormatForComparisonFailureMessage(val1, val2) - << " vs " << FormatForComparisonFailureMessage(val2, val1); -} - -// A macro for implementing the helper functions needed to implement -// ASSERT_?? and EXPECT_??. It is here just to avoid copy-and-paste -// of similar code. -// -// For each templatized helper function, we also define an overloaded -// version for BiggestInt in order to reduce code bloat and allow -// anonymous enums to be used with {ASSERT|EXPECT}_?? when compiled -// with gcc 4. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -#define GTEST_IMPL_CMP_HELPER_(op_name, op)\ -template \ -AssertionResult CmpHelper##op_name(const char* expr1, const char* expr2, \ - const T1& val1, const T2& val2) {\ - if (val1 op val2) {\ - return AssertionSuccess();\ - } else {\ - return CmpHelperOpFailure(expr1, expr2, val1, val2, #op);\ - }\ -}\ -GTEST_API_ AssertionResult CmpHelper##op_name(\ - const char* expr1, const char* expr2, BiggestInt val1, BiggestInt val2) - -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - -// Implements the helper function for {ASSERT|EXPECT}_NE -GTEST_IMPL_CMP_HELPER_(NE, !=); -// Implements the helper function for {ASSERT|EXPECT}_LE -GTEST_IMPL_CMP_HELPER_(LE, <=); -// Implements the helper function for {ASSERT|EXPECT}_LT -GTEST_IMPL_CMP_HELPER_(LT, <); -// Implements the helper function for {ASSERT|EXPECT}_GE -GTEST_IMPL_CMP_HELPER_(GE, >=); -// Implements the helper function for {ASSERT|EXPECT}_GT -GTEST_IMPL_CMP_HELPER_(GT, >); - -#undef GTEST_IMPL_CMP_HELPER_ - -// The helper function for {ASSERT|EXPECT}_STREQ. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRCASEEQ. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRCASEEQ(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRNE. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - -// The helper function for {ASSERT|EXPECT}_STRCASENE. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRCASENE(const char* s1_expression, - const char* s2_expression, - const char* s1, - const char* s2); - - -// Helper function for *_STREQ on wide strings. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTREQ(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, - const wchar_t* s2); - -// Helper function for *_STRNE on wide strings. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult CmpHelperSTRNE(const char* s1_expression, - const char* s2_expression, - const wchar_t* s1, - const wchar_t* s2); - -} // namespace internal - -// IsSubstring() and IsNotSubstring() are intended to be used as the -// first argument to {EXPECT,ASSERT}_PRED_FORMAT2(), not by -// themselves. They check whether needle is a substring of haystack -// (NULL is considered a substring of itself only), and return an -// appropriate error message when they fail. -// -// The {needle,haystack}_expr arguments are the stringified -// expressions that generated the two real arguments. -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack); -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const char* needle, const char* haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const wchar_t* needle, const wchar_t* haystack); -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, const ::std::string& haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::string& needle, const ::std::string& haystack); - -#if GTEST_HAS_STD_WSTRING -GTEST_API_ AssertionResult IsSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, const ::std::wstring& haystack); -GTEST_API_ AssertionResult IsNotSubstring( - const char* needle_expr, const char* haystack_expr, - const ::std::wstring& needle, const ::std::wstring& haystack); -#endif // GTEST_HAS_STD_WSTRING - -namespace internal { - -// Helper template function for comparing floating-points. -// -// Template parameter: -// -// RawType: the raw floating-point type (either float or double) -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -template -AssertionResult CmpHelperFloatingPointEQ(const char* lhs_expression, - const char* rhs_expression, - RawType lhs_value, - RawType rhs_value) { - const FloatingPoint lhs(lhs_value), rhs(rhs_value); - - if (lhs.AlmostEquals(rhs)) { - return AssertionSuccess(); - } - - ::std::stringstream lhs_ss; - lhs_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << lhs_value; - - ::std::stringstream rhs_ss; - rhs_ss << std::setprecision(std::numeric_limits::digits10 + 2) - << rhs_value; - - return EqFailure(lhs_expression, - rhs_expression, - StringStreamToString(&lhs_ss), - StringStreamToString(&rhs_ss), - false); -} - -// Helper function for implementing ASSERT_NEAR. -// -// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -GTEST_API_ AssertionResult DoubleNearPredFormat(const char* expr1, - const char* expr2, - const char* abs_error_expr, - double val1, - double val2, - double abs_error); - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// A class that enables one to stream messages to assertion macros -class GTEST_API_ AssertHelper { - public: - // Constructor. - AssertHelper(TestPartResult::Type type, - const char* file, - int line, - const char* message); - ~AssertHelper(); - - // Message assignment is a semantic trick to enable assertion - // streaming; see the GTEST_MESSAGE_ macro below. - void operator=(const Message& message) const; - - private: - // We put our data in a struct so that the size of the AssertHelper class can - // be as small as possible. This is important because gcc is incapable of - // re-using stack space even for temporary variables, so every EXPECT_EQ - // reserves stack space for another AssertHelper. - struct AssertHelperData { - AssertHelperData(TestPartResult::Type t, - const char* srcfile, - int line_num, - const char* msg) - : type(t), file(srcfile), line(line_num), message(msg) { } - - TestPartResult::Type const type; - const char* const file; - int const line; - std::string const message; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData); - }; - - AssertHelperData* const data_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelper); -}; - -enum GTestColor { COLOR_DEFAULT, COLOR_RED, COLOR_GREEN, COLOR_YELLOW }; - -GTEST_API_ GTEST_ATTRIBUTE_PRINTF_(2, 3) void ColoredPrintf(GTestColor color, - const char* fmt, - ...); - -} // namespace internal - -// The pure interface class that all value-parameterized tests inherit from. -// A value-parameterized class must inherit from both ::testing::Test and -// ::testing::WithParamInterface. In most cases that just means inheriting -// from ::testing::TestWithParam, but more complicated test hierarchies -// may need to inherit from Test and WithParamInterface at different levels. -// -// This interface has support for accessing the test parameter value via -// the GetParam() method. -// -// Use it with one of the parameter generator defining functions, like Range(), -// Values(), ValuesIn(), Bool(), and Combine(). -// -// class FooTest : public ::testing::TestWithParam { -// protected: -// FooTest() { -// // Can use GetParam() here. -// } -// ~FooTest() override { -// // Can use GetParam() here. -// } -// void SetUp() override { -// // Can use GetParam() here. -// } -// void TearDown override { -// // Can use GetParam() here. -// } -// }; -// TEST_P(FooTest, DoesBar) { -// // Can use GetParam() method here. -// Foo foo; -// ASSERT_TRUE(foo.DoesBar(GetParam())); -// } -// INSTANTIATE_TEST_SUITE_P(OneToTenRange, FooTest, ::testing::Range(1, 10)); - -template -class WithParamInterface { - public: - typedef T ParamType; - virtual ~WithParamInterface() {} - - // The current parameter value. Is also available in the test fixture's - // constructor. - static const ParamType& GetParam() { - GTEST_CHECK_(parameter_ != nullptr) - << "GetParam() can only be called inside a value-parameterized test " - << "-- did you intend to write TEST_P instead of TEST_F?"; - return *parameter_; - } - - private: - // Sets parameter value. The caller is responsible for making sure the value - // remains alive and unchanged throughout the current test. - static void SetParam(const ParamType* parameter) { - parameter_ = parameter; - } - - // Static value used for accessing parameter during a test lifetime. - static const ParamType* parameter_; - - // TestClass must be a subclass of WithParamInterface and Test. - template friend class internal::ParameterizedTestFactory; -}; - -template -const T* WithParamInterface::parameter_ = nullptr; - -// Most value-parameterized classes can ignore the existence of -// WithParamInterface, and can just inherit from ::testing::TestWithParam. - -template -class TestWithParam : public Test, public WithParamInterface { -}; - -// Macros for indicating success/failure in test code. - -// Skips test in runtime. -// Skipping test aborts current function. -// Skipped tests are neither successful nor failed. -#define GTEST_SKIP() GTEST_SKIP_("Skipped") - -// ADD_FAILURE unconditionally adds a failure to the current test. -// SUCCEED generates a success - it doesn't automatically make the -// current test successful, as a test is only successful when it has -// no failure. -// -// EXPECT_* verifies that a certain condition is satisfied. If not, -// it behaves like ADD_FAILURE. In particular: -// -// EXPECT_TRUE verifies that a Boolean condition is true. -// EXPECT_FALSE verifies that a Boolean condition is false. -// -// FAIL and ASSERT_* are similar to ADD_FAILURE and EXPECT_*, except -// that they will also abort the current function on failure. People -// usually want the fail-fast behavior of FAIL and ASSERT_*, but those -// writing data-driven tests often find themselves using ADD_FAILURE -// and EXPECT_* more. - -// Generates a nonfatal failure with a generic message. -#define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") - -// Generates a nonfatal failure at the given source file location with -// a generic message. -#define ADD_FAILURE_AT(file, line) \ - GTEST_MESSAGE_AT_(file, line, "Failed", \ - ::testing::TestPartResult::kNonFatalFailure) - -// Generates a fatal failure with a generic message. -#define GTEST_FAIL() GTEST_FATAL_FAILURE_("Failed") - -// Like GTEST_FAIL(), but at the given source file location. -#define GTEST_FAIL_AT(file, line) \ - GTEST_MESSAGE_AT_(file, line, "Failed", \ - ::testing::TestPartResult::kFatalFailure) - -// Define this macro to 1 to omit the definition of FAIL(), which is a -// generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_FAIL -# define FAIL() GTEST_FAIL() -#endif - -// Generates a success with a generic message. -#define GTEST_SUCCEED() GTEST_SUCCESS_("Succeeded") - -// Define this macro to 1 to omit the definition of SUCCEED(), which -// is a generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_SUCCEED -# define SUCCEED() GTEST_SUCCEED() -#endif - -// Macros for testing exceptions. -// -// * {ASSERT|EXPECT}_THROW(statement, expected_exception): -// Tests that the statement throws the expected exception. -// * {ASSERT|EXPECT}_NO_THROW(statement): -// Tests that the statement doesn't throw any exception. -// * {ASSERT|EXPECT}_ANY_THROW(statement): -// Tests that the statement throws an exception. - -#define EXPECT_THROW(statement, expected_exception) \ - GTEST_TEST_THROW_(statement, expected_exception, GTEST_NONFATAL_FAILURE_) -#define EXPECT_NO_THROW(statement) \ - GTEST_TEST_NO_THROW_(statement, GTEST_NONFATAL_FAILURE_) -#define EXPECT_ANY_THROW(statement) \ - GTEST_TEST_ANY_THROW_(statement, GTEST_NONFATAL_FAILURE_) -#define ASSERT_THROW(statement, expected_exception) \ - GTEST_TEST_THROW_(statement, expected_exception, GTEST_FATAL_FAILURE_) -#define ASSERT_NO_THROW(statement) \ - GTEST_TEST_NO_THROW_(statement, GTEST_FATAL_FAILURE_) -#define ASSERT_ANY_THROW(statement) \ - GTEST_TEST_ANY_THROW_(statement, GTEST_FATAL_FAILURE_) - -// Boolean assertions. Condition can be either a Boolean expression or an -// AssertionResult. For more information on how to use AssertionResult with -// these macros see comments on that class. -#define EXPECT_TRUE(condition) \ - GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ - GTEST_NONFATAL_FAILURE_) -#define EXPECT_FALSE(condition) \ - GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ - GTEST_NONFATAL_FAILURE_) -#define ASSERT_TRUE(condition) \ - GTEST_TEST_BOOLEAN_(condition, #condition, false, true, \ - GTEST_FATAL_FAILURE_) -#define ASSERT_FALSE(condition) \ - GTEST_TEST_BOOLEAN_(!(condition), #condition, true, false, \ - GTEST_FATAL_FAILURE_) - -// Macros for testing equalities and inequalities. -// -// * {ASSERT|EXPECT}_EQ(v1, v2): Tests that v1 == v2 -// * {ASSERT|EXPECT}_NE(v1, v2): Tests that v1 != v2 -// * {ASSERT|EXPECT}_LT(v1, v2): Tests that v1 < v2 -// * {ASSERT|EXPECT}_LE(v1, v2): Tests that v1 <= v2 -// * {ASSERT|EXPECT}_GT(v1, v2): Tests that v1 > v2 -// * {ASSERT|EXPECT}_GE(v1, v2): Tests that v1 >= v2 -// -// When they are not, Google Test prints both the tested expressions and -// their actual values. The values must be compatible built-in types, -// or you will get a compiler error. By "compatible" we mean that the -// values can be compared by the respective operator. -// -// Note: -// -// 1. It is possible to make a user-defined type work with -// {ASSERT|EXPECT}_??(), but that requires overloading the -// comparison operators and is thus discouraged by the Google C++ -// Usage Guide. Therefore, you are advised to use the -// {ASSERT|EXPECT}_TRUE() macro to assert that two objects are -// equal. -// -// 2. The {ASSERT|EXPECT}_??() macros do pointer comparisons on -// pointers (in particular, C strings). Therefore, if you use it -// with two C strings, you are testing how their locations in memory -// are related, not how their content is related. To compare two C -// strings by content, use {ASSERT|EXPECT}_STR*(). -// -// 3. {ASSERT|EXPECT}_EQ(v1, v2) is preferred to -// {ASSERT|EXPECT}_TRUE(v1 == v2), as the former tells you -// what the actual value is when it fails, and similarly for the -// other comparisons. -// -// 4. Do not depend on the order in which {ASSERT|EXPECT}_??() -// evaluate their arguments, which is undefined. -// -// 5. These macros evaluate their arguments exactly once. -// -// Examples: -// -// EXPECT_NE(Foo(), 5); -// EXPECT_EQ(a_pointer, NULL); -// ASSERT_LT(i, array_size); -// ASSERT_GT(records.size(), 0) << "There is no record left."; - -#define EXPECT_EQ(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) -#define EXPECT_NE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) -#define EXPECT_LE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) -#define EXPECT_LT(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) -#define EXPECT_GE(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) -#define EXPECT_GT(val1, val2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) - -#define GTEST_ASSERT_EQ(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) -#define GTEST_ASSERT_NE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperNE, val1, val2) -#define GTEST_ASSERT_LE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLE, val1, val2) -#define GTEST_ASSERT_LT(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperLT, val1, val2) -#define GTEST_ASSERT_GE(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGE, val1, val2) -#define GTEST_ASSERT_GT(val1, val2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperGT, val1, val2) - -// Define macro GTEST_DONT_DEFINE_ASSERT_XY to 1 to omit the definition of -// ASSERT_XY(), which clashes with some users' own code. - -#if !GTEST_DONT_DEFINE_ASSERT_EQ -# define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_NE -# define ASSERT_NE(val1, val2) GTEST_ASSERT_NE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_LE -# define ASSERT_LE(val1, val2) GTEST_ASSERT_LE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_LT -# define ASSERT_LT(val1, val2) GTEST_ASSERT_LT(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_GE -# define ASSERT_GE(val1, val2) GTEST_ASSERT_GE(val1, val2) -#endif - -#if !GTEST_DONT_DEFINE_ASSERT_GT -# define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) -#endif - -// C-string Comparisons. All tests treat NULL and any non-NULL string -// as different. Two NULLs are equal. -// -// * {ASSERT|EXPECT}_STREQ(s1, s2): Tests that s1 == s2 -// * {ASSERT|EXPECT}_STRNE(s1, s2): Tests that s1 != s2 -// * {ASSERT|EXPECT}_STRCASEEQ(s1, s2): Tests that s1 == s2, ignoring case -// * {ASSERT|EXPECT}_STRCASENE(s1, s2): Tests that s1 != s2, ignoring case -// -// For wide or narrow string objects, you can use the -// {ASSERT|EXPECT}_??() macros. -// -// Don't depend on the order in which the arguments are evaluated, -// which is undefined. -// -// These macros evaluate their arguments exactly once. - -#define EXPECT_STREQ(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, s1, s2) -#define EXPECT_STRNE(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) -#define EXPECT_STRCASEEQ(s1, s2) \ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2) -#define EXPECT_STRCASENE(s1, s2)\ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) - -#define ASSERT_STREQ(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTREQ, s1, s2) -#define ASSERT_STRNE(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRNE, s1, s2) -#define ASSERT_STRCASEEQ(s1, s2) \ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASEEQ, s1, s2) -#define ASSERT_STRCASENE(s1, s2)\ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperSTRCASENE, s1, s2) - -// Macros for comparing floating-point numbers. -// -// * {ASSERT|EXPECT}_FLOAT_EQ(val1, val2): -// Tests that two float values are almost equal. -// * {ASSERT|EXPECT}_DOUBLE_EQ(val1, val2): -// Tests that two double values are almost equal. -// * {ASSERT|EXPECT}_NEAR(v1, v2, abs_error): -// Tests that v1 and v2 are within the given distance to each other. -// -// Google Test uses ULP-based comparison to automatically pick a default -// error bound that is appropriate for the operands. See the -// FloatingPoint template class in gtest-internal.h if you are -// interested in the implementation details. - -#define EXPECT_FLOAT_EQ(val1, val2)\ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define EXPECT_DOUBLE_EQ(val1, val2)\ - EXPECT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define ASSERT_FLOAT_EQ(val1, val2)\ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define ASSERT_DOUBLE_EQ(val1, val2)\ - ASSERT_PRED_FORMAT2(::testing::internal::CmpHelperFloatingPointEQ, \ - val1, val2) - -#define EXPECT_NEAR(val1, val2, abs_error)\ - EXPECT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ - val1, val2, abs_error) - -#define ASSERT_NEAR(val1, val2, abs_error)\ - ASSERT_PRED_FORMAT3(::testing::internal::DoubleNearPredFormat, \ - val1, val2, abs_error) - -// These predicate format functions work on floating-point values, and -// can be used in {ASSERT|EXPECT}_PRED_FORMAT2*(), e.g. -// -// EXPECT_PRED_FORMAT2(testing::DoubleLE, Foo(), 5.0); - -// Asserts that val1 is less than, or almost equal to, val2. Fails -// otherwise. In particular, it fails if either val1 or val2 is NaN. -GTEST_API_ AssertionResult FloatLE(const char* expr1, const char* expr2, - float val1, float val2); -GTEST_API_ AssertionResult DoubleLE(const char* expr1, const char* expr2, - double val1, double val2); - - -#if GTEST_OS_WINDOWS - -// Macros that test for HRESULT failure and success, these are only useful -// on Windows, and rely on Windows SDK macros and APIs to compile. -// -// * {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED}(expr) -// -// When expr unexpectedly fails or succeeds, Google Test prints the -// expected result and the actual result with both a human-readable -// string representation of the error, if available, as well as the -// hex result code. -# define EXPECT_HRESULT_SUCCEEDED(expr) \ - EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) - -# define ASSERT_HRESULT_SUCCEEDED(expr) \ - ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTSuccess, (expr)) - -# define EXPECT_HRESULT_FAILED(expr) \ - EXPECT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) - -# define ASSERT_HRESULT_FAILED(expr) \ - ASSERT_PRED_FORMAT1(::testing::internal::IsHRESULTFailure, (expr)) - -#endif // GTEST_OS_WINDOWS - -// Macros that execute statement and check that it doesn't generate new fatal -// failures in the current thread. -// -// * {ASSERT|EXPECT}_NO_FATAL_FAILURE(statement); -// -// Examples: -// -// EXPECT_NO_FATAL_FAILURE(Process()); -// ASSERT_NO_FATAL_FAILURE(Process()) << "Process() failed"; -// -#define ASSERT_NO_FATAL_FAILURE(statement) \ - GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_FATAL_FAILURE_) -#define EXPECT_NO_FATAL_FAILURE(statement) \ - GTEST_TEST_NO_FATAL_FAILURE_(statement, GTEST_NONFATAL_FAILURE_) - -// Causes a trace (including the given source file path and line number, -// and the given message) to be included in every test failure message generated -// by code in the scope of the lifetime of an instance of this class. The effect -// is undone with the destruction of the instance. -// -// The message argument can be anything streamable to std::ostream. -// -// Example: -// testing::ScopedTrace trace("file.cc", 123, "message"); -// -class GTEST_API_ ScopedTrace { - public: - // The c'tor pushes the given source file location and message onto - // a trace stack maintained by Google Test. - - // Template version. Uses Message() to convert the values into strings. - // Slow, but flexible. - template - ScopedTrace(const char* file, int line, const T& message) { - PushTrace(file, line, (Message() << message).GetString()); - } - - // Optimize for some known types. - ScopedTrace(const char* file, int line, const char* message) { - PushTrace(file, line, message ? message : "(null)"); - } - - ScopedTrace(const char* file, int line, const std::string& message) { - PushTrace(file, line, message); - } - - // The d'tor pops the info pushed by the c'tor. - // - // Note that the d'tor is not virtual in order to be efficient. - // Don't inherit from ScopedTrace! - ~ScopedTrace(); - - private: - void PushTrace(const char* file, int line, std::string message); - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedTrace); -} GTEST_ATTRIBUTE_UNUSED_; // A ScopedTrace object does its job in its - // c'tor and d'tor. Therefore it doesn't - // need to be used otherwise. - -// Causes a trace (including the source file path, the current line -// number, and the given message) to be included in every test failure -// message generated by code in the current scope. The effect is -// undone when the control leaves the current scope. -// -// The message argument can be anything streamable to std::ostream. -// -// In the implementation, we include the current line number as part -// of the dummy variable name, thus allowing multiple SCOPED_TRACE()s -// to appear in the same block - as long as they are on different -// lines. -// -// Assuming that each thread maintains its own stack of traces. -// Therefore, a SCOPED_TRACE() would (correctly) only affect the -// assertions in its own thread. -#define SCOPED_TRACE(message) \ - ::testing::ScopedTrace GTEST_CONCAT_TOKEN_(gtest_trace_, __LINE__)(\ - __FILE__, __LINE__, (message)) - -// Compile-time assertion for type equality. -// StaticAssertTypeEq() compiles if and only if type1 and type2 -// are the same type. The value it returns is not interesting. -// -// Instead of making StaticAssertTypeEq a class template, we make it a -// function template that invokes a helper class template. This -// prevents a user from misusing StaticAssertTypeEq by -// defining objects of that type. -// -// CAVEAT: -// -// When used inside a method of a class template, -// StaticAssertTypeEq() is effective ONLY IF the method is -// instantiated. For example, given: -// -// template class Foo { -// public: -// void Bar() { testing::StaticAssertTypeEq(); } -// }; -// -// the code: -// -// void Test1() { Foo foo; } -// -// will NOT generate a compiler error, as Foo::Bar() is never -// actually instantiated. Instead, you need: -// -// void Test2() { Foo foo; foo.Bar(); } -// -// to cause a compiler error. -template -constexpr bool StaticAssertTypeEq() noexcept { - static_assert(std::is_same::value, - "type1 and type2 are not the same type"); - return true; -} - -// Defines a test. -// -// The first parameter is the name of the test suite, and the second -// parameter is the name of the test within the test suite. -// -// The convention is to end the test suite name with "Test". For -// example, a test suite for the Foo class can be named FooTest. -// -// Test code should appear between braces after an invocation of -// this macro. Example: -// -// TEST(FooTest, InitializesCorrectly) { -// Foo foo; -// EXPECT_TRUE(foo.StatusIsOK()); -// } - -// Note that we call GetTestTypeId() instead of GetTypeId< -// ::testing::Test>() here to get the type ID of testing::Test. This -// is to work around a suspected linker bug when using Google Test as -// a framework on Mac OS X. The bug causes GetTypeId< -// ::testing::Test>() to return different values depending on whether -// the call is from the Google Test framework itself or from user test -// code. GetTestTypeId() is guaranteed to always return the same -// value, as it always calls GetTypeId<>() from the Google Test -// framework. -#define GTEST_TEST(test_suite_name, test_name) \ - GTEST_TEST_(test_suite_name, test_name, ::testing::Test, \ - ::testing::internal::GetTestTypeId()) - -// Define this macro to 1 to omit the definition of TEST(), which -// is a generic name and clashes with some other libraries. -#if !GTEST_DONT_DEFINE_TEST -#define TEST(test_suite_name, test_name) GTEST_TEST(test_suite_name, test_name) -#endif - -// Defines a test that uses a test fixture. -// -// The first parameter is the name of the test fixture class, which -// also doubles as the test suite name. The second parameter is the -// name of the test within the test suite. -// -// A test fixture class must be declared earlier. The user should put -// the test code between braces after using this macro. Example: -// -// class FooTest : public testing::Test { -// protected: -// void SetUp() override { b_.AddElement(3); } -// -// Foo a_; -// Foo b_; -// }; -// -// TEST_F(FooTest, InitializesCorrectly) { -// EXPECT_TRUE(a_.StatusIsOK()); -// } -// -// TEST_F(FooTest, ReturnsElementCountCorrectly) { -// EXPECT_EQ(a_.size(), 0); -// EXPECT_EQ(b_.size(), 1); -// } -// -// GOOGLETEST_CM0011 DO NOT DELETE -#define TEST_F(test_fixture, test_name)\ - GTEST_TEST_(test_fixture, test_name, test_fixture, \ - ::testing::internal::GetTypeId()) - -// Returns a path to temporary directory. -// Tries to determine an appropriate directory for the platform. -GTEST_API_ std::string TempDir(); - -#ifdef _MSC_VER -# pragma warning(pop) -#endif - -// Dynamically registers a test with the framework. -// -// This is an advanced API only to be used when the `TEST` macros are -// insufficient. The macros should be preferred when possible, as they avoid -// most of the complexity of calling this function. -// -// The `factory` argument is a factory callable (move-constructible) object or -// function pointer that creates a new instance of the Test object. It -// handles ownership to the caller. The signature of the callable is -// `Fixture*()`, where `Fixture` is the test fixture class for the test. All -// tests registered with the same `test_suite_name` must return the same -// fixture type. This is checked at runtime. -// -// The framework will infer the fixture class from the factory and will call -// the `SetUpTestSuite` and `TearDownTestSuite` for it. -// -// Must be called before `RUN_ALL_TESTS()` is invoked, otherwise behavior is -// undefined. -// -// Use case example: -// -// class MyFixture : public ::testing::Test { -// public: -// // All of these optional, just like in regular macro usage. -// static void SetUpTestSuite() { ... } -// static void TearDownTestSuite() { ... } -// void SetUp() override { ... } -// void TearDown() override { ... } -// }; -// -// class MyTest : public MyFixture { -// public: -// explicit MyTest(int data) : data_(data) {} -// void TestBody() override { ... } -// -// private: -// int data_; -// }; -// -// void RegisterMyTests(const std::vector& values) { -// for (int v : values) { -// ::testing::RegisterTest( -// "MyFixture", ("Test" + std::to_string(v)).c_str(), nullptr, -// std::to_string(v).c_str(), -// __FILE__, __LINE__, -// // Important to use the fixture type as the return type here. -// [=]() -> MyFixture* { return new MyTest(v); }); -// } -// } -// ... -// int main(int argc, char** argv) { -// std::vector values_to_test = LoadValuesFromConfig(); -// RegisterMyTests(values_to_test); -// ... -// return RUN_ALL_TESTS(); -// } -// -template -TestInfo* RegisterTest(const char* test_suite_name, const char* test_name, - const char* type_param, const char* value_param, - const char* file, int line, Factory factory) { - using TestT = typename std::remove_pointer::type; - - class FactoryImpl : public internal::TestFactoryBase { - public: - explicit FactoryImpl(Factory f) : factory_(std::move(f)) {} - Test* CreateTest() override { return factory_(); } - - private: - Factory factory_; - }; - - return internal::MakeAndRegisterTestInfo( - test_suite_name, test_name, type_param, value_param, - internal::CodeLocation(file, line), internal::GetTypeId(), - internal::SuiteApiResolver::GetSetUpCaseOrSuite(file, line), - internal::SuiteApiResolver::GetTearDownCaseOrSuite(file, line), - new FactoryImpl{std::move(factory)}); -} - -} // namespace testing - -// Use this function in main() to run all tests. It returns 0 if all -// tests are successful, or 1 otherwise. -// -// RUN_ALL_TESTS() should be invoked after the command line has been -// parsed by InitGoogleTest(). -// -// This function was formerly a macro; thus, it is in the global -// namespace and has an all-caps name. -int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_; - -inline int RUN_ALL_TESTS() { - return ::testing::UnitTest::GetInstance()->Run(); -} - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_GTEST_H_ diff --git a/include/gtest/gtest_pred_impl.h b/include/gtest/gtest_pred_impl.h deleted file mode 100644 index d514255..0000000 --- a/include/gtest/gtest_pred_impl.h +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2006, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// This file is AUTOMATICALLY GENERATED on 01/02/2019 by command -// 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! -// -// Implements a family of generic predicate assertion macros. -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ - -#include "gtest/gtest.h" - -namespace testing { - -// This header implements a family of generic predicate assertion -// macros: -// -// ASSERT_PRED_FORMAT1(pred_format, v1) -// ASSERT_PRED_FORMAT2(pred_format, v1, v2) -// ... -// -// where pred_format is a function or functor that takes n (in the -// case of ASSERT_PRED_FORMATn) values and their source expression -// text, and returns a testing::AssertionResult. See the definition -// of ASSERT_EQ in gtest.h for an example. -// -// If you don't care about formatting, you can use the more -// restrictive version: -// -// ASSERT_PRED1(pred, v1) -// ASSERT_PRED2(pred, v1, v2) -// ... -// -// where pred is an n-ary function or functor that returns bool, -// and the values v1, v2, ..., must support the << operator for -// streaming to std::ostream. -// -// We also define the EXPECT_* variations. -// -// For now we only support predicates whose arity is at most 5. -// Please email googletestframework@googlegroups.com if you need -// support for higher arities. - -// GTEST_ASSERT_ is the basic statement to which all of the assertions -// in this file reduce. Don't use this in your code. - -#define GTEST_ASSERT_(expression, on_failure) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (const ::testing::AssertionResult gtest_ar = (expression)) \ - ; \ - else \ - on_failure(gtest_ar.failure_message()) - - -// Helper function for implementing {EXPECT|ASSERT}_PRED1. Don't use -// this in your code. -template -AssertionResult AssertPred1Helper(const char* pred_text, - const char* e1, - Pred pred, - const T1& v1) { - if (pred(v1)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1. -// Don't use this in your code. -#define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, v1), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use -// this in your code. -#define GTEST_PRED1_(pred, v1, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred1Helper(#pred, \ - #v1, \ - pred, \ - v1), on_failure) - -// Unary predicate assertion macros. -#define EXPECT_PRED_FORMAT1(pred_format, v1) \ - GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED1(pred, v1) \ - GTEST_PRED1_(pred, v1, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT1(pred_format, v1) \ - GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED1(pred, v1) \ - GTEST_PRED1_(pred, v1, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED2. Don't use -// this in your code. -template -AssertionResult AssertPred2Helper(const char* pred_text, - const char* e1, - const char* e2, - Pred pred, - const T1& v1, - const T2& v2) { - if (pred(v1, v2)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2. -// Don't use this in your code. -#define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use -// this in your code. -#define GTEST_PRED2_(pred, v1, v2, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred2Helper(#pred, \ - #v1, \ - #v2, \ - pred, \ - v1, \ - v2), on_failure) - -// Binary predicate assertion macros. -#define EXPECT_PRED_FORMAT2(pred_format, v1, v2) \ - GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED2(pred, v1, v2) \ - GTEST_PRED2_(pred, v1, v2, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT2(pred_format, v1, v2) \ - GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED2(pred, v1, v2) \ - GTEST_PRED2_(pred, v1, v2, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED3. Don't use -// this in your code. -template -AssertionResult AssertPred3Helper(const char* pred_text, - const char* e1, - const char* e2, - const char* e3, - Pred pred, - const T1& v1, - const T2& v2, - const T3& v3) { - if (pred(v1, v2, v3)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3. -// Don't use this in your code. -#define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use -// this in your code. -#define GTEST_PRED3_(pred, v1, v2, v3, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred3Helper(#pred, \ - #v1, \ - #v2, \ - #v3, \ - pred, \ - v1, \ - v2, \ - v3), on_failure) - -// Ternary predicate assertion macros. -#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3) \ - GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED3(pred, v1, v2, v3) \ - GTEST_PRED3_(pred, v1, v2, v3, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3) \ - GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED3(pred, v1, v2, v3) \ - GTEST_PRED3_(pred, v1, v2, v3, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED4. Don't use -// this in your code. -template -AssertionResult AssertPred4Helper(const char* pred_text, - const char* e1, - const char* e2, - const char* e3, - const char* e4, - Pred pred, - const T1& v1, - const T2& v2, - const T3& v3, - const T4& v4) { - if (pred(v1, v2, v3, v4)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 << ", " << e4 - << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3) << "\n" - << e4 << " evaluates to " << ::testing::PrintToString(v4); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4. -// Don't use this in your code. -#define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use -// this in your code. -#define GTEST_PRED4_(pred, v1, v2, v3, v4, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred4Helper(#pred, \ - #v1, \ - #v2, \ - #v3, \ - #v4, \ - pred, \ - v1, \ - v2, \ - v3, \ - v4), on_failure) - -// 4-ary predicate assertion macros. -#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ - GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED4(pred, v1, v2, v3, v4) \ - GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4) \ - GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED4(pred, v1, v2, v3, v4) \ - GTEST_PRED4_(pred, v1, v2, v3, v4, GTEST_FATAL_FAILURE_) - - - -// Helper function for implementing {EXPECT|ASSERT}_PRED5. Don't use -// this in your code. -template -AssertionResult AssertPred5Helper(const char* pred_text, - const char* e1, - const char* e2, - const char* e3, - const char* e4, - const char* e5, - Pred pred, - const T1& v1, - const T2& v2, - const T3& v3, - const T4& v4, - const T5& v5) { - if (pred(v1, v2, v3, v4, v5)) return AssertionSuccess(); - - return AssertionFailure() - << pred_text << "(" << e1 << ", " << e2 << ", " << e3 << ", " << e4 - << ", " << e5 << ") evaluates to false, where" - << "\n" - << e1 << " evaluates to " << ::testing::PrintToString(v1) << "\n" - << e2 << " evaluates to " << ::testing::PrintToString(v2) << "\n" - << e3 << " evaluates to " << ::testing::PrintToString(v3) << "\n" - << e4 << " evaluates to " << ::testing::PrintToString(v4) << "\n" - << e5 << " evaluates to " << ::testing::PrintToString(v5); -} - -// Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5. -// Don't use this in your code. -#define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ - on_failure) - -// Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use -// this in your code. -#define GTEST_PRED5_(pred, v1, v2, v3, v4, v5, on_failure)\ - GTEST_ASSERT_(::testing::AssertPred5Helper(#pred, \ - #v1, \ - #v2, \ - #v3, \ - #v4, \ - #v5, \ - pred, \ - v1, \ - v2, \ - v3, \ - v4, \ - v5), on_failure) - -// 5-ary predicate assertion macros. -#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ - GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) -#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5) \ - GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_NONFATAL_FAILURE_) -#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5) \ - GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) -#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5) \ - GTEST_PRED5_(pred, v1, v2, v3, v4, v5, GTEST_FATAL_FAILURE_) - - - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_PRED_IMPL_H_ diff --git a/include/gtest/gtest_prod.h b/include/gtest/gtest_prod.h deleted file mode 100644 index e651671..0000000 --- a/include/gtest/gtest_prod.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2006, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// -// Google C++ Testing and Mocking Framework definitions useful in production code. -// GOOGLETEST_CM0003 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_GTEST_PROD_H_ -#define GTEST_INCLUDE_GTEST_GTEST_PROD_H_ - -// When you need to test the private or protected members of a class, -// use the FRIEND_TEST macro to declare your tests as friends of the -// class. For example: -// -// class MyClass { -// private: -// void PrivateMethod(); -// FRIEND_TEST(MyClassTest, PrivateMethodWorks); -// }; -// -// class MyClassTest : public testing::Test { -// // ... -// }; -// -// TEST_F(MyClassTest, PrivateMethodWorks) { -// // Can call MyClass::PrivateMethod() here. -// } -// -// Note: The test class must be in the same namespace as the class being tested. -// For example, putting MyClassTest in an anonymous namespace will not work. - -#define FRIEND_TEST(test_case_name, test_name)\ -friend class test_case_name##_##test_name##_Test - -#endif // GTEST_INCLUDE_GTEST_GTEST_PROD_H_ diff --git a/include/gtest/internal/custom/README.md b/include/gtest/internal/custom/README.md deleted file mode 100644 index ff391fb..0000000 --- a/include/gtest/internal/custom/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Customization Points - -The custom directory is an injection point for custom user configurations. - -## Header `gtest.h` - -### The following macros can be defined: - -* `GTEST_OS_STACK_TRACE_GETTER_` - The name of an implementation of - `OsStackTraceGetterInterface`. -* `GTEST_CUSTOM_TEMPDIR_FUNCTION_` - An override for `testing::TempDir()`. See - `testing::TempDir` for semantics and signature. - -## Header `gtest-port.h` - -The following macros can be defined: - -### Flag related macros: - -* `GTEST_FLAG(flag_name)` -* `GTEST_USE_OWN_FLAGFILE_FLAG_` - Define to 0 when the system provides its - own flagfile flag parsing. -* `GTEST_DECLARE_bool_(name)` -* `GTEST_DECLARE_int32_(name)` -* `GTEST_DECLARE_string_(name)` -* `GTEST_DEFINE_bool_(name, default_val, doc)` -* `GTEST_DEFINE_int32_(name, default_val, doc)` -* `GTEST_DEFINE_string_(name, default_val, doc)` - -### Logging: - -* `GTEST_LOG_(severity)` -* `GTEST_CHECK_(condition)` -* Functions `LogToStderr()` and `FlushInfoLog()` have to be provided too. - -### Threading: - -* `GTEST_HAS_NOTIFICATION_` - Enabled if Notification is already provided. -* `GTEST_HAS_MUTEX_AND_THREAD_LOCAL_` - Enabled if `Mutex` and `ThreadLocal` - are already provided. Must also provide `GTEST_DECLARE_STATIC_MUTEX_(mutex)` - and `GTEST_DEFINE_STATIC_MUTEX_(mutex)` -* `GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks)` -* `GTEST_LOCK_EXCLUDED_(locks)` - -### Underlying library support features - -* `GTEST_HAS_CXXABI_H_` - -### Exporting API symbols: - -* `GTEST_API_` - Specifier for exported symbols. - -## Header `gtest-printers.h` - -* See documentation at `gtest/gtest-printers.h` for details on how to define a - custom printer. diff --git a/include/gtest/internal/custom/gtest-port.h b/include/gtest/internal/custom/gtest-port.h deleted file mode 100644 index cd85d95..0000000 --- a/include/gtest/internal/custom/gtest-port.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PORT_H_ diff --git a/include/gtest/internal/custom/gtest-printers.h b/include/gtest/internal/custom/gtest-printers.h deleted file mode 100644 index eb4467a..0000000 --- a/include/gtest/internal/custom/gtest-printers.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// This file provides an injection point for custom printers in a local -// installation of gTest. -// It will be included from gtest-printers.h and the overrides in this file -// will be visible to everyone. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_ diff --git a/include/gtest/internal/custom/gtest.h b/include/gtest/internal/custom/gtest.h deleted file mode 100644 index 4c8e07b..0000000 --- a/include/gtest/internal/custom/gtest.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Injection point for custom user configurations. See README for details -// -// ** Custom implementation starts here ** - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_ diff --git a/include/gtest/internal/gtest-death-test-internal.h b/include/gtest/internal/gtest-death-test-internal.h deleted file mode 100644 index 68bd353..0000000 --- a/include/gtest/internal/gtest-death-test-internal.h +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines internal utilities needed for implementing -// death tests. They are subject to change without notice. -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ - -#include "gtest/gtest-matchers.h" -#include "gtest/internal/gtest-internal.h" - -#include -#include - -namespace testing { -namespace internal { - -GTEST_DECLARE_string_(internal_run_death_test); - -// Names of the flags (needed for parsing Google Test flags). -const char kDeathTestStyleFlag[] = "death_test_style"; -const char kDeathTestUseFork[] = "death_test_use_fork"; -const char kInternalRunDeathTestFlag[] = "internal_run_death_test"; - -#if GTEST_HAS_DEATH_TEST - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// DeathTest is a class that hides much of the complexity of the -// GTEST_DEATH_TEST_ macro. It is abstract; its static Create method -// returns a concrete class that depends on the prevailing death test -// style, as defined by the --gtest_death_test_style and/or -// --gtest_internal_run_death_test flags. - -// In describing the results of death tests, these terms are used with -// the corresponding definitions: -// -// exit status: The integer exit information in the format specified -// by wait(2) -// exit code: The integer code passed to exit(3), _exit(2), or -// returned from main() -class GTEST_API_ DeathTest { - public: - // Create returns false if there was an error determining the - // appropriate action to take for the current death test; for example, - // if the gtest_death_test_style flag is set to an invalid value. - // The LastMessage method will return a more detailed message in that - // case. Otherwise, the DeathTest pointer pointed to by the "test" - // argument is set. If the death test should be skipped, the pointer - // is set to NULL; otherwise, it is set to the address of a new concrete - // DeathTest object that controls the execution of the current test. - static bool Create(const char* statement, Matcher matcher, - const char* file, int line, DeathTest** test); - DeathTest(); - virtual ~DeathTest() { } - - // A helper class that aborts a death test when it's deleted. - class ReturnSentinel { - public: - explicit ReturnSentinel(DeathTest* test) : test_(test) { } - ~ReturnSentinel() { test_->Abort(TEST_ENCOUNTERED_RETURN_STATEMENT); } - private: - DeathTest* const test_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(ReturnSentinel); - } GTEST_ATTRIBUTE_UNUSED_; - - // An enumeration of possible roles that may be taken when a death - // test is encountered. EXECUTE means that the death test logic should - // be executed immediately. OVERSEE means that the program should prepare - // the appropriate environment for a child process to execute the death - // test, then wait for it to complete. - enum TestRole { OVERSEE_TEST, EXECUTE_TEST }; - - // An enumeration of the three reasons that a test might be aborted. - enum AbortReason { - TEST_ENCOUNTERED_RETURN_STATEMENT, - TEST_THREW_EXCEPTION, - TEST_DID_NOT_DIE - }; - - // Assumes one of the above roles. - virtual TestRole AssumeRole() = 0; - - // Waits for the death test to finish and returns its status. - virtual int Wait() = 0; - - // Returns true if the death test passed; that is, the test process - // exited during the test, its exit status matches a user-supplied - // predicate, and its stderr output matches a user-supplied regular - // expression. - // The user-supplied predicate may be a macro expression rather - // than a function pointer or functor, or else Wait and Passed could - // be combined. - virtual bool Passed(bool exit_status_ok) = 0; - - // Signals that the death test did not die as expected. - virtual void Abort(AbortReason reason) = 0; - - // Returns a human-readable outcome message regarding the outcome of - // the last death test. - static const char* LastMessage(); - - static void set_last_death_test_message(const std::string& message); - - private: - // A string containing a description of the outcome of the last death test. - static std::string last_death_test_message_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest); -}; - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// Factory interface for death tests. May be mocked out for testing. -class DeathTestFactory { - public: - virtual ~DeathTestFactory() { } - virtual bool Create(const char* statement, - Matcher matcher, const char* file, - int line, DeathTest** test) = 0; -}; - -// A concrete DeathTestFactory implementation for normal use. -class DefaultDeathTestFactory : public DeathTestFactory { - public: - bool Create(const char* statement, Matcher matcher, - const char* file, int line, DeathTest** test) override; -}; - -// Returns true if exit_status describes a process that was terminated -// by a signal, or exited normally with a nonzero exit code. -GTEST_API_ bool ExitedUnsuccessfully(int exit_status); - -// A string passed to EXPECT_DEATH (etc.) is caught by one of these overloads -// and interpreted as a regex (rather than an Eq matcher) for legacy -// compatibility. -inline Matcher MakeDeathTestMatcher( - ::testing::internal::RE regex) { - return ContainsRegex(regex.pattern()); -} -inline Matcher MakeDeathTestMatcher(const char* regex) { - return ContainsRegex(regex); -} -inline Matcher MakeDeathTestMatcher( - const ::std::string& regex) { - return ContainsRegex(regex); -} - -// If a Matcher is passed to EXPECT_DEATH (etc.), it's -// used directly. -inline Matcher MakeDeathTestMatcher( - Matcher matcher) { - return matcher; -} - -// Traps C++ exceptions escaping statement and reports them as test -// failures. Note that trapping SEH exceptions is not implemented here. -# if GTEST_HAS_EXCEPTIONS -# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } catch (const ::std::exception& gtest_exception) { \ - fprintf(\ - stderr, \ - "\n%s: Caught std::exception-derived exception escaping the " \ - "death test statement. Exception message: %s\n", \ - ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \ - gtest_exception.what()); \ - fflush(stderr); \ - death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ - } catch (...) { \ - death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \ - } - -# else -# define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) - -# endif - -// This macro is for implementing ASSERT_DEATH*, EXPECT_DEATH*, -// ASSERT_EXIT*, and EXPECT_EXIT*. -#define GTEST_DEATH_TEST_(statement, predicate, regex_or_matcher, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - ::testing::internal::DeathTest* gtest_dt; \ - if (!::testing::internal::DeathTest::Create( \ - #statement, \ - ::testing::internal::MakeDeathTestMatcher(regex_or_matcher), \ - __FILE__, __LINE__, >est_dt)) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ - } \ - if (gtest_dt != nullptr) { \ - std::unique_ptr< ::testing::internal::DeathTest> gtest_dt_ptr(gtest_dt); \ - switch (gtest_dt->AssumeRole()) { \ - case ::testing::internal::DeathTest::OVERSEE_TEST: \ - if (!gtest_dt->Passed(predicate(gtest_dt->Wait()))) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__); \ - } \ - break; \ - case ::testing::internal::DeathTest::EXECUTE_TEST: { \ - ::testing::internal::DeathTest::ReturnSentinel gtest_sentinel( \ - gtest_dt); \ - GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, gtest_dt); \ - gtest_dt->Abort(::testing::internal::DeathTest::TEST_DID_NOT_DIE); \ - break; \ - } \ - default: \ - break; \ - } \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_, __LINE__) \ - : fail(::testing::internal::DeathTest::LastMessage()) -// The symbol "fail" here expands to something into which a message -// can be streamed. - -// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in -// NDEBUG mode. In this case we need the statements to be executed and the macro -// must accept a streamed message even though the message is never printed. -// The regex object is not evaluated, but it is used to prevent "unused" -// warnings and to avoid an expression that doesn't compile in debug mode. -#define GTEST_EXECUTE_STATEMENT_(statement, regex_or_matcher) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } else if (!::testing::internal::AlwaysTrue()) { \ - ::testing::internal::MakeDeathTestMatcher(regex_or_matcher); \ - } else \ - ::testing::Message() - -// A class representing the parsed contents of the -// --gtest_internal_run_death_test flag, as it existed when -// RUN_ALL_TESTS was called. -class InternalRunDeathTestFlag { - public: - InternalRunDeathTestFlag(const std::string& a_file, - int a_line, - int an_index, - int a_write_fd) - : file_(a_file), line_(a_line), index_(an_index), - write_fd_(a_write_fd) {} - - ~InternalRunDeathTestFlag() { - if (write_fd_ >= 0) - posix::Close(write_fd_); - } - - const std::string& file() const { return file_; } - int line() const { return line_; } - int index() const { return index_; } - int write_fd() const { return write_fd_; } - - private: - std::string file_; - int line_; - int index_; - int write_fd_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(InternalRunDeathTestFlag); -}; - -// Returns a newly created InternalRunDeathTestFlag object with fields -// initialized from the GTEST_FLAG(internal_run_death_test) flag if -// the flag is specified; otherwise returns NULL. -InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag(); - -#endif // GTEST_HAS_DEATH_TEST - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_DEATH_TEST_INTERNAL_H_ diff --git a/include/gtest/internal/gtest-filepath.h b/include/gtest/internal/gtest-filepath.h deleted file mode 100644 index c11b101..0000000 --- a/include/gtest/internal/gtest-filepath.h +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2008, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Google Test filepath utilities -// -// This header file declares classes and functions used internally by -// Google Test. They are subject to change without notice. -// -// This file is #included in gtest/internal/gtest-internal.h. -// Do not include this header file separately! - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ - -#include "gtest/internal/gtest-string.h" - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -namespace testing { -namespace internal { - -// FilePath - a class for file and directory pathname manipulation which -// handles platform-specific conventions (like the pathname separator). -// Used for helper functions for naming files in a directory for xml output. -// Except for Set methods, all methods are const or static, which provides an -// "immutable value object" -- useful for peace of mind. -// A FilePath with a value ending in a path separator ("like/this/") represents -// a directory, otherwise it is assumed to represent a file. In either case, -// it may or may not represent an actual file or directory in the file system. -// Names are NOT checked for syntax correctness -- no checking for illegal -// characters, malformed paths, etc. - -class GTEST_API_ FilePath { - public: - FilePath() : pathname_("") { } - FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { } - - explicit FilePath(const std::string& pathname) : pathname_(pathname) { - Normalize(); - } - - FilePath& operator=(const FilePath& rhs) { - Set(rhs); - return *this; - } - - void Set(const FilePath& rhs) { - pathname_ = rhs.pathname_; - } - - const std::string& string() const { return pathname_; } - const char* c_str() const { return pathname_.c_str(); } - - // Returns the current working directory, or "" if unsuccessful. - static FilePath GetCurrentDir(); - - // Given directory = "dir", base_name = "test", number = 0, - // extension = "xml", returns "dir/test.xml". If number is greater - // than zero (e.g., 12), returns "dir/test_12.xml". - // On Windows platform, uses \ as the separator rather than /. - static FilePath MakeFileName(const FilePath& directory, - const FilePath& base_name, - int number, - const char* extension); - - // Given directory = "dir", relative_path = "test.xml", - // returns "dir/test.xml". - // On Windows, uses \ as the separator rather than /. - static FilePath ConcatPaths(const FilePath& directory, - const FilePath& relative_path); - - // Returns a pathname for a file that does not currently exist. The pathname - // will be directory/base_name.extension or - // directory/base_name_.extension if directory/base_name.extension - // already exists. The number will be incremented until a pathname is found - // that does not already exist. - // Examples: 'dir/foo_test.xml' or 'dir/foo_test_1.xml'. - // There could be a race condition if two or more processes are calling this - // function at the same time -- they could both pick the same filename. - static FilePath GenerateUniqueFileName(const FilePath& directory, - const FilePath& base_name, - const char* extension); - - // Returns true if and only if the path is "". - bool IsEmpty() const { return pathname_.empty(); } - - // If input name has a trailing separator character, removes it and returns - // the name, otherwise return the name string unmodified. - // On Windows platform, uses \ as the separator, other platforms use /. - FilePath RemoveTrailingPathSeparator() const; - - // Returns a copy of the FilePath with the directory part removed. - // Example: FilePath("path/to/file").RemoveDirectoryName() returns - // FilePath("file"). If there is no directory part ("just_a_file"), it returns - // the FilePath unmodified. If there is no file part ("just_a_dir/") it - // returns an empty FilePath (""). - // On Windows platform, '\' is the path separator, otherwise it is '/'. - FilePath RemoveDirectoryName() const; - - // RemoveFileName returns the directory path with the filename removed. - // Example: FilePath("path/to/file").RemoveFileName() returns "path/to/". - // If the FilePath is "a_file" or "/a_file", RemoveFileName returns - // FilePath("./") or, on Windows, FilePath(".\\"). If the filepath does - // not have a file, like "just/a/dir/", it returns the FilePath unmodified. - // On Windows platform, '\' is the path separator, otherwise it is '/'. - FilePath RemoveFileName() const; - - // Returns a copy of the FilePath with the case-insensitive extension removed. - // Example: FilePath("dir/file.exe").RemoveExtension("EXE") returns - // FilePath("dir/file"). If a case-insensitive extension is not - // found, returns a copy of the original FilePath. - FilePath RemoveExtension(const char* extension) const; - - // Creates directories so that path exists. Returns true if successful or if - // the directories already exist; returns false if unable to create - // directories for any reason. Will also return false if the FilePath does - // not represent a directory (that is, it doesn't end with a path separator). - bool CreateDirectoriesRecursively() const; - - // Create the directory so that path exists. Returns true if successful or - // if the directory already exists; returns false if unable to create the - // directory for any reason, including if the parent directory does not - // exist. Not named "CreateDirectory" because that's a macro on Windows. - bool CreateFolder() const; - - // Returns true if FilePath describes something in the file-system, - // either a file, directory, or whatever, and that something exists. - bool FileOrDirectoryExists() const; - - // Returns true if pathname describes a directory in the file-system - // that exists. - bool DirectoryExists() const; - - // Returns true if FilePath ends with a path separator, which indicates that - // it is intended to represent a directory. Returns false otherwise. - // This does NOT check that a directory (or file) actually exists. - bool IsDirectory() const; - - // Returns true if pathname describes a root directory. (Windows has one - // root directory per disk drive.) - bool IsRootDirectory() const; - - // Returns true if pathname describes an absolute path. - bool IsAbsolutePath() const; - - private: - // Replaces multiple consecutive separators with a single separator. - // For example, "bar///foo" becomes "bar/foo". Does not eliminate other - // redundancies that might be in a pathname involving "." or "..". - // - // A pathname with multiple consecutive separators may occur either through - // user error or as a result of some scripts or APIs that generate a pathname - // with a trailing separator. On other platforms the same API or script - // may NOT generate a pathname with a trailing "/". Then elsewhere that - // pathname may have another "/" and pathname components added to it, - // without checking for the separator already being there. - // The script language and operating system may allow paths like "foo//bar" - // but some of the functions in FilePath will not handle that correctly. In - // particular, RemoveTrailingPathSeparator() only removes one separator, and - // it is called in CreateDirectoriesRecursively() assuming that it will change - // a pathname from directory syntax (trailing separator) to filename syntax. - // - // On Windows this method also replaces the alternate path separator '/' with - // the primary path separator '\\', so that for example "bar\\/\\foo" becomes - // "bar\\foo". - - void Normalize(); - - // Returns a pointer to the last occurence of a valid path separator in - // the FilePath. On Windows, for example, both '/' and '\' are valid path - // separators. Returns NULL if no path separator was found. - const char* FindLastPathSeparator() const; - - std::string pathname_; -}; // class FilePath - -} // namespace internal -} // namespace testing - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_FILEPATH_H_ diff --git a/include/gtest/internal/gtest-internal.h b/include/gtest/internal/gtest-internal.h deleted file mode 100644 index 94c816a..0000000 --- a/include/gtest/internal/gtest-internal.h +++ /dev/null @@ -1,1380 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file declares functions and macros used internally by -// Google Test. They are subject to change without notice. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ - -#include "gtest/internal/gtest-port.h" - -#if GTEST_OS_LINUX -# include -# include -# include -# include -#endif // GTEST_OS_LINUX - -#if GTEST_HAS_EXCEPTIONS -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gtest/gtest-message.h" -#include "gtest/internal/gtest-filepath.h" -#include "gtest/internal/gtest-string.h" -#include "gtest/internal/gtest-type-util.h" - -// Due to C++ preprocessor weirdness, we need double indirection to -// concatenate two tokens when one of them is __LINE__. Writing -// -// foo ## __LINE__ -// -// will result in the token foo__LINE__, instead of foo followed by -// the current line number. For more details, see -// http://www.parashift.com/c++-faq-lite/misc-technical-issues.html#faq-39.6 -#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) -#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar - -// Stringifies its argument. -#define GTEST_STRINGIFY_(name) #name - -namespace proto2 { class Message; } - -namespace testing { - -// Forward declarations. - -class AssertionResult; // Result of an assertion. -class Message; // Represents a failure message. -class Test; // Represents a test. -class TestInfo; // Information about a test. -class TestPartResult; // Result of a test part. -class UnitTest; // A collection of test suites. - -template -::std::string PrintToString(const T& value); - -namespace internal { - -struct TraceInfo; // Information about a trace point. -class TestInfoImpl; // Opaque implementation of TestInfo -class UnitTestImpl; // Opaque implementation of UnitTest - -// The text used in failure messages to indicate the start of the -// stack trace. -GTEST_API_ extern const char kStackTraceMarker[]; - -// An IgnoredValue object can be implicitly constructed from ANY value. -class IgnoredValue { - struct Sink {}; - public: - // This constructor template allows any value to be implicitly - // converted to IgnoredValue. The object has no data member and - // doesn't try to remember anything about the argument. We - // deliberately omit the 'explicit' keyword in order to allow the - // conversion to be implicit. - // Disable the conversion if T already has a magical conversion operator. - // Otherwise we get ambiguity. - template ::value, - int>::type = 0> - IgnoredValue(const T& /* ignored */) {} // NOLINT(runtime/explicit) -}; - -// Appends the user-supplied message to the Google-Test-generated message. -GTEST_API_ std::string AppendUserMessage( - const std::string& gtest_msg, const Message& user_msg); - -#if GTEST_HAS_EXCEPTIONS - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4275 \ -/* an exported class was derived from a class that was not exported */) - -// This exception is thrown by (and only by) a failed Google Test -// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions -// are enabled). We derive it from std::runtime_error, which is for -// errors presumably detectable only at run time. Since -// std::runtime_error inherits from std::exception, many testing -// frameworks know how to extract and print the message inside it. -class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error { - public: - explicit GoogleTestFailureException(const TestPartResult& failure); -}; - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4275 - -#endif // GTEST_HAS_EXCEPTIONS - -namespace edit_distance { -// Returns the optimal edits to go from 'left' to 'right'. -// All edits cost the same, with replace having lower priority than -// add/remove. -// Simple implementation of the Wagner-Fischer algorithm. -// See http://en.wikipedia.org/wiki/Wagner-Fischer_algorithm -enum EditType { kMatch, kAdd, kRemove, kReplace }; -GTEST_API_ std::vector CalculateOptimalEdits( - const std::vector& left, const std::vector& right); - -// Same as above, but the input is represented as strings. -GTEST_API_ std::vector CalculateOptimalEdits( - const std::vector& left, - const std::vector& right); - -// Create a diff of the input strings in Unified diff format. -GTEST_API_ std::string CreateUnifiedDiff(const std::vector& left, - const std::vector& right, - size_t context = 2); - -} // namespace edit_distance - -// Calculate the diff between 'left' and 'right' and return it in unified diff -// format. -// If not null, stores in 'total_line_count' the total number of lines found -// in left + right. -GTEST_API_ std::string DiffStrings(const std::string& left, - const std::string& right, - size_t* total_line_count); - -// Constructs and returns the message for an equality assertion -// (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. -// -// The first four parameters are the expressions used in the assertion -// and their values, as strings. For example, for ASSERT_EQ(foo, bar) -// where foo is 5 and bar is 6, we have: -// -// expected_expression: "foo" -// actual_expression: "bar" -// expected_value: "5" -// actual_value: "6" -// -// The ignoring_case parameter is true if and only if the assertion is a -// *_STRCASEEQ*. When it's true, the string " (ignoring case)" will -// be inserted into the message. -GTEST_API_ AssertionResult EqFailure(const char* expected_expression, - const char* actual_expression, - const std::string& expected_value, - const std::string& actual_value, - bool ignoring_case); - -// Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -GTEST_API_ std::string GetBoolAssertionFailureMessage( - const AssertionResult& assertion_result, - const char* expression_text, - const char* actual_predicate_value, - const char* expected_predicate_value); - -// This template class represents an IEEE floating-point number -// (either single-precision or double-precision, depending on the -// template parameters). -// -// The purpose of this class is to do more sophisticated number -// comparison. (Due to round-off error, etc, it's very unlikely that -// two floating-points will be equal exactly. Hence a naive -// comparison by the == operation often doesn't work.) -// -// Format of IEEE floating-point: -// -// The most-significant bit being the leftmost, an IEEE -// floating-point looks like -// -// sign_bit exponent_bits fraction_bits -// -// Here, sign_bit is a single bit that designates the sign of the -// number. -// -// For float, there are 8 exponent bits and 23 fraction bits. -// -// For double, there are 11 exponent bits and 52 fraction bits. -// -// More details can be found at -// http://en.wikipedia.org/wiki/IEEE_floating-point_standard. -// -// Template parameter: -// -// RawType: the raw floating-point type (either float or double) -template -class FloatingPoint { - public: - // Defines the unsigned integer type that has the same size as the - // floating point number. - typedef typename TypeWithSize::UInt Bits; - - // Constants. - - // # of bits in a number. - static const size_t kBitCount = 8*sizeof(RawType); - - // # of fraction bits in a number. - static const size_t kFractionBitCount = - std::numeric_limits::digits - 1; - - // # of exponent bits in a number. - static const size_t kExponentBitCount = kBitCount - 1 - kFractionBitCount; - - // The mask for the sign bit. - static const Bits kSignBitMask = static_cast(1) << (kBitCount - 1); - - // The mask for the fraction bits. - static const Bits kFractionBitMask = - ~static_cast(0) >> (kExponentBitCount + 1); - - // The mask for the exponent bits. - static const Bits kExponentBitMask = ~(kSignBitMask | kFractionBitMask); - - // How many ULP's (Units in the Last Place) we want to tolerate when - // comparing two numbers. The larger the value, the more error we - // allow. A 0 value means that two numbers must be exactly the same - // to be considered equal. - // - // The maximum error of a single floating-point operation is 0.5 - // units in the last place. On Intel CPU's, all floating-point - // calculations are done with 80-bit precision, while double has 64 - // bits. Therefore, 4 should be enough for ordinary use. - // - // See the following article for more details on ULP: - // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - static const size_t kMaxUlps = 4; - - // Constructs a FloatingPoint from a raw floating-point number. - // - // On an Intel CPU, passing a non-normalized NAN (Not a Number) - // around may change its bits, although the new value is guaranteed - // to be also a NAN. Therefore, don't expect this constructor to - // preserve the bits in x when x is a NAN. - explicit FloatingPoint(const RawType& x) { u_.value_ = x; } - - // Static methods - - // Reinterprets a bit pattern as a floating-point number. - // - // This function is needed to test the AlmostEquals() method. - static RawType ReinterpretBits(const Bits bits) { - FloatingPoint fp(0); - fp.u_.bits_ = bits; - return fp.u_.value_; - } - - // Returns the floating-point number that represent positive infinity. - static RawType Infinity() { - return ReinterpretBits(kExponentBitMask); - } - - // Returns the maximum representable finite floating-point number. - static RawType Max(); - - // Non-static methods - - // Returns the bits that represents this number. - const Bits &bits() const { return u_.bits_; } - - // Returns the exponent bits of this number. - Bits exponent_bits() const { return kExponentBitMask & u_.bits_; } - - // Returns the fraction bits of this number. - Bits fraction_bits() const { return kFractionBitMask & u_.bits_; } - - // Returns the sign bit of this number. - Bits sign_bit() const { return kSignBitMask & u_.bits_; } - - // Returns true if and only if this is NAN (not a number). - bool is_nan() const { - // It's a NAN if the exponent bits are all ones and the fraction - // bits are not entirely zeros. - return (exponent_bits() == kExponentBitMask) && (fraction_bits() != 0); - } - - // Returns true if and only if this number is at most kMaxUlps ULP's away - // from rhs. In particular, this function: - // - // - returns false if either number is (or both are) NAN. - // - treats really large numbers as almost equal to infinity. - // - thinks +0.0 and -0.0 are 0 DLP's apart. - bool AlmostEquals(const FloatingPoint& rhs) const { - // The IEEE standard says that any comparison operation involving - // a NAN must return false. - if (is_nan() || rhs.is_nan()) return false; - - return DistanceBetweenSignAndMagnitudeNumbers(u_.bits_, rhs.u_.bits_) - <= kMaxUlps; - } - - private: - // The data type used to store the actual floating-point number. - union FloatingPointUnion { - RawType value_; // The raw floating-point number. - Bits bits_; // The bits that represent the number. - }; - - // Converts an integer from the sign-and-magnitude representation to - // the biased representation. More precisely, let N be 2 to the - // power of (kBitCount - 1), an integer x is represented by the - // unsigned number x + N. - // - // For instance, - // - // -N + 1 (the most negative number representable using - // sign-and-magnitude) is represented by 1; - // 0 is represented by N; and - // N - 1 (the biggest number representable using - // sign-and-magnitude) is represented by 2N - 1. - // - // Read http://en.wikipedia.org/wiki/Signed_number_representations - // for more details on signed number representations. - static Bits SignAndMagnitudeToBiased(const Bits &sam) { - if (kSignBitMask & sam) { - // sam represents a negative number. - return ~sam + 1; - } else { - // sam represents a positive number. - return kSignBitMask | sam; - } - } - - // Given two numbers in the sign-and-magnitude representation, - // returns the distance between them as an unsigned number. - static Bits DistanceBetweenSignAndMagnitudeNumbers(const Bits &sam1, - const Bits &sam2) { - const Bits biased1 = SignAndMagnitudeToBiased(sam1); - const Bits biased2 = SignAndMagnitudeToBiased(sam2); - return (biased1 >= biased2) ? (biased1 - biased2) : (biased2 - biased1); - } - - FloatingPointUnion u_; -}; - -// We cannot use std::numeric_limits::max() as it clashes with the max() -// macro defined by . -template <> -inline float FloatingPoint::Max() { return FLT_MAX; } -template <> -inline double FloatingPoint::Max() { return DBL_MAX; } - -// Typedefs the instances of the FloatingPoint template class that we -// care to use. -typedef FloatingPoint Float; -typedef FloatingPoint Double; - -// In order to catch the mistake of putting tests that use different -// test fixture classes in the same test suite, we need to assign -// unique IDs to fixture classes and compare them. The TypeId type is -// used to hold such IDs. The user should treat TypeId as an opaque -// type: the only operation allowed on TypeId values is to compare -// them for equality using the == operator. -typedef const void* TypeId; - -template -class TypeIdHelper { - public: - // dummy_ must not have a const type. Otherwise an overly eager - // compiler (e.g. MSVC 7.1 & 8.0) may try to merge - // TypeIdHelper::dummy_ for different Ts as an "optimization". - static bool dummy_; -}; - -template -bool TypeIdHelper::dummy_ = false; - -// GetTypeId() returns the ID of type T. Different values will be -// returned for different types. Calling the function twice with the -// same type argument is guaranteed to return the same ID. -template -TypeId GetTypeId() { - // The compiler is required to allocate a different - // TypeIdHelper::dummy_ variable for each T used to instantiate - // the template. Therefore, the address of dummy_ is guaranteed to - // be unique. - return &(TypeIdHelper::dummy_); -} - -// Returns the type ID of ::testing::Test. Always call this instead -// of GetTypeId< ::testing::Test>() to get the type ID of -// ::testing::Test, as the latter may give the wrong result due to a -// suspected linker bug when compiling Google Test as a Mac OS X -// framework. -GTEST_API_ TypeId GetTestTypeId(); - -// Defines the abstract factory interface that creates instances -// of a Test object. -class TestFactoryBase { - public: - virtual ~TestFactoryBase() {} - - // Creates a test instance to run. The instance is both created and destroyed - // within TestInfoImpl::Run() - virtual Test* CreateTest() = 0; - - protected: - TestFactoryBase() {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestFactoryBase); -}; - -// This class provides implementation of TeastFactoryBase interface. -// It is used in TEST and TEST_F macros. -template -class TestFactoryImpl : public TestFactoryBase { - public: - Test* CreateTest() override { return new TestClass; } -}; - -#if GTEST_OS_WINDOWS - -// Predicate-formatters for implementing the HRESULT checking macros -// {ASSERT|EXPECT}_HRESULT_{SUCCEEDED|FAILED} -// We pass a long instead of HRESULT to avoid causing an -// include dependency for the HRESULT type. -GTEST_API_ AssertionResult IsHRESULTSuccess(const char* expr, - long hr); // NOLINT -GTEST_API_ AssertionResult IsHRESULTFailure(const char* expr, - long hr); // NOLINT - -#endif // GTEST_OS_WINDOWS - -// Types of SetUpTestSuite() and TearDownTestSuite() functions. -using SetUpTestSuiteFunc = void (*)(); -using TearDownTestSuiteFunc = void (*)(); - -struct CodeLocation { - CodeLocation(const std::string& a_file, int a_line) - : file(a_file), line(a_line) {} - - std::string file; - int line; -}; - -// Helper to identify which setup function for TestCase / TestSuite to call. -// Only one function is allowed, either TestCase or TestSute but not both. - -// Utility functions to help SuiteApiResolver -using SetUpTearDownSuiteFuncType = void (*)(); - -inline SetUpTearDownSuiteFuncType GetNotDefaultOrNull( - SetUpTearDownSuiteFuncType a, SetUpTearDownSuiteFuncType def) { - return a == def ? nullptr : a; -} - -template -// Note that SuiteApiResolver inherits from T because -// SetUpTestSuite()/TearDownTestSuite() could be protected. Ths way -// SuiteApiResolver can access them. -struct SuiteApiResolver : T { - // testing::Test is only forward declared at this point. So we make it a - // dependend class for the compiler to be OK with it. - using Test = - typename std::conditional::type; - - static SetUpTearDownSuiteFuncType GetSetUpCaseOrSuite(const char* filename, - int line_num) { - SetUpTearDownSuiteFuncType test_case_fp = - GetNotDefaultOrNull(&T::SetUpTestCase, &Test::SetUpTestCase); - SetUpTearDownSuiteFuncType test_suite_fp = - GetNotDefaultOrNull(&T::SetUpTestSuite, &Test::SetUpTestSuite); - - GTEST_CHECK_(!test_case_fp || !test_suite_fp) - << "Test can not provide both SetUpTestSuite and SetUpTestCase, please " - "make sure there is only one present at " - << filename << ":" << line_num; - - return test_case_fp != nullptr ? test_case_fp : test_suite_fp; - } - - static SetUpTearDownSuiteFuncType GetTearDownCaseOrSuite(const char* filename, - int line_num) { - SetUpTearDownSuiteFuncType test_case_fp = - GetNotDefaultOrNull(&T::TearDownTestCase, &Test::TearDownTestCase); - SetUpTearDownSuiteFuncType test_suite_fp = - GetNotDefaultOrNull(&T::TearDownTestSuite, &Test::TearDownTestSuite); - - GTEST_CHECK_(!test_case_fp || !test_suite_fp) - << "Test can not provide both TearDownTestSuite and TearDownTestCase," - " please make sure there is only one present at" - << filename << ":" << line_num; - - return test_case_fp != nullptr ? test_case_fp : test_suite_fp; - } -}; - -// Creates a new TestInfo object and registers it with Google Test; -// returns the created object. -// -// Arguments: -// -// test_suite_name: name of the test suite -// name: name of the test -// type_param the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. -// value_param text representation of the test's value parameter, -// or NULL if this is not a type-parameterized test. -// code_location: code location where the test is defined -// fixture_class_id: ID of the test fixture class -// set_up_tc: pointer to the function that sets up the test suite -// tear_down_tc: pointer to the function that tears down the test suite -// factory: pointer to the factory that creates a test object. -// The newly created TestInfo instance will assume -// ownership of the factory object. -GTEST_API_ TestInfo* MakeAndRegisterTestInfo( - const char* test_suite_name, const char* name, const char* type_param, - const char* value_param, CodeLocation code_location, - TypeId fixture_class_id, SetUpTestSuiteFunc set_up_tc, - TearDownTestSuiteFunc tear_down_tc, TestFactoryBase* factory); - -// If *pstr starts with the given prefix, modifies *pstr to be right -// past the prefix and returns true; otherwise leaves *pstr unchanged -// and returns false. None of pstr, *pstr, and prefix can be NULL. -GTEST_API_ bool SkipPrefix(const char* prefix, const char** pstr); - -#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -GTEST_DISABLE_MSC_WARNINGS_PUSH_(4251 \ -/* class A needs to have dll-interface to be used by clients of class B */) - -// State of the definition of a type-parameterized test suite. -class GTEST_API_ TypedTestSuitePState { - public: - TypedTestSuitePState() : registered_(false) {} - - // Adds the given test name to defined_test_names_ and return true - // if the test suite hasn't been registered; otherwise aborts the - // program. - bool AddTestName(const char* file, int line, const char* case_name, - const char* test_name) { - if (registered_) { - fprintf(stderr, - "%s Test %s must be defined before " - "REGISTER_TYPED_TEST_SUITE_P(%s, ...).\n", - FormatFileLocation(file, line).c_str(), test_name, case_name); - fflush(stderr); - posix::Abort(); - } - registered_tests_.insert( - ::std::make_pair(test_name, CodeLocation(file, line))); - return true; - } - - bool TestExists(const std::string& test_name) const { - return registered_tests_.count(test_name) > 0; - } - - const CodeLocation& GetCodeLocation(const std::string& test_name) const { - RegisteredTestsMap::const_iterator it = registered_tests_.find(test_name); - GTEST_CHECK_(it != registered_tests_.end()); - return it->second; - } - - // Verifies that registered_tests match the test names in - // defined_test_names_; returns registered_tests if successful, or - // aborts the program otherwise. - const char* VerifyRegisteredTestNames( - const char* file, int line, const char* registered_tests); - - private: - typedef ::std::map RegisteredTestsMap; - - bool registered_; - RegisteredTestsMap registered_tests_; -}; - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -using TypedTestCasePState = TypedTestSuitePState; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 - -// Skips to the first non-space char after the first comma in 'str'; -// returns NULL if no comma is found in 'str'. -inline const char* SkipComma(const char* str) { - const char* comma = strchr(str, ','); - if (comma == nullptr) { - return nullptr; - } - while (IsSpace(*(++comma))) {} - return comma; -} - -// Returns the prefix of 'str' before the first comma in it; returns -// the entire string if it contains no comma. -inline std::string GetPrefixUntilComma(const char* str) { - const char* comma = strchr(str, ','); - return comma == nullptr ? str : std::string(str, comma); -} - -// Splits a given string on a given delimiter, populating a given -// vector with the fields. -void SplitString(const ::std::string& str, char delimiter, - ::std::vector< ::std::string>* dest); - -// The default argument to the template below for the case when the user does -// not provide a name generator. -struct DefaultNameGenerator { - template - static std::string GetName(int i) { - return StreamableToString(i); - } -}; - -template -struct NameGeneratorSelector { - typedef Provided type; -}; - -template -void GenerateNamesRecursively(Types0, std::vector*, int) {} - -template -void GenerateNamesRecursively(Types, std::vector* result, int i) { - result->push_back(NameGenerator::template GetName(i)); - GenerateNamesRecursively(typename Types::Tail(), result, - i + 1); -} - -template -std::vector GenerateNames() { - std::vector result; - GenerateNamesRecursively(Types(), &result, 0); - return result; -} - -// TypeParameterizedTest::Register() -// registers a list of type-parameterized tests with Google Test. The -// return value is insignificant - we just need to return something -// such that we can call this function in a namespace scope. -// -// Implementation note: The GTEST_TEMPLATE_ macro declares a template -// template parameter. It's defined in gtest-type-util.h. -template -class TypeParameterizedTest { - public: - // 'index' is the index of the test in the type list 'Types' - // specified in INSTANTIATE_TYPED_TEST_SUITE_P(Prefix, TestSuite, - // Types). Valid values for 'index' are [0, N - 1] where N is the - // length of Types. - static bool Register(const char* prefix, const CodeLocation& code_location, - const char* case_name, const char* test_names, int index, - const std::vector& type_names = - GenerateNames()) { - typedef typename Types::Head Type; - typedef Fixture FixtureClass; - typedef typename GTEST_BIND_(TestSel, Type) TestClass; - - // First, registers the first type-parameterized test in the type - // list. - MakeAndRegisterTestInfo( - (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + - "/" + type_names[static_cast(index)]) - .c_str(), - StripTrailingSpaces(GetPrefixUntilComma(test_names)).c_str(), - GetTypeName().c_str(), - nullptr, // No value parameter. - code_location, GetTypeId(), - SuiteApiResolver::GetSetUpCaseOrSuite( - code_location.file.c_str(), code_location.line), - SuiteApiResolver::GetTearDownCaseOrSuite( - code_location.file.c_str(), code_location.line), - new TestFactoryImpl); - - // Next, recurses (at compile time) with the tail of the type list. - return TypeParameterizedTest::Register(prefix, - code_location, - case_name, - test_names, - index + 1, - type_names); - } -}; - -// The base case for the compile time recursion. -template -class TypeParameterizedTest { - public: - static bool Register(const char* /*prefix*/, const CodeLocation&, - const char* /*case_name*/, const char* /*test_names*/, - int /*index*/, - const std::vector& = - std::vector() /*type_names*/) { - return true; - } -}; - -// TypeParameterizedTestSuite::Register() -// registers *all combinations* of 'Tests' and 'Types' with Google -// Test. The return value is insignificant - we just need to return -// something such that we can call this function in a namespace scope. -template -class TypeParameterizedTestSuite { - public: - static bool Register(const char* prefix, CodeLocation code_location, - const TypedTestSuitePState* state, const char* case_name, - const char* test_names, - const std::vector& type_names = - GenerateNames()) { - std::string test_name = StripTrailingSpaces( - GetPrefixUntilComma(test_names)); - if (!state->TestExists(test_name)) { - fprintf(stderr, "Failed to get code location for test %s.%s at %s.", - case_name, test_name.c_str(), - FormatFileLocation(code_location.file.c_str(), - code_location.line).c_str()); - fflush(stderr); - posix::Abort(); - } - const CodeLocation& test_location = state->GetCodeLocation(test_name); - - typedef typename Tests::Head Head; - - // First, register the first test in 'Test' for each type in 'Types'. - TypeParameterizedTest::Register( - prefix, test_location, case_name, test_names, 0, type_names); - - // Next, recurses (at compile time) with the tail of the test list. - return TypeParameterizedTestSuite::Register(prefix, code_location, - state, case_name, - SkipComma(test_names), - type_names); - } -}; - -// The base case for the compile time recursion. -template -class TypeParameterizedTestSuite { - public: - static bool Register(const char* /*prefix*/, const CodeLocation&, - const TypedTestSuitePState* /*state*/, - const char* /*case_name*/, const char* /*test_names*/, - const std::vector& = - std::vector() /*type_names*/) { - return true; - } -}; - -#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -// Returns the current OS stack trace as an std::string. -// -// The maximum number of stack frames to be included is specified by -// the gtest_stack_trace_depth flag. The skip_count parameter -// specifies the number of top frames to be skipped, which doesn't -// count against the number of frames to be included. -// -// For example, if Foo() calls Bar(), which in turn calls -// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in -// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -GTEST_API_ std::string GetCurrentOsStackTraceExceptTop( - UnitTest* unit_test, int skip_count); - -// Helpers for suppressing warnings on unreachable code or constant -// condition. - -// Always returns true. -GTEST_API_ bool AlwaysTrue(); - -// Always returns false. -inline bool AlwaysFalse() { return !AlwaysTrue(); } - -// Helper for suppressing false warning from Clang on a const char* -// variable declared in a conditional expression always being NULL in -// the else branch. -struct GTEST_API_ ConstCharPtr { - ConstCharPtr(const char* str) : value(str) {} - operator bool() const { return true; } - const char* value; -}; - -// A simple Linear Congruential Generator for generating random -// numbers with a uniform distribution. Unlike rand() and srand(), it -// doesn't use global state (and therefore can't interfere with user -// code). Unlike rand_r(), it's portable. An LCG isn't very random, -// but it's good enough for our purposes. -class GTEST_API_ Random { - public: - static const UInt32 kMaxRange = 1u << 31; - - explicit Random(UInt32 seed) : state_(seed) {} - - void Reseed(UInt32 seed) { state_ = seed; } - - // Generates a random number from [0, range). Crashes if 'range' is - // 0 or greater than kMaxRange. - UInt32 Generate(UInt32 range); - - private: - UInt32 state_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(Random); -}; - -// Turns const U&, U&, const U, and U all into U. -#define GTEST_REMOVE_REFERENCE_AND_CONST_(T) \ - typename std::remove_const::type>::type - -// IsAProtocolMessage::value is a compile-time bool constant that's -// true if and only if T is type proto2::Message or a subclass of it. -template -struct IsAProtocolMessage - : public bool_constant< - std::is_convertible::value> {}; - -// When the compiler sees expression IsContainerTest(0), if C is an -// STL-style container class, the first overload of IsContainerTest -// will be viable (since both C::iterator* and C::const_iterator* are -// valid types and NULL can be implicitly converted to them). It will -// be picked over the second overload as 'int' is a perfect match for -// the type of argument 0. If C::iterator or C::const_iterator is not -// a valid type, the first overload is not viable, and the second -// overload will be picked. Therefore, we can determine whether C is -// a container class by checking the type of IsContainerTest(0). -// The value of the expression is insignificant. -// -// In C++11 mode we check the existence of a const_iterator and that an -// iterator is properly implemented for the container. -// -// For pre-C++11 that we look for both C::iterator and C::const_iterator. -// The reason is that C++ injects the name of a class as a member of the -// class itself (e.g. you can refer to class iterator as either -// 'iterator' or 'iterator::iterator'). If we look for C::iterator -// only, for example, we would mistakenly think that a class named -// iterator is an STL container. -// -// Also note that the simpler approach of overloading -// IsContainerTest(typename C::const_iterator*) and -// IsContainerTest(...) doesn't work with Visual Age C++ and Sun C++. -typedef int IsContainer; -template ().begin()), - class = decltype(::std::declval().end()), - class = decltype(++::std::declval()), - class = decltype(*::std::declval()), - class = typename C::const_iterator> -IsContainer IsContainerTest(int /* dummy */) { - return 0; -} - -typedef char IsNotContainer; -template -IsNotContainer IsContainerTest(long /* dummy */) { return '\0'; } - -// Trait to detect whether a type T is a hash table. -// The heuristic used is that the type contains an inner type `hasher` and does -// not contain an inner type `reverse_iterator`. -// If the container is iterable in reverse, then order might actually matter. -template -struct IsHashTable { - private: - template - static char test(typename U::hasher*, typename U::reverse_iterator*); - template - static int test(typename U::hasher*, ...); - template - static char test(...); - - public: - static const bool value = sizeof(test(nullptr, nullptr)) == sizeof(int); -}; - -template -const bool IsHashTable::value; - -template (0)) == sizeof(IsContainer)> -struct IsRecursiveContainerImpl; - -template -struct IsRecursiveContainerImpl : public std::false_type {}; - -// Since the IsRecursiveContainerImpl depends on the IsContainerTest we need to -// obey the same inconsistencies as the IsContainerTest, namely check if -// something is a container is relying on only const_iterator in C++11 and -// is relying on both const_iterator and iterator otherwise -template -struct IsRecursiveContainerImpl { - using value_type = decltype(*std::declval()); - using type = - std::is_same::type>::type, - C>; -}; - -// IsRecursiveContainer is a unary compile-time predicate that -// evaluates whether C is a recursive container type. A recursive container -// type is a container type whose value_type is equal to the container type -// itself. An example for a recursive container type is -// boost::filesystem::path, whose iterator has a value_type that is equal to -// boost::filesystem::path. -template -struct IsRecursiveContainer : public IsRecursiveContainerImpl::type {}; - -// Utilities for native arrays. - -// ArrayEq() compares two k-dimensional native arrays using the -// elements' operator==, where k can be any integer >= 0. When k is -// 0, ArrayEq() degenerates into comparing a single pair of values. - -template -bool ArrayEq(const T* lhs, size_t size, const U* rhs); - -// This generic version is used when k is 0. -template -inline bool ArrayEq(const T& lhs, const U& rhs) { return lhs == rhs; } - -// This overload is used when k >= 1. -template -inline bool ArrayEq(const T(&lhs)[N], const U(&rhs)[N]) { - return internal::ArrayEq(lhs, N, rhs); -} - -// This helper reduces code bloat. If we instead put its logic inside -// the previous ArrayEq() function, arrays with different sizes would -// lead to different copies of the template code. -template -bool ArrayEq(const T* lhs, size_t size, const U* rhs) { - for (size_t i = 0; i != size; i++) { - if (!internal::ArrayEq(lhs[i], rhs[i])) - return false; - } - return true; -} - -// Finds the first element in the iterator range [begin, end) that -// equals elem. Element may be a native array type itself. -template -Iter ArrayAwareFind(Iter begin, Iter end, const Element& elem) { - for (Iter it = begin; it != end; ++it) { - if (internal::ArrayEq(*it, elem)) - return it; - } - return end; -} - -// CopyArray() copies a k-dimensional native array using the elements' -// operator=, where k can be any integer >= 0. When k is 0, -// CopyArray() degenerates into copying a single value. - -template -void CopyArray(const T* from, size_t size, U* to); - -// This generic version is used when k is 0. -template -inline void CopyArray(const T& from, U* to) { *to = from; } - -// This overload is used when k >= 1. -template -inline void CopyArray(const T(&from)[N], U(*to)[N]) { - internal::CopyArray(from, N, *to); -} - -// This helper reduces code bloat. If we instead put its logic inside -// the previous CopyArray() function, arrays with different sizes -// would lead to different copies of the template code. -template -void CopyArray(const T* from, size_t size, U* to) { - for (size_t i = 0; i != size; i++) { - internal::CopyArray(from[i], to + i); - } -} - -// The relation between an NativeArray object (see below) and the -// native array it represents. -// We use 2 different structs to allow non-copyable types to be used, as long -// as RelationToSourceReference() is passed. -struct RelationToSourceReference {}; -struct RelationToSourceCopy {}; - -// Adapts a native array to a read-only STL-style container. Instead -// of the complete STL container concept, this adaptor only implements -// members useful for Google Mock's container matchers. New members -// should be added as needed. To simplify the implementation, we only -// support Element being a raw type (i.e. having no top-level const or -// reference modifier). It's the client's responsibility to satisfy -// this requirement. Element can be an array type itself (hence -// multi-dimensional arrays are supported). -template -class NativeArray { - public: - // STL-style container typedefs. - typedef Element value_type; - typedef Element* iterator; - typedef const Element* const_iterator; - - // Constructs from a native array. References the source. - NativeArray(const Element* array, size_t count, RelationToSourceReference) { - InitRef(array, count); - } - - // Constructs from a native array. Copies the source. - NativeArray(const Element* array, size_t count, RelationToSourceCopy) { - InitCopy(array, count); - } - - // Copy constructor. - NativeArray(const NativeArray& rhs) { - (this->*rhs.clone_)(rhs.array_, rhs.size_); - } - - ~NativeArray() { - if (clone_ != &NativeArray::InitRef) - delete[] array_; - } - - // STL-style container methods. - size_t size() const { return size_; } - const_iterator begin() const { return array_; } - const_iterator end() const { return array_ + size_; } - bool operator==(const NativeArray& rhs) const { - return size() == rhs.size() && - ArrayEq(begin(), size(), rhs.begin()); - } - - private: - static_assert(!std::is_const::value, "Type must not be const"); - static_assert(!std::is_reference::value, - "Type must not be a reference"); - - // Initializes this object with a copy of the input. - void InitCopy(const Element* array, size_t a_size) { - Element* const copy = new Element[a_size]; - CopyArray(array, a_size, copy); - array_ = copy; - size_ = a_size; - clone_ = &NativeArray::InitCopy; - } - - // Initializes this object with a reference of the input. - void InitRef(const Element* array, size_t a_size) { - array_ = array; - size_ = a_size; - clone_ = &NativeArray::InitRef; - } - - const Element* array_; - size_t size_; - void (NativeArray::*clone_)(const Element*, size_t); - - GTEST_DISALLOW_ASSIGN_(NativeArray); -}; - -// Backport of std::index_sequence. -template -struct IndexSequence { - using type = IndexSequence; -}; - -// Double the IndexSequence, and one if plus_one is true. -template -struct DoubleSequence; -template -struct DoubleSequence, sizeofT> { - using type = IndexSequence; -}; -template -struct DoubleSequence, sizeofT> { - using type = IndexSequence; -}; - -// Backport of std::make_index_sequence. -// It uses O(ln(N)) instantiation depth. -template -struct MakeIndexSequence - : DoubleSequence::type, - N / 2>::type {}; - -template <> -struct MakeIndexSequence<0> : IndexSequence<> {}; - -// FIXME: This implementation of ElemFromList is O(1) in instantiation depth, -// but it is O(N^2) in total instantiations. Not sure if this is the best -// tradeoff, as it will make it somewhat slow to compile. -template -struct ElemFromListImpl {}; - -template -struct ElemFromListImpl { - using type = T; -}; - -// Get the Nth element from T... -// It uses O(1) instantiation depth. -template -struct ElemFromList; - -template -struct ElemFromList, T...> - : ElemFromListImpl... {}; - -template -class FlatTuple; - -template -struct FlatTupleElemBase; - -template -struct FlatTupleElemBase, I> { - using value_type = - typename ElemFromList::type, - T...>::type; - FlatTupleElemBase() = default; - explicit FlatTupleElemBase(value_type t) : value(std::move(t)) {} - value_type value; -}; - -template -struct FlatTupleBase; - -template -struct FlatTupleBase, IndexSequence> - : FlatTupleElemBase, Idx>... { - using Indices = IndexSequence; - FlatTupleBase() = default; - explicit FlatTupleBase(T... t) - : FlatTupleElemBase, Idx>(std::move(t))... {} -}; - -// Analog to std::tuple but with different tradeoffs. -// This class minimizes the template instantiation depth, thus allowing more -// elements that std::tuple would. std::tuple has been seen to require an -// instantiation depth of more than 10x the number of elements in some -// implementations. -// FlatTuple and ElemFromList are not recursive and have a fixed depth -// regardless of T... -// MakeIndexSequence, on the other hand, it is recursive but with an -// instantiation depth of O(ln(N)). -template -class FlatTuple - : private FlatTupleBase, - typename MakeIndexSequence::type> { - using Indices = typename FlatTuple::FlatTupleBase::Indices; - - public: - FlatTuple() = default; - explicit FlatTuple(T... t) : FlatTuple::FlatTupleBase(std::move(t)...) {} - - template - const typename ElemFromList::type& Get() const { - return static_cast*>(this)->value; - } - - template - typename ElemFromList::type& Get() { - return static_cast*>(this)->value; - } -}; - -// Utility functions to be called with static_assert to induce deprecation -// warnings. -GTEST_INTERNAL_DEPRECATED( - "INSTANTIATE_TEST_CASE_P is deprecated, please use " - "INSTANTIATE_TEST_SUITE_P") -constexpr bool InstantiateTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "TYPED_TEST_CASE_P is deprecated, please use " - "TYPED_TEST_SUITE_P") -constexpr bool TypedTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "TYPED_TEST_CASE is deprecated, please use " - "TYPED_TEST_SUITE") -constexpr bool TypedTestCaseIsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "REGISTER_TYPED_TEST_CASE_P is deprecated, please use " - "REGISTER_TYPED_TEST_SUITE_P") -constexpr bool RegisterTypedTestCase_P_IsDeprecated() { return true; } - -GTEST_INTERNAL_DEPRECATED( - "INSTANTIATE_TYPED_TEST_CASE_P is deprecated, please use " - "INSTANTIATE_TYPED_TEST_SUITE_P") -constexpr bool InstantiateTypedTestCase_P_IsDeprecated() { return true; } - -} // namespace internal -} // namespace testing - -#define GTEST_MESSAGE_AT_(file, line, message, result_type) \ - ::testing::internal::AssertHelper(result_type, file, line, message) \ - = ::testing::Message() - -#define GTEST_MESSAGE_(message, result_type) \ - GTEST_MESSAGE_AT_(__FILE__, __LINE__, message, result_type) - -#define GTEST_FATAL_FAILURE_(message) \ - return GTEST_MESSAGE_(message, ::testing::TestPartResult::kFatalFailure) - -#define GTEST_NONFATAL_FAILURE_(message) \ - GTEST_MESSAGE_(message, ::testing::TestPartResult::kNonFatalFailure) - -#define GTEST_SUCCESS_(message) \ - GTEST_MESSAGE_(message, ::testing::TestPartResult::kSuccess) - -#define GTEST_SKIP_(message) \ - return GTEST_MESSAGE_(message, ::testing::TestPartResult::kSkip) - -// Suppress MSVC warning 4072 (unreachable code) for the code following -// statement if it returns or throws (or doesn't return or throw in some -// situations). -#define GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement) \ - if (::testing::internal::AlwaysTrue()) { statement; } - -#define GTEST_TEST_THROW_(statement, expected_exception, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::ConstCharPtr gtest_msg = "") { \ - bool gtest_caught_expected = false; \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - catch (expected_exception const&) { \ - gtest_caught_expected = true; \ - } \ - catch (...) { \ - gtest_msg.value = \ - "Expected: " #statement " throws an exception of type " \ - #expected_exception ".\n Actual: it throws a different type."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } \ - if (!gtest_caught_expected) { \ - gtest_msg.value = \ - "Expected: " #statement " throws an exception of type " \ - #expected_exception ".\n Actual: it throws nothing."; \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testthrow_, __LINE__): \ - fail(gtest_msg.value) - -#define GTEST_TEST_NO_THROW_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - catch (...) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testnothrow_, __LINE__): \ - fail("Expected: " #statement " doesn't throw an exception.\n" \ - " Actual: it throws.") - -#define GTEST_TEST_ANY_THROW_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - bool gtest_caught_any = false; \ - try { \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - } \ - catch (...) { \ - gtest_caught_any = true; \ - } \ - if (!gtest_caught_any) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testanythrow_, __LINE__): \ - fail("Expected: " #statement " throws an exception.\n" \ - " Actual: it doesn't.") - - -// Implements Boolean test assertions such as EXPECT_TRUE. expression can be -// either a boolean expression or an AssertionResult. text is a textual -// represenation of expression as it was passed into the EXPECT_TRUE. -#define GTEST_TEST_BOOLEAN_(expression, text, actual, expected, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (const ::testing::AssertionResult gtest_ar_ = \ - ::testing::AssertionResult(expression)) \ - ; \ - else \ - fail(::testing::internal::GetBoolAssertionFailureMessage(\ - gtest_ar_, text, #actual, #expected).c_str()) - -#define GTEST_TEST_NO_FATAL_FAILURE_(statement, fail) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::AlwaysTrue()) { \ - ::testing::internal::HasNewFatalFailureHelper gtest_fatal_failure_checker; \ - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ - if (gtest_fatal_failure_checker.has_new_fatal_failure()) { \ - goto GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__); \ - } \ - } else \ - GTEST_CONCAT_TOKEN_(gtest_label_testnofatal_, __LINE__): \ - fail("Expected: " #statement " doesn't generate new fatal " \ - "failures in the current thread.\n" \ - " Actual: it does.") - -// Expands to the name of the class that implements the given test. -#define GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - test_suite_name##_##test_name##_Test - -// Helper macro for defining tests. -#define GTEST_TEST_(test_suite_name, test_name, parent_class, parent_id) \ - static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1, \ - "test_suite_name must not be empty"); \ - static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1, \ - "test_name must not be empty"); \ - class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public parent_class { \ - public: \ - GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {} \ - \ - private: \ - virtual void TestBody(); \ - static ::testing::TestInfo* const test_info_ GTEST_ATTRIBUTE_UNUSED_; \ - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)); \ - }; \ - \ - ::testing::TestInfo* const GTEST_TEST_CLASS_NAME_(test_suite_name, \ - test_name)::test_info_ = \ - ::testing::internal::MakeAndRegisterTestInfo( \ - #test_suite_name, #test_name, nullptr, nullptr, \ - ::testing::internal::CodeLocation(__FILE__, __LINE__), (parent_id), \ - ::testing::internal::SuiteApiResolver< \ - parent_class>::GetSetUpCaseOrSuite(__FILE__, __LINE__), \ - ::testing::internal::SuiteApiResolver< \ - parent_class>::GetTearDownCaseOrSuite(__FILE__, __LINE__), \ - new ::testing::internal::TestFactoryImpl); \ - void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody() - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_INTERNAL_H_ diff --git a/include/gtest/internal/gtest-param-util.h b/include/gtest/internal/gtest-param-util.h deleted file mode 100644 index 9753399..0000000 --- a/include/gtest/internal/gtest-param-util.h +++ /dev/null @@ -1,883 +0,0 @@ -// Copyright 2008 Google Inc. -// All Rights Reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Type and function utilities for implementing parameterized tests. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "gtest/internal/gtest-internal.h" -#include "gtest/internal/gtest-port.h" -#include "gtest/gtest-printers.h" - -namespace testing { -// Input to a parameterized test name generator, describing a test parameter. -// Consists of the parameter value and the integer parameter index. -template -struct TestParamInfo { - TestParamInfo(const ParamType& a_param, size_t an_index) : - param(a_param), - index(an_index) {} - ParamType param; - size_t index; -}; - -// A builtin parameterized test name generator which returns the result of -// testing::PrintToString. -struct PrintToStringParamName { - template - std::string operator()(const TestParamInfo& info) const { - return PrintToString(info.param); - } -}; - -namespace internal { - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// Utility Functions - -// Outputs a message explaining invalid registration of different -// fixture class for the same test suite. This may happen when -// TEST_P macro is used to define two tests with the same name -// but in different namespaces. -GTEST_API_ void ReportInvalidTestSuiteType(const char* test_suite_name, - CodeLocation code_location); - -template class ParamGeneratorInterface; -template class ParamGenerator; - -// Interface for iterating over elements provided by an implementation -// of ParamGeneratorInterface. -template -class ParamIteratorInterface { - public: - virtual ~ParamIteratorInterface() {} - // A pointer to the base generator instance. - // Used only for the purposes of iterator comparison - // to make sure that two iterators belong to the same generator. - virtual const ParamGeneratorInterface* BaseGenerator() const = 0; - // Advances iterator to point to the next element - // provided by the generator. The caller is responsible - // for not calling Advance() on an iterator equal to - // BaseGenerator()->End(). - virtual void Advance() = 0; - // Clones the iterator object. Used for implementing copy semantics - // of ParamIterator. - virtual ParamIteratorInterface* Clone() const = 0; - // Dereferences the current iterator and provides (read-only) access - // to the pointed value. It is the caller's responsibility not to call - // Current() on an iterator equal to BaseGenerator()->End(). - // Used for implementing ParamGenerator::operator*(). - virtual const T* Current() const = 0; - // Determines whether the given iterator and other point to the same - // element in the sequence generated by the generator. - // Used for implementing ParamGenerator::operator==(). - virtual bool Equals(const ParamIteratorInterface& other) const = 0; -}; - -// Class iterating over elements provided by an implementation of -// ParamGeneratorInterface. It wraps ParamIteratorInterface -// and implements the const forward iterator concept. -template -class ParamIterator { - public: - typedef T value_type; - typedef const T& reference; - typedef ptrdiff_t difference_type; - - // ParamIterator assumes ownership of the impl_ pointer. - ParamIterator(const ParamIterator& other) : impl_(other.impl_->Clone()) {} - ParamIterator& operator=(const ParamIterator& other) { - if (this != &other) - impl_.reset(other.impl_->Clone()); - return *this; - } - - const T& operator*() const { return *impl_->Current(); } - const T* operator->() const { return impl_->Current(); } - // Prefix version of operator++. - ParamIterator& operator++() { - impl_->Advance(); - return *this; - } - // Postfix version of operator++. - ParamIterator operator++(int /*unused*/) { - ParamIteratorInterface* clone = impl_->Clone(); - impl_->Advance(); - return ParamIterator(clone); - } - bool operator==(const ParamIterator& other) const { - return impl_.get() == other.impl_.get() || impl_->Equals(*other.impl_); - } - bool operator!=(const ParamIterator& other) const { - return !(*this == other); - } - - private: - friend class ParamGenerator; - explicit ParamIterator(ParamIteratorInterface* impl) : impl_(impl) {} - std::unique_ptr > impl_; -}; - -// ParamGeneratorInterface is the binary interface to access generators -// defined in other translation units. -template -class ParamGeneratorInterface { - public: - typedef T ParamType; - - virtual ~ParamGeneratorInterface() {} - - // Generator interface definition - virtual ParamIteratorInterface* Begin() const = 0; - virtual ParamIteratorInterface* End() const = 0; -}; - -// Wraps ParamGeneratorInterface and provides general generator syntax -// compatible with the STL Container concept. -// This class implements copy initialization semantics and the contained -// ParamGeneratorInterface instance is shared among all copies -// of the original object. This is possible because that instance is immutable. -template -class ParamGenerator { - public: - typedef ParamIterator iterator; - - explicit ParamGenerator(ParamGeneratorInterface* impl) : impl_(impl) {} - ParamGenerator(const ParamGenerator& other) : impl_(other.impl_) {} - - ParamGenerator& operator=(const ParamGenerator& other) { - impl_ = other.impl_; - return *this; - } - - iterator begin() const { return iterator(impl_->Begin()); } - iterator end() const { return iterator(impl_->End()); } - - private: - std::shared_ptr > impl_; -}; - -// Generates values from a range of two comparable values. Can be used to -// generate sequences of user-defined types that implement operator+() and -// operator<(). -// This class is used in the Range() function. -template -class RangeGenerator : public ParamGeneratorInterface { - public: - RangeGenerator(T begin, T end, IncrementT step) - : begin_(begin), end_(end), - step_(step), end_index_(CalculateEndIndex(begin, end, step)) {} - ~RangeGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, begin_, 0, step_); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, end_, end_index_, step_); - } - - private: - class Iterator : public ParamIteratorInterface { - public: - Iterator(const ParamGeneratorInterface* base, T value, int index, - IncrementT step) - : base_(base), value_(value), index_(index), step_(step) {} - ~Iterator() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - void Advance() override { - value_ = static_cast(value_ + step_); - index_++; - } - ParamIteratorInterface* Clone() const override { - return new Iterator(*this); - } - const T* Current() const override { return &value_; } - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - const int other_index = - CheckedDowncastToActualType(&other)->index_; - return index_ == other_index; - } - - private: - Iterator(const Iterator& other) - : ParamIteratorInterface(), - base_(other.base_), value_(other.value_), index_(other.index_), - step_(other.step_) {} - - // No implementation - assignment is unsupported. - void operator=(const Iterator& other); - - const ParamGeneratorInterface* const base_; - T value_; - int index_; - const IncrementT step_; - }; // class RangeGenerator::Iterator - - static int CalculateEndIndex(const T& begin, - const T& end, - const IncrementT& step) { - int end_index = 0; - for (T i = begin; i < end; i = static_cast(i + step)) - end_index++; - return end_index; - } - - // No implementation - assignment is unsupported. - void operator=(const RangeGenerator& other); - - const T begin_; - const T end_; - const IncrementT step_; - // The index for the end() iterator. All the elements in the generated - // sequence are indexed (0-based) to aid iterator comparison. - const int end_index_; -}; // class RangeGenerator - - -// Generates values from a pair of STL-style iterators. Used in the -// ValuesIn() function. The elements are copied from the source range -// since the source can be located on the stack, and the generator -// is likely to persist beyond that stack frame. -template -class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface { - public: - template - ValuesInIteratorRangeGenerator(ForwardIterator begin, ForwardIterator end) - : container_(begin, end) {} - ~ValuesInIteratorRangeGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, container_.begin()); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, container_.end()); - } - - private: - typedef typename ::std::vector ContainerType; - - class Iterator : public ParamIteratorInterface { - public: - Iterator(const ParamGeneratorInterface* base, - typename ContainerType::const_iterator iterator) - : base_(base), iterator_(iterator) {} - ~Iterator() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - void Advance() override { - ++iterator_; - value_.reset(); - } - ParamIteratorInterface* Clone() const override { - return new Iterator(*this); - } - // We need to use cached value referenced by iterator_ because *iterator_ - // can return a temporary object (and of type other then T), so just - // having "return &*iterator_;" doesn't work. - // value_ is updated here and not in Advance() because Advance() - // can advance iterator_ beyond the end of the range, and we cannot - // detect that fact. The client code, on the other hand, is - // responsible for not calling Current() on an out-of-range iterator. - const T* Current() const override { - if (value_.get() == nullptr) value_.reset(new T(*iterator_)); - return value_.get(); - } - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - return iterator_ == - CheckedDowncastToActualType(&other)->iterator_; - } - - private: - Iterator(const Iterator& other) - // The explicit constructor call suppresses a false warning - // emitted by gcc when supplied with the -Wextra option. - : ParamIteratorInterface(), - base_(other.base_), - iterator_(other.iterator_) {} - - const ParamGeneratorInterface* const base_; - typename ContainerType::const_iterator iterator_; - // A cached value of *iterator_. We keep it here to allow access by - // pointer in the wrapping iterator's operator->(). - // value_ needs to be mutable to be accessed in Current(). - // Use of std::unique_ptr helps manage cached value's lifetime, - // which is bound by the lifespan of the iterator itself. - mutable std::unique_ptr value_; - }; // class ValuesInIteratorRangeGenerator::Iterator - - // No implementation - assignment is unsupported. - void operator=(const ValuesInIteratorRangeGenerator& other); - - const ContainerType container_; -}; // class ValuesInIteratorRangeGenerator - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Default parameterized test name generator, returns a string containing the -// integer test parameter index. -template -std::string DefaultParamName(const TestParamInfo& info) { - Message name_stream; - name_stream << info.index; - return name_stream.GetString(); -} - -template -void TestNotEmpty() { - static_assert(sizeof(T) == 0, "Empty arguments are not allowed."); -} -template -void TestNotEmpty(const T&) {} - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Stores a parameter value and later creates tests parameterized with that -// value. -template -class ParameterizedTestFactory : public TestFactoryBase { - public: - typedef typename TestClass::ParamType ParamType; - explicit ParameterizedTestFactory(ParamType parameter) : - parameter_(parameter) {} - Test* CreateTest() override { - TestClass::SetParam(¶meter_); - return new TestClass(); - } - - private: - const ParamType parameter_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestFactory); -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// TestMetaFactoryBase is a base class for meta-factories that create -// test factories for passing into MakeAndRegisterTestInfo function. -template -class TestMetaFactoryBase { - public: - virtual ~TestMetaFactoryBase() {} - - virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0; -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// TestMetaFactory creates test factories for passing into -// MakeAndRegisterTestInfo function. Since MakeAndRegisterTestInfo receives -// ownership of test factory pointer, same factory object cannot be passed -// into that method twice. But ParameterizedTestSuiteInfo is going to call -// it for each Test/Parameter value combination. Thus it needs meta factory -// creator class. -template -class TestMetaFactory - : public TestMetaFactoryBase { - public: - using ParamType = typename TestSuite::ParamType; - - TestMetaFactory() {} - - TestFactoryBase* CreateTestFactory(ParamType parameter) override { - return new ParameterizedTestFactory(parameter); - } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(TestMetaFactory); -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteInfoBase is a generic interface -// to ParameterizedTestSuiteInfo classes. ParameterizedTestSuiteInfoBase -// accumulates test information provided by TEST_P macro invocations -// and generators provided by INSTANTIATE_TEST_SUITE_P macro invocations -// and uses that information to register all resulting test instances -// in RegisterTests method. The ParameterizeTestSuiteRegistry class holds -// a collection of pointers to the ParameterizedTestSuiteInfo objects -// and calls RegisterTests() on each of them when asked. -class ParameterizedTestSuiteInfoBase { - public: - virtual ~ParameterizedTestSuiteInfoBase() {} - - // Base part of test suite name for display purposes. - virtual const std::string& GetTestSuiteName() const = 0; - // Test case id to verify identity. - virtual TypeId GetTestSuiteTypeId() const = 0; - // UnitTest class invokes this method to register tests in this - // test suite right before running them in RUN_ALL_TESTS macro. - // This method should not be called more than once on any single - // instance of a ParameterizedTestSuiteInfoBase derived class. - virtual void RegisterTests() = 0; - - protected: - ParameterizedTestSuiteInfoBase() {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfoBase); -}; - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteInfo accumulates tests obtained from TEST_P -// macro invocations for a particular test suite and generators -// obtained from INSTANTIATE_TEST_SUITE_P macro invocations for that -// test suite. It registers tests with all values generated by all -// generators when asked. -template -class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase { - public: - // ParamType and GeneratorCreationFunc are private types but are required - // for declarations of public methods AddTestPattern() and - // AddTestSuiteInstantiation(). - using ParamType = typename TestSuite::ParamType; - // A function that returns an instance of appropriate generator type. - typedef ParamGenerator(GeneratorCreationFunc)(); - using ParamNameGeneratorFunc = std::string(const TestParamInfo&); - - explicit ParameterizedTestSuiteInfo(const char* name, - CodeLocation code_location) - : test_suite_name_(name), code_location_(code_location) {} - - // Test case base name for display purposes. - const std::string& GetTestSuiteName() const override { - return test_suite_name_; - } - // Test case id to verify identity. - TypeId GetTestSuiteTypeId() const override { return GetTypeId(); } - // TEST_P macro uses AddTestPattern() to record information - // about a single test in a LocalTestInfo structure. - // test_suite_name is the base name of the test suite (without invocation - // prefix). test_base_name is the name of an individual test without - // parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is - // test suite base name and DoBar is test base name. - void AddTestPattern(const char* test_suite_name, const char* test_base_name, - TestMetaFactoryBase* meta_factory) { - tests_.push_back(std::shared_ptr( - new TestInfo(test_suite_name, test_base_name, meta_factory))); - } - // INSTANTIATE_TEST_SUITE_P macro uses AddGenerator() to record information - // about a generator. - int AddTestSuiteInstantiation(const std::string& instantiation_name, - GeneratorCreationFunc* func, - ParamNameGeneratorFunc* name_func, - const char* file, int line) { - instantiations_.push_back( - InstantiationInfo(instantiation_name, func, name_func, file, line)); - return 0; // Return value used only to run this method in namespace scope. - } - // UnitTest class invokes this method to register tests in this test suite - // test suites right before running tests in RUN_ALL_TESTS macro. - // This method should not be called more than once on any single - // instance of a ParameterizedTestSuiteInfoBase derived class. - // UnitTest has a guard to prevent from calling this method more than once. - void RegisterTests() override { - for (typename TestInfoContainer::iterator test_it = tests_.begin(); - test_it != tests_.end(); ++test_it) { - std::shared_ptr test_info = *test_it; - for (typename InstantiationContainer::iterator gen_it = - instantiations_.begin(); gen_it != instantiations_.end(); - ++gen_it) { - const std::string& instantiation_name = gen_it->name; - ParamGenerator generator((*gen_it->generator)()); - ParamNameGeneratorFunc* name_func = gen_it->name_func; - const char* file = gen_it->file; - int line = gen_it->line; - - std::string test_suite_name; - if ( !instantiation_name.empty() ) - test_suite_name = instantiation_name + "/"; - test_suite_name += test_info->test_suite_base_name; - - size_t i = 0; - std::set test_param_names; - for (typename ParamGenerator::iterator param_it = - generator.begin(); - param_it != generator.end(); ++param_it, ++i) { - Message test_name_stream; - - std::string param_name = name_func( - TestParamInfo(*param_it, i)); - - GTEST_CHECK_(IsValidParamName(param_name)) - << "Parameterized test name '" << param_name - << "' is invalid, in " << file - << " line " << line << std::endl; - - GTEST_CHECK_(test_param_names.count(param_name) == 0) - << "Duplicate parameterized test name '" << param_name - << "', in " << file << " line " << line << std::endl; - - test_param_names.insert(param_name); - - if (!test_info->test_base_name.empty()) { - test_name_stream << test_info->test_base_name << "/"; - } - test_name_stream << param_name; - MakeAndRegisterTestInfo( - test_suite_name.c_str(), test_name_stream.GetString().c_str(), - nullptr, // No type parameter. - PrintToString(*param_it).c_str(), code_location_, - GetTestSuiteTypeId(), - SuiteApiResolver::GetSetUpCaseOrSuite(file, line), - SuiteApiResolver::GetTearDownCaseOrSuite(file, line), - test_info->test_meta_factory->CreateTestFactory(*param_it)); - } // for param_it - } // for gen_it - } // for test_it - } // RegisterTests - - private: - // LocalTestInfo structure keeps information about a single test registered - // with TEST_P macro. - struct TestInfo { - TestInfo(const char* a_test_suite_base_name, const char* a_test_base_name, - TestMetaFactoryBase* a_test_meta_factory) - : test_suite_base_name(a_test_suite_base_name), - test_base_name(a_test_base_name), - test_meta_factory(a_test_meta_factory) {} - - const std::string test_suite_base_name; - const std::string test_base_name; - const std::unique_ptr > test_meta_factory; - }; - using TestInfoContainer = ::std::vector >; - // Records data received from INSTANTIATE_TEST_SUITE_P macros: - // - struct InstantiationInfo { - InstantiationInfo(const std::string &name_in, - GeneratorCreationFunc* generator_in, - ParamNameGeneratorFunc* name_func_in, - const char* file_in, - int line_in) - : name(name_in), - generator(generator_in), - name_func(name_func_in), - file(file_in), - line(line_in) {} - - std::string name; - GeneratorCreationFunc* generator; - ParamNameGeneratorFunc* name_func; - const char* file; - int line; - }; - typedef ::std::vector InstantiationContainer; - - static bool IsValidParamName(const std::string& name) { - // Check for empty string - if (name.empty()) - return false; - - // Check for invalid characters - for (std::string::size_type index = 0; index < name.size(); ++index) { - if (!isalnum(name[index]) && name[index] != '_') - return false; - } - - return true; - } - - const std::string test_suite_name_; - CodeLocation code_location_; - TestInfoContainer tests_; - InstantiationContainer instantiations_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteInfo); -}; // class ParameterizedTestSuiteInfo - -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ -template -using ParameterizedTestCaseInfo = ParameterizedTestSuiteInfo; -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// ParameterizedTestSuiteRegistry contains a map of -// ParameterizedTestSuiteInfoBase classes accessed by test suite names. TEST_P -// and INSTANTIATE_TEST_SUITE_P macros use it to locate their corresponding -// ParameterizedTestSuiteInfo descriptors. -class ParameterizedTestSuiteRegistry { - public: - ParameterizedTestSuiteRegistry() {} - ~ParameterizedTestSuiteRegistry() { - for (auto& test_suite_info : test_suite_infos_) { - delete test_suite_info; - } - } - - // Looks up or creates and returns a structure containing information about - // tests and instantiations of a particular test suite. - template - ParameterizedTestSuiteInfo* GetTestSuitePatternHolder( - const char* test_suite_name, CodeLocation code_location) { - ParameterizedTestSuiteInfo* typed_test_info = nullptr; - for (auto& test_suite_info : test_suite_infos_) { - if (test_suite_info->GetTestSuiteName() == test_suite_name) { - if (test_suite_info->GetTestSuiteTypeId() != GetTypeId()) { - // Complain about incorrect usage of Google Test facilities - // and terminate the program since we cannot guaranty correct - // test suite setup and tear-down in this case. - ReportInvalidTestSuiteType(test_suite_name, code_location); - posix::Abort(); - } else { - // At this point we are sure that the object we found is of the same - // type we are looking for, so we downcast it to that type - // without further checks. - typed_test_info = CheckedDowncastToActualType< - ParameterizedTestSuiteInfo >(test_suite_info); - } - break; - } - } - if (typed_test_info == nullptr) { - typed_test_info = new ParameterizedTestSuiteInfo( - test_suite_name, code_location); - test_suite_infos_.push_back(typed_test_info); - } - return typed_test_info; - } - void RegisterTests() { - for (auto& test_suite_info : test_suite_infos_) { - test_suite_info->RegisterTests(); - } - } -// Legacy API is deprecated but still available -#ifndef GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - template - ParameterizedTestCaseInfo* GetTestCasePatternHolder( - const char* test_case_name, CodeLocation code_location) { - return GetTestSuitePatternHolder(test_case_name, code_location); - } - -#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_ - - private: - using TestSuiteInfoContainer = ::std::vector; - - TestSuiteInfoContainer test_suite_infos_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ParameterizedTestSuiteRegistry); -}; - -} // namespace internal - -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template -internal::ParamGenerator ValuesIn( - const Container& container); - -namespace internal { -// Used in the Values() function to provide polymorphic capabilities. - -template -class ValueArray { - public: - ValueArray(Ts... v) : v_{std::move(v)...} {} - - template - operator ParamGenerator() const { // NOLINT - return ValuesIn(MakeVector(MakeIndexSequence())); - } - - private: - template - std::vector MakeVector(IndexSequence) const { - return std::vector{static_cast(v_.template Get())...}; - } - - FlatTuple v_; -}; - -template -class CartesianProductGenerator - : public ParamGeneratorInterface<::std::tuple> { - public: - typedef ::std::tuple ParamType; - - CartesianProductGenerator(const std::tuple...>& g) - : generators_(g) {} - ~CartesianProductGenerator() override {} - - ParamIteratorInterface* Begin() const override { - return new Iterator(this, generators_, false); - } - ParamIteratorInterface* End() const override { - return new Iterator(this, generators_, true); - } - - private: - template - class IteratorImpl; - template - class IteratorImpl> - : public ParamIteratorInterface { - public: - IteratorImpl(const ParamGeneratorInterface* base, - const std::tuple...>& generators, bool is_end) - : base_(base), - begin_(std::get(generators).begin()...), - end_(std::get(generators).end()...), - current_(is_end ? end_ : begin_) { - ComputeCurrentValue(); - } - ~IteratorImpl() override {} - - const ParamGeneratorInterface* BaseGenerator() const override { - return base_; - } - // Advance should not be called on beyond-of-range iterators - // so no component iterators must be beyond end of range, either. - void Advance() override { - assert(!AtEnd()); - // Advance the last iterator. - ++std::get(current_); - // if that reaches end, propagate that up. - AdvanceIfEnd(); - ComputeCurrentValue(); - } - ParamIteratorInterface* Clone() const override { - return new IteratorImpl(*this); - } - - const ParamType* Current() const override { return current_value_.get(); } - - bool Equals(const ParamIteratorInterface& other) const override { - // Having the same base generator guarantees that the other - // iterator is of the same type and we can downcast. - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator()) - << "The program attempted to compare iterators " - << "from different generators." << std::endl; - const IteratorImpl* typed_other = - CheckedDowncastToActualType(&other); - - // We must report iterators equal if they both point beyond their - // respective ranges. That can happen in a variety of fashions, - // so we have to consult AtEnd(). - if (AtEnd() && typed_other->AtEnd()) return true; - - bool same = true; - bool dummy[] = { - (same = same && std::get(current_) == - std::get(typed_other->current_))...}; - (void)dummy; - return same; - } - - private: - template - void AdvanceIfEnd() { - if (std::get(current_) != std::get(end_)) return; - - bool last = ThisI == 0; - if (last) { - // We are done. Nothing else to propagate. - return; - } - - constexpr size_t NextI = ThisI - (ThisI != 0); - std::get(current_) = std::get(begin_); - ++std::get(current_); - AdvanceIfEnd(); - } - - void ComputeCurrentValue() { - if (!AtEnd()) - current_value_ = std::make_shared(*std::get(current_)...); - } - bool AtEnd() const { - bool at_end = false; - bool dummy[] = { - (at_end = at_end || std::get(current_) == std::get(end_))...}; - (void)dummy; - return at_end; - } - - const ParamGeneratorInterface* const base_; - std::tuple::iterator...> begin_; - std::tuple::iterator...> end_; - std::tuple::iterator...> current_; - std::shared_ptr current_value_; - }; - - using Iterator = IteratorImpl::type>; - - std::tuple...> generators_; -}; - -template -class CartesianProductHolder { - public: - CartesianProductHolder(const Gen&... g) : generators_(g...) {} - template - operator ParamGenerator<::std::tuple>() const { - return ParamGenerator<::std::tuple>( - new CartesianProductGenerator(generators_)); - } - - private: - std::tuple generators_; -}; - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ diff --git a/include/gtest/internal/gtest-port-arch.h b/include/gtest/internal/gtest-port-arch.h deleted file mode 100644 index cece93d..0000000 --- a/include/gtest/internal/gtest-port-arch.h +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file defines the GTEST_OS_* macro. -// It is separate from gtest-port.h so that custom/gtest-port.h can include it. - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ - -// Determines the platform on which Google Test is compiled. -#ifdef __CYGWIN__ -# define GTEST_OS_CYGWIN 1 -# elif defined(__MINGW__) || defined(__MINGW32__) || defined(__MINGW64__) -# define GTEST_OS_WINDOWS_MINGW 1 -# define GTEST_OS_WINDOWS 1 -#elif defined _WIN32 -# define GTEST_OS_WINDOWS 1 -# ifdef _WIN32_WCE -# define GTEST_OS_WINDOWS_MOBILE 1 -# elif defined(WINAPI_FAMILY) -# include -# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# define GTEST_OS_WINDOWS_DESKTOP 1 -# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) -# define GTEST_OS_WINDOWS_PHONE 1 -# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -# define GTEST_OS_WINDOWS_RT 1 -# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_TV_TITLE) -# define GTEST_OS_WINDOWS_PHONE 1 -# define GTEST_OS_WINDOWS_TV_TITLE 1 -# else - // WINAPI_FAMILY defined but no known partition matched. - // Default to desktop. -# define GTEST_OS_WINDOWS_DESKTOP 1 -# endif -# else -# define GTEST_OS_WINDOWS_DESKTOP 1 -# endif // _WIN32_WCE -#elif defined __OS2__ -# define GTEST_OS_OS2 1 -#elif defined __APPLE__ -# define GTEST_OS_MAC 1 -# if TARGET_OS_IPHONE -# define GTEST_OS_IOS 1 -# endif -#elif defined __DragonFly__ -# define GTEST_OS_DRAGONFLY 1 -#elif defined __FreeBSD__ -# define GTEST_OS_FREEBSD 1 -#elif defined __Fuchsia__ -# define GTEST_OS_FUCHSIA 1 -#elif defined(__GLIBC__) && defined(__FreeBSD_kernel__) -# define GTEST_OS_GNU_KFREEBSD 1 -#elif defined __linux__ -# define GTEST_OS_LINUX 1 -# if defined __ANDROID__ -# define GTEST_OS_LINUX_ANDROID 1 -# endif -#elif defined __MVS__ -# define GTEST_OS_ZOS 1 -#elif defined(__sun) && defined(__SVR4) -# define GTEST_OS_SOLARIS 1 -#elif defined(_AIX) -# define GTEST_OS_AIX 1 -#elif defined(__hpux) -# define GTEST_OS_HPUX 1 -#elif defined __native_client__ -# define GTEST_OS_NACL 1 -#elif defined __NetBSD__ -# define GTEST_OS_NETBSD 1 -#elif defined __OpenBSD__ -# define GTEST_OS_OPENBSD 1 -#elif defined __QNX__ -# define GTEST_OS_QNX 1 -#elif defined(__HAIKU__) -#define GTEST_OS_HAIKU 1 -#endif // __CYGWIN__ - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_ diff --git a/include/gtest/internal/gtest-port.h b/include/gtest/internal/gtest-port.h deleted file mode 100644 index 063fcb1..0000000 --- a/include/gtest/internal/gtest-port.h +++ /dev/null @@ -1,2231 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Low-level types and utilities for porting Google Test to various -// platforms. All macros ending with _ and symbols defined in an -// internal namespace are subject to change without notice. Code -// outside Google Test MUST NOT USE THEM DIRECTLY. Macros that don't -// end with _ are part of Google Test's public API and can be used by -// code outside Google Test. -// -// This file is fundamental to Google Test. All other Google Test source -// files are expected to #include this. Therefore, it cannot #include -// any other Google Test header. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ - -// Environment-describing macros -// ----------------------------- -// -// Google Test can be used in many different environments. Macros in -// this section tell Google Test what kind of environment it is being -// used in, such that Google Test can provide environment-specific -// features and implementations. -// -// Google Test tries to automatically detect the properties of its -// environment, so users usually don't need to worry about these -// macros. However, the automatic detection is not perfect. -// Sometimes it's necessary for a user to define some of the following -// macros in the build script to override Google Test's decisions. -// -// If the user doesn't define a macro in the list, Google Test will -// provide a default definition. After this header is #included, all -// macros in this list will be defined to either 1 or 0. -// -// Notes to maintainers: -// - Each macro here is a user-tweakable knob; do not grow the list -// lightly. -// - Use #if to key off these macros. Don't use #ifdef or "#if -// defined(...)", which will not work as these macros are ALWAYS -// defined. -// -// GTEST_HAS_CLONE - Define it to 1/0 to indicate that clone(2) -// is/isn't available. -// GTEST_HAS_EXCEPTIONS - Define it to 1/0 to indicate that exceptions -// are enabled. -// GTEST_HAS_POSIX_RE - Define it to 1/0 to indicate that POSIX regular -// expressions are/aren't available. -// GTEST_HAS_PTHREAD - Define it to 1/0 to indicate that -// is/isn't available. -// GTEST_HAS_RTTI - Define it to 1/0 to indicate that RTTI is/isn't -// enabled. -// GTEST_HAS_STD_WSTRING - Define it to 1/0 to indicate that -// std::wstring does/doesn't work (Google Test can -// be used where std::wstring is unavailable). -// GTEST_HAS_SEH - Define it to 1/0 to indicate whether the -// compiler supports Microsoft's "Structured -// Exception Handling". -// GTEST_HAS_STREAM_REDIRECTION -// - Define it to 1/0 to indicate whether the -// platform supports I/O stream redirection using -// dup() and dup2(). -// GTEST_LINKED_AS_SHARED_LIBRARY -// - Define to 1 when compiling tests that use -// Google Test as a shared library (known as -// DLL on Windows). -// GTEST_CREATE_SHARED_LIBRARY -// - Define to 1 when compiling Google Test itself -// as a shared library. -// GTEST_DEFAULT_DEATH_TEST_STYLE -// - The default value of --gtest_death_test_style. -// The legacy default has been "fast" in the open -// source version since 2008. The recommended value -// is "threadsafe", and can be set in -// custom/gtest-port.h. - -// Platform-indicating macros -// -------------------------- -// -// Macros indicating the platform on which Google Test is being used -// (a macro is defined to 1 if compiled on the given platform; -// otherwise UNDEFINED -- it's never defined to 0.). Google Test -// defines these macros automatically. Code outside Google Test MUST -// NOT define them. -// -// GTEST_OS_AIX - IBM AIX -// GTEST_OS_CYGWIN - Cygwin -// GTEST_OS_DRAGONFLY - DragonFlyBSD -// GTEST_OS_FREEBSD - FreeBSD -// GTEST_OS_FUCHSIA - Fuchsia -// GTEST_OS_GNU_KFREEBSD - GNU/kFreeBSD -// GTEST_OS_HAIKU - Haiku -// GTEST_OS_HPUX - HP-UX -// GTEST_OS_LINUX - Linux -// GTEST_OS_LINUX_ANDROID - Google Android -// GTEST_OS_MAC - Mac OS X -// GTEST_OS_IOS - iOS -// GTEST_OS_NACL - Google Native Client (NaCl) -// GTEST_OS_NETBSD - NetBSD -// GTEST_OS_OPENBSD - OpenBSD -// GTEST_OS_OS2 - OS/2 -// GTEST_OS_QNX - QNX -// GTEST_OS_SOLARIS - Sun Solaris -// GTEST_OS_WINDOWS - Windows (Desktop, MinGW, or Mobile) -// GTEST_OS_WINDOWS_DESKTOP - Windows Desktop -// GTEST_OS_WINDOWS_MINGW - MinGW -// GTEST_OS_WINDOWS_MOBILE - Windows Mobile -// GTEST_OS_WINDOWS_PHONE - Windows Phone -// GTEST_OS_WINDOWS_RT - Windows Store App/WinRT -// GTEST_OS_ZOS - z/OS -// -// Among the platforms, Cygwin, Linux, Mac OS X, and Windows have the -// most stable support. Since core members of the Google Test project -// don't have access to other platforms, support for them may be less -// stable. If you notice any problems on your platform, please notify -// googletestframework@googlegroups.com (patches for fixing them are -// even more welcome!). -// -// It is possible that none of the GTEST_OS_* macros are defined. - -// Feature-indicating macros -// ------------------------- -// -// Macros indicating which Google Test features are available (a macro -// is defined to 1 if the corresponding feature is supported; -// otherwise UNDEFINED -- it's never defined to 0.). Google Test -// defines these macros automatically. Code outside Google Test MUST -// NOT define them. -// -// These macros are public so that portable tests can be written. -// Such tests typically surround code using a feature with an #if -// which controls that code. For example: -// -// #if GTEST_HAS_DEATH_TEST -// EXPECT_DEATH(DoSomethingDeadly()); -// #endif -// -// GTEST_HAS_DEATH_TEST - death tests -// GTEST_HAS_TYPED_TEST - typed tests -// GTEST_HAS_TYPED_TEST_P - type-parameterized tests -// GTEST_IS_THREADSAFE - Google Test is thread-safe. -// GOOGLETEST_CM0007 DO NOT DELETE -// GTEST_USES_POSIX_RE - enhanced POSIX regex is used. Do not confuse with -// GTEST_HAS_POSIX_RE (see above) which users can -// define themselves. -// GTEST_USES_SIMPLE_RE - our own simple regex is used; -// the above RE\b(s) are mutually exclusive. - -// Misc public macros -// ------------------ -// -// GTEST_FLAG(flag_name) - references the variable corresponding to -// the given Google Test flag. - -// Internal utilities -// ------------------ -// -// The following macros and utilities are for Google Test's INTERNAL -// use only. Code outside Google Test MUST NOT USE THEM DIRECTLY. -// -// Macros for basic C++ coding: -// GTEST_AMBIGUOUS_ELSE_BLOCKER_ - for disabling a gcc warning. -// GTEST_ATTRIBUTE_UNUSED_ - declares that a class' instances or a -// variable don't have to be used. -// GTEST_DISALLOW_ASSIGN_ - disables operator=. -// GTEST_DISALLOW_COPY_AND_ASSIGN_ - disables copy ctor and operator=. -// GTEST_MUST_USE_RESULT_ - declares that a function's result must be used. -// GTEST_INTENTIONAL_CONST_COND_PUSH_ - start code section where MSVC C4127 is -// suppressed (constant conditional). -// GTEST_INTENTIONAL_CONST_COND_POP_ - finish code section where MSVC C4127 -// is suppressed. -// -// Synchronization: -// Mutex, MutexLock, ThreadLocal, GetThreadCount() -// - synchronization primitives. -// -// Regular expressions: -// RE - a simple regular expression class using the POSIX -// Extended Regular Expression syntax on UNIX-like platforms -// GOOGLETEST_CM0008 DO NOT DELETE -// or a reduced regular exception syntax on other -// platforms, including Windows. -// Logging: -// GTEST_LOG_() - logs messages at the specified severity level. -// LogToStderr() - directs all log messages to stderr. -// FlushInfoLog() - flushes informational log messages. -// -// Stdout and stderr capturing: -// CaptureStdout() - starts capturing stdout. -// GetCapturedStdout() - stops capturing stdout and returns the captured -// string. -// CaptureStderr() - starts capturing stderr. -// GetCapturedStderr() - stops capturing stderr and returns the captured -// string. -// -// Integer types: -// TypeWithSize - maps an integer to a int type. -// Int32, UInt32, Int64, UInt64, TimeInMillis -// - integers of known sizes. -// BiggestInt - the biggest signed integer type. -// -// Command-line utilities: -// GTEST_DECLARE_*() - declares a flag. -// GTEST_DEFINE_*() - defines a flag. -// GetInjectableArgvs() - returns the command line as a vector of strings. -// -// Environment variable utilities: -// GetEnv() - gets the value of an environment variable. -// BoolFromGTestEnv() - parses a bool environment variable. -// Int32FromGTestEnv() - parses an Int32 environment variable. -// StringFromGTestEnv() - parses a string environment variable. -// -// Deprecation warnings: -// GTEST_INTERNAL_DEPRECATED(message) - attribute marking a function as -// deprecated; calling a marked function -// should generate a compiler warning - -#include // for isspace, etc -#include // for ptrdiff_t -#include -#include -#include -#include -#include - -#ifndef _WIN32_WCE -# include -# include -#endif // !_WIN32_WCE - -#if defined __APPLE__ -# include -# include -#endif - -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include // NOLINT -#include -#include -#include // NOLINT - -#include "gtest/internal/gtest-port-arch.h" -#include "gtest/internal/custom/gtest-port.h" - -#if !defined(GTEST_DEV_EMAIL_) -# define GTEST_DEV_EMAIL_ "googletestframework@@googlegroups.com" -# define GTEST_FLAG_PREFIX_ "gtest_" -# define GTEST_FLAG_PREFIX_DASH_ "gtest-" -# define GTEST_FLAG_PREFIX_UPPER_ "GTEST_" -# define GTEST_NAME_ "Google Test" -# define GTEST_PROJECT_URL_ "https://github.com/google/googletest/" -#endif // !defined(GTEST_DEV_EMAIL_) - -#if !defined(GTEST_INIT_GOOGLE_TEST_NAME_) -# define GTEST_INIT_GOOGLE_TEST_NAME_ "testing::InitGoogleTest" -#endif // !defined(GTEST_INIT_GOOGLE_TEST_NAME_) - -// Determines the version of gcc that is used to compile this. -#ifdef __GNUC__ -// 40302 means version 4.3.2. -# define GTEST_GCC_VER_ \ - (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__) -#endif // __GNUC__ - -// Macros for disabling Microsoft Visual C++ warnings. -// -// GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385) -// /* code that triggers warnings C4800 and C4385 */ -// GTEST_DISABLE_MSC_WARNINGS_POP_() -#if defined(_MSC_VER) -# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \ - __pragma(warning(push)) \ - __pragma(warning(disable: warnings)) -# define GTEST_DISABLE_MSC_WARNINGS_POP_() \ - __pragma(warning(pop)) -#else -// Not all compilers are MSVC -# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) -# define GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - -// Clang on Windows does not understand MSVC's pragma warning. -// We need clang-specific way to disable function deprecation warning. -#ifdef __clang__ -# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") \ - _Pragma("clang diagnostic ignored \"-Wdeprecated-implementations\"") -#define GTEST_DISABLE_MSC_DEPRECATED_POP_() \ - _Pragma("clang diagnostic pop") -#else -# define GTEST_DISABLE_MSC_DEPRECATED_PUSH_() \ - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4996) -# define GTEST_DISABLE_MSC_DEPRECATED_POP_() \ - GTEST_DISABLE_MSC_WARNINGS_POP_() -#endif - -// Brings in definitions for functions used in the testing::internal::posix -// namespace (read, write, close, chdir, isatty, stat). We do not currently -// use them on Windows Mobile. -#if GTEST_OS_WINDOWS -# if !GTEST_OS_WINDOWS_MOBILE -# include -# include -# endif -// In order to avoid having to include , use forward declaration -#if GTEST_OS_WINDOWS_MINGW && !defined(__MINGW64_VERSION_MAJOR) -// MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two -// separate (equivalent) structs, instead of using typedef -typedef struct _CRITICAL_SECTION GTEST_CRITICAL_SECTION; -#else -// Assume CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION. -// This assumption is verified by -// WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION. -typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; -#endif -#else -// This assumes that non-Windows OSes provide unistd.h. For OSes where this -// is not the case, we need to include headers that provide the functions -// mentioned above. -# include -# include -#endif // GTEST_OS_WINDOWS - -#if GTEST_OS_LINUX_ANDROID -// Used to define __ANDROID_API__ matching the target NDK API level. -# include // NOLINT -#endif - -// Defines this to true if and only if Google Test can use POSIX regular -// expressions. -#ifndef GTEST_HAS_POSIX_RE -# if GTEST_OS_LINUX_ANDROID -// On Android, is only available starting with Gingerbread. -# define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) -# else -# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) -# endif -#endif - -#if GTEST_USES_PCRE -// The appropriate headers have already been included. - -#elif GTEST_HAS_POSIX_RE - -// On some platforms, needs someone to define size_t, and -// won't compile otherwise. We can #include it here as we already -// included , which is guaranteed to define size_t through -// . -# include // NOLINT - -# define GTEST_USES_POSIX_RE 1 - -#elif GTEST_OS_WINDOWS - -// is not available on Windows. Use our own simple regex -// implementation instead. -# define GTEST_USES_SIMPLE_RE 1 - -#else - -// may not be available on this platform. Use our own -// simple regex implementation instead. -# define GTEST_USES_SIMPLE_RE 1 - -#endif // GTEST_USES_PCRE - -#ifndef GTEST_HAS_EXCEPTIONS -// The user didn't tell us whether exceptions are enabled, so we need -// to figure it out. -# if defined(_MSC_VER) && defined(_CPPUNWIND) -// MSVC defines _CPPUNWIND to 1 if and only if exceptions are enabled. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__BORLANDC__) -// C++Builder's implementation of the STL uses the _HAS_EXCEPTIONS -// macro to enable exceptions, so we'll do the same. -// Assumes that exceptions are enabled by default. -# ifndef _HAS_EXCEPTIONS -# define _HAS_EXCEPTIONS 1 -# endif // _HAS_EXCEPTIONS -# define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS -# elif defined(__clang__) -// clang defines __EXCEPTIONS if and only if exceptions are enabled before clang -// 220714, but if and only if cleanups are enabled after that. In Obj-C++ files, -// there can be cleanups for ObjC exceptions which also need cleanups, even if -// C++ exceptions are disabled. clang has __has_feature(cxx_exceptions) which -// checks for C++ exceptions starting at clang r206352, but which checked for -// cleanups prior to that. To reliably check for C++ exception availability with -// clang, check for -// __EXCEPTIONS && __has_feature(cxx_exceptions). -# define GTEST_HAS_EXCEPTIONS (__EXCEPTIONS && __has_feature(cxx_exceptions)) -# elif defined(__GNUC__) && __EXCEPTIONS -// gcc defines __EXCEPTIONS to 1 if and only if exceptions are enabled. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__SUNPRO_CC) -// Sun Pro CC supports exceptions. However, there is no compile-time way of -// detecting whether they are enabled or not. Therefore, we assume that -// they are enabled unless the user tells us otherwise. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__IBMCPP__) && __EXCEPTIONS -// xlC defines __EXCEPTIONS to 1 if and only if exceptions are enabled. -# define GTEST_HAS_EXCEPTIONS 1 -# elif defined(__HP_aCC) -// Exception handling is in effect by default in HP aCC compiler. It has to -// be turned of by +noeh compiler option if desired. -# define GTEST_HAS_EXCEPTIONS 1 -# else -// For other compilers, we assume exceptions are disabled to be -// conservative. -# define GTEST_HAS_EXCEPTIONS 0 -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -#endif // GTEST_HAS_EXCEPTIONS - -#if !defined(GTEST_HAS_STD_STRING) -// Even though we don't use this macro any longer, we keep it in case -// some clients still depend on it. -# define GTEST_HAS_STD_STRING 1 -#elif !GTEST_HAS_STD_STRING -// The user told us that ::std::string isn't available. -# error "::std::string isn't available." -#endif // !defined(GTEST_HAS_STD_STRING) - -#ifndef GTEST_HAS_STD_WSTRING -// The user didn't tell us whether ::std::wstring is available, so we need -// to figure it out. -// Cygwin 1.7 and below doesn't support ::std::wstring. -// Solaris' libc++ doesn't support it either. Android has -// no support for it at least as recent as Froyo (2.2). -#define GTEST_HAS_STD_WSTRING \ - (!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ - GTEST_OS_HAIKU)) - -#endif // GTEST_HAS_STD_WSTRING - -// Determines whether RTTI is available. -#ifndef GTEST_HAS_RTTI -// The user didn't tell us whether RTTI is enabled, so we need to -// figure it out. - -# ifdef _MSC_VER - -#ifdef _CPPRTTI // MSVC defines this macro if and only if RTTI is enabled. -# define GTEST_HAS_RTTI 1 -# else -# define GTEST_HAS_RTTI 0 -# endif - -// Starting with version 4.3.2, gcc defines __GXX_RTTI if and only if RTTI is -// enabled. -# elif defined(__GNUC__) - -# ifdef __GXX_RTTI -// When building against STLport with the Android NDK and with -// -frtti -fno-exceptions, the build fails at link time with undefined -// references to __cxa_bad_typeid. Note sure if STL or toolchain bug, -// so disable RTTI when detected. -# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \ - !defined(__EXCEPTIONS) -# define GTEST_HAS_RTTI 0 -# else -# define GTEST_HAS_RTTI 1 -# endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS -# else -# define GTEST_HAS_RTTI 0 -# endif // __GXX_RTTI - -// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends -// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the -// first version with C++ support. -# elif defined(__clang__) - -# define GTEST_HAS_RTTI __has_feature(cxx_rtti) - -// Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if -// both the typeid and dynamic_cast features are present. -# elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) - -# ifdef __RTTI_ALL__ -# define GTEST_HAS_RTTI 1 -# else -# define GTEST_HAS_RTTI 0 -# endif - -# else - -// For all other compilers, we assume RTTI is enabled. -# define GTEST_HAS_RTTI 1 - -# endif // _MSC_VER - -#endif // GTEST_HAS_RTTI - -// It's this header's responsibility to #include when RTTI -// is enabled. -#if GTEST_HAS_RTTI -# include -#endif - -// Determines whether Google Test can use the pthreads library. -#ifndef GTEST_HAS_PTHREAD -// The user didn't tell us explicitly, so we make reasonable assumptions about -// which platforms have pthreads support. -// -// To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 -// to your compiler flags. -#define GTEST_HAS_PTHREAD \ - (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX || GTEST_OS_QNX || \ - GTEST_OS_FREEBSD || GTEST_OS_NACL || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \ - GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_OPENBSD || \ - GTEST_OS_HAIKU) -#endif // GTEST_HAS_PTHREAD - -#if GTEST_HAS_PTHREAD -// gtest-port.h guarantees to #include when GTEST_HAS_PTHREAD is -// true. -# include // NOLINT - -// For timespec and nanosleep, used below. -# include // NOLINT -#endif - -// Determines whether clone(2) is supported. -// Usually it will only be available on Linux, excluding -// Linux on the Itanium architecture. -// Also see http://linux.die.net/man/2/clone. -#ifndef GTEST_HAS_CLONE -// The user didn't tell us, so we need to figure it out. - -# if GTEST_OS_LINUX && !defined(__ia64__) -# if GTEST_OS_LINUX_ANDROID -// On Android, clone() became available at different API levels for each 32-bit -// architecture. -# if defined(__LP64__) || \ - (defined(__arm__) && __ANDROID_API__ >= 9) || \ - (defined(__mips__) && __ANDROID_API__ >= 12) || \ - (defined(__i386__) && __ANDROID_API__ >= 17) -# define GTEST_HAS_CLONE 1 -# else -# define GTEST_HAS_CLONE 0 -# endif -# else -# define GTEST_HAS_CLONE 1 -# endif -# else -# define GTEST_HAS_CLONE 0 -# endif // GTEST_OS_LINUX && !defined(__ia64__) - -#endif // GTEST_HAS_CLONE - -// Determines whether to support stream redirection. This is used to test -// output correctness and to implement death tests. -#ifndef GTEST_HAS_STREAM_REDIRECTION -// By default, we assume that stream redirection is supported on all -// platforms except known mobile ones. -# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT -# define GTEST_HAS_STREAM_REDIRECTION 0 -# else -# define GTEST_HAS_STREAM_REDIRECTION 1 -# endif // !GTEST_OS_WINDOWS_MOBILE -#endif // GTEST_HAS_STREAM_REDIRECTION - -// Determines whether to support death tests. -// pops up a dialog window that cannot be suppressed programmatically. -#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ - (GTEST_OS_MAC && !GTEST_OS_IOS) || \ - (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER) || GTEST_OS_WINDOWS_MINGW || \ - GTEST_OS_AIX || GTEST_OS_HPUX || GTEST_OS_OPENBSD || GTEST_OS_QNX || \ - GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_FUCHSIA || \ - GTEST_OS_DRAGONFLY || GTEST_OS_GNU_KFREEBSD || GTEST_OS_HAIKU) -# define GTEST_HAS_DEATH_TEST 1 -#endif - -// Determines whether to support type-driven tests. - -// Typed tests need and variadic macros, which GCC, VC++ 8.0, -// Sun Pro CC, IBM Visual Age, and HP aCC support. -#if defined(__GNUC__) || defined(_MSC_VER) || defined(__SUNPRO_CC) || \ - defined(__IBMCPP__) || defined(__HP_aCC) -# define GTEST_HAS_TYPED_TEST 1 -# define GTEST_HAS_TYPED_TEST_P 1 -#endif - -// Determines whether the system compiler uses UTF-16 for encoding wide strings. -#define GTEST_WIDE_STRING_USES_UTF16_ \ - (GTEST_OS_WINDOWS || GTEST_OS_CYGWIN || GTEST_OS_AIX || GTEST_OS_OS2) - -// Determines whether test results can be streamed to a socket. -#if GTEST_OS_LINUX || GTEST_OS_GNU_KFREEBSD || GTEST_OS_DRAGONFLY || \ - GTEST_OS_FREEBSD || GTEST_OS_NETBSD || GTEST_OS_OPENBSD -# define GTEST_CAN_STREAM_RESULTS_ 1 -#endif - -// Defines some utility macros. - -// The GNU compiler emits a warning if nested "if" statements are followed by -// an "else" statement and braces are not used to explicitly disambiguate the -// "else" binding. This leads to problems with code like: -// -// if (gate) -// ASSERT_*(condition) << "Some message"; -// -// The "switch (0) case 0:" idiom is used to suppress this. -#ifdef __INTEL_COMPILER -# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ -#else -# define GTEST_AMBIGUOUS_ELSE_BLOCKER_ switch (0) case 0: default: // NOLINT -#endif - -// Use this annotation at the end of a struct/class definition to -// prevent the compiler from optimizing away instances that are never -// used. This is useful when all interesting logic happens inside the -// c'tor and / or d'tor. Example: -// -// struct Foo { -// Foo() { ... } -// } GTEST_ATTRIBUTE_UNUSED_; -// -// Also use it after a variable or parameter declaration to tell the -// compiler the variable/parameter does not have to be used. -#if defined(__GNUC__) && !defined(COMPILER_ICC) -# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused)) -#elif defined(__clang__) -# if __has_attribute(unused) -# define GTEST_ATTRIBUTE_UNUSED_ __attribute__ ((unused)) -# endif -#endif -#ifndef GTEST_ATTRIBUTE_UNUSED_ -# define GTEST_ATTRIBUTE_UNUSED_ -#endif - -// Use this annotation before a function that takes a printf format string. -#if (defined(__GNUC__) || defined(__clang__)) && !defined(COMPILER_ICC) -# if defined(__MINGW_PRINTF_FORMAT) -// MinGW has two different printf implementations. Ensure the format macro -// matches the selected implementation. See -// https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/. -# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \ - __attribute__((__format__(__MINGW_PRINTF_FORMAT, string_index, \ - first_to_check))) -# else -# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) \ - __attribute__((__format__(__printf__, string_index, first_to_check))) -# endif -#else -# define GTEST_ATTRIBUTE_PRINTF_(string_index, first_to_check) -#endif - - -// A macro to disallow operator= -// This should be used in the private: declarations for a class. -#define GTEST_DISALLOW_ASSIGN_(type) \ - void operator=(type const &) = delete - -// A macro to disallow copy constructor and operator= -// This should be used in the private: declarations for a class. -#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \ - type(type const &) = delete; \ - GTEST_DISALLOW_ASSIGN_(type) - -// Tell the compiler to warn about unused return values for functions declared -// with this macro. The macro should be used on function declarations -// following the argument list: -// -// Sprocket* AllocateSprocket() GTEST_MUST_USE_RESULT_; -#if defined(__GNUC__) && !defined(COMPILER_ICC) -# define GTEST_MUST_USE_RESULT_ __attribute__ ((warn_unused_result)) -#else -# define GTEST_MUST_USE_RESULT_ -#endif // __GNUC__ && !COMPILER_ICC - -// MS C++ compiler emits warning when a conditional expression is compile time -// constant. In some contexts this warning is false positive and needs to be -// suppressed. Use the following two macros in such cases: -// -// GTEST_INTENTIONAL_CONST_COND_PUSH_() -// while (true) { -// GTEST_INTENTIONAL_CONST_COND_POP_() -// } -# define GTEST_INTENTIONAL_CONST_COND_PUSH_() \ - GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127) -# define GTEST_INTENTIONAL_CONST_COND_POP_() \ - GTEST_DISABLE_MSC_WARNINGS_POP_() - -// Determine whether the compiler supports Microsoft's Structured Exception -// Handling. This is supported by several Windows compilers but generally -// does not exist on any other system. -#ifndef GTEST_HAS_SEH -// The user didn't tell us, so we need to figure it out. - -# if defined(_MSC_VER) || defined(__BORLANDC__) -// These two compilers are known to support SEH. -# define GTEST_HAS_SEH 1 -# else -// Assume no SEH. -# define GTEST_HAS_SEH 0 -# endif - -#endif // GTEST_HAS_SEH - -#ifndef GTEST_IS_THREADSAFE - -#define GTEST_IS_THREADSAFE \ - (GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ || \ - (GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT) || \ - GTEST_HAS_PTHREAD) - -#endif // GTEST_IS_THREADSAFE - -// GTEST_API_ qualifies all symbols that must be exported. The definitions below -// are guarded by #ifndef to give embedders a chance to define GTEST_API_ in -// gtest/internal/custom/gtest-port.h -#ifndef GTEST_API_ - -#ifdef _MSC_VER -# if GTEST_LINKED_AS_SHARED_LIBRARY -# define GTEST_API_ __declspec(dllimport) -# elif GTEST_CREATE_SHARED_LIBRARY -# define GTEST_API_ __declspec(dllexport) -# endif -#elif __GNUC__ >= 4 || defined(__clang__) -# define GTEST_API_ __attribute__((visibility ("default"))) -#endif // _MSC_VER - -#endif // GTEST_API_ - -#ifndef GTEST_API_ -# define GTEST_API_ -#endif // GTEST_API_ - -#ifndef GTEST_DEFAULT_DEATH_TEST_STYLE -# define GTEST_DEFAULT_DEATH_TEST_STYLE "fast" -#endif // GTEST_DEFAULT_DEATH_TEST_STYLE - -#ifdef __GNUC__ -// Ask the compiler to never inline a given function. -# define GTEST_NO_INLINE_ __attribute__((noinline)) -#else -# define GTEST_NO_INLINE_ -#endif - -// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project. -#if !defined(GTEST_HAS_CXXABI_H_) -# if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)) -# define GTEST_HAS_CXXABI_H_ 1 -# else -# define GTEST_HAS_CXXABI_H_ 0 -# endif -#endif - -// A function level attribute to disable checking for use of uninitialized -// memory when built with MemorySanitizer. -#if defined(__clang__) -# if __has_feature(memory_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ \ - __attribute__((no_sanitize_memory)) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -# endif // __has_feature(memory_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_MEMORY_ -#endif // __clang__ - -// A function level attribute to disable AddressSanitizer instrumentation. -#if defined(__clang__) -# if __has_feature(address_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ \ - __attribute__((no_sanitize_address)) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -# endif // __has_feature(address_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_ -#endif // __clang__ - -// A function level attribute to disable HWAddressSanitizer instrumentation. -#if defined(__clang__) -# if __has_feature(hwaddress_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ \ - __attribute__((no_sanitize("hwaddress"))) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -# endif // __has_feature(hwaddress_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_ -#endif // __clang__ - -// A function level attribute to disable ThreadSanitizer instrumentation. -#if defined(__clang__) -# if __has_feature(thread_sanitizer) -# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ \ - __attribute__((no_sanitize_thread)) -# else -# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -# endif // __has_feature(thread_sanitizer) -#else -# define GTEST_ATTRIBUTE_NO_SANITIZE_THREAD_ -#endif // __clang__ - -namespace testing { - -class Message; - -// Legacy imports for backwards compatibility. -// New code should use std:: names directly. -using std::get; -using std::make_tuple; -using std::tuple; -using std::tuple_element; -using std::tuple_size; - -namespace internal { - -// A secret type that Google Test users don't know about. It has no -// definition on purpose. Therefore it's impossible to create a -// Secret object, which is what we want. -class Secret; - -// The GTEST_COMPILE_ASSERT_ is a legacy macro used to verify that a compile -// time expression is true (in new code, use static_assert instead). For -// example, you could use it to verify the size of a static array: -// -// GTEST_COMPILE_ASSERT_(GTEST_ARRAY_SIZE_(names) == NUM_NAMES, -// names_incorrect_size); -// -// The second argument to the macro must be a valid C++ identifier. If the -// expression is false, compiler will issue an error containing this identifier. -#define GTEST_COMPILE_ASSERT_(expr, msg) static_assert(expr, #msg) - -// Evaluates to the number of elements in 'array'. -#define GTEST_ARRAY_SIZE_(array) (sizeof(array) / sizeof(array[0])) - -// A helper for suppressing warnings on constant condition. It just -// returns 'condition'. -GTEST_API_ bool IsTrue(bool condition); - -// Defines RE. - -#if GTEST_USES_PCRE -// if used, PCRE is injected by custom/gtest-port.h -#elif GTEST_USES_POSIX_RE || GTEST_USES_SIMPLE_RE - -// A simple C++ wrapper for . It uses the POSIX Extended -// Regular Expression syntax. -class GTEST_API_ RE { - public: - // A copy constructor is required by the Standard to initialize object - // references from r-values. - RE(const RE& other) { Init(other.pattern()); } - - // Constructs an RE from a string. - RE(const ::std::string& regex) { Init(regex.c_str()); } // NOLINT - - RE(const char* regex) { Init(regex); } // NOLINT - ~RE(); - - // Returns the string representation of the regex. - const char* pattern() const { return pattern_; } - - // FullMatch(str, re) returns true if and only if regular expression re - // matches the entire str. - // PartialMatch(str, re) returns true if and only if regular expression re - // matches a substring of str (including str itself). - static bool FullMatch(const ::std::string& str, const RE& re) { - return FullMatch(str.c_str(), re); - } - static bool PartialMatch(const ::std::string& str, const RE& re) { - return PartialMatch(str.c_str(), re); - } - - static bool FullMatch(const char* str, const RE& re); - static bool PartialMatch(const char* str, const RE& re); - - private: - void Init(const char* regex); - const char* pattern_; - bool is_valid_; - -# if GTEST_USES_POSIX_RE - - regex_t full_regex_; // For FullMatch(). - regex_t partial_regex_; // For PartialMatch(). - -# else // GTEST_USES_SIMPLE_RE - - const char* full_pattern_; // For FullMatch(); - -# endif - - GTEST_DISALLOW_ASSIGN_(RE); -}; - -#endif // GTEST_USES_PCRE - -// Formats a source file path and a line number as they would appear -// in an error message from the compiler used to compile this code. -GTEST_API_ ::std::string FormatFileLocation(const char* file, int line); - -// Formats a file location for compiler-independent XML output. -// Although this function is not platform dependent, we put it next to -// FormatFileLocation in order to contrast the two functions. -GTEST_API_ ::std::string FormatCompilerIndependentFileLocation(const char* file, - int line); - -// Defines logging utilities: -// GTEST_LOG_(severity) - logs messages at the specified severity level. The -// message itself is streamed into the macro. -// LogToStderr() - directs all log messages to stderr. -// FlushInfoLog() - flushes informational log messages. - -enum GTestLogSeverity { - GTEST_INFO, - GTEST_WARNING, - GTEST_ERROR, - GTEST_FATAL -}; - -// Formats log entry severity, provides a stream object for streaming the -// log message, and terminates the message with a newline when going out of -// scope. -class GTEST_API_ GTestLog { - public: - GTestLog(GTestLogSeverity severity, const char* file, int line); - - // Flushes the buffers and, if severity is GTEST_FATAL, aborts the program. - ~GTestLog(); - - ::std::ostream& GetStream() { return ::std::cerr; } - - private: - const GTestLogSeverity severity_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestLog); -}; - -#if !defined(GTEST_LOG_) - -# define GTEST_LOG_(severity) \ - ::testing::internal::GTestLog(::testing::internal::GTEST_##severity, \ - __FILE__, __LINE__).GetStream() - -inline void LogToStderr() {} -inline void FlushInfoLog() { fflush(nullptr); } - -#endif // !defined(GTEST_LOG_) - -#if !defined(GTEST_CHECK_) -// INTERNAL IMPLEMENTATION - DO NOT USE. -// -// GTEST_CHECK_ is an all-mode assert. It aborts the program if the condition -// is not satisfied. -// Synopsys: -// GTEST_CHECK_(boolean_condition); -// or -// GTEST_CHECK_(boolean_condition) << "Additional message"; -// -// This checks the condition and if the condition is not satisfied -// it prints message about the condition violation, including the -// condition itself, plus additional message streamed into it, if any, -// and then it aborts the program. It aborts the program irrespective of -// whether it is built in the debug mode or not. -# define GTEST_CHECK_(condition) \ - GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ - if (::testing::internal::IsTrue(condition)) \ - ; \ - else \ - GTEST_LOG_(FATAL) << "Condition " #condition " failed. " -#endif // !defined(GTEST_CHECK_) - -// An all-mode assert to verify that the given POSIX-style function -// call returns 0 (indicating success). Known limitation: this -// doesn't expand to a balanced 'if' statement, so enclose the macro -// in {} if you need to use it as the only statement in an 'if' -// branch. -#define GTEST_CHECK_POSIX_SUCCESS_(posix_call) \ - if (const int gtest_error = (posix_call)) \ - GTEST_LOG_(FATAL) << #posix_call << "failed with error " \ - << gtest_error - -// Transforms "T" into "const T&" according to standard reference collapsing -// rules (this is only needed as a backport for C++98 compilers that do not -// support reference collapsing). Specifically, it transforms: -// -// char ==> const char& -// const char ==> const char& -// char& ==> char& -// const char& ==> const char& -// -// Note that the non-const reference will not have "const" added. This is -// standard, and necessary so that "T" can always bind to "const T&". -template -struct ConstRef { typedef const T& type; }; -template -struct ConstRef { typedef T& type; }; - -// The argument T must depend on some template parameters. -#define GTEST_REFERENCE_TO_CONST_(T) \ - typename ::testing::internal::ConstRef::type - -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// -// Use ImplicitCast_ as a safe version of static_cast for upcasting in -// the type hierarchy (e.g. casting a Foo* to a SuperclassOfFoo* or a -// const Foo*). When you use ImplicitCast_, the compiler checks that -// the cast is safe. Such explicit ImplicitCast_s are necessary in -// surprisingly many situations where C++ demands an exact type match -// instead of an argument type convertable to a target type. -// -// The syntax for using ImplicitCast_ is the same as for static_cast: -// -// ImplicitCast_(expr) -// -// ImplicitCast_ would have been part of the C++ standard library, -// but the proposal was submitted too late. It will probably make -// its way into the language in the future. -// -// This relatively ugly name is intentional. It prevents clashes with -// similar functions users may have (e.g., implicit_cast). The internal -// namespace alone is not enough because the function can be found by ADL. -template -inline To ImplicitCast_(To x) { return x; } - -// When you upcast (that is, cast a pointer from type Foo to type -// SuperclassOfFoo), it's fine to use ImplicitCast_<>, since upcasts -// always succeed. When you downcast (that is, cast a pointer from -// type Foo to type SubclassOfFoo), static_cast<> isn't safe, because -// how do you know the pointer is really of type SubclassOfFoo? It -// could be a bare Foo, or of type DifferentSubclassOfFoo. Thus, -// when you downcast, you should use this macro. In debug mode, we -// use dynamic_cast<> to double-check the downcast is legal (we die -// if it's not). In normal mode, we do the efficient static_cast<> -// instead. Thus, it's important to test in debug mode to make sure -// the cast is legal! -// This is the only place in the code we should use dynamic_cast<>. -// In particular, you SHOULDN'T be using dynamic_cast<> in order to -// do RTTI (eg code like this: -// if (dynamic_cast(foo)) HandleASubclass1Object(foo); -// if (dynamic_cast(foo)) HandleASubclass2Object(foo); -// You should design the code some other way not to need this. -// -// This relatively ugly name is intentional. It prevents clashes with -// similar functions users may have (e.g., down_cast). The internal -// namespace alone is not enough because the function can be found by ADL. -template // use like this: DownCast_(foo); -inline To DownCast_(From* f) { // so we only accept pointers - // Ensures that To is a sub-type of From *. This test is here only - // for compile-time type checking, and has no overhead in an - // optimized build at run-time, as it will be optimized away - // completely. - GTEST_INTENTIONAL_CONST_COND_PUSH_() - if (false) { - GTEST_INTENTIONAL_CONST_COND_POP_() - const To to = nullptr; - ::testing::internal::ImplicitCast_(to); - } - -#if GTEST_HAS_RTTI - // RTTI: debug mode only! - GTEST_CHECK_(f == nullptr || dynamic_cast(f) != nullptr); -#endif - return static_cast(f); -} - -// Downcasts the pointer of type Base to Derived. -// Derived must be a subclass of Base. The parameter MUST -// point to a class of type Derived, not any subclass of it. -// When RTTI is available, the function performs a runtime -// check to enforce this. -template -Derived* CheckedDowncastToActualType(Base* base) { -#if GTEST_HAS_RTTI - GTEST_CHECK_(typeid(*base) == typeid(Derived)); -#endif - -#if GTEST_HAS_DOWNCAST_ - return ::down_cast(base); -#elif GTEST_HAS_RTTI - return dynamic_cast(base); // NOLINT -#else - return static_cast(base); // Poor man's downcast. -#endif -} - -#if GTEST_HAS_STREAM_REDIRECTION - -// Defines the stderr capturer: -// CaptureStdout - starts capturing stdout. -// GetCapturedStdout - stops capturing stdout and returns the captured string. -// CaptureStderr - starts capturing stderr. -// GetCapturedStderr - stops capturing stderr and returns the captured string. -// -GTEST_API_ void CaptureStdout(); -GTEST_API_ std::string GetCapturedStdout(); -GTEST_API_ void CaptureStderr(); -GTEST_API_ std::string GetCapturedStderr(); - -#endif // GTEST_HAS_STREAM_REDIRECTION -// Returns the size (in bytes) of a file. -GTEST_API_ size_t GetFileSize(FILE* file); - -// Reads the entire content of a file as a string. -GTEST_API_ std::string ReadEntireFile(FILE* file); - -// All command line arguments. -GTEST_API_ std::vector GetArgvs(); - -#if GTEST_HAS_DEATH_TEST - -std::vector GetInjectableArgvs(); -// Deprecated: pass the args vector by value instead. -void SetInjectableArgvs(const std::vector* new_argvs); -void SetInjectableArgvs(const std::vector& new_argvs); -void ClearInjectableArgvs(); - -#endif // GTEST_HAS_DEATH_TEST - -// Defines synchronization primitives. -#if GTEST_IS_THREADSAFE -# if GTEST_HAS_PTHREAD -// Sleeps for (roughly) n milliseconds. This function is only for testing -// Google Test's own constructs. Don't use it in user tests, either -// directly or indirectly. -inline void SleepMilliseconds(int n) { - const timespec time = { - 0, // 0 seconds. - n * 1000L * 1000L, // And n ms. - }; - nanosleep(&time, nullptr); -} -# endif // GTEST_HAS_PTHREAD - -# if GTEST_HAS_NOTIFICATION_ -// Notification has already been imported into the namespace. -// Nothing to do here. - -# elif GTEST_HAS_PTHREAD -// Allows a controller thread to pause execution of newly created -// threads until notified. Instances of this class must be created -// and destroyed in the controller thread. -// -// This class is only for testing Google Test's own constructs. Do not -// use it in user tests, either directly or indirectly. -class Notification { - public: - Notification() : notified_(false) { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr)); - } - ~Notification() { - pthread_mutex_destroy(&mutex_); - } - - // Notifies all threads created with this notification to start. Must - // be called from the controller thread. - void Notify() { - pthread_mutex_lock(&mutex_); - notified_ = true; - pthread_mutex_unlock(&mutex_); - } - - // Blocks until the controller thread notifies. Must be called from a test - // thread. - void WaitForNotification() { - for (;;) { - pthread_mutex_lock(&mutex_); - const bool notified = notified_; - pthread_mutex_unlock(&mutex_); - if (notified) - break; - SleepMilliseconds(10); - } - } - - private: - pthread_mutex_t mutex_; - bool notified_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); -}; - -# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - -GTEST_API_ void SleepMilliseconds(int n); - -// Provides leak-safe Windows kernel handle ownership. -// Used in death tests and in threading support. -class GTEST_API_ AutoHandle { - public: - // Assume that Win32 HANDLE type is equivalent to void*. Doing so allows us to - // avoid including in this header file. Including is - // undesirable because it defines a lot of symbols and macros that tend to - // conflict with client code. This assumption is verified by - // WindowsTypesTest.HANDLEIsVoidStar. - typedef void* Handle; - AutoHandle(); - explicit AutoHandle(Handle handle); - - ~AutoHandle(); - - Handle Get() const; - void Reset(); - void Reset(Handle handle); - - private: - // Returns true if and only if the handle is a valid handle object that can be - // closed. - bool IsCloseable() const; - - Handle handle_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(AutoHandle); -}; - -// Allows a controller thread to pause execution of newly created -// threads until notified. Instances of this class must be created -// and destroyed in the controller thread. -// -// This class is only for testing Google Test's own constructs. Do not -// use it in user tests, either directly or indirectly. -class GTEST_API_ Notification { - public: - Notification(); - void Notify(); - void WaitForNotification(); - - private: - AutoHandle event_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); -}; -# endif // GTEST_HAS_NOTIFICATION_ - -// On MinGW, we can have both GTEST_OS_WINDOWS and GTEST_HAS_PTHREAD -// defined, but we don't want to use MinGW's pthreads implementation, which -// has conformance problems with some versions of the POSIX standard. -# if GTEST_HAS_PTHREAD && !GTEST_OS_WINDOWS_MINGW - -// As a C-function, ThreadFuncWithCLinkage cannot be templated itself. -// Consequently, it cannot select a correct instantiation of ThreadWithParam -// in order to call its Run(). Introducing ThreadWithParamBase as a -// non-templated base class for ThreadWithParam allows us to bypass this -// problem. -class ThreadWithParamBase { - public: - virtual ~ThreadWithParamBase() {} - virtual void Run() = 0; -}; - -// pthread_create() accepts a pointer to a function type with the C linkage. -// According to the Standard (7.5/1), function types with different linkages -// are different even if they are otherwise identical. Some compilers (for -// example, SunStudio) treat them as different types. Since class methods -// cannot be defined with C-linkage we need to define a free C-function to -// pass into pthread_create(). -extern "C" inline void* ThreadFuncWithCLinkage(void* thread) { - static_cast(thread)->Run(); - return nullptr; -} - -// Helper class for testing Google Test's multi-threading constructs. -// To use it, write: -// -// void ThreadFunc(int param) { /* Do things with param */ } -// Notification thread_can_start; -// ... -// // The thread_can_start parameter is optional; you can supply NULL. -// ThreadWithParam thread(&ThreadFunc, 5, &thread_can_start); -// thread_can_start.Notify(); -// -// These classes are only for testing Google Test's own constructs. Do -// not use them in user tests, either directly or indirectly. -template -class ThreadWithParam : public ThreadWithParamBase { - public: - typedef void UserThreadFunc(T); - - ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start) - : func_(func), - param_(param), - thread_can_start_(thread_can_start), - finished_(false) { - ThreadWithParamBase* const base = this; - // The thread can be created only after all fields except thread_ - // have been initialized. - GTEST_CHECK_POSIX_SUCCESS_( - pthread_create(&thread_, nullptr, &ThreadFuncWithCLinkage, base)); - } - ~ThreadWithParam() override { Join(); } - - void Join() { - if (!finished_) { - GTEST_CHECK_POSIX_SUCCESS_(pthread_join(thread_, nullptr)); - finished_ = true; - } - } - - void Run() override { - if (thread_can_start_ != nullptr) thread_can_start_->WaitForNotification(); - func_(param_); - } - - private: - UserThreadFunc* const func_; // User-supplied thread function. - const T param_; // User-supplied parameter to the thread function. - // When non-NULL, used to block execution until the controller thread - // notifies. - Notification* const thread_can_start_; - bool finished_; // true if and only if we know that the thread function has - // finished. - pthread_t thread_; // The native thread object. - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); -}; -# endif // !GTEST_OS_WINDOWS && GTEST_HAS_PTHREAD || - // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - -# if GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ -// Mutex and ThreadLocal have already been imported into the namespace. -// Nothing to do here. - -# elif GTEST_OS_WINDOWS && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT - -// Mutex implements mutex on Windows platforms. It is used in conjunction -// with class MutexLock: -// -// Mutex mutex; -// ... -// MutexLock lock(&mutex); // Acquires the mutex and releases it at the -// // end of the current scope. -// -// A static Mutex *must* be defined or declared using one of the following -// macros: -// GTEST_DEFINE_STATIC_MUTEX_(g_some_mutex); -// GTEST_DECLARE_STATIC_MUTEX_(g_some_mutex); -// -// (A non-static Mutex is defined/declared in the usual way). -class GTEST_API_ Mutex { - public: - enum MutexType { kStatic = 0, kDynamic = 1 }; - // We rely on kStaticMutex being 0 as it is to what the linker initializes - // type_ in static mutexes. critical_section_ will be initialized lazily - // in ThreadSafeLazyInit(). - enum StaticConstructorSelector { kStaticMutex = 0 }; - - // This constructor intentionally does nothing. It relies on type_ being - // statically initialized to 0 (effectively setting it to kStatic) and on - // ThreadSafeLazyInit() to lazily initialize the rest of the members. - explicit Mutex(StaticConstructorSelector /*dummy*/) {} - - Mutex(); - ~Mutex(); - - void Lock(); - - void Unlock(); - - // Does nothing if the current thread holds the mutex. Otherwise, crashes - // with high probability. - void AssertHeld(); - - private: - // Initializes owner_thread_id_ and critical_section_ in static mutexes. - void ThreadSafeLazyInit(); - - // Per https://blogs.msdn.microsoft.com/oldnewthing/20040223-00/?p=40503, - // we assume that 0 is an invalid value for thread IDs. - unsigned int owner_thread_id_; - - // For static mutexes, we rely on these members being initialized to zeros - // by the linker. - MutexType type_; - long critical_section_init_phase_; // NOLINT - GTEST_CRITICAL_SECTION* critical_section_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); -}; - -# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::Mutex mutex - -# define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::Mutex mutex(::testing::internal::Mutex::kStaticMutex) - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(Mutex* mutex) - : mutex_(mutex) { mutex_->Lock(); } - - ~GTestMutexLock() { mutex_->Unlock(); } - - private: - Mutex* const mutex_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); -}; - -typedef GTestMutexLock MutexLock; - -// Base class for ValueHolder. Allows a caller to hold and delete a value -// without knowing its type. -class ThreadLocalValueHolderBase { - public: - virtual ~ThreadLocalValueHolderBase() {} -}; - -// Provides a way for a thread to send notifications to a ThreadLocal -// regardless of its parameter type. -class ThreadLocalBase { - public: - // Creates a new ValueHolder object holding a default value passed to - // this ThreadLocal's constructor and returns it. It is the caller's - // responsibility not to call this when the ThreadLocal instance already - // has a value on the current thread. - virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const = 0; - - protected: - ThreadLocalBase() {} - virtual ~ThreadLocalBase() {} - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocalBase); -}; - -// Maps a thread to a set of ThreadLocals that have values instantiated on that -// thread and notifies them when the thread exits. A ThreadLocal instance is -// expected to persist until all threads it has values on have terminated. -class GTEST_API_ ThreadLocalRegistry { - public: - // Registers thread_local_instance as having value on the current thread. - // Returns a value that can be used to identify the thread from other threads. - static ThreadLocalValueHolderBase* GetValueOnCurrentThread( - const ThreadLocalBase* thread_local_instance); - - // Invoked when a ThreadLocal instance is destroyed. - static void OnThreadLocalDestroyed( - const ThreadLocalBase* thread_local_instance); -}; - -class GTEST_API_ ThreadWithParamBase { - public: - void Join(); - - protected: - class Runnable { - public: - virtual ~Runnable() {} - virtual void Run() = 0; - }; - - ThreadWithParamBase(Runnable *runnable, Notification* thread_can_start); - virtual ~ThreadWithParamBase(); - - private: - AutoHandle thread_; -}; - -// Helper class for testing Google Test's multi-threading constructs. -template -class ThreadWithParam : public ThreadWithParamBase { - public: - typedef void UserThreadFunc(T); - - ThreadWithParam(UserThreadFunc* func, T param, Notification* thread_can_start) - : ThreadWithParamBase(new RunnableImpl(func, param), thread_can_start) { - } - virtual ~ThreadWithParam() {} - - private: - class RunnableImpl : public Runnable { - public: - RunnableImpl(UserThreadFunc* func, T param) - : func_(func), - param_(param) { - } - virtual ~RunnableImpl() {} - virtual void Run() { - func_(param_); - } - - private: - UserThreadFunc* const func_; - const T param_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(RunnableImpl); - }; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadWithParam); -}; - -// Implements thread-local storage on Windows systems. -// -// // Thread 1 -// ThreadLocal tl(100); // 100 is the default value for each thread. -// -// // Thread 2 -// tl.set(150); // Changes the value for thread 2 only. -// EXPECT_EQ(150, tl.get()); -// -// // Thread 1 -// EXPECT_EQ(100, tl.get()); // In thread 1, tl has the original value. -// tl.set(200); -// EXPECT_EQ(200, tl.get()); -// -// The template type argument T must have a public copy constructor. -// In addition, the default ThreadLocal constructor requires T to have -// a public default constructor. -// -// The users of a TheadLocal instance have to make sure that all but one -// threads (including the main one) using that instance have exited before -// destroying it. Otherwise, the per-thread objects managed for them by the -// ThreadLocal instance are not guaranteed to be destroyed on all platforms. -// -// Google Test only uses global ThreadLocal objects. That means they -// will die after main() has returned. Therefore, no per-thread -// object managed by Google Test will be leaked as long as all threads -// using Google Test have exited when main() returns. -template -class ThreadLocal : public ThreadLocalBase { - public: - ThreadLocal() : default_factory_(new DefaultValueHolderFactory()) {} - explicit ThreadLocal(const T& value) - : default_factory_(new InstanceValueHolderFactory(value)) {} - - ~ThreadLocal() { ThreadLocalRegistry::OnThreadLocalDestroyed(this); } - - T* pointer() { return GetOrCreateValue(); } - const T* pointer() const { return GetOrCreateValue(); } - const T& get() const { return *pointer(); } - void set(const T& value) { *pointer() = value; } - - private: - // Holds a value of T. Can be deleted via its base class without the caller - // knowing the type of T. - class ValueHolder : public ThreadLocalValueHolderBase { - public: - ValueHolder() : value_() {} - explicit ValueHolder(const T& value) : value_(value) {} - - T* pointer() { return &value_; } - - private: - T value_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); - }; - - - T* GetOrCreateValue() const { - return static_cast( - ThreadLocalRegistry::GetValueOnCurrentThread(this))->pointer(); - } - - virtual ThreadLocalValueHolderBase* NewValueForCurrentThread() const { - return default_factory_->MakeNewHolder(); - } - - class ValueHolderFactory { - public: - ValueHolderFactory() {} - virtual ~ValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const = 0; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory); - }; - - class DefaultValueHolderFactory : public ValueHolderFactory { - public: - DefaultValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory); - }; - - class InstanceValueHolderFactory : public ValueHolderFactory { - public: - explicit InstanceValueHolderFactory(const T& value) : value_(value) {} - virtual ValueHolder* MakeNewHolder() const { - return new ValueHolder(value_); - } - - private: - const T value_; // The value for each thread. - - GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory); - }; - - std::unique_ptr default_factory_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); -}; - -# elif GTEST_HAS_PTHREAD - -// MutexBase and Mutex implement mutex on pthreads-based platforms. -class MutexBase { - public: - // Acquires this mutex. - void Lock() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); - owner_ = pthread_self(); - has_owner_ = true; - } - - // Releases this mutex. - void Unlock() { - // Since the lock is being released the owner_ field should no longer be - // considered valid. We don't protect writing to has_owner_ here, as it's - // the caller's responsibility to ensure that the current thread holds the - // mutex when this is called. - has_owner_ = false; - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); - } - - // Does nothing if the current thread holds the mutex. Otherwise, crashes - // with high probability. - void AssertHeld() const { - GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self())) - << "The current thread is not holding the mutex @" << this; - } - - // A static mutex may be used before main() is entered. It may even - // be used before the dynamic initialization stage. Therefore we - // must be able to initialize a static mutex object at link time. - // This means MutexBase has to be a POD and its member variables - // have to be public. - public: - pthread_mutex_t mutex_; // The underlying pthread mutex. - // has_owner_ indicates whether the owner_ field below contains a valid thread - // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All - // accesses to the owner_ field should be protected by a check of this field. - // An alternative might be to memset() owner_ to all zeros, but there's no - // guarantee that a zero'd pthread_t is necessarily invalid or even different - // from pthread_self(). - bool has_owner_; - pthread_t owner_; // The thread holding the mutex. -}; - -// Forward-declares a static mutex. -# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::MutexBase mutex - -// Defines and statically (i.e. at link time) initializes a static mutex. -// The initialization list here does not explicitly initialize each field, -// instead relying on default initialization for the unspecified fields. In -// particular, the owner_ field (a pthread_t) is not explicitly initialized. -// This allows initialization to work whether pthread_t is a scalar or struct. -// The flag -Wmissing-field-initializers must not be specified for this to work. -#define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::MutexBase mutex = {PTHREAD_MUTEX_INITIALIZER, false, 0} - -// The Mutex class can only be used for mutexes created at runtime. It -// shares its API with MutexBase otherwise. -class Mutex : public MutexBase { - public: - Mutex() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, nullptr)); - has_owner_ = false; - } - ~Mutex() { - GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); - } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(Mutex); -}; - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(MutexBase* mutex) - : mutex_(mutex) { mutex_->Lock(); } - - ~GTestMutexLock() { mutex_->Unlock(); } - - private: - MutexBase* const mutex_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(GTestMutexLock); -}; - -typedef GTestMutexLock MutexLock; - -// Helpers for ThreadLocal. - -// pthread_key_create() requires DeleteThreadLocalValue() to have -// C-linkage. Therefore it cannot be templatized to access -// ThreadLocal. Hence the need for class -// ThreadLocalValueHolderBase. -class ThreadLocalValueHolderBase { - public: - virtual ~ThreadLocalValueHolderBase() {} -}; - -// Called by pthread to delete thread-local data stored by -// pthread_setspecific(). -extern "C" inline void DeleteThreadLocalValue(void* value_holder) { - delete static_cast(value_holder); -} - -// Implements thread-local storage on pthreads-based systems. -template -class GTEST_API_ ThreadLocal { - public: - ThreadLocal() - : key_(CreateKey()), default_factory_(new DefaultValueHolderFactory()) {} - explicit ThreadLocal(const T& value) - : key_(CreateKey()), - default_factory_(new InstanceValueHolderFactory(value)) {} - - ~ThreadLocal() { - // Destroys the managed object for the current thread, if any. - DeleteThreadLocalValue(pthread_getspecific(key_)); - - // Releases resources associated with the key. This will *not* - // delete managed objects for other threads. - GTEST_CHECK_POSIX_SUCCESS_(pthread_key_delete(key_)); - } - - T* pointer() { return GetOrCreateValue(); } - const T* pointer() const { return GetOrCreateValue(); } - const T& get() const { return *pointer(); } - void set(const T& value) { *pointer() = value; } - - private: - // Holds a value of type T. - class ValueHolder : public ThreadLocalValueHolderBase { - public: - ValueHolder() : value_() {} - explicit ValueHolder(const T& value) : value_(value) {} - - T* pointer() { return &value_; } - - private: - T value_; - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolder); - }; - - static pthread_key_t CreateKey() { - pthread_key_t key; - // When a thread exits, DeleteThreadLocalValue() will be called on - // the object managed for that thread. - GTEST_CHECK_POSIX_SUCCESS_( - pthread_key_create(&key, &DeleteThreadLocalValue)); - return key; - } - - T* GetOrCreateValue() const { - ThreadLocalValueHolderBase* const holder = - static_cast(pthread_getspecific(key_)); - if (holder != nullptr) { - return CheckedDowncastToActualType(holder)->pointer(); - } - - ValueHolder* const new_holder = default_factory_->MakeNewHolder(); - ThreadLocalValueHolderBase* const holder_base = new_holder; - GTEST_CHECK_POSIX_SUCCESS_(pthread_setspecific(key_, holder_base)); - return new_holder->pointer(); - } - - class ValueHolderFactory { - public: - ValueHolderFactory() {} - virtual ~ValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const = 0; - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(ValueHolderFactory); - }; - - class DefaultValueHolderFactory : public ValueHolderFactory { - public: - DefaultValueHolderFactory() {} - virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); } - - private: - GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory); - }; - - class InstanceValueHolderFactory : public ValueHolderFactory { - public: - explicit InstanceValueHolderFactory(const T& value) : value_(value) {} - virtual ValueHolder* MakeNewHolder() const { - return new ValueHolder(value_); - } - - private: - const T value_; // The value for each thread. - - GTEST_DISALLOW_COPY_AND_ASSIGN_(InstanceValueHolderFactory); - }; - - // A key pthreads uses for looking up per-thread values. - const pthread_key_t key_; - std::unique_ptr default_factory_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(ThreadLocal); -}; - -# endif // GTEST_HAS_MUTEX_AND_THREAD_LOCAL_ - -#else // GTEST_IS_THREADSAFE - -// A dummy implementation of synchronization primitives (mutex, lock, -// and thread-local variable). Necessary for compiling Google Test where -// mutex is not supported - using Google Test in multiple threads is not -// supported on such platforms. - -class Mutex { - public: - Mutex() {} - void Lock() {} - void Unlock() {} - void AssertHeld() const {} -}; - -# define GTEST_DECLARE_STATIC_MUTEX_(mutex) \ - extern ::testing::internal::Mutex mutex - -# define GTEST_DEFINE_STATIC_MUTEX_(mutex) ::testing::internal::Mutex mutex - -// We cannot name this class MutexLock because the ctor declaration would -// conflict with a macro named MutexLock, which is defined on some -// platforms. That macro is used as a defensive measure to prevent against -// inadvertent misuses of MutexLock like "MutexLock(&mu)" rather than -// "MutexLock l(&mu)". Hence the typedef trick below. -class GTestMutexLock { - public: - explicit GTestMutexLock(Mutex*) {} // NOLINT -}; - -typedef GTestMutexLock MutexLock; - -template -class GTEST_API_ ThreadLocal { - public: - ThreadLocal() : value_() {} - explicit ThreadLocal(const T& value) : value_(value) {} - T* pointer() { return &value_; } - const T* pointer() const { return &value_; } - const T& get() const { return value_; } - void set(const T& value) { value_ = value; } - private: - T value_; -}; - -#endif // GTEST_IS_THREADSAFE - -// Returns the number of threads running in the process, or 0 to indicate that -// we cannot detect it. -GTEST_API_ size_t GetThreadCount(); - -template -using bool_constant = std::integral_constant; - -#if GTEST_OS_WINDOWS -# define GTEST_PATH_SEP_ "\\" -# define GTEST_HAS_ALT_PATH_SEP_ 1 -// The biggest signed integer type the compiler supports. -typedef __int64 BiggestInt; -#else -# define GTEST_PATH_SEP_ "/" -# define GTEST_HAS_ALT_PATH_SEP_ 0 -typedef long long BiggestInt; // NOLINT -#endif // GTEST_OS_WINDOWS - -// Utilities for char. - -// isspace(int ch) and friends accept an unsigned char or EOF. char -// may be signed, depending on the compiler (or compiler flags). -// Therefore we need to cast a char to unsigned char before calling -// isspace(), etc. - -inline bool IsAlpha(char ch) { - return isalpha(static_cast(ch)) != 0; -} -inline bool IsAlNum(char ch) { - return isalnum(static_cast(ch)) != 0; -} -inline bool IsDigit(char ch) { - return isdigit(static_cast(ch)) != 0; -} -inline bool IsLower(char ch) { - return islower(static_cast(ch)) != 0; -} -inline bool IsSpace(char ch) { - return isspace(static_cast(ch)) != 0; -} -inline bool IsUpper(char ch) { - return isupper(static_cast(ch)) != 0; -} -inline bool IsXDigit(char ch) { - return isxdigit(static_cast(ch)) != 0; -} -inline bool IsXDigit(wchar_t ch) { - const unsigned char low_byte = static_cast(ch); - return ch == low_byte && isxdigit(low_byte) != 0; -} - -inline char ToLower(char ch) { - return static_cast(tolower(static_cast(ch))); -} -inline char ToUpper(char ch) { - return static_cast(toupper(static_cast(ch))); -} - -inline std::string StripTrailingSpaces(std::string str) { - std::string::iterator it = str.end(); - while (it != str.begin() && IsSpace(*--it)) - it = str.erase(it); - return str; -} - -// The testing::internal::posix namespace holds wrappers for common -// POSIX functions. These wrappers hide the differences between -// Windows/MSVC and POSIX systems. Since some compilers define these -// standard functions as macros, the wrapper cannot have the same name -// as the wrapped function. - -namespace posix { - -// Functions with a different name on Windows. - -#if GTEST_OS_WINDOWS - -typedef struct _stat StatStruct; - -# ifdef __BORLANDC__ -inline int IsATTY(int fd) { return isatty(fd); } -inline int StrCaseCmp(const char* s1, const char* s2) { - return stricmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -# else // !__BORLANDC__ -# if GTEST_OS_WINDOWS_MOBILE -inline int IsATTY(int /* fd */) { return 0; } -# else -inline int IsATTY(int fd) { return _isatty(fd); } -# endif // GTEST_OS_WINDOWS_MOBILE -inline int StrCaseCmp(const char* s1, const char* s2) { - return _stricmp(s1, s2); -} -inline char* StrDup(const char* src) { return _strdup(src); } -# endif // __BORLANDC__ - -# if GTEST_OS_WINDOWS_MOBILE -inline int FileNo(FILE* file) { return reinterpret_cast(_fileno(file)); } -// Stat(), RmDir(), and IsDir() are not needed on Windows CE at this -// time and thus not defined there. -# else -inline int FileNo(FILE* file) { return _fileno(file); } -inline int Stat(const char* path, StatStruct* buf) { return _stat(path, buf); } -inline int RmDir(const char* dir) { return _rmdir(dir); } -inline bool IsDir(const StatStruct& st) { - return (_S_IFDIR & st.st_mode) != 0; -} -# endif // GTEST_OS_WINDOWS_MOBILE - -#else - -typedef struct stat StatStruct; - -inline int FileNo(FILE* file) { return fileno(file); } -inline int IsATTY(int fd) { return isatty(fd); } -inline int Stat(const char* path, StatStruct* buf) { return stat(path, buf); } -inline int StrCaseCmp(const char* s1, const char* s2) { - return strcasecmp(s1, s2); -} -inline char* StrDup(const char* src) { return strdup(src); } -inline int RmDir(const char* dir) { return rmdir(dir); } -inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); } - -#endif // GTEST_OS_WINDOWS - -// Functions deprecated by MSVC 8.0. - -GTEST_DISABLE_MSC_DEPRECATED_PUSH_() - -inline const char* StrNCpy(char* dest, const char* src, size_t n) { - return strncpy(dest, src, n); -} - -// ChDir(), FReopen(), FDOpen(), Read(), Write(), Close(), and -// StrError() aren't needed on Windows CE at this time and thus not -// defined there. - -#if !GTEST_OS_WINDOWS_MOBILE && !GTEST_OS_WINDOWS_PHONE && !GTEST_OS_WINDOWS_RT -inline int ChDir(const char* dir) { return chdir(dir); } -#endif -inline FILE* FOpen(const char* path, const char* mode) { - return fopen(path, mode); -} -#if !GTEST_OS_WINDOWS_MOBILE -inline FILE *FReopen(const char* path, const char* mode, FILE* stream) { - return freopen(path, mode, stream); -} -inline FILE* FDOpen(int fd, const char* mode) { return fdopen(fd, mode); } -#endif -inline int FClose(FILE* fp) { return fclose(fp); } -#if !GTEST_OS_WINDOWS_MOBILE -inline int Read(int fd, void* buf, unsigned int count) { - return static_cast(read(fd, buf, count)); -} -inline int Write(int fd, const void* buf, unsigned int count) { - return static_cast(write(fd, buf, count)); -} -inline int Close(int fd) { return close(fd); } -inline const char* StrError(int errnum) { return strerror(errnum); } -#endif -inline const char* GetEnv(const char* name) { -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT - // We are on Windows CE, which has no environment variables. - static_cast(name); // To prevent 'unused argument' warning. - return nullptr; -#elif defined(__BORLANDC__) || defined(__SunOS_5_8) || defined(__SunOS_5_9) - // Environment variables which we programmatically clear will be set to the - // empty string rather than unset (NULL). Handle that case. - const char* const env = getenv(name); - return (env != nullptr && env[0] != '\0') ? env : nullptr; -#else - return getenv(name); -#endif -} - -GTEST_DISABLE_MSC_DEPRECATED_POP_() - -#if GTEST_OS_WINDOWS_MOBILE -// Windows CE has no C library. The abort() function is used in -// several places in Google Test. This implementation provides a reasonable -// imitation of standard behaviour. -[[noreturn]] void Abort(); -#else -[[noreturn]] inline void Abort() { abort(); } -#endif // GTEST_OS_WINDOWS_MOBILE - -} // namespace posix - -// MSVC "deprecates" snprintf and issues warnings wherever it is used. In -// order to avoid these warnings, we need to use _snprintf or _snprintf_s on -// MSVC-based platforms. We map the GTEST_SNPRINTF_ macro to the appropriate -// function in order to achieve that. We use macro definition here because -// snprintf is a variadic function. -#if _MSC_VER && !GTEST_OS_WINDOWS_MOBILE -// MSVC 2005 and above support variadic macros. -# define GTEST_SNPRINTF_(buffer, size, format, ...) \ - _snprintf_s(buffer, size, size, format, __VA_ARGS__) -#elif defined(_MSC_VER) -// Windows CE does not define _snprintf_s -# define GTEST_SNPRINTF_ _snprintf -#else -# define GTEST_SNPRINTF_ snprintf -#endif - -// The maximum number a BiggestInt can represent. This definition -// works no matter BiggestInt is represented in one's complement or -// two's complement. -// -// We cannot rely on numeric_limits in STL, as __int64 and long long -// are not part of standard C++ and numeric_limits doesn't need to be -// defined for them. -const BiggestInt kMaxBiggestInt = - ~(static_cast(1) << (8*sizeof(BiggestInt) - 1)); - -// This template class serves as a compile-time function from size to -// type. It maps a size in bytes to a primitive type with that -// size. e.g. -// -// TypeWithSize<4>::UInt -// -// is typedef-ed to be unsigned int (unsigned integer made up of 4 -// bytes). -// -// Such functionality should belong to STL, but I cannot find it -// there. -// -// Google Test uses this class in the implementation of floating-point -// comparison. -// -// For now it only handles UInt (unsigned int) as that's all Google Test -// needs. Other types can be easily added in the future if need -// arises. -template -class TypeWithSize { - public: - // This prevents the user from using TypeWithSize with incorrect - // values of N. - typedef void UInt; -}; - -// The specialization for size 4. -template <> -class TypeWithSize<4> { - public: - // unsigned int has size 4 in both gcc and MSVC. - // - // As base/basictypes.h doesn't compile on Windows, we cannot use - // uint32, uint64, and etc here. - typedef int Int; - typedef unsigned int UInt; -}; - -// The specialization for size 8. -template <> -class TypeWithSize<8> { - public: -#if GTEST_OS_WINDOWS - typedef __int64 Int; - typedef unsigned __int64 UInt; -#else - typedef long long Int; // NOLINT - typedef unsigned long long UInt; // NOLINT -#endif // GTEST_OS_WINDOWS -}; - -// Integer types of known sizes. -typedef TypeWithSize<4>::Int Int32; -typedef TypeWithSize<4>::UInt UInt32; -typedef TypeWithSize<8>::Int Int64; -typedef TypeWithSize<8>::UInt UInt64; -typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. - -// Utilities for command line flags and environment variables. - -// Macro for referencing flags. -#if !defined(GTEST_FLAG) -# define GTEST_FLAG(name) FLAGS_gtest_##name -#endif // !defined(GTEST_FLAG) - -#if !defined(GTEST_USE_OWN_FLAGFILE_FLAG_) -# define GTEST_USE_OWN_FLAGFILE_FLAG_ 1 -#endif // !defined(GTEST_USE_OWN_FLAGFILE_FLAG_) - -#if !defined(GTEST_DECLARE_bool_) -# define GTEST_FLAG_SAVER_ ::testing::internal::GTestFlagSaver - -// Macros for declaring flags. -# define GTEST_DECLARE_bool_(name) GTEST_API_ extern bool GTEST_FLAG(name) -# define GTEST_DECLARE_int32_(name) \ - GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name) -# define GTEST_DECLARE_string_(name) \ - GTEST_API_ extern ::std::string GTEST_FLAG(name) - -// Macros for defining flags. -# define GTEST_DEFINE_bool_(name, default_val, doc) \ - GTEST_API_ bool GTEST_FLAG(name) = (default_val) -# define GTEST_DEFINE_int32_(name, default_val, doc) \ - GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) -# define GTEST_DEFINE_string_(name, default_val, doc) \ - GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val) - -#endif // !defined(GTEST_DECLARE_bool_) - -// Thread annotations -#if !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_) -# define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) -# define GTEST_LOCK_EXCLUDED_(locks) -#endif // !defined(GTEST_EXCLUSIVE_LOCK_REQUIRED_) - -// Parses 'str' for a 32-bit signed integer. If successful, writes the result -// to *value and returns true; otherwise leaves *value unchanged and returns -// false. -bool ParseInt32(const Message& src_text, const char* str, Int32* value); - -// Parses a bool/Int32/string from the environment variable -// corresponding to the given Google Test flag. -bool BoolFromGTestEnv(const char* flag, bool default_val); -GTEST_API_ Int32 Int32FromGTestEnv(const char* flag, Int32 default_val); -std::string OutputFlagAlsoCheckEnvVar(); -const char* StringFromGTestEnv(const char* flag, const char* default_val); - -} // namespace internal -} // namespace testing - -#if !defined(GTEST_INTERNAL_DEPRECATED) - -// Internal Macro to mark an API deprecated, for googletest usage only -// Usage: class GTEST_INTERNAL_DEPRECATED(message) MyClass or -// GTEST_INTERNAL_DEPRECATED(message) myFunction(); Every usage of -// a deprecated entity will trigger a warning when compiled with -// `-Wdeprecated-declarations` option (clang, gcc, any __GNUC__ compiler). -// For msvc /W3 option will need to be used -// Note that for 'other' compilers this macro evaluates to nothing to prevent -// compilations errors. -#if defined(_MSC_VER) -#define GTEST_INTERNAL_DEPRECATED(message) __declspec(deprecated(message)) -#elif defined(__GNUC__) -#define GTEST_INTERNAL_DEPRECATED(message) __attribute__((deprecated(message))) -#else -#define GTEST_INTERNAL_DEPRECATED(message) -#endif - -#endif // !defined(GTEST_INTERNAL_DEPRECATED) - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ diff --git a/include/gtest/internal/gtest-string.h b/include/gtest/internal/gtest-string.h deleted file mode 100644 index 82aaa63..0000000 --- a/include/gtest/internal/gtest-string.h +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// The Google C++ Testing and Mocking Framework (Google Test) -// -// This header file declares the String class and functions used internally by -// Google Test. They are subject to change without notice. They should not used -// by code external to Google Test. -// -// This header file is #included by gtest-internal.h. -// It should not be #included by other files. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ - -#ifdef __BORLANDC__ -// string.h is not guaranteed to provide strcpy on C++ Builder. -# include -#endif - -#include -#include - -#include "gtest/internal/gtest-port.h" - -namespace testing { -namespace internal { - -// String - an abstract class holding static string utilities. -class GTEST_API_ String { - public: - // Static utility methods - - // Clones a 0-terminated C string, allocating memory using new. The - // caller is responsible for deleting the return value using - // delete[]. Returns the cloned string, or NULL if the input is - // NULL. - // - // This is different from strdup() in string.h, which allocates - // memory using malloc(). - static const char* CloneCString(const char* c_str); - -#if GTEST_OS_WINDOWS_MOBILE - // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be - // able to pass strings to Win32 APIs on CE we need to convert them - // to 'Unicode', UTF-16. - - // Creates a UTF-16 wide string from the given ANSI string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the wide string, or NULL if the - // input is NULL. - // - // The wide string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static LPCWSTR AnsiToUtf16(const char* c_str); - - // Creates an ANSI string from the given wide string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the ANSI string, or NULL if the - // input is NULL. - // - // The returned string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static const char* Utf16ToAnsi(LPCWSTR utf16_str); -#endif - - // Compares two C strings. Returns true if and only if they have the same - // content. - // - // Unlike strcmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CStringEquals(const char* lhs, const char* rhs); - - // Converts a wide C string to a String using the UTF-8 encoding. - // NULL will be converted to "(null)". If an error occurred during - // the conversion, "(failed to convert from wide string)" is - // returned. - static std::string ShowWideCString(const wchar_t* wide_c_str); - - // Compares two wide C strings. Returns true if and only if they have the - // same content. - // - // Unlike wcscmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); - - // Compares two C strings, ignoring case. Returns true if and only if - // they have the same content. - // - // Unlike strcasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CaseInsensitiveCStringEquals(const char* lhs, - const char* rhs); - - // Compares two wide C strings, ignoring case. Returns true if and only if - // they have the same content. - // - // Unlike wcscasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL wide C string, - // including the empty string. - // NB: The implementations on different platforms slightly differ. - // On windows, this method uses _wcsicmp which compares according to LC_CTYPE - // environment variable. On GNU platform this method uses wcscasecmp - // which compares according to LC_CTYPE category of the current locale. - // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the - // current locale. - static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs); - - // Returns true if and only if the given string ends with the given suffix, - // ignoring case. Any string is considered to end with an empty suffix. - static bool EndsWithCaseInsensitive( - const std::string& str, const std::string& suffix); - - // Formats an int value as "%02d". - static std::string FormatIntWidth2(int value); // "%02d" for width == 2 - - // Formats an int value as "%X". - static std::string FormatHexInt(int value); - - // Formats an int value as "%X". - static std::string FormatHexUInt32(UInt32 value); - - // Formats a byte as "%02X". - static std::string FormatByte(unsigned char value); - - private: - String(); // Not meant to be instantiated. -}; // class String - -// Gets the content of the stringstream's buffer as an std::string. Each '\0' -// character in the buffer is replaced with "\\0". -GTEST_API_ std::string StringStreamToString(::std::stringstream* stream); - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ diff --git a/include/gtest/internal/gtest-type-util.h b/include/gtest/internal/gtest-type-util.h deleted file mode 100644 index 3d7542d..0000000 --- a/include/gtest/internal/gtest-type-util.h +++ /dev/null @@ -1,3335 +0,0 @@ -// This file was GENERATED by command: -// pump.py gtest-type-util.h.pump -// DO NOT EDIT BY HAND!!! - -// Copyright 2008 Google Inc. -// All Rights Reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Type utilities needed for implementing typed and type-parameterized -// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! -// -// Currently we support at most 50 types in a list, and at most 50 -// type-parameterized tests in one type-parameterized test suite. -// Please contact googletestframework@googlegroups.com if you need -// more. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ - -#include "gtest/internal/gtest-port.h" - -// #ifdef __GNUC__ is too general here. It is possible to use gcc without using -// libstdc++ (which is where cxxabi.h comes from). -# if GTEST_HAS_CXXABI_H_ -# include -# elif defined(__HP_aCC) -# include -# endif // GTEST_HASH_CXXABI_H_ - -namespace testing { -namespace internal { - -// Canonicalizes a given name with respect to the Standard C++ Library. -// This handles removing the inline namespace within `std` that is -// used by various standard libraries (e.g., `std::__1`). Names outside -// of namespace std are returned unmodified. -inline std::string CanonicalizeForStdLibVersioning(std::string s) { - static const char prefix[] = "std::__"; - if (s.compare(0, strlen(prefix), prefix) == 0) { - std::string::size_type end = s.find("::", strlen(prefix)); - if (end != s.npos) { - // Erase everything between the initial `std` and the second `::`. - s.erase(strlen("std"), end - strlen("std")); - } - } - return s; -} - -// GetTypeName() returns a human-readable name of type T. -// NB: This function is also used in Google Mock, so don't move it inside of -// the typed-test-only section below. -template -std::string GetTypeName() { -# if GTEST_HAS_RTTI - - const char* const name = typeid(T).name(); -# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) - int status = 0; - // gcc's implementation of typeid(T).name() mangles the type name, - // so we have to demangle it. -# if GTEST_HAS_CXXABI_H_ - using abi::__cxa_demangle; -# endif // GTEST_HAS_CXXABI_H_ - char* const readable_name = __cxa_demangle(name, nullptr, nullptr, &status); - const std::string name_str(status == 0 ? readable_name : name); - free(readable_name); - return CanonicalizeForStdLibVersioning(name_str); -# else - return name; -# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC - -# else - - return ""; - -# endif // GTEST_HAS_RTTI -} - -#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -// A unique type used as the default value for the arguments of class -// template Types. This allows us to simulate variadic templates -// (e.g. Types, Type, and etc), which C++ doesn't -// support directly. -struct None {}; - -// The following family of struct and struct templates are used to -// represent type lists. In particular, TypesN -// represents a type list with N types (T1, T2, ..., and TN) in it. -// Except for Types0, every struct in the family has two member types: -// Head for the first type in the list, and Tail for the rest of the -// list. - -// The empty type list. -struct Types0 {}; - -// Type lists of length 1, 2, 3, and so on. - -template -struct Types1 { - typedef T1 Head; - typedef Types0 Tail; -}; -template -struct Types2 { - typedef T1 Head; - typedef Types1 Tail; -}; - -template -struct Types3 { - typedef T1 Head; - typedef Types2 Tail; -}; - -template -struct Types4 { - typedef T1 Head; - typedef Types3 Tail; -}; - -template -struct Types5 { - typedef T1 Head; - typedef Types4 Tail; -}; - -template -struct Types6 { - typedef T1 Head; - typedef Types5 Tail; -}; - -template -struct Types7 { - typedef T1 Head; - typedef Types6 Tail; -}; - -template -struct Types8 { - typedef T1 Head; - typedef Types7 Tail; -}; - -template -struct Types9 { - typedef T1 Head; - typedef Types8 Tail; -}; - -template -struct Types10 { - typedef T1 Head; - typedef Types9 Tail; -}; - -template -struct Types11 { - typedef T1 Head; - typedef Types10 Tail; -}; - -template -struct Types12 { - typedef T1 Head; - typedef Types11 Tail; -}; - -template -struct Types13 { - typedef T1 Head; - typedef Types12 Tail; -}; - -template -struct Types14 { - typedef T1 Head; - typedef Types13 Tail; -}; - -template -struct Types15 { - typedef T1 Head; - typedef Types14 Tail; -}; - -template -struct Types16 { - typedef T1 Head; - typedef Types15 Tail; -}; - -template -struct Types17 { - typedef T1 Head; - typedef Types16 Tail; -}; - -template -struct Types18 { - typedef T1 Head; - typedef Types17 Tail; -}; - -template -struct Types19 { - typedef T1 Head; - typedef Types18 Tail; -}; - -template -struct Types20 { - typedef T1 Head; - typedef Types19 Tail; -}; - -template -struct Types21 { - typedef T1 Head; - typedef Types20 Tail; -}; - -template -struct Types22 { - typedef T1 Head; - typedef Types21 Tail; -}; - -template -struct Types23 { - typedef T1 Head; - typedef Types22 Tail; -}; - -template -struct Types24 { - typedef T1 Head; - typedef Types23 Tail; -}; - -template -struct Types25 { - typedef T1 Head; - typedef Types24 Tail; -}; - -template -struct Types26 { - typedef T1 Head; - typedef Types25 Tail; -}; - -template -struct Types27 { - typedef T1 Head; - typedef Types26 Tail; -}; - -template -struct Types28 { - typedef T1 Head; - typedef Types27 Tail; -}; - -template -struct Types29 { - typedef T1 Head; - typedef Types28 Tail; -}; - -template -struct Types30 { - typedef T1 Head; - typedef Types29 Tail; -}; - -template -struct Types31 { - typedef T1 Head; - typedef Types30 Tail; -}; - -template -struct Types32 { - typedef T1 Head; - typedef Types31 Tail; -}; - -template -struct Types33 { - typedef T1 Head; - typedef Types32 Tail; -}; - -template -struct Types34 { - typedef T1 Head; - typedef Types33 Tail; -}; - -template -struct Types35 { - typedef T1 Head; - typedef Types34 Tail; -}; - -template -struct Types36 { - typedef T1 Head; - typedef Types35 Tail; -}; - -template -struct Types37 { - typedef T1 Head; - typedef Types36 Tail; -}; - -template -struct Types38 { - typedef T1 Head; - typedef Types37 Tail; -}; - -template -struct Types39 { - typedef T1 Head; - typedef Types38 Tail; -}; - -template -struct Types40 { - typedef T1 Head; - typedef Types39 Tail; -}; - -template -struct Types41 { - typedef T1 Head; - typedef Types40 Tail; -}; - -template -struct Types42 { - typedef T1 Head; - typedef Types41 Tail; -}; - -template -struct Types43 { - typedef T1 Head; - typedef Types42 Tail; -}; - -template -struct Types44 { - typedef T1 Head; - typedef Types43 Tail; -}; - -template -struct Types45 { - typedef T1 Head; - typedef Types44 Tail; -}; - -template -struct Types46 { - typedef T1 Head; - typedef Types45 Tail; -}; - -template -struct Types47 { - typedef T1 Head; - typedef Types46 Tail; -}; - -template -struct Types48 { - typedef T1 Head; - typedef Types47 Tail; -}; - -template -struct Types49 { - typedef T1 Head; - typedef Types48 Tail; -}; - -template -struct Types50 { - typedef T1 Head; - typedef Types49 Tail; -}; - - -} // namespace internal - -// We don't want to require the users to write TypesN<...> directly, -// as that would require them to count the length. Types<...> is much -// easier to write, but generates horrible messages when there is a -// compiler error, as gcc insists on printing out each template -// argument, even if it has the default value (this means Types -// will appear as Types in the compiler -// errors). -// -// Our solution is to combine the best part of the two approaches: a -// user would write Types, and Google Test will translate -// that to TypesN internally to make error messages -// readable. The translation is done by the 'type' member of the -// Types template. -template -struct Types { - typedef internal::Types50 type; -}; - -template <> -struct Types { - typedef internal::Types0 type; -}; -template -struct Types { - typedef internal::Types1 type; -}; -template -struct Types { - typedef internal::Types2 type; -}; -template -struct Types { - typedef internal::Types3 type; -}; -template -struct Types { - typedef internal::Types4 type; -}; -template -struct Types { - typedef internal::Types5 type; -}; -template -struct Types { - typedef internal::Types6 type; -}; -template -struct Types { - typedef internal::Types7 type; -}; -template -struct Types { - typedef internal::Types8 type; -}; -template -struct Types { - typedef internal::Types9 type; -}; -template -struct Types { - typedef internal::Types10 type; -}; -template -struct Types { - typedef internal::Types11 type; -}; -template -struct Types { - typedef internal::Types12 type; -}; -template -struct Types { - typedef internal::Types13 type; -}; -template -struct Types { - typedef internal::Types14 type; -}; -template -struct Types { - typedef internal::Types15 type; -}; -template -struct Types { - typedef internal::Types16 type; -}; -template -struct Types { - typedef internal::Types17 type; -}; -template -struct Types { - typedef internal::Types18 type; -}; -template -struct Types { - typedef internal::Types19 type; -}; -template -struct Types { - typedef internal::Types20 type; -}; -template -struct Types { - typedef internal::Types21 type; -}; -template -struct Types { - typedef internal::Types22 type; -}; -template -struct Types { - typedef internal::Types23 type; -}; -template -struct Types { - typedef internal::Types24 type; -}; -template -struct Types { - typedef internal::Types25 type; -}; -template -struct Types { - typedef internal::Types26 type; -}; -template -struct Types { - typedef internal::Types27 type; -}; -template -struct Types { - typedef internal::Types28 type; -}; -template -struct Types { - typedef internal::Types29 type; -}; -template -struct Types { - typedef internal::Types30 type; -}; -template -struct Types { - typedef internal::Types31 type; -}; -template -struct Types { - typedef internal::Types32 type; -}; -template -struct Types { - typedef internal::Types33 type; -}; -template -struct Types { - typedef internal::Types34 type; -}; -template -struct Types { - typedef internal::Types35 type; -}; -template -struct Types { - typedef internal::Types36 type; -}; -template -struct Types { - typedef internal::Types37 type; -}; -template -struct Types { - typedef internal::Types38 type; -}; -template -struct Types { - typedef internal::Types39 type; -}; -template -struct Types { - typedef internal::Types40 type; -}; -template -struct Types { - typedef internal::Types41 type; -}; -template -struct Types { - typedef internal::Types42 type; -}; -template -struct Types { - typedef internal::Types43 type; -}; -template -struct Types { - typedef internal::Types44 type; -}; -template -struct Types { - typedef internal::Types45 type; -}; -template -struct Types { - typedef internal::Types46 type; -}; -template -struct Types { - typedef internal::Types47 type; -}; -template -struct Types { - typedef internal::Types48 type; -}; -template -struct Types { - typedef internal::Types49 type; -}; - -namespace internal { - -# define GTEST_TEMPLATE_ template class - -// The template "selector" struct TemplateSel is used to -// represent Tmpl, which must be a class template with one type -// parameter, as a type. TemplateSel::Bind::type is defined -// as the type Tmpl. This allows us to actually instantiate the -// template "selected" by TemplateSel. -// -// This trick is necessary for simulating typedef for class templates, -// which C++ doesn't support directly. -template -struct TemplateSel { - template - struct Bind { - typedef Tmpl type; - }; -}; - -# define GTEST_BIND_(TmplSel, T) \ - TmplSel::template Bind::type - -// A unique struct template used as the default value for the -// arguments of class template Templates. This allows us to simulate -// variadic templates (e.g. Templates, Templates, -// and etc), which C++ doesn't support directly. -template -struct NoneT {}; - -// The following family of struct and struct templates are used to -// represent template lists. In particular, TemplatesN represents a list of N templates (T1, T2, ..., and TN). Except -// for Templates0, every struct in the family has two member types: -// Head for the selector of the first template in the list, and Tail -// for the rest of the list. - -// The empty template list. -struct Templates0 {}; - -// Template lists of length 1, 2, 3, and so on. - -template -struct Templates1 { - typedef TemplateSel Head; - typedef Templates0 Tail; -}; -template -struct Templates2 { - typedef TemplateSel Head; - typedef Templates1 Tail; -}; - -template -struct Templates3 { - typedef TemplateSel Head; - typedef Templates2 Tail; -}; - -template -struct Templates4 { - typedef TemplateSel Head; - typedef Templates3 Tail; -}; - -template -struct Templates5 { - typedef TemplateSel Head; - typedef Templates4 Tail; -}; - -template -struct Templates6 { - typedef TemplateSel Head; - typedef Templates5 Tail; -}; - -template -struct Templates7 { - typedef TemplateSel Head; - typedef Templates6 Tail; -}; - -template -struct Templates8 { - typedef TemplateSel Head; - typedef Templates7 Tail; -}; - -template -struct Templates9 { - typedef TemplateSel Head; - typedef Templates8 Tail; -}; - -template -struct Templates10 { - typedef TemplateSel Head; - typedef Templates9 Tail; -}; - -template -struct Templates11 { - typedef TemplateSel Head; - typedef Templates10 Tail; -}; - -template -struct Templates12 { - typedef TemplateSel Head; - typedef Templates11 Tail; -}; - -template -struct Templates13 { - typedef TemplateSel Head; - typedef Templates12 Tail; -}; - -template -struct Templates14 { - typedef TemplateSel Head; - typedef Templates13 Tail; -}; - -template -struct Templates15 { - typedef TemplateSel Head; - typedef Templates14 Tail; -}; - -template -struct Templates16 { - typedef TemplateSel Head; - typedef Templates15 Tail; -}; - -template -struct Templates17 { - typedef TemplateSel Head; - typedef Templates16 Tail; -}; - -template -struct Templates18 { - typedef TemplateSel Head; - typedef Templates17 Tail; -}; - -template -struct Templates19 { - typedef TemplateSel Head; - typedef Templates18 Tail; -}; - -template -struct Templates20 { - typedef TemplateSel Head; - typedef Templates19 Tail; -}; - -template -struct Templates21 { - typedef TemplateSel Head; - typedef Templates20 Tail; -}; - -template -struct Templates22 { - typedef TemplateSel Head; - typedef Templates21 Tail; -}; - -template -struct Templates23 { - typedef TemplateSel Head; - typedef Templates22 Tail; -}; - -template -struct Templates24 { - typedef TemplateSel Head; - typedef Templates23 Tail; -}; - -template -struct Templates25 { - typedef TemplateSel Head; - typedef Templates24 Tail; -}; - -template -struct Templates26 { - typedef TemplateSel Head; - typedef Templates25 Tail; -}; - -template -struct Templates27 { - typedef TemplateSel Head; - typedef Templates26 Tail; -}; - -template -struct Templates28 { - typedef TemplateSel Head; - typedef Templates27 Tail; -}; - -template -struct Templates29 { - typedef TemplateSel Head; - typedef Templates28 Tail; -}; - -template -struct Templates30 { - typedef TemplateSel Head; - typedef Templates29 Tail; -}; - -template -struct Templates31 { - typedef TemplateSel Head; - typedef Templates30 Tail; -}; - -template -struct Templates32 { - typedef TemplateSel Head; - typedef Templates31 Tail; -}; - -template -struct Templates33 { - typedef TemplateSel Head; - typedef Templates32 Tail; -}; - -template -struct Templates34 { - typedef TemplateSel Head; - typedef Templates33 Tail; -}; - -template -struct Templates35 { - typedef TemplateSel Head; - typedef Templates34 Tail; -}; - -template -struct Templates36 { - typedef TemplateSel Head; - typedef Templates35 Tail; -}; - -template -struct Templates37 { - typedef TemplateSel Head; - typedef Templates36 Tail; -}; - -template -struct Templates38 { - typedef TemplateSel Head; - typedef Templates37 Tail; -}; - -template -struct Templates39 { - typedef TemplateSel Head; - typedef Templates38 Tail; -}; - -template -struct Templates40 { - typedef TemplateSel Head; - typedef Templates39 Tail; -}; - -template -struct Templates41 { - typedef TemplateSel Head; - typedef Templates40 Tail; -}; - -template -struct Templates42 { - typedef TemplateSel Head; - typedef Templates41 Tail; -}; - -template -struct Templates43 { - typedef TemplateSel Head; - typedef Templates42 Tail; -}; - -template -struct Templates44 { - typedef TemplateSel Head; - typedef Templates43 Tail; -}; - -template -struct Templates45 { - typedef TemplateSel Head; - typedef Templates44 Tail; -}; - -template -struct Templates46 { - typedef TemplateSel Head; - typedef Templates45 Tail; -}; - -template -struct Templates47 { - typedef TemplateSel Head; - typedef Templates46 Tail; -}; - -template -struct Templates48 { - typedef TemplateSel Head; - typedef Templates47 Tail; -}; - -template -struct Templates49 { - typedef TemplateSel Head; - typedef Templates48 Tail; -}; - -template -struct Templates50 { - typedef TemplateSel Head; - typedef Templates49 Tail; -}; - - -// We don't want to require the users to write TemplatesN<...> directly, -// as that would require them to count the length. Templates<...> is much -// easier to write, but generates horrible messages when there is a -// compiler error, as gcc insists on printing out each template -// argument, even if it has the default value (this means Templates -// will appear as Templates in the compiler -// errors). -// -// Our solution is to combine the best part of the two approaches: a -// user would write Templates, and Google Test will translate -// that to TemplatesN internally to make error messages -// readable. The translation is done by the 'type' member of the -// Templates template. -template -struct Templates { - typedef Templates50 type; -}; - -template <> -struct Templates { - typedef Templates0 type; -}; -template -struct Templates { - typedef Templates1 type; -}; -template -struct Templates { - typedef Templates2 type; -}; -template -struct Templates { - typedef Templates3 type; -}; -template -struct Templates { - typedef Templates4 type; -}; -template -struct Templates { - typedef Templates5 type; -}; -template -struct Templates { - typedef Templates6 type; -}; -template -struct Templates { - typedef Templates7 type; -}; -template -struct Templates { - typedef Templates8 type; -}; -template -struct Templates { - typedef Templates9 type; -}; -template -struct Templates { - typedef Templates10 type; -}; -template -struct Templates { - typedef Templates11 type; -}; -template -struct Templates { - typedef Templates12 type; -}; -template -struct Templates { - typedef Templates13 type; -}; -template -struct Templates { - typedef Templates14 type; -}; -template -struct Templates { - typedef Templates15 type; -}; -template -struct Templates { - typedef Templates16 type; -}; -template -struct Templates { - typedef Templates17 type; -}; -template -struct Templates { - typedef Templates18 type; -}; -template -struct Templates { - typedef Templates19 type; -}; -template -struct Templates { - typedef Templates20 type; -}; -template -struct Templates { - typedef Templates21 type; -}; -template -struct Templates { - typedef Templates22 type; -}; -template -struct Templates { - typedef Templates23 type; -}; -template -struct Templates { - typedef Templates24 type; -}; -template -struct Templates { - typedef Templates25 type; -}; -template -struct Templates { - typedef Templates26 type; -}; -template -struct Templates { - typedef Templates27 type; -}; -template -struct Templates { - typedef Templates28 type; -}; -template -struct Templates { - typedef Templates29 type; -}; -template -struct Templates { - typedef Templates30 type; -}; -template -struct Templates { - typedef Templates31 type; -}; -template -struct Templates { - typedef Templates32 type; -}; -template -struct Templates { - typedef Templates33 type; -}; -template -struct Templates { - typedef Templates34 type; -}; -template -struct Templates { - typedef Templates35 type; -}; -template -struct Templates { - typedef Templates36 type; -}; -template -struct Templates { - typedef Templates37 type; -}; -template -struct Templates { - typedef Templates38 type; -}; -template -struct Templates { - typedef Templates39 type; -}; -template -struct Templates { - typedef Templates40 type; -}; -template -struct Templates { - typedef Templates41 type; -}; -template -struct Templates { - typedef Templates42 type; -}; -template -struct Templates { - typedef Templates43 type; -}; -template -struct Templates { - typedef Templates44 type; -}; -template -struct Templates { - typedef Templates45 type; -}; -template -struct Templates { - typedef Templates46 type; -}; -template -struct Templates { - typedef Templates47 type; -}; -template -struct Templates { - typedef Templates48 type; -}; -template -struct Templates { - typedef Templates49 type; -}; - -// The TypeList template makes it possible to use either a single type -// or a Types<...> list in TYPED_TEST_SUITE() and -// INSTANTIATE_TYPED_TEST_SUITE_P(). - -template -struct TypeList { - typedef Types1 type; -}; - -template -struct TypeList > { - typedef typename Types::type type; -}; - -#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ diff --git a/include/gtest/internal/gtest-type-util.h.pump b/include/gtest/internal/gtest-type-util.h.pump deleted file mode 100644 index 5e31b7b..0000000 --- a/include/gtest/internal/gtest-type-util.h.pump +++ /dev/null @@ -1,302 +0,0 @@ -$$ -*- mode: c++; -*- -$var n = 50 $$ Maximum length of type lists we want to support. -// Copyright 2008 Google Inc. -// All Rights Reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -// Type utilities needed for implementing typed and type-parameterized -// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! -// -// Currently we support at most $n types in a list, and at most $n -// type-parameterized tests in one type-parameterized test suite. -// Please contact googletestframework@googlegroups.com if you need -// more. - -// GOOGLETEST_CM0001 DO NOT DELETE - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ - -#include "gtest/internal/gtest-port.h" - -// #ifdef __GNUC__ is too general here. It is possible to use gcc without using -// libstdc++ (which is where cxxabi.h comes from). -# if GTEST_HAS_CXXABI_H_ -# include -# elif defined(__HP_aCC) -# include -# endif // GTEST_HASH_CXXABI_H_ - -namespace testing { -namespace internal { - -// Canonicalizes a given name with respect to the Standard C++ Library. -// This handles removing the inline namespace within `std` that is -// used by various standard libraries (e.g., `std::__1`). Names outside -// of namespace std are returned unmodified. -inline std::string CanonicalizeForStdLibVersioning(std::string s) { - static const char prefix[] = "std::__"; - if (s.compare(0, strlen(prefix), prefix) == 0) { - std::string::size_type end = s.find("::", strlen(prefix)); - if (end != s.npos) { - // Erase everything between the initial `std` and the second `::`. - s.erase(strlen("std"), end - strlen("std")); - } - } - return s; -} - -// GetTypeName() returns a human-readable name of type T. -// NB: This function is also used in Google Mock, so don't move it inside of -// the typed-test-only section below. -template -std::string GetTypeName() { -# if GTEST_HAS_RTTI - - const char* const name = typeid(T).name(); -# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) - int status = 0; - // gcc's implementation of typeid(T).name() mangles the type name, - // so we have to demangle it. -# if GTEST_HAS_CXXABI_H_ - using abi::__cxa_demangle; -# endif // GTEST_HAS_CXXABI_H_ - char* const readable_name = __cxa_demangle(name, nullptr, nullptr, &status); - const std::string name_str(status == 0 ? readable_name : name); - free(readable_name); - return CanonicalizeForStdLibVersioning(name_str); -# else - return name; -# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC - -# else - - return ""; - -# endif // GTEST_HAS_RTTI -} - -#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -// A unique type used as the default value for the arguments of class -// template Types. This allows us to simulate variadic templates -// (e.g. Types, Type, and etc), which C++ doesn't -// support directly. -struct None {}; - -// The following family of struct and struct templates are used to -// represent type lists. In particular, TypesN -// represents a type list with N types (T1, T2, ..., and TN) in it. -// Except for Types0, every struct in the family has two member types: -// Head for the first type in the list, and Tail for the rest of the -// list. - -// The empty type list. -struct Types0 {}; - -// Type lists of length 1, 2, 3, and so on. - -template -struct Types1 { - typedef T1 Head; - typedef Types0 Tail; -}; - -$range i 2..n - -$for i [[ -$range j 1..i -$range k 2..i -template <$for j, [[typename T$j]]> -struct Types$i { - typedef T1 Head; - typedef Types$(i-1)<$for k, [[T$k]]> Tail; -}; - - -]] - -} // namespace internal - -// We don't want to require the users to write TypesN<...> directly, -// as that would require them to count the length. Types<...> is much -// easier to write, but generates horrible messages when there is a -// compiler error, as gcc insists on printing out each template -// argument, even if it has the default value (this means Types -// will appear as Types in the compiler -// errors). -// -// Our solution is to combine the best part of the two approaches: a -// user would write Types, and Google Test will translate -// that to TypesN internally to make error messages -// readable. The translation is done by the 'type' member of the -// Types template. - -$range i 1..n -template <$for i, [[typename T$i = internal::None]]> -struct Types { - typedef internal::Types$n<$for i, [[T$i]]> type; -}; - -template <> -struct Types<$for i, [[internal::None]]> { - typedef internal::Types0 type; -}; - -$range i 1..n-1 -$for i [[ -$range j 1..i -$range k i+1..n -template <$for j, [[typename T$j]]> -struct Types<$for j, [[T$j]]$for k[[, internal::None]]> { - typedef internal::Types$i<$for j, [[T$j]]> type; -}; - -]] - -namespace internal { - -# define GTEST_TEMPLATE_ template class - -// The template "selector" struct TemplateSel is used to -// represent Tmpl, which must be a class template with one type -// parameter, as a type. TemplateSel::Bind::type is defined -// as the type Tmpl. This allows us to actually instantiate the -// template "selected" by TemplateSel. -// -// This trick is necessary for simulating typedef for class templates, -// which C++ doesn't support directly. -template -struct TemplateSel { - template - struct Bind { - typedef Tmpl type; - }; -}; - -# define GTEST_BIND_(TmplSel, T) \ - TmplSel::template Bind::type - -// A unique struct template used as the default value for the -// arguments of class template Templates. This allows us to simulate -// variadic templates (e.g. Templates, Templates, -// and etc), which C++ doesn't support directly. -template -struct NoneT {}; - -// The following family of struct and struct templates are used to -// represent template lists. In particular, TemplatesN represents a list of N templates (T1, T2, ..., and TN). Except -// for Templates0, every struct in the family has two member types: -// Head for the selector of the first template in the list, and Tail -// for the rest of the list. - -// The empty template list. -struct Templates0 {}; - -// Template lists of length 1, 2, 3, and so on. - -template -struct Templates1 { - typedef TemplateSel Head; - typedef Templates0 Tail; -}; - -$range i 2..n - -$for i [[ -$range j 1..i -$range k 2..i -template <$for j, [[GTEST_TEMPLATE_ T$j]]> -struct Templates$i { - typedef TemplateSel Head; - typedef Templates$(i-1)<$for k, [[T$k]]> Tail; -}; - - -]] - -// We don't want to require the users to write TemplatesN<...> directly, -// as that would require them to count the length. Templates<...> is much -// easier to write, but generates horrible messages when there is a -// compiler error, as gcc insists on printing out each template -// argument, even if it has the default value (this means Templates -// will appear as Templates in the compiler -// errors). -// -// Our solution is to combine the best part of the two approaches: a -// user would write Templates, and Google Test will translate -// that to TemplatesN internally to make error messages -// readable. The translation is done by the 'type' member of the -// Templates template. - -$range i 1..n -template <$for i, [[GTEST_TEMPLATE_ T$i = NoneT]]> -struct Templates { - typedef Templates$n<$for i, [[T$i]]> type; -}; - -template <> -struct Templates<$for i, [[NoneT]]> { - typedef Templates0 type; -}; - -$range i 1..n-1 -$for i [[ -$range j 1..i -$range k i+1..n -template <$for j, [[GTEST_TEMPLATE_ T$j]]> -struct Templates<$for j, [[T$j]]$for k[[, NoneT]]> { - typedef Templates$i<$for j, [[T$j]]> type; -}; - -]] - -// The TypeList template makes it possible to use either a single type -// or a Types<...> list in TYPED_TEST_SUITE() and -// INSTANTIATE_TYPED_TEST_SUITE_P(). - -template -struct TypeList { - typedef Types1 type; -}; - - -$range i 1..n -template <$for i, [[typename T$i]]> -struct TypeList > { - typedef typename Types<$for i, [[T$i]]>::type type; -}; - -#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ diff --git a/include/hiredis/adapters/ae.h b/include/hiredis/adapters/ae.h deleted file mode 100644 index 660d82e..0000000 --- a/include/hiredis/adapters/ae.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2010-2011, Pieter Noordhuis - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __HIREDIS_AE_H__ -#define __HIREDIS_AE_H__ -#include -#include -#include "../hiredis.h" -#include "../async.h" - -typedef struct redisAeEvents { - redisAsyncContext *context; - aeEventLoop *loop; - int fd; - int reading, writing; -} redisAeEvents; - -static void redisAeReadEvent(aeEventLoop *el, int fd, void *privdata, int mask) { - ((void)el); ((void)fd); ((void)mask); - - redisAeEvents *e = (redisAeEvents*)privdata; - redisAsyncHandleRead(e->context); -} - -static void redisAeWriteEvent(aeEventLoop *el, int fd, void *privdata, int mask) { - ((void)el); ((void)fd); ((void)mask); - - redisAeEvents *e = (redisAeEvents*)privdata; - redisAsyncHandleWrite(e->context); -} - -static void redisAeAddRead(void *privdata) { - redisAeEvents *e = (redisAeEvents*)privdata; - aeEventLoop *loop = e->loop; - if (!e->reading) { - e->reading = 1; - aeCreateFileEvent(loop,e->fd,AE_READABLE,redisAeReadEvent,e); - } -} - -static void redisAeDelRead(void *privdata) { - redisAeEvents *e = (redisAeEvents*)privdata; - aeEventLoop *loop = e->loop; - if (e->reading) { - e->reading = 0; - aeDeleteFileEvent(loop,e->fd,AE_READABLE); - } -} - -static void redisAeAddWrite(void *privdata) { - redisAeEvents *e = (redisAeEvents*)privdata; - aeEventLoop *loop = e->loop; - if (!e->writing) { - e->writing = 1; - aeCreateFileEvent(loop,e->fd,AE_WRITABLE,redisAeWriteEvent,e); - } -} - -static void redisAeDelWrite(void *privdata) { - redisAeEvents *e = (redisAeEvents*)privdata; - aeEventLoop *loop = e->loop; - if (e->writing) { - e->writing = 0; - aeDeleteFileEvent(loop,e->fd,AE_WRITABLE); - } -} - -static void redisAeCleanup(void *privdata) { - redisAeEvents *e = (redisAeEvents*)privdata; - redisAeDelRead(privdata); - redisAeDelWrite(privdata); - hi_free(e); -} - -static int redisAeAttach(aeEventLoop *loop, redisAsyncContext *ac) { - redisContext *c = &(ac->c); - redisAeEvents *e; - - /* Nothing should be attached when something is already attached */ - if (ac->ev.data != NULL) - return REDIS_ERR; - - /* Create container for context and r/w events */ - e = (redisAeEvents*)hi_malloc(sizeof(*e)); - if (e == NULL) - return REDIS_ERR; - - e->context = ac; - e->loop = loop; - e->fd = c->fd; - e->reading = e->writing = 0; - - /* Register functions to start/stop listening for events */ - ac->ev.addRead = redisAeAddRead; - ac->ev.delRead = redisAeDelRead; - ac->ev.addWrite = redisAeAddWrite; - ac->ev.delWrite = redisAeDelWrite; - ac->ev.cleanup = redisAeCleanup; - ac->ev.data = e; - - return REDIS_OK; -} -#endif diff --git a/include/hiredis/adapters/glib.h b/include/hiredis/adapters/glib.h deleted file mode 100644 index ad59dd1..0000000 --- a/include/hiredis/adapters/glib.h +++ /dev/null @@ -1,156 +0,0 @@ -#ifndef __HIREDIS_GLIB_H__ -#define __HIREDIS_GLIB_H__ - -#include - -#include "../hiredis.h" -#include "../async.h" - -typedef struct -{ - GSource source; - redisAsyncContext *ac; - GPollFD poll_fd; -} RedisSource; - -static void -redis_source_add_read (gpointer data) -{ - RedisSource *source = (RedisSource *)data; - g_return_if_fail(source); - source->poll_fd.events |= G_IO_IN; - g_main_context_wakeup(g_source_get_context((GSource *)data)); -} - -static void -redis_source_del_read (gpointer data) -{ - RedisSource *source = (RedisSource *)data; - g_return_if_fail(source); - source->poll_fd.events &= ~G_IO_IN; - g_main_context_wakeup(g_source_get_context((GSource *)data)); -} - -static void -redis_source_add_write (gpointer data) -{ - RedisSource *source = (RedisSource *)data; - g_return_if_fail(source); - source->poll_fd.events |= G_IO_OUT; - g_main_context_wakeup(g_source_get_context((GSource *)data)); -} - -static void -redis_source_del_write (gpointer data) -{ - RedisSource *source = (RedisSource *)data; - g_return_if_fail(source); - source->poll_fd.events &= ~G_IO_OUT; - g_main_context_wakeup(g_source_get_context((GSource *)data)); -} - -static void -redis_source_cleanup (gpointer data) -{ - RedisSource *source = (RedisSource *)data; - - g_return_if_fail(source); - - redis_source_del_read(source); - redis_source_del_write(source); - /* - * It is not our responsibility to remove ourself from the - * current main loop. However, we will remove the GPollFD. - */ - if (source->poll_fd.fd >= 0) { - g_source_remove_poll((GSource *)data, &source->poll_fd); - source->poll_fd.fd = -1; - } -} - -static gboolean -redis_source_prepare (GSource *source, - gint *timeout_) -{ - RedisSource *redis = (RedisSource *)source; - *timeout_ = -1; - return !!(redis->poll_fd.events & redis->poll_fd.revents); -} - -static gboolean -redis_source_check (GSource *source) -{ - RedisSource *redis = (RedisSource *)source; - return !!(redis->poll_fd.events & redis->poll_fd.revents); -} - -static gboolean -redis_source_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - RedisSource *redis = (RedisSource *)source; - - if ((redis->poll_fd.revents & G_IO_OUT)) { - redisAsyncHandleWrite(redis->ac); - redis->poll_fd.revents &= ~G_IO_OUT; - } - - if ((redis->poll_fd.revents & G_IO_IN)) { - redisAsyncHandleRead(redis->ac); - redis->poll_fd.revents &= ~G_IO_IN; - } - - if (callback) { - return callback(user_data); - } - - return TRUE; -} - -static void -redis_source_finalize (GSource *source) -{ - RedisSource *redis = (RedisSource *)source; - - if (redis->poll_fd.fd >= 0) { - g_source_remove_poll(source, &redis->poll_fd); - redis->poll_fd.fd = -1; - } -} - -static GSource * -redis_source_new (redisAsyncContext *ac) -{ - static GSourceFuncs source_funcs = { - .prepare = redis_source_prepare, - .check = redis_source_check, - .dispatch = redis_source_dispatch, - .finalize = redis_source_finalize, - }; - redisContext *c = &ac->c; - RedisSource *source; - - g_return_val_if_fail(ac != NULL, NULL); - - source = (RedisSource *)g_source_new(&source_funcs, sizeof *source); - if (source == NULL) - return NULL; - - source->ac = ac; - source->poll_fd.fd = c->fd; - source->poll_fd.events = 0; - source->poll_fd.revents = 0; - g_source_add_poll((GSource *)source, &source->poll_fd); - - ac->ev.addRead = redis_source_add_read; - ac->ev.delRead = redis_source_del_read; - ac->ev.addWrite = redis_source_add_write; - ac->ev.delWrite = redis_source_del_write; - ac->ev.cleanup = redis_source_cleanup; - ac->ev.data = source; - - return (GSource *)source; -} - -#endif /* __HIREDIS_GLIB_H__ */ diff --git a/include/hiredis/adapters/ivykis.h b/include/hiredis/adapters/ivykis.h deleted file mode 100644 index 179f6ab..0000000 --- a/include/hiredis/adapters/ivykis.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef __HIREDIS_IVYKIS_H__ -#define __HIREDIS_IVYKIS_H__ -#include -#include "../hiredis.h" -#include "../async.h" - -typedef struct redisIvykisEvents { - redisAsyncContext *context; - struct iv_fd fd; -} redisIvykisEvents; - -static void redisIvykisReadEvent(void *arg) { - redisAsyncContext *context = (redisAsyncContext *)arg; - redisAsyncHandleRead(context); -} - -static void redisIvykisWriteEvent(void *arg) { - redisAsyncContext *context = (redisAsyncContext *)arg; - redisAsyncHandleWrite(context); -} - -static void redisIvykisAddRead(void *privdata) { - redisIvykisEvents *e = (redisIvykisEvents*)privdata; - iv_fd_set_handler_in(&e->fd, redisIvykisReadEvent); -} - -static void redisIvykisDelRead(void *privdata) { - redisIvykisEvents *e = (redisIvykisEvents*)privdata; - iv_fd_set_handler_in(&e->fd, NULL); -} - -static void redisIvykisAddWrite(void *privdata) { - redisIvykisEvents *e = (redisIvykisEvents*)privdata; - iv_fd_set_handler_out(&e->fd, redisIvykisWriteEvent); -} - -static void redisIvykisDelWrite(void *privdata) { - redisIvykisEvents *e = (redisIvykisEvents*)privdata; - iv_fd_set_handler_out(&e->fd, NULL); -} - -static void redisIvykisCleanup(void *privdata) { - redisIvykisEvents *e = (redisIvykisEvents*)privdata; - - iv_fd_unregister(&e->fd); - hi_free(e); -} - -static int redisIvykisAttach(redisAsyncContext *ac) { - redisContext *c = &(ac->c); - redisIvykisEvents *e; - - /* Nothing should be attached when something is already attached */ - if (ac->ev.data != NULL) - return REDIS_ERR; - - /* Create container for context and r/w events */ - e = (redisIvykisEvents*)hi_malloc(sizeof(*e)); - if (e == NULL) - return REDIS_ERR; - - e->context = ac; - - /* Register functions to start/stop listening for events */ - ac->ev.addRead = redisIvykisAddRead; - ac->ev.delRead = redisIvykisDelRead; - ac->ev.addWrite = redisIvykisAddWrite; - ac->ev.delWrite = redisIvykisDelWrite; - ac->ev.cleanup = redisIvykisCleanup; - ac->ev.data = e; - - /* Initialize and install read/write events */ - IV_FD_INIT(&e->fd); - e->fd.fd = c->fd; - e->fd.handler_in = redisIvykisReadEvent; - e->fd.handler_out = redisIvykisWriteEvent; - e->fd.handler_err = NULL; - e->fd.cookie = e->context; - - iv_fd_register(&e->fd); - - return REDIS_OK; -} -#endif diff --git a/include/hiredis/adapters/libev.h b/include/hiredis/adapters/libev.h deleted file mode 100644 index 6191543..0000000 --- a/include/hiredis/adapters/libev.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2010-2011, Pieter Noordhuis - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __HIREDIS_LIBEV_H__ -#define __HIREDIS_LIBEV_H__ -#include -#include -#include -#include "../hiredis.h" -#include "../async.h" - -typedef struct redisLibevEvents { - redisAsyncContext *context; - struct ev_loop *loop; - int reading, writing; - ev_io rev, wev; - ev_timer timer; -} redisLibevEvents; - -static void redisLibevReadEvent(EV_P_ ev_io *watcher, int revents) { -#if EV_MULTIPLICITY - ((void)EV_A); -#endif - ((void)revents); - - redisLibevEvents *e = (redisLibevEvents*)watcher->data; - redisAsyncHandleRead(e->context); -} - -static void redisLibevWriteEvent(EV_P_ ev_io *watcher, int revents) { -#if EV_MULTIPLICITY - ((void)EV_A); -#endif - ((void)revents); - - redisLibevEvents *e = (redisLibevEvents*)watcher->data; - redisAsyncHandleWrite(e->context); -} - -static void redisLibevAddRead(void *privdata) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - struct ev_loop *loop = e->loop; - ((void)loop); - if (!e->reading) { - e->reading = 1; - ev_io_start(EV_A_ &e->rev); - } -} - -static void redisLibevDelRead(void *privdata) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - struct ev_loop *loop = e->loop; - ((void)loop); - if (e->reading) { - e->reading = 0; - ev_io_stop(EV_A_ &e->rev); - } -} - -static void redisLibevAddWrite(void *privdata) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - struct ev_loop *loop = e->loop; - ((void)loop); - if (!e->writing) { - e->writing = 1; - ev_io_start(EV_A_ &e->wev); - } -} - -static void redisLibevDelWrite(void *privdata) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - struct ev_loop *loop = e->loop; - ((void)loop); - if (e->writing) { - e->writing = 0; - ev_io_stop(EV_A_ &e->wev); - } -} - -static void redisLibevStopTimer(void *privdata) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - struct ev_loop *loop = e->loop; - ((void)loop); - ev_timer_stop(EV_A_ &e->timer); -} - -static void redisLibevCleanup(void *privdata) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - redisLibevDelRead(privdata); - redisLibevDelWrite(privdata); - redisLibevStopTimer(privdata); - hi_free(e); -} - -static void redisLibevTimeout(EV_P_ ev_timer *timer, int revents) { - ((void)revents); - redisLibevEvents *e = (redisLibevEvents*)timer->data; - redisAsyncHandleTimeout(e->context); -} - -static void redisLibevSetTimeout(void *privdata, struct timeval tv) { - redisLibevEvents *e = (redisLibevEvents*)privdata; - struct ev_loop *loop = e->loop; - ((void)loop); - - if (!ev_is_active(&e->timer)) { - ev_init(&e->timer, redisLibevTimeout); - e->timer.data = e; - } - - e->timer.repeat = tv.tv_sec + tv.tv_usec / 1000000.00; - ev_timer_again(EV_A_ &e->timer); -} - -static int redisLibevAttach(EV_P_ redisAsyncContext *ac) { - redisContext *c = &(ac->c); - redisLibevEvents *e; - - /* Nothing should be attached when something is already attached */ - if (ac->ev.data != NULL) - return REDIS_ERR; - - /* Create container for context and r/w events */ - e = (redisLibevEvents*)hi_calloc(1, sizeof(*e)); - if (e == NULL) - return REDIS_ERR; - - e->context = ac; -#if EV_MULTIPLICITY - e->loop = EV_A; -#else - e->loop = NULL; -#endif - e->rev.data = e; - e->wev.data = e; - - /* Register functions to start/stop listening for events */ - ac->ev.addRead = redisLibevAddRead; - ac->ev.delRead = redisLibevDelRead; - ac->ev.addWrite = redisLibevAddWrite; - ac->ev.delWrite = redisLibevDelWrite; - ac->ev.cleanup = redisLibevCleanup; - ac->ev.scheduleTimer = redisLibevSetTimeout; - ac->ev.data = e; - - /* Initialize read/write events */ - ev_io_init(&e->rev,redisLibevReadEvent,c->fd,EV_READ); - ev_io_init(&e->wev,redisLibevWriteEvent,c->fd,EV_WRITE); - return REDIS_OK; -} - -#endif diff --git a/include/hiredis/adapters/libevent.h b/include/hiredis/adapters/libevent.h deleted file mode 100644 index 9150979..0000000 --- a/include/hiredis/adapters/libevent.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright (c) 2010-2011, Pieter Noordhuis - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __HIREDIS_LIBEVENT_H__ -#define __HIREDIS_LIBEVENT_H__ -#include -#include "../hiredis.h" -#include "../async.h" - -#define REDIS_LIBEVENT_DELETED 0x01 -#define REDIS_LIBEVENT_ENTERED 0x02 - -typedef struct redisLibeventEvents { - redisAsyncContext *context; - struct event *ev; - struct event_base *base; - struct timeval tv; - short flags; - short state; -} redisLibeventEvents; - -static void redisLibeventDestroy(redisLibeventEvents *e) { - hi_free(e); -} - -static void redisLibeventHandler(int fd, short event, void *arg) { - ((void)fd); - redisLibeventEvents *e = (redisLibeventEvents*)arg; - e->state |= REDIS_LIBEVENT_ENTERED; - - #define CHECK_DELETED() if (e->state & REDIS_LIBEVENT_DELETED) {\ - redisLibeventDestroy(e);\ - return; \ - } - - if ((event & EV_TIMEOUT) && (e->state & REDIS_LIBEVENT_DELETED) == 0) { - redisAsyncHandleTimeout(e->context); - CHECK_DELETED(); - } - - if ((event & EV_READ) && e->context && (e->state & REDIS_LIBEVENT_DELETED) == 0) { - redisAsyncHandleRead(e->context); - CHECK_DELETED(); - } - - if ((event & EV_WRITE) && e->context && (e->state & REDIS_LIBEVENT_DELETED) == 0) { - redisAsyncHandleWrite(e->context); - CHECK_DELETED(); - } - - e->state &= ~REDIS_LIBEVENT_ENTERED; - #undef CHECK_DELETED -} - -static void redisLibeventUpdate(void *privdata, short flag, int isRemove) { - redisLibeventEvents *e = (redisLibeventEvents *)privdata; - const struct timeval *tv = e->tv.tv_sec || e->tv.tv_usec ? &e->tv : NULL; - - if (isRemove) { - if ((e->flags & flag) == 0) { - return; - } else { - e->flags &= ~flag; - } - } else { - if (e->flags & flag) { - return; - } else { - e->flags |= flag; - } - } - - event_del(e->ev); - event_assign(e->ev, e->base, e->context->c.fd, e->flags | EV_PERSIST, - redisLibeventHandler, privdata); - event_add(e->ev, tv); -} - -static void redisLibeventAddRead(void *privdata) { - redisLibeventUpdate(privdata, EV_READ, 0); -} - -static void redisLibeventDelRead(void *privdata) { - redisLibeventUpdate(privdata, EV_READ, 1); -} - -static void redisLibeventAddWrite(void *privdata) { - redisLibeventUpdate(privdata, EV_WRITE, 0); -} - -static void redisLibeventDelWrite(void *privdata) { - redisLibeventUpdate(privdata, EV_WRITE, 1); -} - -static void redisLibeventCleanup(void *privdata) { - redisLibeventEvents *e = (redisLibeventEvents*)privdata; - if (!e) { - return; - } - event_del(e->ev); - event_free(e->ev); - e->ev = NULL; - - if (e->state & REDIS_LIBEVENT_ENTERED) { - e->state |= REDIS_LIBEVENT_DELETED; - } else { - redisLibeventDestroy(e); - } -} - -static void redisLibeventSetTimeout(void *privdata, struct timeval tv) { - redisLibeventEvents *e = (redisLibeventEvents *)privdata; - short flags = e->flags; - e->flags = 0; - e->tv = tv; - redisLibeventUpdate(e, flags, 0); -} - -static int redisLibeventAttach(redisAsyncContext *ac, struct event_base *base) { - redisContext *c = &(ac->c); - redisLibeventEvents *e; - - /* Nothing should be attached when something is already attached */ - if (ac->ev.data != NULL) - return REDIS_ERR; - - /* Create container for context and r/w events */ - e = (redisLibeventEvents*)hi_calloc(1, sizeof(*e)); - if (e == NULL) - return REDIS_ERR; - - e->context = ac; - - /* Register functions to start/stop listening for events */ - ac->ev.addRead = redisLibeventAddRead; - ac->ev.delRead = redisLibeventDelRead; - ac->ev.addWrite = redisLibeventAddWrite; - ac->ev.delWrite = redisLibeventDelWrite; - ac->ev.cleanup = redisLibeventCleanup; - ac->ev.scheduleTimer = redisLibeventSetTimeout; - ac->ev.data = e; - - /* Initialize and install read/write events */ - e->ev = event_new(base, c->fd, EV_READ | EV_WRITE, redisLibeventHandler, e); - e->base = base; - return REDIS_OK; -} -#endif diff --git a/include/hiredis/adapters/libuv.h b/include/hiredis/adapters/libuv.h deleted file mode 100644 index c120b1b..0000000 --- a/include/hiredis/adapters/libuv.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef __HIREDIS_LIBUV_H__ -#define __HIREDIS_LIBUV_H__ -#include -#include -#include "../hiredis.h" -#include "../async.h" -#include - -typedef struct redisLibuvEvents { - redisAsyncContext* context; - uv_poll_t handle; - int events; -} redisLibuvEvents; - - -static void redisLibuvPoll(uv_poll_t* handle, int status, int events) { - redisLibuvEvents* p = (redisLibuvEvents*)handle->data; - int ev = (status ? p->events : events); - - if (p->context != NULL && (ev & UV_READABLE)) { - redisAsyncHandleRead(p->context); - } - if (p->context != NULL && (ev & UV_WRITABLE)) { - redisAsyncHandleWrite(p->context); - } -} - - -static void redisLibuvAddRead(void *privdata) { - redisLibuvEvents* p = (redisLibuvEvents*)privdata; - - p->events |= UV_READABLE; - - uv_poll_start(&p->handle, p->events, redisLibuvPoll); -} - - -static void redisLibuvDelRead(void *privdata) { - redisLibuvEvents* p = (redisLibuvEvents*)privdata; - - p->events &= ~UV_READABLE; - - if (p->events) { - uv_poll_start(&p->handle, p->events, redisLibuvPoll); - } else { - uv_poll_stop(&p->handle); - } -} - - -static void redisLibuvAddWrite(void *privdata) { - redisLibuvEvents* p = (redisLibuvEvents*)privdata; - - p->events |= UV_WRITABLE; - - uv_poll_start(&p->handle, p->events, redisLibuvPoll); -} - - -static void redisLibuvDelWrite(void *privdata) { - redisLibuvEvents* p = (redisLibuvEvents*)privdata; - - p->events &= ~UV_WRITABLE; - - if (p->events) { - uv_poll_start(&p->handle, p->events, redisLibuvPoll); - } else { - uv_poll_stop(&p->handle); - } -} - - -static void on_close(uv_handle_t* handle) { - redisLibuvEvents* p = (redisLibuvEvents*)handle->data; - - hi_free(p); -} - - -static void redisLibuvCleanup(void *privdata) { - redisLibuvEvents* p = (redisLibuvEvents*)privdata; - - p->context = NULL; // indicate that context might no longer exist - uv_close((uv_handle_t*)&p->handle, on_close); -} - - -static int redisLibuvAttach(redisAsyncContext* ac, uv_loop_t* loop) { - redisContext *c = &(ac->c); - - if (ac->ev.data != NULL) { - return REDIS_ERR; - } - - ac->ev.addRead = redisLibuvAddRead; - ac->ev.delRead = redisLibuvDelRead; - ac->ev.addWrite = redisLibuvAddWrite; - ac->ev.delWrite = redisLibuvDelWrite; - ac->ev.cleanup = redisLibuvCleanup; - - redisLibuvEvents* p = (redisLibuvEvents*)hi_malloc(sizeof(*p)); - if (p == NULL) - return REDIS_ERR; - - memset(p, 0, sizeof(*p)); - - if (uv_poll_init_socket(loop, &p->handle, c->fd) != 0) { - return REDIS_ERR; - } - - ac->ev.data = p; - p->handle.data = p; - p->context = ac; - - return REDIS_OK; -} -#endif diff --git a/include/hiredis/adapters/macosx.h b/include/hiredis/adapters/macosx.h deleted file mode 100644 index 3c87f1b..0000000 --- a/include/hiredis/adapters/macosx.h +++ /dev/null @@ -1,115 +0,0 @@ -// -// Created by 袛屑懈褌褉懈泄 袘邪褏胁邪谢芯胁 on 13.07.15. -// Copyright (c) 2015 Dmitry Bakhvalov. All rights reserved. -// - -#ifndef __HIREDIS_MACOSX_H__ -#define __HIREDIS_MACOSX_H__ - -#include - -#include "../hiredis.h" -#include "../async.h" - -typedef struct { - redisAsyncContext *context; - CFSocketRef socketRef; - CFRunLoopSourceRef sourceRef; -} RedisRunLoop; - -static int freeRedisRunLoop(RedisRunLoop* redisRunLoop) { - if( redisRunLoop != NULL ) { - if( redisRunLoop->sourceRef != NULL ) { - CFRunLoopSourceInvalidate(redisRunLoop->sourceRef); - CFRelease(redisRunLoop->sourceRef); - } - if( redisRunLoop->socketRef != NULL ) { - CFSocketInvalidate(redisRunLoop->socketRef); - CFRelease(redisRunLoop->socketRef); - } - hi_free(redisRunLoop); - } - return REDIS_ERR; -} - -static void redisMacOSAddRead(void *privdata) { - RedisRunLoop *redisRunLoop = (RedisRunLoop*)privdata; - CFSocketEnableCallBacks(redisRunLoop->socketRef, kCFSocketReadCallBack); -} - -static void redisMacOSDelRead(void *privdata) { - RedisRunLoop *redisRunLoop = (RedisRunLoop*)privdata; - CFSocketDisableCallBacks(redisRunLoop->socketRef, kCFSocketReadCallBack); -} - -static void redisMacOSAddWrite(void *privdata) { - RedisRunLoop *redisRunLoop = (RedisRunLoop*)privdata; - CFSocketEnableCallBacks(redisRunLoop->socketRef, kCFSocketWriteCallBack); -} - -static void redisMacOSDelWrite(void *privdata) { - RedisRunLoop *redisRunLoop = (RedisRunLoop*)privdata; - CFSocketDisableCallBacks(redisRunLoop->socketRef, kCFSocketWriteCallBack); -} - -static void redisMacOSCleanup(void *privdata) { - RedisRunLoop *redisRunLoop = (RedisRunLoop*)privdata; - freeRedisRunLoop(redisRunLoop); -} - -static void redisMacOSAsyncCallback(CFSocketRef __unused s, CFSocketCallBackType callbackType, CFDataRef __unused address, const void __unused *data, void *info) { - redisAsyncContext* context = (redisAsyncContext*) info; - - switch (callbackType) { - case kCFSocketReadCallBack: - redisAsyncHandleRead(context); - break; - - case kCFSocketWriteCallBack: - redisAsyncHandleWrite(context); - break; - - default: - break; - } -} - -static int redisMacOSAttach(redisAsyncContext *redisAsyncCtx, CFRunLoopRef runLoop) { - redisContext *redisCtx = &(redisAsyncCtx->c); - - /* Nothing should be attached when something is already attached */ - if( redisAsyncCtx->ev.data != NULL ) return REDIS_ERR; - - RedisRunLoop* redisRunLoop = (RedisRunLoop*) hi_calloc(1, sizeof(RedisRunLoop)); - if (redisRunLoop == NULL) - return REDIS_ERR; - - /* Setup redis stuff */ - redisRunLoop->context = redisAsyncCtx; - - redisAsyncCtx->ev.addRead = redisMacOSAddRead; - redisAsyncCtx->ev.delRead = redisMacOSDelRead; - redisAsyncCtx->ev.addWrite = redisMacOSAddWrite; - redisAsyncCtx->ev.delWrite = redisMacOSDelWrite; - redisAsyncCtx->ev.cleanup = redisMacOSCleanup; - redisAsyncCtx->ev.data = redisRunLoop; - - /* Initialize and install read/write events */ - CFSocketContext socketCtx = { 0, redisAsyncCtx, NULL, NULL, NULL }; - - redisRunLoop->socketRef = CFSocketCreateWithNative(NULL, redisCtx->fd, - kCFSocketReadCallBack | kCFSocketWriteCallBack, - redisMacOSAsyncCallback, - &socketCtx); - if( !redisRunLoop->socketRef ) return freeRedisRunLoop(redisRunLoop); - - redisRunLoop->sourceRef = CFSocketCreateRunLoopSource(NULL, redisRunLoop->socketRef, 0); - if( !redisRunLoop->sourceRef ) return freeRedisRunLoop(redisRunLoop); - - CFRunLoopAddSource(runLoop, redisRunLoop->sourceRef, kCFRunLoopDefaultMode); - - return REDIS_OK; -} - -#endif - diff --git a/include/hiredis/adapters/qt.h b/include/hiredis/adapters/qt.h deleted file mode 100644 index 5cc02e6..0000000 --- a/include/hiredis/adapters/qt.h +++ /dev/null @@ -1,135 +0,0 @@ -/*- - * Copyright (C) 2014 Pietro Cerutti - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef __HIREDIS_QT_H__ -#define __HIREDIS_QT_H__ -#include -#include "../async.h" - -static void RedisQtAddRead(void *); -static void RedisQtDelRead(void *); -static void RedisQtAddWrite(void *); -static void RedisQtDelWrite(void *); -static void RedisQtCleanup(void *); - -class RedisQtAdapter : public QObject { - - Q_OBJECT - - friend - void RedisQtAddRead(void * adapter) { - RedisQtAdapter * a = static_cast(adapter); - a->addRead(); - } - - friend - void RedisQtDelRead(void * adapter) { - RedisQtAdapter * a = static_cast(adapter); - a->delRead(); - } - - friend - void RedisQtAddWrite(void * adapter) { - RedisQtAdapter * a = static_cast(adapter); - a->addWrite(); - } - - friend - void RedisQtDelWrite(void * adapter) { - RedisQtAdapter * a = static_cast(adapter); - a->delWrite(); - } - - friend - void RedisQtCleanup(void * adapter) { - RedisQtAdapter * a = static_cast(adapter); - a->cleanup(); - } - - public: - RedisQtAdapter(QObject * parent = 0) - : QObject(parent), m_ctx(0), m_read(0), m_write(0) { } - - ~RedisQtAdapter() { - if (m_ctx != 0) { - m_ctx->ev.data = NULL; - } - } - - int setContext(redisAsyncContext * ac) { - if (ac->ev.data != NULL) { - return REDIS_ERR; - } - m_ctx = ac; - m_ctx->ev.data = this; - m_ctx->ev.addRead = RedisQtAddRead; - m_ctx->ev.delRead = RedisQtDelRead; - m_ctx->ev.addWrite = RedisQtAddWrite; - m_ctx->ev.delWrite = RedisQtDelWrite; - m_ctx->ev.cleanup = RedisQtCleanup; - return REDIS_OK; - } - - private: - void addRead() { - if (m_read) return; - m_read = new QSocketNotifier(m_ctx->c.fd, QSocketNotifier::Read, 0); - connect(m_read, SIGNAL(activated(int)), this, SLOT(read())); - } - - void delRead() { - if (!m_read) return; - delete m_read; - m_read = 0; - } - - void addWrite() { - if (m_write) return; - m_write = new QSocketNotifier(m_ctx->c.fd, QSocketNotifier::Write, 0); - connect(m_write, SIGNAL(activated(int)), this, SLOT(write())); - } - - void delWrite() { - if (!m_write) return; - delete m_write; - m_write = 0; - } - - void cleanup() { - delRead(); - delWrite(); - } - - private slots: - void read() { redisAsyncHandleRead(m_ctx); } - void write() { redisAsyncHandleWrite(m_ctx); } - - private: - redisAsyncContext * m_ctx; - QSocketNotifier * m_read; - QSocketNotifier * m_write; -}; - -#endif /* !__HIREDIS_QT_H__ */ diff --git a/include/hiredis/alloc.h b/include/hiredis/alloc.h deleted file mode 100644 index 34a05f4..0000000 --- a/include/hiredis/alloc.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2020, Michael Grunder - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef HIREDIS_ALLOC_H -#define HIREDIS_ALLOC_H - -#include /* for size_t */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Structure pointing to our actually configured allocators */ -typedef struct hiredisAllocFuncs { - void *(*mallocFn)(size_t); - void *(*callocFn)(size_t,size_t); - void *(*reallocFn)(void*,size_t); - char *(*strdupFn)(const char*); - void (*freeFn)(void*); -} hiredisAllocFuncs; - -hiredisAllocFuncs hiredisSetAllocators(hiredisAllocFuncs *ha); -void hiredisResetAllocators(void); - -#ifndef _WIN32 - -/* Hiredis' configured allocator function pointer struct */ -extern hiredisAllocFuncs hiredisAllocFns; - -static inline void *hi_malloc(size_t size) { - return hiredisAllocFns.mallocFn(size); -} - -static inline void *hi_calloc(size_t nmemb, size_t size) { - return hiredisAllocFns.callocFn(nmemb, size); -} - -static inline void *hi_realloc(void *ptr, size_t size) { - return hiredisAllocFns.reallocFn(ptr, size); -} - -static inline char *hi_strdup(const char *str) { - return hiredisAllocFns.strdupFn(str); -} - -static inline void hi_free(void *ptr) { - hiredisAllocFns.freeFn(ptr); -} - -#else - -void *hi_malloc(size_t size); -void *hi_calloc(size_t nmemb, size_t size); -void *hi_realloc(void *ptr, size_t size); -char *hi_strdup(const char *str); -void hi_free(void *ptr); - -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* HIREDIS_ALLOC_H */ diff --git a/include/hiredis/async.h b/include/hiredis/async.h deleted file mode 100644 index b1d2cb2..0000000 --- a/include/hiredis/async.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2009-2011, Salvatore Sanfilippo - * Copyright (c) 2010-2011, Pieter Noordhuis - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __HIREDIS_ASYNC_H -#define __HIREDIS_ASYNC_H -#include "hiredis.h" - -#ifdef __cplusplus -extern "C" { -#endif - -struct redisAsyncContext; /* need forward declaration of redisAsyncContext */ -struct dict; /* dictionary header is included in async.c */ - -/* Reply callback prototype and container */ -typedef void (redisCallbackFn)(struct redisAsyncContext*, void*, void*); -typedef struct redisCallback { - struct redisCallback *next; /* simple singly linked list */ - redisCallbackFn *fn; - int pending_subs; - void *privdata; -} redisCallback; - -/* List of callbacks for either regular replies or pub/sub */ -typedef struct redisCallbackList { - redisCallback *head, *tail; -} redisCallbackList; - -/* Connection callback prototypes */ -typedef void (redisDisconnectCallback)(const struct redisAsyncContext*, int status); -typedef void (redisConnectCallback)(const struct redisAsyncContext*, int status); -typedef void(redisTimerCallback)(void *timer, void *privdata); - -/* Context for an async connection to Redis */ -typedef struct redisAsyncContext { - /* Hold the regular context, so it can be realloc'ed. */ - redisContext c; - - /* Setup error flags so they can be used directly. */ - int err; - char *errstr; - - /* Not used by hiredis */ - void *data; - void (*dataCleanup)(void *privdata); - - /* Event library data and hooks */ - struct { - void *data; - - /* Hooks that are called when the library expects to start - * reading/writing. These functions should be idempotent. */ - void (*addRead)(void *privdata); - void (*delRead)(void *privdata); - void (*addWrite)(void *privdata); - void (*delWrite)(void *privdata); - void (*cleanup)(void *privdata); - void (*scheduleTimer)(void *privdata, struct timeval tv); - } ev; - - /* Called when either the connection is terminated due to an error or per - * user request. The status is set accordingly (REDIS_OK, REDIS_ERR). */ - redisDisconnectCallback *onDisconnect; - - /* Called when the first write event was received. */ - redisConnectCallback *onConnect; - - /* Regular command callbacks */ - redisCallbackList replies; - - /* Address used for connect() */ - struct sockaddr *saddr; - size_t addrlen; - - /* Subscription callbacks */ - struct { - redisCallbackList invalid; - struct dict *channels; - struct dict *patterns; - } sub; - - /* Any configured RESP3 PUSH handler */ - redisAsyncPushFn *push_cb; -} redisAsyncContext; - -/* Functions that proxy to hiredis */ -redisAsyncContext *redisAsyncConnectWithOptions(const redisOptions *options); -redisAsyncContext *redisAsyncConnect(const char *ip, int port); -redisAsyncContext *redisAsyncConnectBind(const char *ip, int port, const char *source_addr); -redisAsyncContext *redisAsyncConnectBindWithReuse(const char *ip, int port, - const char *source_addr); -redisAsyncContext *redisAsyncConnectUnix(const char *path); -int redisAsyncSetConnectCallback(redisAsyncContext *ac, redisConnectCallback *fn); -int redisAsyncSetDisconnectCallback(redisAsyncContext *ac, redisDisconnectCallback *fn); - -redisAsyncPushFn *redisAsyncSetPushCallback(redisAsyncContext *ac, redisAsyncPushFn *fn); -int redisAsyncSetTimeout(redisAsyncContext *ac, struct timeval tv); -void redisAsyncDisconnect(redisAsyncContext *ac); -void redisAsyncFree(redisAsyncContext *ac); - -/* Handle read/write events */ -void redisAsyncHandleRead(redisAsyncContext *ac); -void redisAsyncHandleWrite(redisAsyncContext *ac); -void redisAsyncHandleTimeout(redisAsyncContext *ac); -void redisAsyncRead(redisAsyncContext *ac); -void redisAsyncWrite(redisAsyncContext *ac); - -/* Command functions for an async context. Write the command to the - * output buffer and register the provided callback. */ -int redisvAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *format, va_list ap); -int redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *format, ...); -int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, int argc, const char **argv, const size_t *argvlen); -int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *cmd, size_t len); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/hiredis/hiredis.h b/include/hiredis/hiredis.h deleted file mode 100644 index e77a88a..0000000 --- a/include/hiredis/hiredis.h +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Copyright (c) 2009-2011, Salvatore Sanfilippo - * Copyright (c) 2010-2014, Pieter Noordhuis - * Copyright (c) 2015, Matt Stancliff , - * Jan-Erik Rediger - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __HIREDIS_H -#define __HIREDIS_H -#include "read.h" -#include /* for va_list */ -#ifndef _MSC_VER -#include /* for struct timeval */ -#else -struct timeval; /* forward declaration */ -typedef long long ssize_t; -#endif -#include /* uintXX_t, etc */ -#include "sds.h" /* for sds */ -#include "alloc.h" /* for allocation wrappers */ - -#define HIREDIS_MAJOR 1 -#define HIREDIS_MINOR 0 -#define HIREDIS_PATCH 1 -#define HIREDIS_SONAME 1.0.1-dev - -/* Connection type can be blocking or non-blocking and is set in the - * least significant bit of the flags field in redisContext. */ -#define REDIS_BLOCK 0x1 - -/* Connection may be disconnected before being free'd. The second bit - * in the flags field is set when the context is connected. */ -#define REDIS_CONNECTED 0x2 - -/* The async API might try to disconnect cleanly and flush the output - * buffer and read all subsequent replies before disconnecting. - * This flag means no new commands can come in and the connection - * should be terminated once all replies have been read. */ -#define REDIS_DISCONNECTING 0x4 - -/* Flag specific to the async API which means that the context should be clean - * up as soon as possible. */ -#define REDIS_FREEING 0x8 - -/* Flag that is set when an async callback is executed. */ -#define REDIS_IN_CALLBACK 0x10 - -/* Flag that is set when the async context has one or more subscriptions. */ -#define REDIS_SUBSCRIBED 0x20 - -/* Flag that is set when monitor mode is active */ -#define REDIS_MONITORING 0x40 - -/* Flag that is set when we should set SO_REUSEADDR before calling bind() */ -#define REDIS_REUSEADDR 0x80 - -/** - * Flag that indicates the user does not want the context to - * be automatically freed upon error - */ -#define REDIS_NO_AUTO_FREE 0x200 - -#define REDIS_KEEPALIVE_INTERVAL 15 /* seconds */ - -/* number of times we retry to connect in the case of EADDRNOTAVAIL and - * SO_REUSEADDR is being used. */ -#define REDIS_CONNECT_RETRIES 10 - -/* Forward declarations for structs defined elsewhere */ -struct redisAsyncContext; -struct redisContext; - -/* RESP3 push helpers and callback prototypes */ -#define redisIsPushReply(r) (((redisReply*)(r))->type == REDIS_REPLY_PUSH) -typedef void (redisPushFn)(void *, void *); -typedef void (redisAsyncPushFn)(struct redisAsyncContext *, void *); - -#ifdef __cplusplus -extern "C" { -#endif - -/* This is the reply object returned by redisCommand() */ -typedef struct redisReply { - int type; /* REDIS_REPLY_* */ - long long integer; /* The integer when type is REDIS_REPLY_INTEGER */ - double dval; /* The double when type is REDIS_REPLY_DOUBLE */ - size_t len; /* Length of string */ - char *str; /* Used for REDIS_REPLY_ERROR, REDIS_REPLY_STRING - REDIS_REPLY_VERB, REDIS_REPLY_DOUBLE (in additional to dval), - and REDIS_REPLY_BIGNUM. */ - char vtype[4]; /* Used for REDIS_REPLY_VERB, contains the null - terminated 3 character content type, such as "txt". */ - size_t elements; /* number of elements, for REDIS_REPLY_ARRAY */ - struct redisReply **element; /* elements vector for REDIS_REPLY_ARRAY */ -} redisReply; - -redisReader *redisReaderCreate(void); - -/* Function to free the reply objects hiredis returns by default. */ -void freeReplyObject(void *reply); - -/* Functions to format a command according to the protocol. */ -int redisvFormatCommand(char **target, const char *format, va_list ap); -int redisFormatCommand(char **target, const char *format, ...); -int redisFormatCommandArgv(char **target, int argc, const char **argv, const size_t *argvlen); -int redisFormatSdsCommandArgv(sds *target, int argc, const char ** argv, const size_t *argvlen); -void redisFreeCommand(char *cmd); -void redisFreeSdsCommand(sds cmd); - -enum redisConnectionType { - REDIS_CONN_TCP, - REDIS_CONN_UNIX, - REDIS_CONN_USERFD -}; - -struct redisSsl; - -#define REDIS_OPT_NONBLOCK 0x01 -#define REDIS_OPT_REUSEADDR 0x02 - -/** - * Don't automatically free the async object on a connection failure, - * or other implicit conditions. Only free on an explicit call to disconnect() or free() - */ -#define REDIS_OPT_NOAUTOFREE 0x04 - -/* Don't automatically intercept and free RESP3 PUSH replies. */ -#define REDIS_OPT_NO_PUSH_AUTOFREE 0x08 - -/* In Unix systems a file descriptor is a regular signed int, with -1 - * representing an invalid descriptor. In Windows it is a SOCKET - * (32- or 64-bit unsigned integer depending on the architecture), where - * all bits set (~0) is INVALID_SOCKET. */ -#ifndef _WIN32 -typedef int redisFD; -#define REDIS_INVALID_FD -1 -#else -#ifdef _WIN64 -typedef unsigned long long redisFD; /* SOCKET = 64-bit UINT_PTR */ -#else -typedef unsigned long redisFD; /* SOCKET = 32-bit UINT_PTR */ -#endif -#define REDIS_INVALID_FD ((redisFD)(~0)) /* INVALID_SOCKET */ -#endif - -typedef struct { - /* - * the type of connection to use. This also indicates which - * `endpoint` member field to use - */ - int type; - /* bit field of REDIS_OPT_xxx */ - int options; - /* timeout value for connect operation. If NULL, no timeout is used */ - const struct timeval *connect_timeout; - /* timeout value for commands. If NULL, no timeout is used. This can be - * updated at runtime with redisSetTimeout/redisAsyncSetTimeout. */ - const struct timeval *command_timeout; - union { - /** use this field for tcp/ip connections */ - struct { - const char *source_addr; - const char *ip; - int port; - } tcp; - /** use this field for unix domain sockets */ - const char *unix_socket; - /** - * use this field to have hiredis operate an already-open - * file descriptor */ - redisFD fd; - } endpoint; - - /* Optional user defined data/destructor */ - void *privdata; - void (*free_privdata)(void *); - - /* A user defined PUSH message callback */ - redisPushFn *push_cb; - redisAsyncPushFn *async_push_cb; -} redisOptions; - -/** - * Helper macros to initialize options to their specified fields. - */ -#define REDIS_OPTIONS_SET_TCP(opts, ip_, port_) \ - (opts)->type = REDIS_CONN_TCP; \ - (opts)->endpoint.tcp.ip = ip_; \ - (opts)->endpoint.tcp.port = port_; - -#define REDIS_OPTIONS_SET_UNIX(opts, path) \ - (opts)->type = REDIS_CONN_UNIX; \ - (opts)->endpoint.unix_socket = path; - -#define REDIS_OPTIONS_SET_PRIVDATA(opts, data, dtor) \ - (opts)->privdata = data; \ - (opts)->free_privdata = dtor; \ - -typedef struct redisContextFuncs { - void (*free_privctx)(void *); - void (*async_read)(struct redisAsyncContext *); - void (*async_write)(struct redisAsyncContext *); - ssize_t (*read)(struct redisContext *, char *, size_t); - ssize_t (*write)(struct redisContext *); -} redisContextFuncs; - -/* Context for a connection to Redis */ -typedef struct redisContext { - const redisContextFuncs *funcs; /* Function table */ - - int err; /* Error flags, 0 when there is no error */ - char errstr[128]; /* String representation of error when applicable */ - redisFD fd; - int flags; - char *obuf; /* Write buffer */ - redisReader *reader; /* Protocol reader */ - - enum redisConnectionType connection_type; - struct timeval *connect_timeout; - struct timeval *command_timeout; - - struct { - char *host; - char *source_addr; - int port; - } tcp; - - struct { - char *path; - } unix_sock; - - /* For non-blocking connect */ - struct sockaddr *saddr; - size_t addrlen; - - /* Optional data and corresponding destructor users can use to provide - * context to a given redisContext. Not used by hiredis. */ - void *privdata; - void (*free_privdata)(void *); - - /* Internal context pointer presently used by hiredis to manage - * SSL connections. */ - void *privctx; - - /* An optional RESP3 PUSH handler */ - redisPushFn *push_cb; -} redisContext; - -redisContext *redisConnectWithOptions(const redisOptions *options); -redisContext *redisConnect(const char *ip, int port); -redisContext *redisConnectWithTimeout(const char *ip, int port, const struct timeval tv); -redisContext *redisConnectNonBlock(const char *ip, int port); -redisContext *redisConnectBindNonBlock(const char *ip, int port, - const char *source_addr); -redisContext *redisConnectBindNonBlockWithReuse(const char *ip, int port, - const char *source_addr); -redisContext *redisConnectUnix(const char *path); -redisContext *redisConnectUnixWithTimeout(const char *path, const struct timeval tv); -redisContext *redisConnectUnixNonBlock(const char *path); -redisContext *redisConnectFd(redisFD fd); - -/** - * Reconnect the given context using the saved information. - * - * This re-uses the exact same connect options as in the initial connection. - * host, ip (or path), timeout and bind address are reused, - * flags are used unmodified from the existing context. - * - * Returns REDIS_OK on successful connect or REDIS_ERR otherwise. - */ -int redisReconnect(redisContext *c); - -redisPushFn *redisSetPushCallback(redisContext *c, redisPushFn *fn); -int redisSetTimeout(redisContext *c, const struct timeval tv); -int redisEnableKeepAlive(redisContext *c); -void redisFree(redisContext *c); -redisFD redisFreeKeepFd(redisContext *c); -int redisBufferRead(redisContext *c); -int redisBufferWrite(redisContext *c, int *done); - -/* In a blocking context, this function first checks if there are unconsumed - * replies to return and returns one if so. Otherwise, it flushes the output - * buffer to the socket and reads until it has a reply. In a non-blocking - * context, it will return unconsumed replies until there are no more. */ -int redisGetReply(redisContext *c, void **reply); -int redisGetReplyFromReader(redisContext *c, void **reply); - -/* Write a formatted command to the output buffer. Use these functions in blocking mode - * to get a pipeline of commands. */ -int redisAppendFormattedCommand(redisContext *c, const char *cmd, size_t len); - -/* Write a command to the output buffer. Use these functions in blocking mode - * to get a pipeline of commands. */ -int redisvAppendCommand(redisContext *c, const char *format, va_list ap); -int redisAppendCommand(redisContext *c, const char *format, ...); -int redisAppendCommandArgv(redisContext *c, int argc, const char **argv, const size_t *argvlen); - -/* Issue a command to Redis. In a blocking context, it is identical to calling - * redisAppendCommand, followed by redisGetReply. The function will return - * NULL if there was an error in performing the request, otherwise it will - * return the reply. In a non-blocking context, it is identical to calling - * only redisAppendCommand and will always return NULL. */ -void *redisvCommand(redisContext *c, const char *format, va_list ap); -void *redisCommand(redisContext *c, const char *format, ...); -void *redisCommandArgv(redisContext *c, int argc, const char **argv, const size_t *argvlen); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/hiredis/read.h b/include/hiredis/read.h deleted file mode 100644 index 2d74d77..0000000 --- a/include/hiredis/read.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 2009-2011, Salvatore Sanfilippo - * Copyright (c) 2010-2011, Pieter Noordhuis - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - - -#ifndef __HIREDIS_READ_H -#define __HIREDIS_READ_H -#include /* for size_t */ - -#define REDIS_ERR -1 -#define REDIS_OK 0 - -/* When an error occurs, the err flag in a context is set to hold the type of - * error that occurred. REDIS_ERR_IO means there was an I/O error and you - * should use the "errno" variable to find out what is wrong. - * For other values, the "errstr" field will hold a description. */ -#define REDIS_ERR_IO 1 /* Error in read or write */ -#define REDIS_ERR_EOF 3 /* End of file */ -#define REDIS_ERR_PROTOCOL 4 /* Protocol error */ -#define REDIS_ERR_OOM 5 /* Out of memory */ -#define REDIS_ERR_TIMEOUT 6 /* Timed out */ -#define REDIS_ERR_OTHER 2 /* Everything else... */ - -#define REDIS_REPLY_STRING 1 -#define REDIS_REPLY_ARRAY 2 -#define REDIS_REPLY_INTEGER 3 -#define REDIS_REPLY_NIL 4 -#define REDIS_REPLY_STATUS 5 -#define REDIS_REPLY_ERROR 6 -#define REDIS_REPLY_DOUBLE 7 -#define REDIS_REPLY_BOOL 8 -#define REDIS_REPLY_MAP 9 -#define REDIS_REPLY_SET 10 -#define REDIS_REPLY_ATTR 11 -#define REDIS_REPLY_PUSH 12 -#define REDIS_REPLY_BIGNUM 13 -#define REDIS_REPLY_VERB 14 - -/* Default max unused reader buffer. */ -#define REDIS_READER_MAX_BUF (1024*16) - -/* Default multi-bulk element limit */ -#define REDIS_READER_MAX_ARRAY_ELEMENTS ((1LL<<32) - 1) - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct redisReadTask { - int type; - long long elements; /* number of elements in multibulk container */ - int idx; /* index in parent (array) object */ - void *obj; /* holds user-generated value for a read task */ - struct redisReadTask *parent; /* parent task */ - void *privdata; /* user-settable arbitrary field */ -} redisReadTask; - -typedef struct redisReplyObjectFunctions { - void *(*createString)(const redisReadTask*, char*, size_t); - void *(*createArray)(const redisReadTask*, size_t); - void *(*createInteger)(const redisReadTask*, long long); - void *(*createDouble)(const redisReadTask*, double, char*, size_t); - void *(*createNil)(const redisReadTask*); - void *(*createBool)(const redisReadTask*, int); - void (*freeObject)(void*); -} redisReplyObjectFunctions; - -typedef struct redisReader { - int err; /* Error flags, 0 when there is no error */ - char errstr[128]; /* String representation of error when applicable */ - - char *buf; /* Read buffer */ - size_t pos; /* Buffer cursor */ - size_t len; /* Buffer length */ - size_t maxbuf; /* Max length of unused buffer */ - long long maxelements; /* Max multi-bulk elements */ - - redisReadTask **task; - int tasks; - - int ridx; /* Index of current read task */ - void *reply; /* Temporary reply pointer */ - - redisReplyObjectFunctions *fn; - void *privdata; -} redisReader; - -/* Public API for the protocol parser. */ -redisReader *redisReaderCreateWithFunctions(redisReplyObjectFunctions *fn); -void redisReaderFree(redisReader *r); -int redisReaderFeed(redisReader *r, const char *buf, size_t len); -int redisReaderGetReply(redisReader *r, void **reply); - -#define redisReaderSetPrivdata(_r, _p) (int)(((redisReader*)(_r))->privdata = (_p)) -#define redisReaderGetObject(_r) (((redisReader*)(_r))->reply) -#define redisReaderGetError(_r) (((redisReader*)(_r))->errstr) - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/hiredis/sds.h b/include/hiredis/sds.h deleted file mode 100644 index eda8833..0000000 --- a/include/hiredis/sds.h +++ /dev/null @@ -1,278 +0,0 @@ -/* SDSLib 2.0 -- A C dynamic strings library - * - * Copyright (c) 2006-2015, Salvatore Sanfilippo - * Copyright (c) 2015, Oran Agra - * Copyright (c) 2015, Redis Labs, Inc - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Redis nor the names of its contributors may be used - * to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __SDS_H -#define __SDS_H - -#define SDS_MAX_PREALLOC (1024*1024) -#ifdef _MSC_VER -#define __attribute__(x) -typedef long long ssize_t; -#define SSIZE_MAX (LLONG_MAX >> 1) -#endif - -#include -#include -#include - -typedef char *sds; - -/* Note: sdshdr5 is never used, we just access the flags byte directly. - * However is here to document the layout of type 5 SDS strings. */ -struct __attribute__ ((__packed__)) sdshdr5 { - unsigned char flags; /* 3 lsb of type, and 5 msb of string length */ - char buf[]; -}; -struct __attribute__ ((__packed__)) sdshdr8 { - uint8_t len; /* used */ - uint8_t alloc; /* excluding the header and null terminator */ - unsigned char flags; /* 3 lsb of type, 5 unused bits */ - char buf[]; -}; -struct __attribute__ ((__packed__)) sdshdr16 { - uint16_t len; /* used */ - uint16_t alloc; /* excluding the header and null terminator */ - unsigned char flags; /* 3 lsb of type, 5 unused bits */ - char buf[]; -}; -struct __attribute__ ((__packed__)) sdshdr32 { - uint32_t len; /* used */ - uint32_t alloc; /* excluding the header and null terminator */ - unsigned char flags; /* 3 lsb of type, 5 unused bits */ - char buf[]; -}; -struct __attribute__ ((__packed__)) sdshdr64 { - uint64_t len; /* used */ - uint64_t alloc; /* excluding the header and null terminator */ - unsigned char flags; /* 3 lsb of type, 5 unused bits */ - char buf[]; -}; - -#define SDS_TYPE_5 0 -#define SDS_TYPE_8 1 -#define SDS_TYPE_16 2 -#define SDS_TYPE_32 3 -#define SDS_TYPE_64 4 -#define SDS_TYPE_MASK 7 -#define SDS_TYPE_BITS 3 -#define SDS_HDR_VAR(T,s) struct sdshdr##T *sh = (struct sdshdr##T *)((s)-(sizeof(struct sdshdr##T))); -#define SDS_HDR(T,s) ((struct sdshdr##T *)((s)-(sizeof(struct sdshdr##T)))) -#define SDS_TYPE_5_LEN(f) ((f)>>SDS_TYPE_BITS) - -static inline size_t sdslen(const sds s) { - unsigned char flags = s[-1]; - switch(flags&SDS_TYPE_MASK) { - case SDS_TYPE_5: - return SDS_TYPE_5_LEN(flags); - case SDS_TYPE_8: - return SDS_HDR(8,s)->len; - case SDS_TYPE_16: - return SDS_HDR(16,s)->len; - case SDS_TYPE_32: - return SDS_HDR(32,s)->len; - case SDS_TYPE_64: - return SDS_HDR(64,s)->len; - } - return 0; -} - -static inline size_t sdsavail(const sds s) { - unsigned char flags = s[-1]; - switch(flags&SDS_TYPE_MASK) { - case SDS_TYPE_5: { - return 0; - } - case SDS_TYPE_8: { - SDS_HDR_VAR(8,s); - return sh->alloc - sh->len; - } - case SDS_TYPE_16: { - SDS_HDR_VAR(16,s); - return sh->alloc - sh->len; - } - case SDS_TYPE_32: { - SDS_HDR_VAR(32,s); - return sh->alloc - sh->len; - } - case SDS_TYPE_64: { - SDS_HDR_VAR(64,s); - return sh->alloc - sh->len; - } - } - return 0; -} - -static inline void sdssetlen(sds s, size_t newlen) { - unsigned char flags = s[-1]; - switch(flags&SDS_TYPE_MASK) { - case SDS_TYPE_5: - { - unsigned char *fp = ((unsigned char*)s)-1; - *fp = (unsigned char)(SDS_TYPE_5 | (newlen << SDS_TYPE_BITS)); - } - break; - case SDS_TYPE_8: - SDS_HDR(8,s)->len = (uint8_t)newlen; - break; - case SDS_TYPE_16: - SDS_HDR(16,s)->len = (uint16_t)newlen; - break; - case SDS_TYPE_32: - SDS_HDR(32,s)->len = (uint32_t)newlen; - break; - case SDS_TYPE_64: - SDS_HDR(64,s)->len = (uint64_t)newlen; - break; - } -} - -static inline void sdsinclen(sds s, size_t inc) { - unsigned char flags = s[-1]; - switch(flags&SDS_TYPE_MASK) { - case SDS_TYPE_5: - { - unsigned char *fp = ((unsigned char*)s)-1; - unsigned char newlen = SDS_TYPE_5_LEN(flags)+(unsigned char)inc; - *fp = SDS_TYPE_5 | (newlen << SDS_TYPE_BITS); - } - break; - case SDS_TYPE_8: - SDS_HDR(8,s)->len += (uint8_t)inc; - break; - case SDS_TYPE_16: - SDS_HDR(16,s)->len += (uint16_t)inc; - break; - case SDS_TYPE_32: - SDS_HDR(32,s)->len += (uint32_t)inc; - break; - case SDS_TYPE_64: - SDS_HDR(64,s)->len += (uint64_t)inc; - break; - } -} - -/* sdsalloc() = sdsavail() + sdslen() */ -static inline size_t sdsalloc(const sds s) { - unsigned char flags = s[-1]; - switch(flags&SDS_TYPE_MASK) { - case SDS_TYPE_5: - return SDS_TYPE_5_LEN(flags); - case SDS_TYPE_8: - return SDS_HDR(8,s)->alloc; - case SDS_TYPE_16: - return SDS_HDR(16,s)->alloc; - case SDS_TYPE_32: - return SDS_HDR(32,s)->alloc; - case SDS_TYPE_64: - return SDS_HDR(64,s)->alloc; - } - return 0; -} - -static inline void sdssetalloc(sds s, size_t newlen) { - unsigned char flags = s[-1]; - switch(flags&SDS_TYPE_MASK) { - case SDS_TYPE_5: - /* Nothing to do, this type has no total allocation info. */ - break; - case SDS_TYPE_8: - SDS_HDR(8,s)->alloc = (uint8_t)newlen; - break; - case SDS_TYPE_16: - SDS_HDR(16,s)->alloc = (uint16_t)newlen; - break; - case SDS_TYPE_32: - SDS_HDR(32,s)->alloc = (uint32_t)newlen; - break; - case SDS_TYPE_64: - SDS_HDR(64,s)->alloc = (uint64_t)newlen; - break; - } -} - -sds sdsnewlen(const void *init, size_t initlen); -sds sdsnew(const char *init); -sds sdsempty(void); -sds sdsdup(const sds s); -void sdsfree(sds s); -sds sdsgrowzero(sds s, size_t len); -sds sdscatlen(sds s, const void *t, size_t len); -sds sdscat(sds s, const char *t); -sds sdscatsds(sds s, const sds t); -sds sdscpylen(sds s, const char *t, size_t len); -sds sdscpy(sds s, const char *t); - -sds sdscatvprintf(sds s, const char *fmt, va_list ap); -#ifdef __GNUC__ -sds sdscatprintf(sds s, const char *fmt, ...) - __attribute__((format(printf, 2, 3))); -#else -sds sdscatprintf(sds s, const char *fmt, ...); -#endif - -sds sdscatfmt(sds s, char const *fmt, ...); -sds sdstrim(sds s, const char *cset); -int sdsrange(sds s, ssize_t start, ssize_t end); -void sdsupdatelen(sds s); -void sdsclear(sds s); -int sdscmp(const sds s1, const sds s2); -sds *sdssplitlen(const char *s, int len, const char *sep, int seplen, int *count); -void sdsfreesplitres(sds *tokens, int count); -void sdstolower(sds s); -void sdstoupper(sds s); -sds sdsfromlonglong(long long value); -sds sdscatrepr(sds s, const char *p, size_t len); -sds *sdssplitargs(const char *line, int *argc); -sds sdsmapchars(sds s, const char *from, const char *to, size_t setlen); -sds sdsjoin(char **argv, int argc, char *sep); -sds sdsjoinsds(sds *argv, int argc, const char *sep, size_t seplen); - -/* Low level functions exposed to the user API */ -sds sdsMakeRoomFor(sds s, size_t addlen); -void sdsIncrLen(sds s, int incr); -sds sdsRemoveFreeSpace(sds s); -size_t sdsAllocSize(sds s); -void *sdsAllocPtr(sds s); - -/* Export the allocator used by SDS to the program using SDS. - * Sometimes the program SDS is linked to, may use a different set of - * allocators, but may want to allocate or free things that SDS will - * respectively free or allocate. */ -void *sds_malloc(size_t size); -void *sds_realloc(void *ptr, size_t size); -void sds_free(void *ptr); - -#ifdef REDIS_TEST -int sdsTest(int argc, char *argv[]); -#endif - -#endif diff --git a/include/nettle/aes.h b/include/nettle/aes.h deleted file mode 100644 index 5a0545c..0000000 --- a/include/nettle/aes.h +++ /dev/null @@ -1,177 +0,0 @@ -/* aes.h - - The aes/rijndael block cipher. - - Copyright (C) 2001, 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_AES_H_INCLUDED -#define NETTLE_AES_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define aes_set_encrypt_key nettle_aes_set_encrypt_key -#define aes_set_decrypt_key nettle_aes_set_decrypt_key -#define aes_invert_key nettle_aes_invert_key -#define aes_encrypt nettle_aes_encrypt -#define aes_decrypt nettle_aes_decrypt -#define aes128_set_encrypt_key nettle_aes128_set_encrypt_key -#define aes128_set_decrypt_key nettle_aes128_set_decrypt_key -#define aes128_invert_key nettle_aes128_invert_key -#define aes128_encrypt nettle_aes128_encrypt -#define aes128_decrypt nettle_aes128_decrypt -#define aes192_set_encrypt_key nettle_aes192_set_encrypt_key -#define aes192_set_decrypt_key nettle_aes192_set_decrypt_key -#define aes192_invert_key nettle_aes192_invert_key -#define aes192_encrypt nettle_aes192_encrypt -#define aes192_decrypt nettle_aes192_decrypt -#define aes256_set_encrypt_key nettle_aes256_set_encrypt_key -#define aes256_set_decrypt_key nettle_aes256_set_decrypt_key -#define aes256_invert_key nettle_aes256_invert_key -#define aes256_encrypt nettle_aes256_encrypt -#define aes256_decrypt nettle_aes256_decrypt - -#define AES_BLOCK_SIZE 16 - -#define AES128_KEY_SIZE 16 -#define AES192_KEY_SIZE 24 -#define AES256_KEY_SIZE 32 -#define _AES128_ROUNDS 10 -#define _AES192_ROUNDS 12 -#define _AES256_ROUNDS 14 - -/* Variable key size between 128 and 256 bits. But the only valid - * values are 16 (128 bits), 24 (192 bits) and 32 (256 bits). */ -#define AES_MIN_KEY_SIZE AES128_KEY_SIZE -#define AES_MAX_KEY_SIZE AES256_KEY_SIZE - -/* Older nettle-2.7 interface */ - -#define AES_KEY_SIZE 32 - -struct aes_ctx -{ - unsigned rounds; /* number of rounds to use for our key size */ - uint32_t keys[4*(_AES256_ROUNDS + 1)]; /* maximum size of key schedule */ -}; - -void -aes_set_encrypt_key(struct aes_ctx *ctx, - size_t length, const uint8_t *key); - -void -aes_set_decrypt_key(struct aes_ctx *ctx, - size_t length, const uint8_t *key); - -void -aes_invert_key(struct aes_ctx *dst, - const struct aes_ctx *src); - -void -aes_encrypt(const struct aes_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -aes_decrypt(const struct aes_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -struct aes128_ctx -{ - uint32_t keys[4 * (_AES128_ROUNDS + 1)]; -}; - -void -aes128_set_encrypt_key(struct aes128_ctx *ctx, const uint8_t *key); -void -aes128_set_decrypt_key(struct aes128_ctx *ctx, const uint8_t *key); -void -aes128_invert_key(struct aes128_ctx *dst, - const struct aes128_ctx *src); -void -aes128_encrypt(const struct aes128_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -aes128_decrypt(const struct aes128_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -struct aes192_ctx -{ - uint32_t keys[4 * (_AES192_ROUNDS + 1)]; -}; - -void -aes192_set_encrypt_key(struct aes192_ctx *ctx, const uint8_t *key); -void -aes192_set_decrypt_key(struct aes192_ctx *ctx, const uint8_t *key); -void -aes192_invert_key(struct aes192_ctx *dst, - const struct aes192_ctx *src); -void -aes192_encrypt(const struct aes192_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -aes192_decrypt(const struct aes192_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -struct aes256_ctx -{ - uint32_t keys[4 * (_AES256_ROUNDS + 1)]; -}; - -void -aes256_set_encrypt_key(struct aes256_ctx *ctx, const uint8_t *key); -void -aes256_set_decrypt_key(struct aes256_ctx *ctx, const uint8_t *key); -void -aes256_invert_key(struct aes256_ctx *dst, - const struct aes256_ctx *src); -void -aes256_encrypt(const struct aes256_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -aes256_decrypt(const struct aes256_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_AES_H_INCLUDED */ diff --git a/include/nettle/arcfour.h b/include/nettle/arcfour.h deleted file mode 100644 index 804b9e4..0000000 --- a/include/nettle/arcfour.h +++ /dev/null @@ -1,79 +0,0 @@ -/* arcfour.h - - The arcfour/rc4 stream cipher. - - Copyright (C) 2001, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_ARCFOUR_H_INCLUDED -#define NETTLE_ARCFOUR_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define arcfour128_set_key nettle_arcfour128_set_key -#define arcfour_set_key nettle_arcfour_set_key -#define arcfour_crypt nettle_arcfour_crypt - -/* Minimum and maximum keysizes, and a reasonable default. In - * octets.*/ -#define ARCFOUR_MIN_KEY_SIZE 1 -#define ARCFOUR_MAX_KEY_SIZE 256 -#define ARCFOUR_KEY_SIZE 16 -#define ARCFOUR128_KEY_SIZE 16 - -struct arcfour_ctx -{ - uint8_t S[256]; - uint8_t i; - uint8_t j; -}; - -void -arcfour_set_key(struct arcfour_ctx *ctx, - size_t length, const uint8_t *key); - -void -arcfour128_set_key(struct arcfour_ctx *ctx, const uint8_t *key); - -void -arcfour_crypt(struct arcfour_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_ARCFOUR_H_INCLUDED */ - diff --git a/include/nettle/arctwo.h b/include/nettle/arctwo.h deleted file mode 100644 index 1a9b8b3..0000000 --- a/include/nettle/arctwo.h +++ /dev/null @@ -1,103 +0,0 @@ -/* arctwo.h - - The arctwo/rfc2268 block cipher. - - Copyright (C) 2004 Simon Josefsson - Copyright (C) 2002, 2004, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_ARCTWO_H_INCLUDED -#define NETTLE_ARCTWO_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define arctwo_set_key nettle_arctwo_set_key -#define arctwo_set_key_ekb nettle_arctwo_set_key_ekb -#define arctwo_set_key_gutmann nettle_arctwo_set_key_gutmann -#define arctwo40_set_key nettle_arctwo40_set_key -#define arctwo64_set_key nettle_arctwo64_set_key -#define arctwo128_set_key nettle_arctwo128_set_key -#define arctwo128_set_key_gutmann nettle_arctwo128_set_key_gutmann -#define arctwo_encrypt nettle_arctwo_encrypt -#define arctwo_decrypt nettle_arctwo_decrypt - -#define ARCTWO_BLOCK_SIZE 8 - -/* Variable key size from 1 byte to 128 bytes. */ -#define ARCTWO_MIN_KEY_SIZE 1 -#define ARCTWO_MAX_KEY_SIZE 128 - -#define ARCTWO_KEY_SIZE 8 - -struct arctwo_ctx -{ - uint16_t S[64]; -}; - -/* Key expansion function that takes the "effective key bits", 1-1024, - as an explicit argument. 0 means maximum key bits. */ -void -arctwo_set_key_ekb (struct arctwo_ctx *ctx, - size_t length, const uint8_t * key, unsigned ekb); - -/* Equvivalent to arctwo_set_key_ekb, with ekb = 8 * length */ -void -arctwo_set_key (struct arctwo_ctx *ctx, size_t length, const uint8_t *key); -void -arctwo40_set_key (struct arctwo_ctx *ctx, const uint8_t *key); -void -arctwo64_set_key (struct arctwo_ctx *ctx, const uint8_t *key); -void -arctwo128_set_key (struct arctwo_ctx *ctx, const uint8_t *key); - -/* Equvivalent to arctwo_set_key_ekb, with ekb = 1024 */ -void -arctwo_set_key_gutmann (struct arctwo_ctx *ctx, - size_t length, const uint8_t *key); -void -arctwo128_set_key_gutmann (struct arctwo_ctx *ctx, - const uint8_t *key); - -void -arctwo_encrypt (struct arctwo_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); -void -arctwo_decrypt (struct arctwo_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_ARCTWO_H_INCLUDED */ diff --git a/include/nettle/asn1.h b/include/nettle/asn1.h deleted file mode 100644 index da2fbe5..0000000 --- a/include/nettle/asn1.h +++ /dev/null @@ -1,152 +0,0 @@ -/* asn1.h - - Limited support for ASN.1 DER decoding. - - Copyright (C) 2005 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_ASN1_H_INCLUDED -#define NETTLE_ASN1_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define asn1_der_iterator_first nettle_asn1_der_iterator_first -#define asn1_der_iterator_next nettle_asn1_der_iterator_next -#define asn1_der_decode_constructed nettle_asn1_der_decode_constructed -#define asn1_der_decode_constructed_last nettle_asn1_der_decode_constructed_last -#define asn1_der_decode_bitstring nettle_asn1_der_decode_bitstring -#define asn1_der_decode_bitstring_last nettle_asn1_der_decode_bitstring_last -#define asn1_der_get_uint32 nettle_asn1_der_get_uint32 -#define asn1_der_get_bignum nettle_asn1_der_get_bignum - - -/* enum asn1_type keeps the class number and the constructive in bits - 13-14, and the constructive flag in bit 12. The remaining 14 bits - are the tag (although currently, only tags in the range 0-30 are - supported). */ - -enum - { - ASN1_TYPE_CONSTRUCTED = 1 << 12, - - ASN1_CLASS_UNIVERSAL = 0, - ASN1_CLASS_APPLICATION = 1 << 13, - ASN1_CLASS_CONTEXT_SPECIFIC = 2 << 13, - ASN1_CLASS_PRIVATE = 3 << 13, - - ASN1_CLASS_MASK = 3 << 13, - ASN1_CLASS_SHIFT = 13, - }; - -enum asn1_type - { - ASN1_BOOLEAN = 1, - ASN1_INTEGER = 2, - ASN1_BITSTRING = 3, - ASN1_OCTETSTRING = 4, - ASN1_NULL = 5, - ASN1_IDENTIFIER = 6, - ASN1_REAL = 9, - ASN1_ENUMERATED = 10, - ASN1_UTF8STRING = 12, - ASN1_SEQUENCE = 16 | ASN1_TYPE_CONSTRUCTED, - ASN1_SET = 17 | ASN1_TYPE_CONSTRUCTED, - ASN1_PRINTABLESTRING = 19, - ASN1_TELETEXSTRING = 20, - ASN1_IA5STRING = 22, - ASN1_UTC = 23, - ASN1_UNIVERSALSTRING = 28, - ASN1_BMPSTRING = 30, - }; - -enum asn1_iterator_result - { - ASN1_ITERATOR_ERROR, - ASN1_ITERATOR_PRIMITIVE, - ASN1_ITERATOR_CONSTRUCTED, - ASN1_ITERATOR_END, - }; - -/* Parsing DER objects. */ -struct asn1_der_iterator -{ - size_t buffer_length; - const uint8_t *buffer; - - /* Next object to parse. */ - size_t pos; - - enum asn1_type type; - - /* Pointer to the current object */ - size_t length; - const uint8_t *data; -}; - -/* Initializes the iterator. */ -enum asn1_iterator_result -asn1_der_iterator_first(struct asn1_der_iterator *iterator, - size_t length, const uint8_t *input); - -enum asn1_iterator_result -asn1_der_iterator_next(struct asn1_der_iterator *iterator); - -/* Starts parsing of a constructed object. */ -enum asn1_iterator_result -asn1_der_decode_constructed(struct asn1_der_iterator *i, - struct asn1_der_iterator *contents); - -/* For the common case that we have a sequence at the end of the - object. Checks that the current object is the final one, and then - reinitializes the iterator to parse its ontents. */ -enum asn1_iterator_result -asn1_der_decode_constructed_last(struct asn1_der_iterator *i); - -enum asn1_iterator_result -asn1_der_decode_bitstring(struct asn1_der_iterator *i, - struct asn1_der_iterator *contents); - -enum asn1_iterator_result -asn1_der_decode_bitstring_last(struct asn1_der_iterator *i); - -/* All these functions return 1 on success, 0 on failure */ -int -asn1_der_get_uint32(struct asn1_der_iterator *i, - uint32_t *x); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_ASN1_H_INCLUDED */ diff --git a/include/nettle/base16.h b/include/nettle/base16.h deleted file mode 100644 index 755e6ed..0000000 --- a/include/nettle/base16.h +++ /dev/null @@ -1,110 +0,0 @@ -/* base16.h - - Hex encoding and decoding, following spki conventions (i.e. - allowing whitespace between digits). - - Copyright (C) 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_BASE16_H_INCLUDED -#define NETTLE_BASE16_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define base16_encode_single nettle_base16_encode_single -#define base16_encode_update nettle_base16_encode_update -#define base16_decode_init nettle_base16_decode_init -#define base16_decode_single nettle_base16_decode_single -#define base16_decode_update nettle_base16_decode_update -#define base16_decode_final nettle_base16_decode_final - -/* Base16 encoding */ - -/* Maximum length of output for base16_encode_update. */ -#define BASE16_ENCODE_LENGTH(length) ((length) * 2) - -/* Encodes a single byte. Always stores two digits in dst[0] and dst[1]. */ -void -base16_encode_single(char *dst, - uint8_t src); - -/* Always stores BASE16_ENCODE_LENGTH(length) digits in dst. */ -void -base16_encode_update(char *dst, - size_t length, - const uint8_t *src); - - -/* Base16 decoding */ - -/* Maximum length of output for base16_decode_update. */ -/* We have at most 4 buffered bits, and a total of (length + 1) * 4 bits. */ -#define BASE16_DECODE_LENGTH(length) (((length) + 1) / 2) - -struct base16_decode_ctx -{ - unsigned char word; /* Leftover bits */ - unsigned char bits; /* Number buffered bits */ -}; - -void -base16_decode_init(struct base16_decode_ctx *ctx); - -/* Decodes a single byte. Returns amount of output (0 or 1), or -1 on - * errors. */ -int -base16_decode_single(struct base16_decode_ctx *ctx, - uint8_t *dst, - char src); - -/* Returns 1 on success, 0 on error. DST should point to an area of - * size at least BASE16_DECODE_LENGTH(length). The amount of data - * generated is returned in *DST_LENGTH. */ - -int -base16_decode_update(struct base16_decode_ctx *ctx, - size_t *dst_length, - uint8_t *dst, - size_t src_length, - const char *src); - -/* Returns 1 on success. */ -int -base16_decode_final(struct base16_decode_ctx *ctx); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_BASE16_H_INCLUDED */ diff --git a/include/nettle/base64.h b/include/nettle/base64.h deleted file mode 100644 index 8e69adb..0000000 --- a/include/nettle/base64.h +++ /dev/null @@ -1,172 +0,0 @@ -/* base64.h - - Base-64 encoding and decoding. - - Copyright (C) 2002 Niels M枚ller, Dan Egnor - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_BASE64_H_INCLUDED -#define NETTLE_BASE64_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define base64_encode_init nettle_base64_encode_init -#define base64url_encode_init nettle_base64url_encode_init -#define base64_encode_single nettle_base64_encode_single -#define base64_encode_update nettle_base64_encode_update -#define base64_encode_final nettle_base64_encode_final -#define base64_encode_raw nettle_base64_encode_raw -#define base64_encode_group nettle_base64_encode_group -#define base64_decode_init nettle_base64_decode_init -#define base64url_decode_init nettle_base64url_decode_init -#define base64_decode_single nettle_base64_decode_single -#define base64_decode_update nettle_base64_decode_update -#define base64_decode_final nettle_base64_decode_final - -#define BASE64_BINARY_BLOCK_SIZE 3 -#define BASE64_TEXT_BLOCK_SIZE 4 - -/* Base64 encoding */ - -/* Maximum length of output for base64_encode_update. NOTE: Doesn't - * include any padding that base64_encode_final may add. */ -/* We have at most 4 buffered bits, and a total of (4 + length * 8) bits. */ -#define BASE64_ENCODE_LENGTH(length) (((length) * 8 + 4)/6) - -/* Maximum length of output generated by base64_encode_final. */ -#define BASE64_ENCODE_FINAL_LENGTH 3 - -/* Exact length of output generated by base64_encode_raw, including - * padding. */ -#define BASE64_ENCODE_RAW_LENGTH(length) ((((length) + 2)/3)*4) - -struct base64_encode_ctx -{ - const char *alphabet; /* Alphabet to use for encoding */ - unsigned short word; /* Leftover bits */ - unsigned char bits; /* Number of bits, always 0, 2, or 4. */ -}; - -/* Initialize encoding context for base-64 */ -void -base64_encode_init(struct base64_encode_ctx *ctx); - -/* Initialize encoding context for URL safe alphabet, RFC 4648. */ -void -base64url_encode_init(struct base64_encode_ctx *ctx); - -/* Encodes a single byte. Returns amount of output (always 1 or 2). */ -size_t -base64_encode_single(struct base64_encode_ctx *ctx, - char *dst, - uint8_t src); - -/* Returns the number of output characters. DST should point to an - * area of size at least BASE64_ENCODE_LENGTH(length). */ -size_t -base64_encode_update(struct base64_encode_ctx *ctx, - char *dst, - size_t length, - const uint8_t *src); - -/* DST should point to an area of size at least - * BASE64_ENCODE_FINAL_LENGTH */ -size_t -base64_encode_final(struct base64_encode_ctx *ctx, - char *dst); - -/* Lower level functions */ - -/* Encodes a string in one go, including any padding at the end. - * Generates exactly BASE64_ENCODE_RAW_LENGTH(length) bytes of output. - * Supports overlapped operation, if src <= dst. FIXME: Use of overlap - * is deprecated, if needed there should be a separate public fucntion - * to do that.*/ -void -base64_encode_raw(char *dst, size_t length, const uint8_t *src); - -void -base64_encode_group(char *dst, uint32_t group); - - -/* Base64 decoding */ - -/* Maximum length of output for base64_decode_update. */ -/* We have at most 6 buffered bits, and a total of (length + 1) * 6 bits. */ -#define BASE64_DECODE_LENGTH(length) ((((length) + 1) * 6) / 8) - -struct base64_decode_ctx -{ - const signed char *table; /* Decoding table */ - unsigned short word; /* Leftover bits */ - unsigned char bits; /* Number buffered bits */ - - /* Number of padding characters encountered */ - unsigned char padding; -}; - -/* Initialize decoding context for base-64 */ -void -base64_decode_init(struct base64_decode_ctx *ctx); - -/* Initialize encoding context for URL safe alphabet, RFC 4648. */ -void -base64url_decode_init(struct base64_decode_ctx *ctx); - -/* Decodes a single byte. Returns amount of output (0 or 1), or -1 on - * errors. */ -int -base64_decode_single(struct base64_decode_ctx *ctx, - uint8_t *dst, - char src); - -/* Returns 1 on success, 0 on error. DST should point to an area of - * size at least BASE64_DECODE_LENGTH(length). The amount of data - * generated is returned in *DST_LENGTH. */ -int -base64_decode_update(struct base64_decode_ctx *ctx, - size_t *dst_length, - uint8_t *dst, - size_t src_length, - const char *src); - -/* Returns 1 on success. */ -int -base64_decode_final(struct base64_decode_ctx *ctx); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_BASE64_H_INCLUDED */ diff --git a/include/nettle/bignum.h b/include/nettle/bignum.h deleted file mode 100644 index 9afcd29..0000000 --- a/include/nettle/bignum.h +++ /dev/null @@ -1,140 +0,0 @@ -/* bignum.h - - Bignum operations that are missing from gmp. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_BIGNUM_H_INCLUDED -#define NETTLE_BIGNUM_H_INCLUDED - -#include "nettle-meta.h" - -#include "nettle-types.h" - -/* For NETTLE_USE_MINI_GMP */ -#include "version.h" - -#if NETTLE_USE_MINI_GMP -# include "mini-gmp.h" - -# define GMP_NUMB_MASK (~(mp_limb_t) 0) - -/* Function missing in older gmp versions, and checked for with ifdef */ -# define mpz_limbs_read mpz_limbs_read -/* Side-channel silent powm not available in mini-gmp. */ -# define mpz_powm_sec mpz_powm -#else -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Size needed for signed encoding, including extra sign byte if - * necessary. */ -size_t -nettle_mpz_sizeinbase_256_s(const mpz_t x); - -/* Size needed for unsigned encoding */ -size_t -nettle_mpz_sizeinbase_256_u(const mpz_t x); - -/* Writes an integer as length octets, using big endian byte order, - * and two's complement for negative numbers. */ -void -nettle_mpz_get_str_256(size_t length, uint8_t *s, const mpz_t x); - -/* Reads a big endian, two's complement, integer. */ -void -nettle_mpz_set_str_256_s(mpz_t x, - size_t length, const uint8_t *s); - -void -nettle_mpz_init_set_str_256_s(mpz_t x, - size_t length, const uint8_t *s); - -/* Similar, but for unsigned format. These function don't interpret - * the most significant bit as the sign. */ -void -nettle_mpz_set_str_256_u(mpz_t x, - size_t length, const uint8_t *s); - -void -nettle_mpz_init_set_str_256_u(mpz_t x, - size_t length, const uint8_t *s); - -/* Returns a uniformly distributed random number 0 <= x < 2^n */ -void -nettle_mpz_random_size(mpz_t x, - void *ctx, nettle_random_func *random, - unsigned bits); - -/* Returns a number x, almost uniformly random in the range - * 0 <= x < n. */ -void -nettle_mpz_random(mpz_t x, - void *ctx, nettle_random_func *random, - const mpz_t n); - -void -nettle_random_prime(mpz_t p, unsigned bits, int top_bits_set, - void *ctx, nettle_random_func *random, - void *progress_ctx, nettle_progress_func *progress); - -void -_nettle_generate_pocklington_prime (mpz_t p, mpz_t r, - unsigned bits, int top_bits_set, - void *ctx, nettle_random_func *random, - const mpz_t p0, - const mpz_t q, - const mpz_t p0q); - -/* sexp parsing */ -struct sexp_iterator; - -/* If LIMIT is non-zero, the number must be at most LIMIT bits. - * Implies sexp_iterator_next. */ -int -nettle_mpz_set_sexp(mpz_t x, unsigned limit, struct sexp_iterator *i); - - -/* der parsing */ -struct asn1_der_iterator; - -int -nettle_asn1_der_get_bignum(struct asn1_der_iterator *iterator, - mpz_t x, unsigned max_bits); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_BIGNUM_H_INCLUDED */ diff --git a/include/nettle/blowfish.h b/include/nettle/blowfish.h deleted file mode 100644 index bcdc7cb..0000000 --- a/include/nettle/blowfish.h +++ /dev/null @@ -1,89 +0,0 @@ -/* blowfish.h - - Blowfish block cipher. - - Copyright (C) 2014 Niels M枚ller - Copyright (C) 1998, 2001 FSF, Ray Dassen, Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_BLOWFISH_H_INCLUDED -#define NETTLE_BLOWFISH_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define blowfish_set_key nettle_blowfish_set_key -#define blowfish128_set_key nettle_blowfish128_set_key -#define blowfish_encrypt nettle_blowfish_encrypt -#define blowfish_decrypt nettle_blowfish_decrypt - -#define BLOWFISH_BLOCK_SIZE 8 - -/* Variable key size between 64 and 448 bits. */ -#define BLOWFISH_MIN_KEY_SIZE 8 -#define BLOWFISH_MAX_KEY_SIZE 56 - -/* Default to 128 bits */ -#define BLOWFISH_KEY_SIZE 16 - -#define BLOWFISH128_KEY_SIZE 16 - -#define _BLOWFISH_ROUNDS 16 - -struct blowfish_ctx -{ - uint32_t s[4][256]; - uint32_t p[_BLOWFISH_ROUNDS+2]; -}; - -/* Returns 0 for weak keys, otherwise 1. */ -int -blowfish_set_key(struct blowfish_ctx *ctx, - size_t length, const uint8_t *key); -int -blowfish128_set_key(struct blowfish_ctx *ctx, const uint8_t *key); - -void -blowfish_encrypt(const struct blowfish_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -blowfish_decrypt(const struct blowfish_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_BLOWFISH_H_INCLUDED */ diff --git a/include/nettle/buffer.h b/include/nettle/buffer.h deleted file mode 100644 index 9cbcfb1..0000000 --- a/include/nettle/buffer.h +++ /dev/null @@ -1,106 +0,0 @@ -/* buffer.h - - A bare-bones string stream. - - Copyright (C) 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_BUFFER_H_INCLUDED -#define NETTLE_BUFFER_H_INCLUDED - -#include "realloc.h" - -#ifdef __cplusplus -extern "C" { -#endif - -struct nettle_buffer -{ - uint8_t *contents; - /* Allocated size */ - size_t alloc; - - void *realloc_ctx; - nettle_realloc_func *realloc; - - /* Current size */ - size_t size; -}; - -/* Initializes a buffer that uses plain realloc */ -void -nettle_buffer_init(struct nettle_buffer *buffer); - -void -nettle_buffer_init_realloc(struct nettle_buffer *buffer, - void *realloc_ctx, - nettle_realloc_func *realloc); - -/* Initializes a buffer of fix size */ -void -nettle_buffer_init_size(struct nettle_buffer *buffer, - size_t length, uint8_t *space); - -void -nettle_buffer_clear(struct nettle_buffer *buffer); - -/* Resets the buffer, without freeing the buffer space. */ -void -nettle_buffer_reset(struct nettle_buffer *buffer); - -int -nettle_buffer_grow(struct nettle_buffer *buffer, - size_t length); - -#define NETTLE_BUFFER_PUTC(buffer, c) \ -( (((buffer)->size < (buffer)->alloc) || nettle_buffer_grow((buffer), 1)) \ - && ((buffer)->contents[(buffer)->size++] = (c), 1) ) - -int -nettle_buffer_write(struct nettle_buffer *buffer, - size_t length, const uint8_t *data); - -/* Like nettle_buffer_write, but instead of copying data to the - * buffer, it returns a pointer to the area where the caller can copy - * the data. The pointer is valid only until the next call that can - * reallocate the buffer. */ -uint8_t * -nettle_buffer_space(struct nettle_buffer *buffer, - size_t length); - -/* Copy the contents of SRC to the end of DST. */ -int -nettle_buffer_copy(struct nettle_buffer *dst, - const struct nettle_buffer *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_BUFFER_H_INCLUDED */ diff --git a/include/nettle/camellia.h b/include/nettle/camellia.h deleted file mode 100644 index b035db3..0000000 --- a/include/nettle/camellia.h +++ /dev/null @@ -1,143 +0,0 @@ -/* camellia.h - - Copyright (C) 2006,2007 NTT - (Nippon Telegraph and Telephone Corporation). - - Copyright (C) 2010, 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CAMELLIA_H_INCLUDED -#define NETTLE_CAMELLIA_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define camellia128_set_encrypt_key nettle_camellia128_set_encrypt_key -#define camellia128_set_decrypt_key nettle_camellia_set_decrypt_key -#define camellia128_invert_key nettle_camellia128_invert_key -#define camellia128_crypt nettle_camellia128_crypt - -#define camellia192_set_encrypt_key nettle_camellia192_set_encrypt_key -#define camellia192_set_decrypt_key nettle_camellia192_set_decrypt_key - -#define camellia256_set_encrypt_key nettle_camellia256_set_encrypt_key -#define camellia256_set_decrypt_key nettle_camellia256_set_decrypt_key -#define camellia256_invert_key nettle_camellia256_invert_key -#define camellia256_crypt nettle_camellia256_crypt - - -#define CAMELLIA_BLOCK_SIZE 16 -/* Valid key sizes are 128, 192 or 256 bits (16, 24 or 32 bytes) */ -#define CAMELLIA128_KEY_SIZE 16 -#define CAMELLIA192_KEY_SIZE 24 -#define CAMELLIA256_KEY_SIZE 32 - -/* For 128-bit keys, there are 18 regular rounds, pre- and - post-whitening, and two FL and FLINV rounds, using a total of 26 - subkeys, each of 64 bit. For 192- and 256-bit keys, there are 6 - additional regular rounds and one additional FL and FLINV, using a - total of 34 subkeys. */ -/* The clever combination of subkeys imply one of the pre- and - post-whitening keys is folded with the round keys, so that subkey - #1 and the last one (#25 or #33) is not used. The result is that we - have only 24 or 32 subkeys at the end of key setup. */ - -#define _CAMELLIA128_NKEYS 24 -#define _CAMELLIA256_NKEYS 32 - -struct camellia128_ctx -{ - uint64_t keys[_CAMELLIA128_NKEYS]; -}; - -void -camellia128_set_encrypt_key(struct camellia128_ctx *ctx, - const uint8_t *key); - -void -camellia128_set_decrypt_key(struct camellia128_ctx *ctx, - const uint8_t *key); - -void -camellia128_invert_key(struct camellia128_ctx *dst, - const struct camellia128_ctx *src); - -void -camellia128_crypt(const struct camellia128_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -struct camellia256_ctx -{ - uint64_t keys[_CAMELLIA256_NKEYS]; -}; - -void -camellia256_set_encrypt_key(struct camellia256_ctx *ctx, - const uint8_t *key); - -void -camellia256_set_decrypt_key(struct camellia256_ctx *ctx, - const uint8_t *key); - -void -camellia256_invert_key(struct camellia256_ctx *dst, - const struct camellia256_ctx *src); - -void -camellia256_crypt(const struct camellia256_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -/* camellia192 is the same as camellia256, except for the key - schedule. */ -/* Slightly ugly with a #define on a struct tag, since it might cause - surprises if also used as a name of a variable. */ -#define camellia192_ctx camellia256_ctx - -void -camellia192_set_encrypt_key(struct camellia256_ctx *ctx, - const uint8_t *key); - -void -camellia192_set_decrypt_key(struct camellia256_ctx *ctx, - const uint8_t *key); - -#define camellia192_invert_key camellia256_invert_key -#define camellia192_crypt camellia256_crypt - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CAMELLIA_H_INCLUDED */ diff --git a/include/nettle/cast128.h b/include/nettle/cast128.h deleted file mode 100644 index 9d099ec..0000000 --- a/include/nettle/cast128.h +++ /dev/null @@ -1,86 +0,0 @@ -/* cast128.h - - The CAST-128 block cipher. - - Copyright (C) 2001, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CAST128_H_INCLUDED -#define NETTLE_CAST128_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define cast5_set_key nettle_cast5_set_key -#define cast128_set_key nettle_cast128_set_key -#define cast128_encrypt nettle_cast128_encrypt -#define cast128_decrypt nettle_cast128_decrypt - -#define CAST128_BLOCK_SIZE 8 - -/* Variable key size between 40 and 128. */ -#define CAST5_MIN_KEY_SIZE 5 -#define CAST5_MAX_KEY_SIZE 16 - -#define CAST128_KEY_SIZE 16 - -struct cast128_ctx -{ - unsigned rounds; /* Number of rounds to use, 12 or 16 */ - /* Expanded key, rotations (5 bits only) and 32-bit masks. */ - unsigned char Kr[16]; - uint32_t Km[16]; -}; - -/* Using variable key size. */ -void -cast5_set_key(struct cast128_ctx *ctx, - size_t length, const uint8_t *key); - -void -cast128_set_key(struct cast128_ctx *ctx, const uint8_t *key); - -void -cast128_encrypt(const struct cast128_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -cast128_decrypt(const struct cast128_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CAST128_H_INCLUDED */ diff --git a/include/nettle/cbc.h b/include/nettle/cbc.h deleted file mode 100644 index 93b2e73..0000000 --- a/include/nettle/cbc.h +++ /dev/null @@ -1,86 +0,0 @@ -/* cbc.h - - Cipher block chaining mode. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CBC_H_INCLUDED -#define NETTLE_CBC_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define cbc_encrypt nettle_cbc_encrypt -#define cbc_decrypt nettle_cbc_decrypt - -void -cbc_encrypt(const void *ctx, nettle_cipher_func *f, - size_t block_size, uint8_t *iv, - size_t length, uint8_t *dst, - const uint8_t *src); - -void -cbc_decrypt(const void *ctx, nettle_cipher_func *f, - size_t block_size, uint8_t *iv, - size_t length, uint8_t *dst, - const uint8_t *src); - -#define CBC_CTX(type, size) \ -{ type ctx; uint8_t iv[size]; } - -#define CBC_SET_IV(ctx, data) \ -memcpy((ctx)->iv, (data), sizeof((ctx)->iv)) - -/* NOTE: Avoid using NULL, as we don't include anything defining it. */ -#define CBC_ENCRYPT(self, f, length, dst, src) \ - (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0)) \ - : cbc_encrypt((void *) &(self)->ctx, \ - (nettle_cipher_func *) (f), \ - sizeof((self)->iv), (self)->iv, \ - (length), (dst), (src))) - -#define CBC_DECRYPT(self, f, length, dst, src) \ - (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0)) \ - : cbc_decrypt((void *) &(self)->ctx, \ - (nettle_cipher_func *) (f), \ - sizeof((self)->iv), (self)->iv, \ - (length), (dst), (src))) - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CBC_H_INCLUDED */ diff --git a/include/nettle/ccm.h b/include/nettle/ccm.h deleted file mode 100644 index 0a742a5..0000000 --- a/include/nettle/ccm.h +++ /dev/null @@ -1,302 +0,0 @@ -/* ccm.h - - Counter with CBC-MAC mode, specified by NIST, - http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf - - Copyright (C) 2014 Exegin Technologies Limited - Copyright (C) 2014 Owen Kirby - - Contributed to GNU Nettle by Owen Kirby - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* NIST SP800-38C doesn't specify the particular formatting and - * counter generation algorithm for CCM, but it does include an - * example algorithm. This example has become the de-factor standard, - * and has been adopted by both the IETF and IEEE across a wide - * variety of protocols. - */ - -#ifndef NETTLE_CCM_H_INCLUDED -#define NETTLE_CCM_H_INCLUDED - -#include "aes.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define ccm_set_nonce nettle_ccm_set_nonce -#define ccm_update nettle_ccm_update -#define ccm_encrypt nettle_ccm_encrypt -#define ccm_decrypt nettle_ccm_decrypt -#define ccm_digest nettle_ccm_digest -#define ccm_encrypt_message nettle_ccm_encrypt_message -#define ccm_decrypt_message nettle_ccm_decrypt_message - -#define ccm_aes128_set_key nettle_ccm_aes128_set_key -#define ccm_aes128_set_nonce nettle_ccm_aes128_set_nonce -#define ccm_aes128_update nettle_ccm_aes128_update -#define ccm_aes128_encrypt nettle_ccm_aes128_encrypt -#define ccm_aes128_decrypt nettle_ccm_aes128_decrypt -#define ccm_aes128_digest nettle_ccm_aes128_digest -#define ccm_aes128_encrypt_message nettle_ccm_aes128_encrypt_message -#define ccm_aes128_decrypt_message nettle_ccm_aes128_decrypt_message - -#define ccm_aes192_set_key nettle_ccm_aes192_set_key -#define ccm_aes192_set_nonce nettle_ccm_aes192_set_nonce -#define ccm_aes192_update nettle_ccm_aes192_update -#define ccm_aes192_encrypt nettle_ccm_aes192_encrypt -#define ccm_aes192_decrypt nettle_ccm_aes192_decrypt -#define ccm_aes192_digest nettle_ccm_aes192_digest -#define ccm_aes192_encrypt_message nettle_ccm_aes192_encrypt_message -#define ccm_aes192_decrypt_message nettle_ccm_aes192_decrypt_message - -#define ccm_aes256_set_key nettle_ccm_aes256_set_key -#define ccm_aes256_set_nonce nettle_ccm_aes256_set_nonce -#define ccm_aes256_update nettle_ccm_aes256_update -#define ccm_aes256_encrypt nettle_ccm_aes256_encrypt -#define ccm_aes256_decrypt nettle_ccm_aes256_decrypt -#define ccm_aes256_digest nettle_ccm_aes256_digest -#define ccm_aes256_encrypt_message nettle_ccm_aes256_encrypt_message -#define ccm_aes256_decrypt_message nettle_ccm_aes256_decrypt_message - -/* For CCM, the block size of the block cipher shall be 128 bits. */ -#define CCM_BLOCK_SIZE 16 -#define CCM_DIGEST_SIZE 16 -#define CCM_MIN_NONCE_SIZE 7 -#define CCM_MAX_NONCE_SIZE 14 - -/* Maximum cleartext message size, as a function of the nonce size N. - The length field is L octets, with L = 15 - N, and then the maximum - size M = 2^{8L} - 1. */ -#define CCM_MAX_MSG_SIZE(N) \ - ((sizeof(size_t) + (N) <= 15) \ - ? ~(size_t) 0 \ - : ((size_t) 1 << (8*(15 - N))) - 1) - -/* Per-message state */ -struct ccm_ctx { - union nettle_block16 ctr; /* Counter for CTR encryption. */ - union nettle_block16 tag; /* CBC-MAC message tag. */ - /* Length of data processed by the CBC-MAC modulus the block size */ - unsigned int blength; -}; - -/* - * CCM mode requires the adata and message lengths when building the IV, which - * prevents streaming processing and it incompatible with the AEAD API. - */ -void -ccm_set_nonce(struct ccm_ctx *ctx, const void *cipher, nettle_cipher_func *f, - size_t noncelen, const uint8_t *nonce, - size_t authlen, size_t msglen, size_t taglen); - -void -ccm_update(struct ccm_ctx *ctx, const void *cipher, nettle_cipher_func *f, - size_t length, const uint8_t *data); - -void -ccm_encrypt(struct ccm_ctx *ctx, const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_decrypt(struct ccm_ctx *ctx, const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_digest(struct ccm_ctx *ctx, const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *digest); - -/* - * All-in-one encryption and decryption API: - * tlength = sizeof(digest) - * mlength = sizeof(cleartext) - * clength = sizeof(ciphertext) = mlength + tlength - * - * The ciphertext will contain the encrypted payload with the message digest - * appended to the end. - */ -void -ccm_encrypt_message(const void *cipher, nettle_cipher_func *f, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t clength, uint8_t *dst, const uint8_t *src); - -/* - * The decryption function will write the plaintext to dst and parse the digest - * from the final tlength bytes of the ciphertext. If the digest matched the - * value computed during decryption then this will return 1, or it will return - * 0 if the digest was invalid. - */ -int -ccm_decrypt_message(const void *cipher, nettle_cipher_func *f, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t mlength, uint8_t *dst, const uint8_t *src); - -/* CCM Mode with AES-128 */ -struct ccm_aes128_ctx { - struct ccm_ctx ccm; - struct aes128_ctx cipher; -}; - -void -ccm_aes128_set_key(struct ccm_aes128_ctx *ctx, const uint8_t *key); - -void -ccm_aes128_set_nonce(struct ccm_aes128_ctx *ctx, - size_t length, const uint8_t *nonce, - size_t authlen, size_t msglen, size_t taglen); - -void -ccm_aes128_update (struct ccm_aes128_ctx *ctx, - size_t length, const uint8_t *data); - -void -ccm_aes128_encrypt(struct ccm_aes128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_aes128_decrypt(struct ccm_aes128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_aes128_digest(struct ccm_aes128_ctx *ctx, - size_t length, uint8_t *digest); - -void -ccm_aes128_encrypt_message(struct ccm_aes128_ctx *ctx, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t clength, uint8_t *dst, const uint8_t *src); - -int -ccm_aes128_decrypt_message(struct ccm_aes128_ctx *ctx, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t mlength, uint8_t *dst, const uint8_t *src); - -struct ccm_aes192_ctx { - struct ccm_ctx ccm; - struct aes192_ctx cipher; -}; - -/* CCM Mode with AES-192 */ -void -ccm_aes192_set_key(struct ccm_aes192_ctx *ctx, const uint8_t *key); - -void -ccm_aes192_set_nonce(struct ccm_aes192_ctx *ctx, - size_t length, const uint8_t *nonce, - size_t authlen, size_t msglen, size_t taglen); - -void -ccm_aes192_update(struct ccm_aes192_ctx *ctx, - size_t length, const uint8_t *data); - -void -ccm_aes192_encrypt(struct ccm_aes192_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_aes192_decrypt(struct ccm_aes192_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_aes192_digest(struct ccm_aes192_ctx *ctx, - size_t length, uint8_t *digest); - -void -ccm_aes192_encrypt_message(struct ccm_aes192_ctx *ctx, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t clength, uint8_t *dst, const uint8_t *src); - -int -ccm_aes192_decrypt_message(struct ccm_aes192_ctx *ctx, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t mlength, uint8_t *dst, const uint8_t *src); - -/* CCM Mode with AES-256 */ -struct ccm_aes256_ctx { - struct ccm_ctx ccm; - struct aes256_ctx cipher; -}; - -void -ccm_aes256_set_key(struct ccm_aes256_ctx *ctx, const uint8_t *key); - -void -ccm_aes256_set_nonce(struct ccm_aes256_ctx *ctx, - size_t length, const uint8_t *nonce, - size_t authlen, size_t msglen, size_t taglen); - -void -ccm_aes256_update(struct ccm_aes256_ctx *ctx, - size_t length, const uint8_t *data); - -void -ccm_aes256_encrypt(struct ccm_aes256_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_aes256_decrypt(struct ccm_aes256_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -ccm_aes256_digest(struct ccm_aes256_ctx *ctx, - size_t length, uint8_t *digest); - -void -ccm_aes256_encrypt_message(struct ccm_aes256_ctx *ctx, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t clength, uint8_t *dst, const uint8_t *src); - -int -ccm_aes256_decrypt_message(struct ccm_aes256_ctx *ctx, - size_t nlength, const uint8_t *nonce, - size_t alength, const uint8_t *adata, - size_t tlength, - size_t mlength, uint8_t *dst, const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CCM_H_INCLUDED */ diff --git a/include/nettle/cfb.h b/include/nettle/cfb.h deleted file mode 100644 index 16660df..0000000 --- a/include/nettle/cfb.h +++ /dev/null @@ -1,87 +0,0 @@ -/* cfb.h - - Cipher feedback mode. - - Copyright (C) 2015, 2017 Dmitry Eremin-Solenikov - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CFB_H_INCLUDED -#define NETTLE_CFB_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define cfb_encrypt nettle_cfb_encrypt -#define cfb_decrypt nettle_cfb_decrypt - -void -cfb_encrypt(const void *ctx, nettle_cipher_func *f, - size_t block_size, uint8_t *iv, - size_t length, uint8_t *dst, - const uint8_t *src); - -void -cfb_decrypt(const void *ctx, nettle_cipher_func *f, - size_t block_size, uint8_t *iv, - size_t length, uint8_t *dst, - const uint8_t *src); - -#define CFB_CTX(type, size) \ -{ type ctx; uint8_t iv[size]; } - -#define CFB_SET_IV(ctx, data) \ -memcpy((ctx)->iv, (data), sizeof((ctx)->iv)) - -/* NOTE: Avoid using NULL, as we don't include anything defining it. */ -#define CFB_ENCRYPT(self, f, length, dst, src) \ - (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0)) \ - : cfb_encrypt((void *) &(self)->ctx, \ - (nettle_cipher_func *) (f), \ - sizeof((self)->iv), (self)->iv, \ - (length), (dst), (src))) - -#define CFB_DECRYPT(self, f, length, dst, src) \ - (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0)) \ - : cfb_decrypt((void *) &(self)->ctx, \ - (nettle_cipher_func *) (f), \ - sizeof((self)->iv), (self)->iv, \ - (length), (dst), (src))) - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CFB_H_INCLUDED */ diff --git a/include/nettle/chacha-poly1305.h b/include/nettle/chacha-poly1305.h deleted file mode 100644 index ce40b77..0000000 --- a/include/nettle/chacha-poly1305.h +++ /dev/null @@ -1,98 +0,0 @@ -/* chacha-poly1305.h - - AEAD mechanism based on chacha and poly1305. - See draft-agl-tls-chacha20poly1305-04. - - Copyright (C) 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CHACHA_POLY1305_H_INCLUDED -#define NETTLE_CHACHA_POLY1305_H_INCLUDED - -#include "chacha.h" -#include "poly1305.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define chacha_poly1305_set_key nettle_chacha_poly1305_set_key -#define chacha_poly1305_set_nonce nettle_chacha_poly1305_set_nonce -#define chacha_poly1305_update nettle_chacha_poly1305_update -#define chacha_poly1305_decrypt nettle_chacha_poly1305_decrypt -#define chacha_poly1305_encrypt nettle_chacha_poly1305_encrypt -#define chacha_poly1305_digest nettle_chacha_poly1305_digest - -#define CHACHA_POLY1305_BLOCK_SIZE 64 -/* FIXME: Any need for 128-bit variant? */ -#define CHACHA_POLY1305_KEY_SIZE 32 -#define CHACHA_POLY1305_NONCE_SIZE CHACHA_NONCE96_SIZE -#define CHACHA_POLY1305_DIGEST_SIZE 16 - -struct chacha_poly1305_ctx -{ - struct chacha_ctx chacha; - struct poly1305_ctx poly1305; - union nettle_block16 s; - uint64_t auth_size; - uint64_t data_size; - /* poly1305 block */ - uint8_t block[POLY1305_BLOCK_SIZE]; - unsigned index; -}; - -void -chacha_poly1305_set_key (struct chacha_poly1305_ctx *ctx, - const uint8_t *key); -void -chacha_poly1305_set_nonce (struct chacha_poly1305_ctx *ctx, - const uint8_t *nonce); - -void -chacha_poly1305_update (struct chacha_poly1305_ctx *ctx, - size_t length, const uint8_t *data); - -void -chacha_poly1305_encrypt (struct chacha_poly1305_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -chacha_poly1305_decrypt (struct chacha_poly1305_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -chacha_poly1305_digest (struct chacha_poly1305_ctx *ctx, - size_t length, uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CHACHA_POLY1305_H_INCLUDED */ diff --git a/include/nettle/chacha.h b/include/nettle/chacha.h deleted file mode 100644 index 3f08283..0000000 --- a/include/nettle/chacha.h +++ /dev/null @@ -1,96 +0,0 @@ -/* chacha.h - - The ChaCha stream cipher. - - Copyright (C) 2013 Joachim Str枚mbergson - Copyright (C) 2012 Simon Josefsson - Copyright (C) 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CHACHA_H_INCLUDED -#define NETTLE_CHACHA_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define chacha_set_key nettle_chacha_set_key -#define chacha_set_nonce nettle_chacha_set_nonce -#define chacha_set_nonce96 nettle_chacha_set_nonce96 -#define chacha_crypt nettle_chacha_crypt -#define _chacha_core _nettle_chacha_core - -/* Currently, only 256-bit keys are supported. */ -#define CHACHA_KEY_SIZE 32 -#define CHACHA_BLOCK_SIZE 64 -#define CHACHA_NONCE_SIZE 8 -#define CHACHA_NONCE96_SIZE 12 - -#define _CHACHA_STATE_LENGTH 16 - -struct chacha_ctx -{ - /* Indices 0-3 holds a constant (SIGMA or TAU). - Indices 4-11 holds the key. - Indices 12-13 holds the block counter. - Indices 14-15 holds the IV: - - This creates the state matrix: - C C C C - K K K K - K K K K - B B I I - */ - uint32_t state[_CHACHA_STATE_LENGTH]; -}; - -void -chacha_set_key(struct chacha_ctx *ctx, const uint8_t *key); - -void -chacha_set_nonce(struct chacha_ctx *ctx, const uint8_t *nonce); - -void -chacha_set_nonce96(struct chacha_ctx *ctx, const uint8_t *nonce); - -void -chacha_crypt(struct chacha_ctx *ctx, size_t length, - uint8_t *dst, const uint8_t *src); - -void -_chacha_core(uint32_t *dst, const uint32_t *src, unsigned rounds); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CHACHA_H_INCLUDED */ diff --git a/include/nettle/ctr.h b/include/nettle/ctr.h deleted file mode 100644 index 7dd06a2..0000000 --- a/include/nettle/ctr.h +++ /dev/null @@ -1,71 +0,0 @@ -/* ctr.h - - Counter mode, using an network byte order incremented counter, - matching the testcases of NIST 800-38A. - - Copyright (C) 2005 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CTR_H_INCLUDED -#define NETTLE_CTR_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define ctr_crypt nettle_ctr_crypt - -void -ctr_crypt(const void *ctx, nettle_cipher_func *f, - size_t block_size, uint8_t *ctr, - size_t length, uint8_t *dst, - const uint8_t *src); - -#define CTR_CTX(type, size) \ -{ type ctx; uint8_t ctr[size]; } - -#define CTR_SET_COUNTER(ctx, data) \ -memcpy((ctx)->ctr, (data), sizeof((ctx)->ctr)) - -#define CTR_CRYPT(self, f, length, dst, src) \ - (0 ? ((f)(&(self)->ctx, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0)) \ - : ctr_crypt((void *) &(self)->ctx, \ - (nettle_cipher_func *) (f), \ - sizeof((self)->ctr), (self)->ctr, \ - (length), (dst), (src))) - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CTR_H_INCLUDED */ diff --git a/include/nettle/curve25519.h b/include/nettle/curve25519.h deleted file mode 100644 index 1dcd94d..0000000 --- a/include/nettle/curve25519.h +++ /dev/null @@ -1,60 +0,0 @@ -/* curve25519.h - - Copyright (C) 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_CURVE25519_H -#define NETTLE_CURVE25519_H - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define curve25519_mul_g nettle_curve25519_mul_g -#define curve25519_mul nettle_curve25519_mul - -#define CURVE25519_SIZE 32 - -/* Indicates that curve25519_mul conforms to RFC 7748. */ -#define NETTLE_CURVE25519_RFC7748 1 - -void -curve25519_mul_g (uint8_t *q, const uint8_t *n); - -void -curve25519_mul (uint8_t *q, const uint8_t *n, const uint8_t *p); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_CURVE25519_H */ diff --git a/include/nettle/des-compat.h b/include/nettle/des-compat.h deleted file mode 100644 index bda4e75..0000000 --- a/include/nettle/des-compat.h +++ /dev/null @@ -1,162 +0,0 @@ -/* des-compat.h - - The des block cipher, old libdes/openssl-style interface. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_DES_COMPAT_H_INCLUDED -#define NETTLE_DES_COMPAT_H_INCLUDED - -/* According to Assar, des_set_key, des_set_key_odd_parity, - * des_is_weak_key, plus the encryption functions (des_*_encrypt and - * des_cbc_cksum) would be a pretty useful subset. */ - -/* NOTE: This is quite experimental, and not all functions are - * implemented. Contributions, in particular test cases are welcome. */ - -#include "des.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* We use some name mangling, to avoid collisions with either other - * nettle functions or with libcrypto. */ - -#define des_ecb3_encrypt nettle_openssl_des_ecb3_encrypt -#define des_cbc_cksum nettle_openssl_des_cbc_cksum -#define des_ncbc_encrypt nettle_openssl_des_ncbc_encrypt -#define des_cbc_encrypt nettle_openssl_des_cbc_encrypt -#define des_ecb_encrypt nettle_openssl_des_ecb_encrypt -#define des_ede3_cbc_encrypt nettle_openssl_des_ede3_cbc_encrypt -#define des_set_odd_parity nettle_openssl_des_set_odd_parity -#define des_check_key nettle_openssl_des_check_key -#define des_key_sched nettle_openssl_des_key_sched -#define des_is_weak_key nettle_openssl_des_is_weak_key - -/* An extra alias */ -#undef des_set_key -#define des_set_key nettle_openssl_des_key_sched - -enum { DES_DECRYPT = 0, DES_ENCRYPT = 1 }; - -/* Types */ -typedef uint32_t DES_LONG; - -/* Note: Typedef:ed arrays should be avoided, but they're used here - * for compatibility. */ -typedef struct des_ctx des_key_schedule[1]; - -typedef uint8_t des_cblock[DES_BLOCK_SIZE]; -/* Note: The proper definition, - - typedef const uint8_t const_des_cblock[DES_BLOCK_SIZE]; - - would have worked, *if* all the prototypes had used arguments like - foo(const_des_cblock src, des_cblock dst), letting argument arrays - "decay" into pointers of type uint8_t * and const uint8_t *. - - But since openssl's prototypes use *pointers* const_des_cblock *src, - des_cblock *dst, this ends up in type conflicts, and the workaround - is to not use const at all. -*/ -#define const_des_cblock des_cblock - -/* Aliases */ -#define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -#define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -/* Global flag */ -extern int des_check_key; - -/* Prototypes */ - -/* Typing is a little confusing. Since both des_cblock and - des_key_schedule are typedef:ed arrays, it automatically decay to - a pointers. - - But the functions are declared taking pointers to des_cblock, i.e. - pointers to arrays. And on the other hand, they take plain - des_key_schedule arguments, which is equivalent to pointers to - struct des_ctx. */ -void -des_ecb3_encrypt(const_des_cblock *src, des_cblock *dst, - des_key_schedule k1, - des_key_schedule k2, - des_key_schedule k3, int enc); - -/* des_cbc_cksum in libdes returns a 32 bit integer, representing the - * latter half of the output block, using little endian byte order. */ -uint32_t -des_cbc_cksum(const uint8_t *src, des_cblock *dst, - long length, des_key_schedule ctx, - const_des_cblock *iv); - -/* NOTE: Doesn't update iv. */ -void -des_cbc_encrypt(const_des_cblock *src, des_cblock *dst, long length, - des_key_schedule ctx, const_des_cblock *iv, - int enc); - -/* Similar, but updates iv. */ -void -des_ncbc_encrypt(const_des_cblock *src, des_cblock *dst, long length, - des_key_schedule ctx, des_cblock *iv, - int enc); - -void -des_ecb_encrypt(const_des_cblock *src, des_cblock *dst, - des_key_schedule ctx, int enc); - -void -des_ede3_cbc_encrypt(const_des_cblock *src, des_cblock *dst, long length, - des_key_schedule k1, - des_key_schedule k2, - des_key_schedule k3, - des_cblock *iv, - int enc); - -int -des_set_odd_parity(des_cblock *key); - -int -des_key_sched(const_des_cblock *key, des_key_schedule ctx); - -int -des_is_weak_key(const_des_cblock *key); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_DES_COMPAT_H_INCLUDED */ diff --git a/include/nettle/des.h b/include/nettle/des.h deleted file mode 100644 index f8f3fea..0000000 --- a/include/nettle/des.h +++ /dev/null @@ -1,120 +0,0 @@ -/* des.h - - The des block cipher. And triple des. - - Copyright (C) 1992 Dana L. How - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* - * des - fast & portable DES encryption & decryption. - * Copyright (C) 1992 Dana L. How - * Please see the file `../lib/descore.README' for the complete copyright - * notice. - * - * Slightly edited by Niels M枚ller, 1997 - */ - -#ifndef NETTLE_DES_H_INCLUDED -#define NETTLE_DES_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Namespace mangling */ -#define des_set_key nettle_des_set_key -#define des_encrypt nettle_des_encrypt -#define des_decrypt nettle_des_decrypt -#define des_check_parity nettle_des_check_parity -#define des_fix_parity nettle_des_fix_parity -#define des3_set_key nettle_des3_set_key -#define des3_encrypt nettle_des3_encrypt -#define des3_decrypt nettle_des3_decrypt - -#define DES_KEY_SIZE 8 -#define DES_BLOCK_SIZE 8 - -/* Expanded key length */ -#define _DES_KEY_LENGTH 32 - -struct des_ctx -{ - uint32_t key[_DES_KEY_LENGTH]; -}; - -/* Returns 1 for good keys and 0 for weak keys. */ -int -des_set_key(struct des_ctx *ctx, const uint8_t *key); - -void -des_encrypt(const struct des_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -des_decrypt(const struct des_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -int -des_check_parity(size_t length, const uint8_t *key); - -void -des_fix_parity(size_t length, uint8_t *dst, - const uint8_t *src); - -#define DES3_KEY_SIZE 24 -#define DES3_BLOCK_SIZE DES_BLOCK_SIZE - -struct des3_ctx -{ - struct des_ctx des[3]; -}; - - -/* Returns 1 for good keys and 0 for weak keys. */ -int -des3_set_key(struct des3_ctx *ctx, const uint8_t *key); - -void -des3_encrypt(const struct des3_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -des3_decrypt(const struct des3_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_DES_H_INCLUDED */ diff --git a/include/nettle/dsa-compat.h b/include/nettle/dsa-compat.h deleted file mode 100644 index 4ec96ed..0000000 --- a/include/nettle/dsa-compat.h +++ /dev/null @@ -1,183 +0,0 @@ -/* dsa-compat.h - - Old DSA publickey interface. - - Copyright (C) 2002, 2013, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_DSA_COMPAT_H_INCLUDED -#define NETTLE_DSA_COMPAT_H_INCLUDED - -#include "dsa.h" - -#include "sha1.h" -#include "sha2.h" - -/* Name mangling */ -#define dsa_public_key_init nettle_dsa_public_key_init -#define dsa_public_key_clear nettle_dsa_public_key_clear -#define dsa_private_key_init nettle_dsa_private_key_init -#define dsa_private_key_clear nettle_dsa_private_key_clear -#define dsa_sha1_sign nettle_dsa_sha1_sign -#define dsa_sha1_verify nettle_dsa_sha1_verify -#define dsa_sha256_sign nettle_dsa_sha256_sign -#define dsa_sha256_verify nettle_dsa_sha256_verify -#define dsa_sha1_sign_digest nettle_dsa_sha1_sign_digest -#define dsa_sha1_verify_digest nettle_dsa_sha1_verify_digest -#define dsa_sha256_sign_digest nettle_dsa_sha256_sign_digest -#define dsa_sha256_verify_digest nettle_dsa_sha256_verify_digest -#define dsa_compat_generate_keypair nettle_dsa_compat_generate_keypair - -/* Switch meaning of dsa_generate_keypair */ -#undef dsa_generate_keypair -#define dsa_generate_keypair nettle_dsa_compat_generate_keypair - -#ifdef __cplusplus -extern "C" { -#endif - -struct dsa_public_key -{ - /* Same as struct dsa_params, but can't use that struct here without - breaking backwards compatibility. Layout must be identical, since - this is cast to a struct dsa_param pointer for calling _dsa_sign - and _dsa_verify */ - mpz_t p; - mpz_t q; - mpz_t g; - - /* Public value */ - mpz_t y; -}; - -struct dsa_private_key -{ - /* Unlike an rsa public key, private key operations will need both - * the private and the public information. */ - mpz_t x; -}; - -/* Signing a message works as follows: - * - * Store the private key in a dsa_private_key struct. - * - * Initialize a hashing context, by callling - * sha1_init - * - * Hash the message by calling - * sha1_update - * - * Create the signature by calling - * dsa_sha1_sign - * - * The signature is represented as a struct dsa_signature. This call also - * resets the hashing context. - * - * When done with the key and signature, don't forget to call - * dsa_signature_clear. - */ - -/* Calls mpz_init to initialize bignum storage. */ -void -dsa_public_key_init(struct dsa_public_key *key); - -/* Calls mpz_clear to deallocate bignum storage. */ -void -dsa_public_key_clear(struct dsa_public_key *key); - - -/* Calls mpz_init to initialize bignum storage. */ -void -dsa_private_key_init(struct dsa_private_key *key); - -/* Calls mpz_clear to deallocate bignum storage. */ -void -dsa_private_key_clear(struct dsa_private_key *key); - -int -dsa_sha1_sign(const struct dsa_public_key *pub, - const struct dsa_private_key *key, - void *random_ctx, nettle_random_func *random, - struct sha1_ctx *hash, - struct dsa_signature *signature); - -int -dsa_sha256_sign(const struct dsa_public_key *pub, - const struct dsa_private_key *key, - void *random_ctx, nettle_random_func *random, - struct sha256_ctx *hash, - struct dsa_signature *signature); - -int -dsa_sha1_verify(const struct dsa_public_key *key, - struct sha1_ctx *hash, - const struct dsa_signature *signature); - -int -dsa_sha256_verify(const struct dsa_public_key *key, - struct sha256_ctx *hash, - const struct dsa_signature *signature); - -int -dsa_sha1_sign_digest(const struct dsa_public_key *pub, - const struct dsa_private_key *key, - void *random_ctx, nettle_random_func *random, - const uint8_t *digest, - struct dsa_signature *signature); -int -dsa_sha256_sign_digest(const struct dsa_public_key *pub, - const struct dsa_private_key *key, - void *random_ctx, nettle_random_func *random, - const uint8_t *digest, - struct dsa_signature *signature); - -int -dsa_sha1_verify_digest(const struct dsa_public_key *key, - const uint8_t *digest, - const struct dsa_signature *signature); - -int -dsa_sha256_verify_digest(const struct dsa_public_key *key, - const uint8_t *digest, - const struct dsa_signature *signature); - -/* Key generation */ -int -dsa_generate_keypair(struct dsa_public_key *pub, - struct dsa_private_key *key, - - void *random_ctx, nettle_random_func *random, - void *progress_ctx, nettle_progress_func *progress, - unsigned p_bits, unsigned q_bits); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_DSA_COMPAT_H_INCLUDED */ diff --git a/include/nettle/dsa.h b/include/nettle/dsa.h deleted file mode 100644 index 7aa982a..0000000 --- a/include/nettle/dsa.h +++ /dev/null @@ -1,216 +0,0 @@ -/* dsa.h - - The DSA publickey algorithm. - - Copyright (C) 2002, 2013, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_DSA_H_INCLUDED -#define NETTLE_DSA_H_INCLUDED - -#include "nettle-types.h" -#include "bignum.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define dsa_params_init nettle_dsa_params_init -#define dsa_params_clear nettle_dsa_params_clear -#define dsa_signature_init nettle_dsa_signature_init -#define dsa_signature_clear nettle_dsa_signature_clear -#define dsa_sign nettle_dsa_sign -#define dsa_verify nettle_dsa_verify -#define dsa_generate_params nettle_dsa_generate_params -#define dsa_generate_keypair nettle_dsa_generate_keypair -#define dsa_signature_from_sexp nettle_dsa_signature_from_sexp -#define dsa_keypair_to_sexp nettle_dsa_keypair_to_sexp -#define dsa_keypair_from_sexp_alist nettle_dsa_keypair_from_sexp_alist -#define dsa_sha1_keypair_from_sexp nettle_dsa_sha1_keypair_from_sexp -#define dsa_sha256_keypair_from_sexp nettle_dsa_sha256_keypair_from_sexp -#define dsa_params_from_der_iterator nettle_dsa_params_from_der_iterator -#define dsa_public_key_from_der_iterator nettle_dsa_public_key_from_der_iterator -#define dsa_openssl_private_key_from_der_iterator nettle_dsa_openssl_private_key_from_der_iterator -#define dsa_openssl_private_key_from_der nettle_openssl_provate_key_from_der -#define _dsa_hash _nettle_dsa_hash - -/* For FIPS approved parameters */ -#define DSA_SHA1_MIN_P_BITS 512 -#define DSA_SHA1_Q_OCTETS 20 -#define DSA_SHA1_Q_BITS 160 - -#define DSA_SHA256_MIN_P_BITS 1024 -#define DSA_SHA256_Q_OCTETS 32 -#define DSA_SHA256_Q_BITS 256 - -struct dsa_params -{ - /* Modulo */ - mpz_t p; - - /* Group order */ - mpz_t q; - - /* Generator */ - mpz_t g; -}; - -void -dsa_params_init (struct dsa_params *params); - -void -dsa_params_clear (struct dsa_params *params); - -struct dsa_signature -{ - mpz_t r; - mpz_t s; -}; - -/* Calls mpz_init to initialize bignum storage. */ -void -dsa_signature_init(struct dsa_signature *signature); - -/* Calls mpz_clear to deallocate bignum storage. */ -void -dsa_signature_clear(struct dsa_signature *signature); - -int -dsa_sign(const struct dsa_params *params, - const mpz_t x, - void *random_ctx, nettle_random_func *random, - size_t digest_size, - const uint8_t *digest, - struct dsa_signature *signature); - -int -dsa_verify(const struct dsa_params *params, - const mpz_t y, - size_t digest_size, - const uint8_t *digest, - const struct dsa_signature *signature); - - -/* Key generation */ - -int -dsa_generate_params(struct dsa_params *params, - void *random_ctx, nettle_random_func *random, - void *progress_ctx, nettle_progress_func *progress, - unsigned p_bits, unsigned q_bits); - -void -dsa_generate_keypair (const struct dsa_params *params, - mpz_t pub, mpz_t key, - void *random_ctx, nettle_random_func *random); - -/* Keys in sexp form. */ - -struct nettle_buffer; - -/* Generates a public-key expression if PRIV is NULL .*/ -int -dsa_keypair_to_sexp(struct nettle_buffer *buffer, - const char *algorithm_name, /* NULL means "dsa" */ - const struct dsa_params *params, - const mpz_t pub, - const mpz_t priv); - -struct sexp_iterator; - -int -dsa_signature_from_sexp(struct dsa_signature *rs, - struct sexp_iterator *i, - unsigned q_bits); - -int -dsa_keypair_from_sexp_alist(struct dsa_params *params, - mpz_t pub, - mpz_t priv, - unsigned p_max_bits, - unsigned q_bits, - struct sexp_iterator *i); - -/* If PRIV is NULL, expect a public-key expression. If PUB is NULL, - * expect a private key expression and ignore the parts not needed for - * the public key. */ -/* Keys must be initialized before calling this function, as usual. */ -int -dsa_sha1_keypair_from_sexp(struct dsa_params *params, - mpz_t pub, - mpz_t priv, - unsigned p_max_bits, - size_t length, const uint8_t *expr); - -int -dsa_sha256_keypair_from_sexp(struct dsa_params *params, - mpz_t pub, - mpz_t priv, - unsigned p_max_bits, - size_t length, const uint8_t *expr); - -/* Keys in X.509 andd OpenSSL format. */ -struct asn1_der_iterator; - -int -dsa_params_from_der_iterator(struct dsa_params *params, - unsigned max_bits, unsigned q_bits, - struct asn1_der_iterator *i); - -int -dsa_public_key_from_der_iterator(const struct dsa_params *params, - mpz_t pub, - struct asn1_der_iterator *i); - -int -dsa_openssl_private_key_from_der_iterator(struct dsa_params *params, - mpz_t pub, - mpz_t priv, - unsigned p_max_bits, - struct asn1_der_iterator *i); - -int -dsa_openssl_private_key_from_der(struct dsa_params *params, - mpz_t pub, - mpz_t priv, - unsigned p_max_bits, - size_t length, const uint8_t *data); - - -/* Internal functions. */ -void -_dsa_hash (mpz_t h, unsigned bit_size, - size_t length, const uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_DSA_H_INCLUDED */ diff --git a/include/nettle/eax.h b/include/nettle/eax.h deleted file mode 100644 index e9747f3..0000000 --- a/include/nettle/eax.h +++ /dev/null @@ -1,185 +0,0 @@ -/* eax.h - - EAX mode, see http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf - - Copyright (C) 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_EAX_H_INCLUDED -#define NETTLE_EAX_H_INCLUDED - -#include "aes.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define eax_set_key nettle_eax_set_key -#define eax_set_nonce nettle_eax_set_nonce -#define eax_update nettle_eax_update -#define eax_encrypt nettle_eax_encrypt -#define eax_decrypt nettle_eax_decrypt -#define eax_digest nettle_eax_digest - -#define eax_aes128_set_key nettle_eax_aes128_set_key -#define eax_aes128_set_nonce nettle_eax_aes128_set_nonce -#define eax_aes128_update nettle_eax_aes128_update -#define eax_aes128_encrypt nettle_eax_aes128_encrypt -#define eax_aes128_decrypt nettle_eax_aes128_decrypt -#define eax_aes128_digest nettle_eax_aes128_digest - -/* Restricted to block ciphers with 128 bit block size. FIXME: Reflect - this in naming? */ - -#define EAX_BLOCK_SIZE 16 -#define EAX_DIGEST_SIZE 16 -/* FIXME: Reasonable default? */ -#define EAX_IV_SIZE 16 - -/* Values independent of message and nonce */ -struct eax_key -{ - union nettle_block16 pad_block; - union nettle_block16 pad_partial; -}; - -struct eax_ctx -{ - union nettle_block16 omac_nonce; - union nettle_block16 omac_data; - union nettle_block16 omac_message; - union nettle_block16 ctr; -}; - -void -eax_set_key (struct eax_key *key, const void *cipher, nettle_cipher_func *f); - -void -eax_set_nonce (struct eax_ctx *eax, const struct eax_key *key, - const void *cipher, nettle_cipher_func *f, - size_t nonce_length, const uint8_t *nonce); - -void -eax_update (struct eax_ctx *eax, const struct eax_key *key, - const void *cipher, nettle_cipher_func *f, - size_t data_length, const uint8_t *data); - -void -eax_encrypt (struct eax_ctx *eax, const struct eax_key *key, - const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *dst, const uint8_t *src); - -void -eax_decrypt (struct eax_ctx *eax, const struct eax_key *key, - const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *dst, const uint8_t *src); - -void -eax_digest (struct eax_ctx *eax, const struct eax_key *key, - const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *digest); - -/* Put the cipher last, to get cipher-independent offsets for the EAX - * state. */ -#define EAX_CTX(type) \ - { struct eax_key key; struct eax_ctx eax; type cipher; } - -#define EAX_SET_KEY(ctx, set_key, encrypt, data) \ - do { \ - (set_key)(&(ctx)->cipher, (data)); \ - if (0) (encrypt) (&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0); \ - eax_set_key (&(ctx)->key, &(ctx)->cipher, (nettle_cipher_func *) encrypt); \ - } while (0) - -#define EAX_SET_NONCE(ctx, encrypt, length, nonce) \ - (0 ? (encrypt) (&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : eax_set_nonce (&(ctx)->eax, &(ctx)->key, \ - &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \ - (length), (nonce))) - -#define EAX_UPDATE(ctx, encrypt, length, data) \ - (0 ? (encrypt) (&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : eax_update (&(ctx)->eax, &(ctx)->key, \ - &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \ - (length), (data))) - -#define EAX_ENCRYPT(ctx, encrypt, length, dst, src) \ - (0 ? (encrypt) (&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : eax_encrypt (&(ctx)->eax, &(ctx)->key, \ - &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \ - (length), (dst), (src))) - -#define EAX_DECRYPT(ctx, encrypt, length, dst, src) \ - (0 ? (encrypt) (&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : eax_decrypt (&(ctx)->eax, &(ctx)->key, \ - &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \ - (length), (dst), (src))) - -#define EAX_DIGEST(ctx, encrypt, length, digest) \ - (0 ? (encrypt) (&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : eax_digest (&(ctx)->eax, &(ctx)->key, \ - &(ctx)->cipher, (nettle_cipher_func *) (encrypt), \ - (length), (digest))) - -struct eax_aes128_ctx EAX_CTX(struct aes128_ctx); - -void -eax_aes128_set_key(struct eax_aes128_ctx *ctx, const uint8_t *key); - -void -eax_aes128_set_nonce(struct eax_aes128_ctx *ctx, - size_t length, const uint8_t *iv); - -void -eax_aes128_update(struct eax_aes128_ctx *ctx, - size_t length, const uint8_t *data); - -void -eax_aes128_encrypt(struct eax_aes128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -eax_aes128_decrypt(struct eax_aes128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -eax_aes128_digest(struct eax_aes128_ctx *ctx, size_t length, uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_EAX_H_INCLUDED */ diff --git a/include/nettle/ecc-curve.h b/include/nettle/ecc-curve.h deleted file mode 100644 index c08479a..0000000 --- a/include/nettle/ecc-curve.h +++ /dev/null @@ -1,71 +0,0 @@ -/* ecc-curve.h - - Copyright (C) 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */ - -#ifndef NETTLE_ECC_CURVE_H_INCLUDED -#define NETTLE_ECC_CURVE_H_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -/* The contents of this struct is internal. */ -struct ecc_curve; - -/* FIXME: Rename with leading underscore. Due to ABI subtleties, - applications should not refer to these directly, but use the below - accessor functions. */ -extern const struct ecc_curve nettle_secp_192r1; -extern const struct ecc_curve nettle_secp_224r1; -extern const struct ecc_curve nettle_secp_256r1; -extern const struct ecc_curve nettle_secp_384r1; -extern const struct ecc_curve nettle_secp_521r1; - -#ifdef __GNUC__ -#define NETTLE_PURE __attribute__((pure)) -#else -#define NETTLE_PURE -#endif - -const struct ecc_curve * NETTLE_PURE nettle_get_secp_192r1(void); -const struct ecc_curve * NETTLE_PURE nettle_get_secp_224r1(void); -const struct ecc_curve * NETTLE_PURE nettle_get_secp_256r1(void); -const struct ecc_curve * NETTLE_PURE nettle_get_secp_384r1(void); -const struct ecc_curve * NETTLE_PURE nettle_get_secp_521r1(void); - -#undef NETTLE_PURE - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_ECC_CURVE_H_INCLUDED */ diff --git a/include/nettle/ecc.h b/include/nettle/ecc.h deleted file mode 100644 index 93fc9e8..0000000 --- a/include/nettle/ecc.h +++ /dev/null @@ -1,159 +0,0 @@ -/* ecc.h - - Copyright (C) 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */ - -#ifndef NETTLE_ECC_H_INCLUDED -#define NETTLE_ECC_H_INCLUDED - -#include "nettle-types.h" -#include "bignum.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define ecc_point_init nettle_ecc_point_init -#define ecc_point_clear nettle_ecc_point_clear -#define ecc_point_set nettle_ecc_point_set -#define ecc_point_get nettle_ecc_point_get -#define ecc_point_mul nettle_ecc_point_mul -#define ecc_point_mul_g nettle_ecc_point_mul_g -#define ecc_scalar_init nettle_ecc_scalar_init -#define ecc_scalar_clear nettle_ecc_scalar_clear -#define ecc_scalar_set nettle_ecc_scalar_set -#define ecc_scalar_get nettle_ecc_scalar_get -#define ecc_scalar_random nettle_ecc_scalar_random -#define ecc_point_mul nettle_ecc_point_mul -#define ecc_bit_size nettle_ecc_bit_size -#define ecc_size nettle_ecc_size -#define ecc_size_a nettle_ecc_size_a -#define ecc_size_j nettle_ecc_size_j - -struct ecc_curve; - -/* High level interface, for ECDSA, DH, etc */ - -/* Represents a point on the ECC curve */ -struct ecc_point -{ - const struct ecc_curve *ecc; - /* Allocated using the same allocation function as GMP. */ - mp_limb_t *p; -}; - -/* Represents a non-zero scalar, an element of Z_q^*, where q is the - group order of the curve. */ -struct ecc_scalar -{ - const struct ecc_curve *ecc; - /* Allocated using the same allocation function as GMP. */ - mp_limb_t *p; -}; - -void -ecc_point_init (struct ecc_point *p, const struct ecc_curve *ecc); -void -ecc_point_clear (struct ecc_point *p); - -/* Fails and returns zero if the point is not on the curve. */ -int -ecc_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y); -void -ecc_point_get (const struct ecc_point *p, mpz_t x, mpz_t y); - -void -ecc_scalar_init (struct ecc_scalar *s, const struct ecc_curve *ecc); -void -ecc_scalar_clear (struct ecc_scalar *s); - -/* Fails and returns zero if the scalar is not in the proper range. */ -int -ecc_scalar_set (struct ecc_scalar *s, const mpz_t z); -void -ecc_scalar_get (const struct ecc_scalar *s, mpz_t z); -/* Generates a random scalar, suitable as an ECDSA private key or a - ECDH exponent. */ -void -ecc_scalar_random (struct ecc_scalar *s, - void *random_ctx, nettle_random_func *random); - -/* Computes r = n p */ -void -ecc_point_mul (struct ecc_point *r, const struct ecc_scalar *n, - const struct ecc_point *p); - -/* Computes r = n g */ -void -ecc_point_mul_g (struct ecc_point *r, const struct ecc_scalar *n); - - -/* Low-level interface */ - -/* Points on a curve are represented as arrays of mp_limb_t, with - curve-specific representation. For the secp curves, we use Jacobian - coordinates (possibly in Montgomery form for mod multiplication). - For curve25519 we use homogeneous coordinates on an equivalent - Edwards curve. The suffix "_h" denotes this internal - representation. - - Since we use additive notation for the groups, the infinity point - on the curve is denoted 0. The infinity point can be represented - with x = y = 0 in affine coordinates, and Z = 0 in Jacobian - coordinates. However, note that most of the ECC functions do *not* - support infinity as an input or output. -*/ - -/* Returns the bit size of a single coordinate (and of the prime p). */ -unsigned -ecc_bit_size (const struct ecc_curve *ecc); - -/* Returns the size of a single coordinate. */ -mp_size_t -ecc_size (const struct ecc_curve *ecc); - -/* Size of a point, using affine coordinates x, y. */ -mp_size_t -ecc_size_a (const struct ecc_curve *ecc); - -/* Size of a point, using jacobian coordinates X, Y and Z. */ -mp_size_t -ecc_size_j (const struct ecc_curve *ecc); - -/* FIXME: Define a generic ecc_dup, ecc_add, for any type of curve. Do - they need to handle infinity points? */ - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_ECC_H_INCLUDED */ diff --git a/include/nettle/ecdsa.h b/include/nettle/ecdsa.h deleted file mode 100644 index 693aca8..0000000 --- a/include/nettle/ecdsa.h +++ /dev/null @@ -1,103 +0,0 @@ -/* ecdsa.h - - Copyright (C) 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */ - -#ifndef NETTLE_ECDSA_H_INCLUDED -#define NETTLE_ECDSA_H_INCLUDED - -#include "ecc.h" -#include "dsa.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define ecdsa_sign nettle_ecdsa_sign -#define ecdsa_verify nettle_ecdsa_verify -#define ecdsa_generate_keypair nettle_ecdsa_generate_keypair -#define ecc_ecdsa_sign nettle_ecc_ecdsa_sign -#define ecc_ecdsa_sign_itch nettle_ecc_ecdsa_sign_itch -#define ecc_ecdsa_verify nettle_ecc_ecdsa_verify -#define ecc_ecdsa_verify_itch nettle_ecc_ecdsa_verify_itch - -/* High level ECDSA functions. - * - * A public key is represented as a struct ecc_point, and a private - * key as a struct ecc_scalar. FIXME: Introduce some aliases? */ -void -ecdsa_sign (const struct ecc_scalar *key, - void *random_ctx, nettle_random_func *random, - size_t digest_length, - const uint8_t *digest, - struct dsa_signature *signature); - -int -ecdsa_verify (const struct ecc_point *pub, - size_t length, const uint8_t *digest, - const struct dsa_signature *signature); - -void -ecdsa_generate_keypair (struct ecc_point *pub, - struct ecc_scalar *key, - void *random_ctx, nettle_random_func *random); - -/* Low-level ECDSA functions. */ -mp_size_t -ecc_ecdsa_sign_itch (const struct ecc_curve *ecc); - -void -ecc_ecdsa_sign (const struct ecc_curve *ecc, - const mp_limb_t *zp, - /* Random nonce, must be invertible mod ecc group - order. */ - const mp_limb_t *kp, - size_t length, const uint8_t *digest, - mp_limb_t *rp, mp_limb_t *sp, - mp_limb_t *scratch); - -mp_size_t -ecc_ecdsa_verify_itch (const struct ecc_curve *ecc); - -int -ecc_ecdsa_verify (const struct ecc_curve *ecc, - const mp_limb_t *pp, /* Public key */ - size_t length, const uint8_t *digest, - const mp_limb_t *rp, const mp_limb_t *sp, - mp_limb_t *scratch); - - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_ECDSA_H_INCLUDED */ diff --git a/include/nettle/eddsa.h b/include/nettle/eddsa.h deleted file mode 100644 index 49f1a02..0000000 --- a/include/nettle/eddsa.h +++ /dev/null @@ -1,149 +0,0 @@ -/* eddsa.h - - Copyright (C) 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_EDDSA_H -#define NETTLE_EDDSA_H - -#include "nettle-types.h" - -#include "bignum.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define ed25519_sha512_set_private_key nettle_ed25519_sha512_set_private_key -#define ed25519_sha512_public_key nettle_ed25519_sha512_public_key -#define ed25519_sha512_sign nettle_ed25519_sha512_sign -#define ed25519_sha512_verify nettle_ed25519_sha512_verify - -#define _eddsa_compress _nettle_eddsa_compress -#define _eddsa_compress_itch _nettle_eddsa_compress_itch -#define _eddsa_decompress _nettle_eddsa_decompress -#define _eddsa_decompress_itch _nettle_eddsa_decompress_itch -#define _eddsa_hash _nettle_eddsa_hash -#define _eddsa_expand_key _nettle_eddsa_expand_key -#define _eddsa_sign _nettle_eddsa_sign -#define _eddsa_sign_itch _nettle_eddsa_sign_itch -#define _eddsa_verify _nettle_eddsa_verify -#define _eddsa_verify_itch _nettle_eddsa_verify_itch -#define _eddsa_public_key_itch _nettle_eddsa_public_key_itch -#define _eddsa_public_key _nettle_eddsa_public_key - -#define ED25519_KEY_SIZE 32 -#define ED25519_SIGNATURE_SIZE 64 - -void -ed25519_sha512_public_key (uint8_t *pub, const uint8_t *priv); - -void -ed25519_sha512_sign (const uint8_t *pub, - const uint8_t *priv, - size_t length, const uint8_t *msg, - uint8_t *signature); - -int -ed25519_sha512_verify (const uint8_t *pub, - size_t length, const uint8_t *msg, - const uint8_t *signature); - -/* Low-level internal functions */ - -struct ecc_curve; -struct ecc_modulo; - -mp_size_t -_eddsa_compress_itch (const struct ecc_curve *ecc); -void -_eddsa_compress (const struct ecc_curve *ecc, uint8_t *r, mp_limb_t *p, - mp_limb_t *scratch); - -mp_size_t -_eddsa_decompress_itch (const struct ecc_curve *ecc); -int -_eddsa_decompress (const struct ecc_curve *ecc, mp_limb_t *p, - const uint8_t *cp, - mp_limb_t *scratch); - -void -_eddsa_hash (const struct ecc_modulo *m, - mp_limb_t *rp, const uint8_t *digest); - -mp_size_t -_eddsa_sign_itch (const struct ecc_curve *ecc); - -void -_eddsa_sign (const struct ecc_curve *ecc, - const struct nettle_hash *H, - const uint8_t *pub, - void *ctx, - const mp_limb_t *k2, - size_t length, - const uint8_t *msg, - uint8_t *signature, - mp_limb_t *scratch); - -mp_size_t -_eddsa_verify_itch (const struct ecc_curve *ecc); - -int -_eddsa_verify (const struct ecc_curve *ecc, - const struct nettle_hash *H, - const uint8_t *pub, - const mp_limb_t *A, - void *ctx, - size_t length, - const uint8_t *msg, - const uint8_t *signature, - mp_limb_t *scratch); - -void -_eddsa_expand_key (const struct ecc_curve *ecc, - const struct nettle_hash *H, - void *ctx, - const uint8_t *key, - uint8_t *digest, - mp_limb_t *k2); - -mp_size_t -_eddsa_public_key_itch (const struct ecc_curve *ecc); - -void -_eddsa_public_key (const struct ecc_curve *ecc, - const mp_limb_t *k, uint8_t *pub, mp_limb_t *scratch); - - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_EDDSA_H */ diff --git a/include/nettle/gcm.h b/include/nettle/gcm.h deleted file mode 100644 index 766019a..0000000 --- a/include/nettle/gcm.h +++ /dev/null @@ -1,327 +0,0 @@ -/* gcm.h - - Galois counter mode, specified by NIST, - http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf - - Copyright (C) 2011 Katholieke Universiteit Leuven - Copyright (C) 2011, 2014 Niels M枚ller - - Contributed by Nikos Mavrogiannopoulos - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_GCM_H_INCLUDED -#define NETTLE_GCM_H_INCLUDED - -#include "aes.h" -#include "camellia.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define gcm_set_key nettle_gcm_set_key -#define gcm_set_iv nettle_gcm_set_iv -#define gcm_update nettle_gcm_update -#define gcm_encrypt nettle_gcm_encrypt -#define gcm_decrypt nettle_gcm_decrypt -#define gcm_digest nettle_gcm_digest - -#define gcm_aes128_set_key nettle_gcm_aes128_set_key -#define gcm_aes128_set_iv nettle_gcm_aes128_set_iv -#define gcm_aes128_update nettle_gcm_aes128_update -#define gcm_aes128_encrypt nettle_gcm_aes128_encrypt -#define gcm_aes128_decrypt nettle_gcm_aes128_decrypt -#define gcm_aes128_digest nettle_gcm_aes128_digest - -#define gcm_aes192_set_key nettle_gcm_aes192_set_key -#define gcm_aes192_set_iv nettle_gcm_aes192_set_iv -#define gcm_aes192_update nettle_gcm_aes192_update -#define gcm_aes192_encrypt nettle_gcm_aes192_encrypt -#define gcm_aes192_decrypt nettle_gcm_aes192_decrypt -#define gcm_aes192_digest nettle_gcm_aes192_digest - -#define gcm_aes256_set_key nettle_gcm_aes256_set_key -#define gcm_aes256_set_iv nettle_gcm_aes256_set_iv -#define gcm_aes256_update nettle_gcm_aes256_update -#define gcm_aes256_encrypt nettle_gcm_aes256_encrypt -#define gcm_aes256_decrypt nettle_gcm_aes256_decrypt -#define gcm_aes256_digest nettle_gcm_aes256_digest - -#define gcm_aes_set_key nettle_gcm_aes_set_key -#define gcm_aes_set_iv nettle_gcm_aes_set_iv -#define gcm_aes_update nettle_gcm_aes_update -#define gcm_aes_encrypt nettle_gcm_aes_encrypt -#define gcm_aes_decrypt nettle_gcm_aes_decrypt -#define gcm_aes_digest nettle_gcm_aes_digest - -#define gcm_camellia128_set_key nettle_gcm_camellia128_set_key -#define gcm_camellia128_set_iv nettle_gcm_camellia128_set_iv -#define gcm_camellia128_update nettle_gcm_camellia128_update -#define gcm_camellia128_encrypt nettle_gcm_camellia128_encrypt -#define gcm_camellia128_decrypt nettle_gcm_camellia128_decrypt -#define gcm_camellia128_digest nettle_gcm_camellia128_digest - -#define gcm_camellia256_set_key nettle_gcm_camellia256_set_key -#define gcm_camellia256_set_iv nettle_gcm_camellia256_set_iv -#define gcm_camellia256_update nettle_gcm_camellia256_update -#define gcm_camellia256_encrypt nettle_gcm_camellia256_encrypt -#define gcm_camellia256_decrypt nettle_gcm_camellia256_decrypt -#define gcm_camellia256_digest nettle_gcm_camellia256_digest - -#define GCM_BLOCK_SIZE 16 -#define GCM_IV_SIZE (GCM_BLOCK_SIZE - 4) -#define GCM_DIGEST_SIZE 16 -#define GCM_TABLE_BITS 8 - -/* Hashing subkey */ -struct gcm_key -{ - union nettle_block16 h[1 << GCM_TABLE_BITS]; -}; - -/* Per-message state, depending on the iv */ -struct gcm_ctx { - /* Original counter block */ - union nettle_block16 iv; - /* Updated for each block. */ - union nettle_block16 ctr; - /* Hashing state */ - union nettle_block16 x; - uint64_t auth_size; - uint64_t data_size; -}; - -void -gcm_set_key(struct gcm_key *key, - const void *cipher, nettle_cipher_func *f); - -void -gcm_set_iv(struct gcm_ctx *ctx, const struct gcm_key *key, - size_t length, const uint8_t *iv); - -void -gcm_update(struct gcm_ctx *ctx, const struct gcm_key *key, - size_t length, const uint8_t *data); - -void -gcm_encrypt(struct gcm_ctx *ctx, const struct gcm_key *key, - const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_decrypt(struct gcm_ctx *ctx, const struct gcm_key *key, - const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_digest(struct gcm_ctx *ctx, const struct gcm_key *key, - const void *cipher, nettle_cipher_func *f, - size_t length, uint8_t *digest); - -/* Convenience macrology (not sure how useful it is) */ -/* All-in-one context, with hash subkey, message state, and cipher. */ -#define GCM_CTX(type) \ - { struct gcm_key key; struct gcm_ctx gcm; type cipher; } - -/* NOTE: Avoid using NULL, as we don't include anything defining it. */ -#define GCM_SET_KEY(ctx, set_key, encrypt, gcm_key) \ - do { \ - (set_key)(&(ctx)->cipher, (gcm_key)); \ - if (0) (encrypt)(&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0); \ - gcm_set_key(&(ctx)->key, &(ctx)->cipher, \ - (nettle_cipher_func *) (encrypt)); \ - } while (0) - -#define GCM_SET_IV(ctx, length, data) \ - gcm_set_iv(&(ctx)->gcm, &(ctx)->key, (length), (data)) - -#define GCM_UPDATE(ctx, length, data) \ - gcm_update(&(ctx)->gcm, &(ctx)->key, (length), (data)) - -#define GCM_ENCRYPT(ctx, encrypt, length, dst, src) \ - (0 ? (encrypt)(&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : gcm_encrypt(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, \ - (nettle_cipher_func *) (encrypt), \ - (length), (dst), (src))) - -#define GCM_DECRYPT(ctx, encrypt, length, dst, src) \ - (0 ? (encrypt)(&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : gcm_decrypt(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, \ - (nettle_cipher_func *) (encrypt), \ - (length), (dst), (src))) - -#define GCM_DIGEST(ctx, encrypt, length, digest) \ - (0 ? (encrypt)(&(ctx)->cipher, ~(size_t) 0, \ - (uint8_t *) 0, (const uint8_t *) 0) \ - : gcm_digest(&(ctx)->gcm, &(ctx)->key, &(ctx)->cipher, \ - (nettle_cipher_func *) (encrypt), \ - (length), (digest))) - -struct gcm_aes128_ctx GCM_CTX(struct aes128_ctx); - -void -gcm_aes128_set_key(struct gcm_aes128_ctx *ctx, const uint8_t *key); - -/* FIXME: Define _update and _set_iv as some kind of aliaes, - there's nothing aes-specific. */ -void -gcm_aes128_update (struct gcm_aes128_ctx *ctx, - size_t length, const uint8_t *data); -void -gcm_aes128_set_iv (struct gcm_aes128_ctx *ctx, - size_t length, const uint8_t *iv); - -void -gcm_aes128_encrypt(struct gcm_aes128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes128_decrypt(struct gcm_aes128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes128_digest(struct gcm_aes128_ctx *ctx, - size_t length, uint8_t *digest); - -struct gcm_aes192_ctx GCM_CTX(struct aes192_ctx); - -void -gcm_aes192_set_key(struct gcm_aes192_ctx *ctx, const uint8_t *key); - -void -gcm_aes192_update (struct gcm_aes192_ctx *ctx, - size_t length, const uint8_t *data); -void -gcm_aes192_set_iv (struct gcm_aes192_ctx *ctx, - size_t length, const uint8_t *iv); - -void -gcm_aes192_encrypt(struct gcm_aes192_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes192_decrypt(struct gcm_aes192_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes192_digest(struct gcm_aes192_ctx *ctx, - size_t length, uint8_t *digest); - -struct gcm_aes256_ctx GCM_CTX(struct aes256_ctx); - -void -gcm_aes256_set_key(struct gcm_aes256_ctx *ctx, const uint8_t *key); - -void -gcm_aes256_update (struct gcm_aes256_ctx *ctx, - size_t length, const uint8_t *data); -void -gcm_aes256_set_iv (struct gcm_aes256_ctx *ctx, - size_t length, const uint8_t *iv); - -void -gcm_aes256_encrypt(struct gcm_aes256_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes256_decrypt(struct gcm_aes256_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes256_digest(struct gcm_aes256_ctx *ctx, - size_t length, uint8_t *digest); - -/* Old aes interface, for backwards compatibility */ -struct gcm_aes_ctx GCM_CTX(struct aes_ctx); - -void -gcm_aes_set_key(struct gcm_aes_ctx *ctx, - size_t length, const uint8_t *key); - -void -gcm_aes_set_iv(struct gcm_aes_ctx *ctx, - size_t length, const uint8_t *iv); - -void -gcm_aes_update(struct gcm_aes_ctx *ctx, - size_t length, const uint8_t *data); - -void -gcm_aes_encrypt(struct gcm_aes_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes_decrypt(struct gcm_aes_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); - -void -gcm_aes_digest(struct gcm_aes_ctx *ctx, size_t length, uint8_t *digest); - - -struct gcm_camellia128_ctx GCM_CTX(struct camellia128_ctx); - -void gcm_camellia128_set_key(struct gcm_camellia128_ctx *ctx, - const uint8_t *key); -void gcm_camellia128_set_iv(struct gcm_camellia128_ctx *ctx, - size_t length, const uint8_t *iv); -void gcm_camellia128_update(struct gcm_camellia128_ctx *ctx, - size_t length, const uint8_t *data); -void gcm_camellia128_encrypt(struct gcm_camellia128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); -void gcm_camellia128_decrypt(struct gcm_camellia128_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); -void gcm_camellia128_digest(struct gcm_camellia128_ctx *ctx, - size_t length, uint8_t *digest); - - -struct gcm_camellia256_ctx GCM_CTX(struct camellia256_ctx); - -void gcm_camellia256_set_key(struct gcm_camellia256_ctx *ctx, - const uint8_t *key); -void gcm_camellia256_set_iv(struct gcm_camellia256_ctx *ctx, - size_t length, const uint8_t *iv); -void gcm_camellia256_update(struct gcm_camellia256_ctx *ctx, - size_t length, const uint8_t *data); -void gcm_camellia256_encrypt(struct gcm_camellia256_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); -void gcm_camellia256_decrypt(struct gcm_camellia256_ctx *ctx, - size_t length, uint8_t *dst, const uint8_t *src); -void gcm_camellia256_digest(struct gcm_camellia256_ctx *ctx, - size_t length, uint8_t *digest); - - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_GCM_H_INCLUDED */ diff --git a/include/nettle/gosthash94.h b/include/nettle/gosthash94.h deleted file mode 100644 index 8e9d49f..0000000 --- a/include/nettle/gosthash94.h +++ /dev/null @@ -1,98 +0,0 @@ -/* gosthash94.h - - The GOST R 34.11-94 hash function, described in RFC 5831. - - Copyright (C) 2012 Nikos Mavrogiannopoulos, Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* Based on rhash gost.h. */ - -/* Copyright: 2009-2012 Aleksey Kravchenko - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -/* - * Ported to nettle by Nikos Mavrogiannopoulos. - */ - -#ifndef NETTLE_GOSTHASH94_H_INCLUDED -#define NETTLE_GOSTHASH94_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define gosthash94_init nettle_gosthash94_init -#define gosthash94_update nettle_gosthash94_update -#define gosthash94_digest nettle_gosthash94_digest - -#define GOSTHASH94_BLOCK_SIZE 32 -#define GOSTHASH94_DIGEST_SIZE 32 -/* For backwards compatibility */ -#define GOSTHASH94_DATA_SIZE GOSTHASH94_BLOCK_SIZE - -struct gosthash94_ctx -{ - uint32_t hash[8]; /* algorithm 256-bit state */ - uint32_t sum[8]; /* sum of processed message blocks */ - uint8_t message[GOSTHASH94_BLOCK_SIZE]; /* 256-bit buffer for leftovers */ - uint64_t length; /* number of processed bytes */ -}; - -void gosthash94_init(struct gosthash94_ctx *ctx); -void gosthash94_update(struct gosthash94_ctx *ctx, - size_t length, const uint8_t *msg); -void gosthash94_digest(struct gosthash94_ctx *ctx, - size_t length, uint8_t *result); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_GOSTHASH94_H_INCLUDED */ diff --git a/include/nettle/hkdf.h b/include/nettle/hkdf.h deleted file mode 100644 index 43b16ad..0000000 --- a/include/nettle/hkdf.h +++ /dev/null @@ -1,67 +0,0 @@ -/* hkdf.h - - TLS PRF code (RFC-5246, RFC-2246). - - Copyright (C) 2017 Red Hat, Inc. - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_HKDF_H_INCLUDED -#define NETTLE_HKDF_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Namespace mangling */ -#define hkdf_extract nettle_hkdf_extract -#define hkdf_expand nettle_hkdf_expand - -void -hkdf_extract(void *mac_ctx, - nettle_hash_update_func *update, - nettle_hash_digest_func *digest, - size_t digest_size, - size_t secret_size, const uint8_t *secret, - uint8_t *dst); - -void -hkdf_expand(void *mac_ctx, - nettle_hash_update_func *update, - nettle_hash_digest_func *digest, - size_t digest_size, - size_t info_size, const uint8_t *info, - size_t length, uint8_t *dst); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_HKDF_H_INCLUDED */ diff --git a/include/nettle/hmac.h b/include/nettle/hmac.h deleted file mode 100644 index 40a8e77..0000000 --- a/include/nettle/hmac.h +++ /dev/null @@ -1,210 +0,0 @@ -/* hmac.h - - HMAC message authentication code (RFC-2104). - - Copyright (C) 2001, 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_HMAC_H_INCLUDED -#define NETTLE_HMAC_H_INCLUDED - -#include "nettle-meta.h" - -#include "md5.h" -#include "ripemd160.h" -#include "sha1.h" -#include "sha2.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Namespace mangling */ -#define hmac_set_key nettle_hmac_set_key -#define hmac_update nettle_hmac_update -#define hmac_digest nettle_hmac_digest -#define hmac_md5_set_key nettle_hmac_md5_set_key -#define hmac_md5_update nettle_hmac_md5_update -#define hmac_md5_digest nettle_hmac_md5_digest -#define hmac_ripemd160_set_key nettle_hmac_ripemd160_set_key -#define hmac_ripemd160_update nettle_hmac_ripemd160_update -#define hmac_ripemd160_digest nettle_hmac_ripemd160_digest -#define hmac_sha1_set_key nettle_hmac_sha1_set_key -#define hmac_sha1_update nettle_hmac_sha1_update -#define hmac_sha1_digest nettle_hmac_sha1_digest -#define hmac_sha224_set_key nettle_hmac_sha224_set_key -#define hmac_sha224_digest nettle_hmac_sha224_digest -#define hmac_sha256_set_key nettle_hmac_sha256_set_key -#define hmac_sha256_update nettle_hmac_sha256_update -#define hmac_sha256_digest nettle_hmac_sha256_digest -#define hmac_sha384_set_key nettle_hmac_sha384_set_key -#define hmac_sha384_digest nettle_hmac_sha384_digest -#define hmac_sha512_set_key nettle_hmac_sha512_set_key -#define hmac_sha512_update nettle_hmac_sha512_update -#define hmac_sha512_digest nettle_hmac_sha512_digest - -void -hmac_set_key(void *outer, void *inner, void *state, - const struct nettle_hash *hash, - size_t length, const uint8_t *key); - -/* This function is not strictly needed, it's s just the same as the - * hash update function. */ -void -hmac_update(void *state, - const struct nettle_hash *hash, - size_t length, const uint8_t *data); - -void -hmac_digest(const void *outer, const void *inner, void *state, - const struct nettle_hash *hash, - size_t length, uint8_t *digest); - - -#define HMAC_CTX(type) \ -{ type outer; type inner; type state; } - -#define HMAC_SET_KEY(ctx, hash, length, key) \ - hmac_set_key( &(ctx)->outer, &(ctx)->inner, &(ctx)->state, \ - (hash), (length), (key) ) - -#define HMAC_DIGEST(ctx, hash, length, digest) \ - hmac_digest( &(ctx)->outer, &(ctx)->inner, &(ctx)->state, \ - (hash), (length), (digest) ) - -/* HMAC using specific hash functions */ - -/* hmac-md5 */ -struct hmac_md5_ctx HMAC_CTX(struct md5_ctx); - -void -hmac_md5_set_key(struct hmac_md5_ctx *ctx, - size_t key_length, const uint8_t *key); - -void -hmac_md5_update(struct hmac_md5_ctx *ctx, - size_t length, const uint8_t *data); - -void -hmac_md5_digest(struct hmac_md5_ctx *ctx, - size_t length, uint8_t *digest); - - -/* hmac-ripemd160 */ -struct hmac_ripemd160_ctx HMAC_CTX(struct ripemd160_ctx); - -void -hmac_ripemd160_set_key(struct hmac_ripemd160_ctx *ctx, - size_t key_length, const uint8_t *key); - -void -hmac_ripemd160_update(struct hmac_ripemd160_ctx *ctx, - size_t length, const uint8_t *data); - -void -hmac_ripemd160_digest(struct hmac_ripemd160_ctx *ctx, - size_t length, uint8_t *digest); - - -/* hmac-sha1 */ -struct hmac_sha1_ctx HMAC_CTX(struct sha1_ctx); - -void -hmac_sha1_set_key(struct hmac_sha1_ctx *ctx, - size_t key_length, const uint8_t *key); - -void -hmac_sha1_update(struct hmac_sha1_ctx *ctx, - size_t length, const uint8_t *data); - -void -hmac_sha1_digest(struct hmac_sha1_ctx *ctx, - size_t length, uint8_t *digest); - -/* hmac-sha256 */ -struct hmac_sha256_ctx HMAC_CTX(struct sha256_ctx); - -void -hmac_sha256_set_key(struct hmac_sha256_ctx *ctx, - size_t key_length, const uint8_t *key); - -void -hmac_sha256_update(struct hmac_sha256_ctx *ctx, - size_t length, const uint8_t *data); - -void -hmac_sha256_digest(struct hmac_sha256_ctx *ctx, - size_t length, uint8_t *digest); - -/* hmac-sha224 */ -#define hmac_sha224_ctx hmac_sha256_ctx - -void -hmac_sha224_set_key(struct hmac_sha224_ctx *ctx, - size_t key_length, const uint8_t *key); - -#define hmac_sha224_update nettle_hmac_sha256_update - -void -hmac_sha224_digest(struct hmac_sha224_ctx *ctx, - size_t length, uint8_t *digest); - -/* hmac-sha512 */ -struct hmac_sha512_ctx HMAC_CTX(struct sha512_ctx); - -void -hmac_sha512_set_key(struct hmac_sha512_ctx *ctx, - size_t key_length, const uint8_t *key); - -void -hmac_sha512_update(struct hmac_sha512_ctx *ctx, - size_t length, const uint8_t *data); - -void -hmac_sha512_digest(struct hmac_sha512_ctx *ctx, - size_t length, uint8_t *digest); - -/* hmac-sha384 */ -#define hmac_sha384_ctx hmac_sha512_ctx - -void -hmac_sha384_set_key(struct hmac_sha512_ctx *ctx, - size_t key_length, const uint8_t *key); - -#define hmac_sha384_update nettle_hmac_sha512_update - -void -hmac_sha384_digest(struct hmac_sha512_ctx *ctx, - size_t length, uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_HMAC_H_INCLUDED */ diff --git a/include/nettle/knuth-lfib.h b/include/nettle/knuth-lfib.h deleted file mode 100644 index df0b495..0000000 --- a/include/nettle/knuth-lfib.h +++ /dev/null @@ -1,80 +0,0 @@ -/* knuth-lfib.h - - The "lagged fibonacci" pseudorandomness generator, described in - Knuth, TAoCP, 3.6 - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* NOTE: This generator is totally inappropriate for cryptographic - * applications. It is useful for generating deterministic but - * random-looking test data, and is used by the Nettle testsuite. */ -#ifndef NETTLE_KNUTH_LFIB_H_INCLUDED -#define NETTLE_KNUTH_LFIB_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Namespace mangling */ -#define knuth_lfib_init nettle_knuth_lfib_init -#define knuth_lfib_get nettle_knuth_lfib_get -#define knuth_lfib_get_array nettle_knuth_lfib_get_array -#define knuth_lfib_random nettle_knuth_lfib_random - -#define _KNUTH_LFIB_KK 100 - -struct knuth_lfib_ctx -{ - uint32_t x[_KNUTH_LFIB_KK]; - unsigned index; -}; - -void -knuth_lfib_init(struct knuth_lfib_ctx *ctx, uint32_t seed); - -/* Get's a single number in the range 0 ... 2^30-1 */ -uint32_t -knuth_lfib_get(struct knuth_lfib_ctx *ctx); - -/* Get an array of numbers */ -void -knuth_lfib_get_array(struct knuth_lfib_ctx *ctx, - size_t n, uint32_t *a); - -/* Get an array of octets. */ -void -knuth_lfib_random(struct knuth_lfib_ctx *ctx, - size_t n, uint8_t *dst); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_KNUTH_LFIB_H_INCLUDED */ diff --git a/include/nettle/macros.h b/include/nettle/macros.h deleted file mode 100644 index 990d32e..0000000 --- a/include/nettle/macros.h +++ /dev/null @@ -1,245 +0,0 @@ -/* macros.h - - Copyright (C) 2001, 2010 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_MACROS_H_INCLUDED -#define NETTLE_MACROS_H_INCLUDED - -/* Reads a 64-bit integer, in network, big-endian, byte order */ -#define READ_UINT64(p) \ -( (((uint64_t) (p)[0]) << 56) \ - | (((uint64_t) (p)[1]) << 48) \ - | (((uint64_t) (p)[2]) << 40) \ - | (((uint64_t) (p)[3]) << 32) \ - | (((uint64_t) (p)[4]) << 24) \ - | (((uint64_t) (p)[5]) << 16) \ - | (((uint64_t) (p)[6]) << 8) \ - | ((uint64_t) (p)[7])) - -#define WRITE_UINT64(p, i) \ -do { \ - (p)[0] = ((i) >> 56) & 0xff; \ - (p)[1] = ((i) >> 48) & 0xff; \ - (p)[2] = ((i) >> 40) & 0xff; \ - (p)[3] = ((i) >> 32) & 0xff; \ - (p)[4] = ((i) >> 24) & 0xff; \ - (p)[5] = ((i) >> 16) & 0xff; \ - (p)[6] = ((i) >> 8) & 0xff; \ - (p)[7] = (i) & 0xff; \ -} while(0) - -/* Reads a 32-bit integer, in network, big-endian, byte order */ -#define READ_UINT32(p) \ -( (((uint32_t) (p)[0]) << 24) \ - | (((uint32_t) (p)[1]) << 16) \ - | (((uint32_t) (p)[2]) << 8) \ - | ((uint32_t) (p)[3])) - -#define WRITE_UINT32(p, i) \ -do { \ - (p)[0] = ((i) >> 24) & 0xff; \ - (p)[1] = ((i) >> 16) & 0xff; \ - (p)[2] = ((i) >> 8) & 0xff; \ - (p)[3] = (i) & 0xff; \ -} while(0) - -/* Analogous macros, for 24 and 16 bit numbers */ -#define READ_UINT24(p) \ -( (((uint32_t) (p)[0]) << 16) \ - | (((uint32_t) (p)[1]) << 8) \ - | ((uint32_t) (p)[2])) - -#define WRITE_UINT24(p, i) \ -do { \ - (p)[0] = ((i) >> 16) & 0xff; \ - (p)[1] = ((i) >> 8) & 0xff; \ - (p)[2] = (i) & 0xff; \ -} while(0) - -#define READ_UINT16(p) \ -( (((uint32_t) (p)[0]) << 8) \ - | ((uint32_t) (p)[1])) - -#define WRITE_UINT16(p, i) \ -do { \ - (p)[0] = ((i) >> 8) & 0xff; \ - (p)[1] = (i) & 0xff; \ -} while(0) - -/* And the other, little-endian, byteorder */ -#define LE_READ_UINT64(p) \ -( (((uint64_t) (p)[7]) << 56) \ - | (((uint64_t) (p)[6]) << 48) \ - | (((uint64_t) (p)[5]) << 40) \ - | (((uint64_t) (p)[4]) << 32) \ - | (((uint64_t) (p)[3]) << 24) \ - | (((uint64_t) (p)[2]) << 16) \ - | (((uint64_t) (p)[1]) << 8) \ - | ((uint64_t) (p)[0])) - -#define LE_WRITE_UINT64(p, i) \ -do { \ - (p)[7] = ((i) >> 56) & 0xff; \ - (p)[6] = ((i) >> 48) & 0xff; \ - (p)[5] = ((i) >> 40) & 0xff; \ - (p)[4] = ((i) >> 32) & 0xff; \ - (p)[3] = ((i) >> 24) & 0xff; \ - (p)[2] = ((i) >> 16) & 0xff; \ - (p)[1] = ((i) >> 8) & 0xff; \ - (p)[0] = (i) & 0xff; \ -} while (0) - -#define LE_READ_UINT32(p) \ -( (((uint32_t) (p)[3]) << 24) \ - | (((uint32_t) (p)[2]) << 16) \ - | (((uint32_t) (p)[1]) << 8) \ - | ((uint32_t) (p)[0])) - -#define LE_WRITE_UINT32(p, i) \ -do { \ - (p)[3] = ((i) >> 24) & 0xff; \ - (p)[2] = ((i) >> 16) & 0xff; \ - (p)[1] = ((i) >> 8) & 0xff; \ - (p)[0] = (i) & 0xff; \ -} while(0) - -/* Analogous macros, for 16 bit numbers */ -#define LE_READ_UINT16(p) \ - ( (((uint32_t) (p)[1]) << 8) \ - | ((uint32_t) (p)[0])) - -#define LE_WRITE_UINT16(p, i) \ - do { \ - (p)[1] = ((i) >> 8) & 0xff; \ - (p)[0] = (i) & 0xff; \ - } while(0) - -/* Macro to make it easier to loop over several blocks. */ -#define FOR_BLOCKS(length, dst, src, blocksize) \ - assert( !((length) % (blocksize))); \ - for (; (length); ((length) -= (blocksize), \ - (dst) += (blocksize), \ - (src) += (blocksize)) ) - -/* The masking of the right shift is needed to allow n == 0 (using - just 32 - n and 64 - n results in undefined behaviour). Most uses - of these macros use a constant and non-zero rotation count. */ -#define ROTL32(n,x) (((x)<<(n)) | ((x)>>((-(n)&31)))) - -#define ROTL64(n,x) (((x)<<(n)) | ((x)>>((-(n))&63))) - -/* Requires that size > 0 */ -#define INCREMENT(size, ctr) \ - do { \ - unsigned increment_i = (size) - 1; \ - if (++(ctr)[increment_i] == 0) \ - while (increment_i > 0 \ - && ++(ctr)[--increment_i] == 0 ) \ - ; \ - } while (0) - - -/* Helper macro for Merkle-Damg氓rd hash functions. Assumes the context - structs includes the following fields: - - uint8_t block[...]; // Buffer holding one block - unsigned int index; // Index into block -*/ - -/* Currently used by sha512 (and sha384) only. */ -#define MD_INCR(ctx) ((ctx)->count_high += !++(ctx)->count_low) - -/* Takes the compression function f as argument. NOTE: also clobbers - length and data. */ -#define MD_UPDATE(ctx, length, data, f, incr) \ - do { \ - if ((ctx)->index) \ - { \ - /* Try to fill partial block */ \ - unsigned __md_left = sizeof((ctx)->block) - (ctx)->index; \ - if ((length) < __md_left) \ - { \ - memcpy((ctx)->block + (ctx)->index, (data), (length)); \ - (ctx)->index += (length); \ - goto __md_done; /* Finished */ \ - } \ - else \ - { \ - memcpy((ctx)->block + (ctx)->index, (data), __md_left); \ - \ - f((ctx), (ctx)->block); \ - (incr); \ - \ - (data) += __md_left; \ - (length) -= __md_left; \ - } \ - } \ - while ((length) >= sizeof((ctx)->block)) \ - { \ - f((ctx), (data)); \ - (incr); \ - \ - (data) += sizeof((ctx)->block); \ - (length) -= sizeof((ctx)->block); \ - } \ - memcpy ((ctx)->block, (data), (length)); \ - (ctx)->index = (length); \ - __md_done: \ - ; \ - } while (0) - -/* Pads the block to a block boundary with the bit pattern 1 0*, - leaving size octets for the length field at the end. If needed, - compresses the block and starts a new one. */ -#define MD_PAD(ctx, size, f) \ - do { \ - unsigned __md_i; \ - __md_i = (ctx)->index; \ - \ - /* Set the first char of padding to 0x80. This is safe since there \ - is always at least one byte free */ \ - \ - assert(__md_i < sizeof((ctx)->block)); \ - (ctx)->block[__md_i++] = 0x80; \ - \ - if (__md_i > (sizeof((ctx)->block) - (size))) \ - { /* No room for length in this block. Process it and \ - pad with another one */ \ - memset((ctx)->block + __md_i, 0, sizeof((ctx)->block) - __md_i); \ - \ - f((ctx), (ctx)->block); \ - __md_i = 0; \ - } \ - memset((ctx)->block + __md_i, 0, \ - sizeof((ctx)->block) - (size) - __md_i); \ - \ - } while (0) - -#endif /* NETTLE_MACROS_H_INCLUDED */ diff --git a/include/nettle/md2.h b/include/nettle/md2.h deleted file mode 100644 index 560b2cb..0000000 --- a/include/nettle/md2.h +++ /dev/null @@ -1,79 +0,0 @@ -/* md2.h - - The MD2 hash function, described in RFC 1319. - - Copyright (C) 2003 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_MD2_H_INCLUDED -#define NETTLE_MD2_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define md2_init nettle_md2_init -#define md2_update nettle_md2_update -#define md2_digest nettle_md2_digest - -#define MD2_DIGEST_SIZE 16 -#define MD2_BLOCK_SIZE 16 -/* For backwards compatibility */ -#define MD2_DATA_SIZE MD2_BLOCK_SIZE - -struct md2_ctx -{ - uint8_t C[MD2_BLOCK_SIZE]; - uint8_t X[3 * MD2_BLOCK_SIZE]; - uint8_t block[MD2_BLOCK_SIZE]; /* Block buffer */ - unsigned index; /* Into buffer */ -}; - -void -md2_init(struct md2_ctx *ctx); - -void -md2_update(struct md2_ctx *ctx, - size_t length, - const uint8_t *data); - -void -md2_digest(struct md2_ctx *ctx, - size_t length, - uint8_t *digest); - - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_MD2_H_INCLUDED */ diff --git a/include/nettle/md4.h b/include/nettle/md4.h deleted file mode 100644 index f199a80..0000000 --- a/include/nettle/md4.h +++ /dev/null @@ -1,83 +0,0 @@ -/* md4.h - - The MD4 hash function, described in RFC 1320. - - Copyright (C) 2003 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_MD4_H_INCLUDED -#define NETTLE_MD4_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define md4_init nettle_md4_init -#define md4_update nettle_md4_update -#define md4_digest nettle_md4_digest - -#define MD4_DIGEST_SIZE 16 -#define MD4_BLOCK_SIZE 64 -/* For backwards compatibility */ -#define MD4_DATA_SIZE MD4_BLOCK_SIZE - -/* Digest is kept internally as 4 32-bit words. */ -#define _MD4_DIGEST_LENGTH 4 - -/* FIXME: Identical to md5_ctx */ -struct md4_ctx -{ - uint32_t state[_MD4_DIGEST_LENGTH]; - uint64_t count; /* Block count */ - uint8_t block[MD4_BLOCK_SIZE]; /* Block buffer */ - unsigned index; /* Into buffer */ -}; - -void -md4_init(struct md4_ctx *ctx); - -void -md4_update(struct md4_ctx *ctx, - size_t length, - const uint8_t *data); - -void -md4_digest(struct md4_ctx *ctx, - size_t length, - uint8_t *digest); - - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_MD4_H_INCLUDED */ diff --git a/include/nettle/md5-compat.h b/include/nettle/md5-compat.h deleted file mode 100644 index fd30982..0000000 --- a/include/nettle/md5-compat.h +++ /dev/null @@ -1,58 +0,0 @@ -/* md5-compat.h - - The md5 hash function, RFC 1321-style interface. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_MD5_COMPAT_H_INCLUDED -#define NETTLE_MD5_COMPAT_H_INCLUDED - -#include "md5.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define MD5Init nettle_MD5Init -#define MD5Update nettle_MD5Update -#define MD5Final nettle_MD5Final - -typedef struct md5_ctx MD5_CTX; - -void MD5Init(MD5_CTX *ctx); -void MD5Update(MD5_CTX *ctx, const unsigned char *data, unsigned int length); -void MD5Final(unsigned char *out, MD5_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_MD5_COMPAT_H_INCLUDED */ diff --git a/include/nettle/md5.h b/include/nettle/md5.h deleted file mode 100644 index 040cf9d..0000000 --- a/include/nettle/md5.h +++ /dev/null @@ -1,86 +0,0 @@ -/* md5.h - - The MD5 hash function, described in RFC 1321. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_MD5_H_INCLUDED -#define NETTLE_MD5_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define md5_init nettle_md5_init -#define md5_update nettle_md5_update -#define md5_digest nettle_md5_digest - -#define MD5_DIGEST_SIZE 16 -#define MD5_BLOCK_SIZE 64 -/* For backwards compatibility */ -#define MD5_DATA_SIZE MD5_BLOCK_SIZE - -/* Digest is kept internally as 4 32-bit words. */ -#define _MD5_DIGEST_LENGTH 4 - -struct md5_ctx -{ - uint32_t state[_MD5_DIGEST_LENGTH]; - uint64_t count; /* Block count */ - uint8_t block[MD5_BLOCK_SIZE]; /* Block buffer */ - unsigned index; /* Into buffer */ -}; - -void -md5_init(struct md5_ctx *ctx); - -void -md5_update(struct md5_ctx *ctx, - size_t length, - const uint8_t *data); - -void -md5_digest(struct md5_ctx *ctx, - size_t length, - uint8_t *digest); - -/* Internal compression function. STATE points to 4 uint32_t words, - and DATA points to 64 bytes of input data, possibly unaligned. */ -void -_nettle_md5_compress(uint32_t *state, const uint8_t *data); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_MD5_H_INCLUDED */ diff --git a/include/nettle/memops.h b/include/nettle/memops.h deleted file mode 100644 index 815d547..0000000 --- a/include/nettle/memops.h +++ /dev/null @@ -1,57 +0,0 @@ -/* memops.h - - Copyright (C) 2016 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_MEMOPS_H_INCLUDED -#define NETTLE_MEMOPS_H_INCLUDED - -#include "memxor.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define cnd_memcpy nettle_cnd_memcpy -#define memeql_sec nettle_memeql_sec - -int -memeql_sec (const void *a, const void *b, size_t n); - -/* Side-channel silent conditional memcpy. cnd must be 0 (nop) or 1 - (copy). */ -void -cnd_memcpy(int cnd, volatile void *dst, const volatile void *src, size_t n); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_MEMOPS_H_INCLUDED */ diff --git a/include/nettle/memxor.h b/include/nettle/memxor.h deleted file mode 100644 index b7bef09..0000000 --- a/include/nettle/memxor.h +++ /dev/null @@ -1,25 +0,0 @@ -/* memxor.h - * - */ - -#ifndef NETTLE_MEMXOR_H_INCLUDED -#define NETTLE_MEMXOR_H_INCLUDED - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define memxor nettle_memxor -#define memxor3 nettle_memxor3 - -void *memxor(void *dst, const void *src, size_t n); -void *memxor3(void *dst, const void *a, const void *b, size_t n); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_MEMXOR_H_INCLUDED */ diff --git a/include/nettle/nettle-meta.h b/include/nettle/nettle-meta.h deleted file mode 100644 index 0d16a2b..0000000 --- a/include/nettle/nettle-meta.h +++ /dev/null @@ -1,277 +0,0 @@ -/* nettle-meta.h - - Information about algorithms. - - Copyright (C) 2002, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_META_H_INCLUDED -#define NETTLE_META_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -struct nettle_cipher -{ - const char *name; - - unsigned context_size; - - /* Zero for stream ciphers */ - unsigned block_size; - - /* Suggested key size; other sizes are sometimes possible. */ - unsigned key_size; - - nettle_set_key_func *set_encrypt_key; - nettle_set_key_func *set_decrypt_key; - - nettle_cipher_func *encrypt; - nettle_cipher_func *decrypt; -}; - -/* FIXME: Rename with leading underscore, but keep current name (and - size!) for now, for ABI compatibility with nettle-3.1, soname - libnettle.so.6. */ -/* null-terminated list of ciphers implemented by this version of nettle */ -extern const struct nettle_cipher * const nettle_ciphers[]; - -const struct nettle_cipher * const * -#ifdef __GNUC__ -__attribute__((pure)) -#endif -nettle_get_ciphers (void); - -#define nettle_ciphers (nettle_get_ciphers()) - -extern const struct nettle_cipher nettle_aes128; -extern const struct nettle_cipher nettle_aes192; -extern const struct nettle_cipher nettle_aes256; - -extern const struct nettle_cipher nettle_camellia128; -extern const struct nettle_cipher nettle_camellia192; -extern const struct nettle_cipher nettle_camellia256; - -extern const struct nettle_cipher nettle_cast128; - -extern const struct nettle_cipher nettle_serpent128; -extern const struct nettle_cipher nettle_serpent192; -extern const struct nettle_cipher nettle_serpent256; - -extern const struct nettle_cipher nettle_twofish128; -extern const struct nettle_cipher nettle_twofish192; -extern const struct nettle_cipher nettle_twofish256; - -extern const struct nettle_cipher nettle_arctwo40; -extern const struct nettle_cipher nettle_arctwo64; -extern const struct nettle_cipher nettle_arctwo128; -extern const struct nettle_cipher nettle_arctwo_gutmann128; - -struct nettle_hash -{ - const char *name; - - /* Size of the context struct */ - unsigned context_size; - - /* Size of digests */ - unsigned digest_size; - - /* Internal block size */ - unsigned block_size; - - nettle_hash_init_func *init; - nettle_hash_update_func *update; - nettle_hash_digest_func *digest; -}; - -#define _NETTLE_HASH(name, NAME) { \ - #name, \ - sizeof(struct name##_ctx), \ - NAME##_DIGEST_SIZE, \ - NAME##_BLOCK_SIZE, \ - (nettle_hash_init_func *) name##_init, \ - (nettle_hash_update_func *) name##_update, \ - (nettle_hash_digest_func *) name##_digest \ -} - -/* FIXME: Rename with leading underscore, but keep current name (and - size!) for now, for ABI compatibility with nettle-3.1, soname - libnettle.so.6. */ -/* null-terminated list of digests implemented by this version of nettle */ -extern const struct nettle_hash * const nettle_hashes[]; - -const struct nettle_hash * const * -#ifdef __GNUC__ -__attribute__((pure)) -#endif -nettle_get_hashes (void); - -#define nettle_hashes (nettle_get_hashes()) - -const struct nettle_hash * -nettle_lookup_hash (const char *name); - -extern const struct nettle_hash nettle_md2; -extern const struct nettle_hash nettle_md4; -extern const struct nettle_hash nettle_md5; -extern const struct nettle_hash nettle_gosthash94; -extern const struct nettle_hash nettle_ripemd160; -extern const struct nettle_hash nettle_sha1; -extern const struct nettle_hash nettle_sha224; -extern const struct nettle_hash nettle_sha256; -extern const struct nettle_hash nettle_sha384; -extern const struct nettle_hash nettle_sha512; -extern const struct nettle_hash nettle_sha512_224; -extern const struct nettle_hash nettle_sha512_256; -extern const struct nettle_hash nettle_sha3_224; -extern const struct nettle_hash nettle_sha3_256; -extern const struct nettle_hash nettle_sha3_384; -extern const struct nettle_hash nettle_sha3_512; - -struct nettle_aead -{ - const char *name; - - unsigned context_size; - /* Block size for encrypt and decrypt. */ - unsigned block_size; - unsigned key_size; - unsigned nonce_size; - unsigned digest_size; - - nettle_set_key_func *set_encrypt_key; - nettle_set_key_func *set_decrypt_key; - nettle_set_key_func *set_nonce; - nettle_hash_update_func *update; - nettle_crypt_func *encrypt; - nettle_crypt_func *decrypt; - /* FIXME: Drop length argument? */ - nettle_hash_digest_func *digest; -}; - -/* FIXME: Rename with leading underscore, but keep current name (and - size!) for now, for ABI compatibility with nettle-3.1, soname - libnettle.so.6. */ -/* null-terminated list of aead constructions implemented by this - version of nettle */ -extern const struct nettle_aead * const nettle_aeads[]; - -const struct nettle_aead * const * -#ifdef __GNUC__ -__attribute__((pure)) -#endif -nettle_get_aeads (void); - -#define nettle_aeads (nettle_get_aeads()) - -extern const struct nettle_aead nettle_gcm_aes128; -extern const struct nettle_aead nettle_gcm_aes192; -extern const struct nettle_aead nettle_gcm_aes256; -extern const struct nettle_aead nettle_gcm_camellia128; -extern const struct nettle_aead nettle_gcm_camellia256; -extern const struct nettle_aead nettle_eax_aes128; -extern const struct nettle_aead nettle_chacha_poly1305; - -struct nettle_armor -{ - const char *name; - unsigned encode_context_size; - unsigned decode_context_size; - - unsigned encode_final_length; - - nettle_armor_init_func *encode_init; - nettle_armor_length_func *encode_length; - nettle_armor_encode_update_func *encode_update; - nettle_armor_encode_final_func *encode_final; - - nettle_armor_init_func *decode_init; - nettle_armor_length_func *decode_length; - nettle_armor_decode_update_func *decode_update; - nettle_armor_decode_final_func *decode_final; -}; - -#define _NETTLE_ARMOR(name, NAME) { \ - #name, \ - sizeof(struct name##_encode_ctx), \ - sizeof(struct name##_decode_ctx), \ - NAME##_ENCODE_FINAL_LENGTH, \ - (nettle_armor_init_func *) name##_encode_init, \ - (nettle_armor_length_func *) name##_encode_length, \ - (nettle_armor_encode_update_func *) name##_encode_update, \ - (nettle_armor_encode_final_func *) name##_encode_final, \ - (nettle_armor_init_func *) name##_decode_init, \ - (nettle_armor_length_func *) name##_decode_length, \ - (nettle_armor_decode_update_func *) name##_decode_update, \ - (nettle_armor_decode_final_func *) name##_decode_final, \ -} - -#define _NETTLE_ARMOR_0(name, NAME) { \ - #name, \ - 0, \ - sizeof(struct name##_decode_ctx), \ - NAME##_ENCODE_FINAL_LENGTH, \ - (nettle_armor_init_func *) name##_encode_init, \ - (nettle_armor_length_func *) name##_encode_length, \ - (nettle_armor_encode_update_func *) name##_encode_update, \ - (nettle_armor_encode_final_func *) name##_encode_final, \ - (nettle_armor_init_func *) name##_decode_init, \ - (nettle_armor_length_func *) name##_decode_length, \ - (nettle_armor_decode_update_func *) name##_decode_update, \ - (nettle_armor_decode_final_func *) name##_decode_final, \ -} - -/* FIXME: Rename with leading underscore, but keep current name (and - size!) for now, for ABI compatibility with nettle-3.1, soname - libnettle.so.6. */ -/* null-terminated list of armor schemes implemented by this version of nettle */ -extern const struct nettle_armor * const nettle_armors[]; - -const struct nettle_armor * const * -#ifdef __GNUC__ -__attribute__((pure)) -#endif -nettle_get_armors (void); - -#define nettle_armors (nettle_get_armors()) - -extern const struct nettle_armor nettle_base64; -extern const struct nettle_armor nettle_base64url; -extern const struct nettle_armor nettle_base16; - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_META_H_INCLUDED */ diff --git a/include/nettle/nettle-stdint.h b/include/nettle/nettle-stdint.h deleted file mode 100644 index e09af32..0000000 --- a/include/nettle/nettle-stdint.h +++ /dev/null @@ -1,286 +0,0 @@ -#ifndef __NETTLE_STDINT_H -#define __NETTLE_STDINT_H 1 -#ifndef _GENERATED_STDINT_H -#define _GENERATED_STDINT_H " " -/* generated using gnu compiler gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 */ -#define _STDINT_HAVE_STDINT_H 1 - -/* ................... shortcircuit part ........................... */ - -#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H -#include -#else -#include - -/* .................... configured part ............................ */ - -/* whether we have a C99 compatible stdint header file */ -/* #undef _STDINT_HEADER_INTPTR */ -/* whether we have a C96 compatible inttypes header file */ -/* #undef _STDINT_HEADER_UINT32 */ -/* whether we have a BSD compatible inet types header */ -/* #undef _STDINT_HEADER_U_INT32 */ - -/* which 64bit typedef has been found */ -/* #undef _STDINT_HAVE_UINT64_T */ -/* #undef _STDINT_HAVE_U_INT64_T */ - -/* which type model has been detected */ -/* #undef _STDINT_CHAR_MODEL // skipped */ -/* #undef _STDINT_LONG_MODEL // skipped */ - -/* whether int_least types were detected */ -/* #undef _STDINT_HAVE_INT_LEAST32_T */ -/* whether int_fast types were detected */ -/* #undef _STDINT_HAVE_INT_FAST32_T */ -/* whether intmax_t type was detected */ -/* #undef _STDINT_HAVE_INTMAX_T */ - -/* .................... detections part ............................ */ - -/* whether we need to define bitspecific types from compiler base types */ -#ifndef _STDINT_HEADER_INTPTR -#ifndef _STDINT_HEADER_UINT32 -#ifndef _STDINT_HEADER_U_INT32 -#define _STDINT_NEED_INT_MODEL_T -#else -#define _STDINT_HAVE_U_INT_TYPES -#endif -#endif -#endif - -#ifdef _STDINT_HAVE_U_INT_TYPES -#undef _STDINT_NEED_INT_MODEL_T -#endif - -#ifdef _STDINT_CHAR_MODEL -#if _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124 -#ifndef _STDINT_BYTE_MODEL -#define _STDINT_BYTE_MODEL 12 -#endif -#endif -#endif - -#ifndef _STDINT_HAVE_INT_LEAST32_T -#define _STDINT_NEED_INT_LEAST_T -#endif - -#ifndef _STDINT_HAVE_INT_FAST32_T -#define _STDINT_NEED_INT_FAST_T -#endif - -#ifndef _STDINT_HEADER_INTPTR -#define _STDINT_NEED_INTPTR_T -#ifndef _STDINT_HAVE_INTMAX_T -#define _STDINT_NEED_INTMAX_T -#endif -#endif - - -/* .................... definition part ............................ */ - -/* some system headers have good uint64_t */ -#ifndef _HAVE_UINT64_T -#if defined _STDINT_HAVE_UINT64_T || defined HAVE_UINT64_T -#define _HAVE_UINT64_T -#elif defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T -#define _HAVE_UINT64_T -typedef u_int64_t uint64_t; -#endif -#endif - -#ifndef _HAVE_UINT64_T -/* .. here are some common heuristics using compiler runtime specifics */ -#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L -#define _HAVE_UINT64_T -typedef long long int64_t; -typedef unsigned long long uint64_t; - -#elif !defined __STRICT_ANSI__ -#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ -#define _HAVE_UINT64_T -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; - -#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ -/* note: all ELF-systems seem to have loff-support which needs 64-bit */ -#if !defined _NO_LONGLONG -#define _HAVE_UINT64_T -typedef long long int64_t; -typedef unsigned long long uint64_t; -#endif - -#elif defined __alpha || (defined __mips && defined _ABIN32) -#if !defined _NO_LONGLONG -typedef long int64_t; -typedef unsigned long uint64_t; -#endif - /* compiler/cpu type to define int64_t */ -#endif -#endif -#endif - -#if defined _STDINT_HAVE_U_INT_TYPES -/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ -typedef u_int8_t uint8_t; -typedef u_int16_t uint16_t; -typedef u_int32_t uint32_t; - -/* glibc compatibility */ -#ifndef __int8_t_defined -#define __int8_t_defined -#endif -#endif - -#ifdef _STDINT_NEED_INT_MODEL_T -/* we must guess all the basic types. Apart from byte-adressable system, */ -/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ -/* (btw, those nibble-addressable systems are way off, or so we assume) */ - - -#if defined _STDINT_BYTE_MODEL -#if _STDINT_LONG_MODEL+0 == 242 -/* 2:4:2 = IP16 = a normal 16-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned long uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef long int32_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 -/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ -/* 4:4:4 = ILP32 = a normal 32-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 -/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ -/* 4:8:8 = LP64 = a normal 64-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -/* this system has a "long" of 64bit */ -#ifndef _HAVE_UINT64_T -#define _HAVE_UINT64_T -typedef unsigned long uint64_t; -typedef long int64_t; -#endif -#elif _STDINT_LONG_MODEL+0 == 448 -/* LLP64 a 64-bit system derived from a 32-bit system */ -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -#ifndef __int8_t_defined -#define __int8_t_defined -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -#endif -/* assuming the system has a "long long" */ -#ifndef _HAVE_UINT64_T -#define _HAVE_UINT64_T -typedef unsigned long long uint64_t; -typedef long long int64_t; -#endif -#else -#define _STDINT_NO_INT32_T -#endif -#else -#define _STDINT_NO_INT8_T -#define _STDINT_NO_INT32_T -#endif -#endif - -/* - * quote from SunOS-5.8 sys/inttypes.h: - * Use at your own risk. As of February 1996, the committee is squarely - * behind the fixed sized types; the "least" and "fast" types are still being - * discussed. The probability that the "fast" types may be removed before - * the standard is finalized is high enough that they are not currently - * implemented. - */ - -#if defined _STDINT_NEED_INT_LEAST_T -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -#ifdef _HAVE_UINT64_T -typedef int64_t int_least64_t; -#endif - -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -#ifdef _HAVE_UINT64_T -typedef uint64_t uint_least64_t; -#endif - /* least types */ -#endif - -#if defined _STDINT_NEED_INT_FAST_T -typedef int8_t int_fast8_t; -typedef int int_fast16_t; -typedef int32_t int_fast32_t; -#ifdef _HAVE_UINT64_T -typedef int64_t int_fast64_t; -#endif - -typedef uint8_t uint_fast8_t; -typedef unsigned uint_fast16_t; -typedef uint32_t uint_fast32_t; -#ifdef _HAVE_UINT64_T -typedef uint64_t uint_fast64_t; -#endif - /* fast types */ -#endif - -#ifdef _STDINT_NEED_INTMAX_T -#ifdef _HAVE_UINT64_T -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; -#else -typedef long intmax_t; -typedef unsigned long uintmax_t; -#endif -#endif - -#ifdef _STDINT_NEED_INTPTR_T -#ifndef __intptr_t_defined -#define __intptr_t_defined -/* we encourage using "long" to store pointer values, never use "int" ! */ -#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 -typedef unsigned int uintptr_t; -typedef int intptr_t; -#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 -typedef unsigned long uintptr_t; -typedef long intptr_t; -#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T -typedef uint64_t uintptr_t; -typedef int64_t intptr_t; -#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ -typedef unsigned long uintptr_t; -typedef long intptr_t; -#endif -#endif -#endif - - /* shortcircuit*/ -#endif - /* once */ -#endif -#endif diff --git a/include/nettle/nettle-types.h b/include/nettle/nettle-types.h deleted file mode 100644 index 84c375d..0000000 --- a/include/nettle/nettle-types.h +++ /dev/null @@ -1,110 +0,0 @@ -/* nettle-types.h - - Copyright (C) 2005, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_TYPES_H -#define NETTLE_TYPES_H - -/* For size_t */ -#include - -/* Pretend these types always exists. Nettle doesn't use them. */ -#define _STDINT_HAVE_INT_FAST32_T 1 -#include "nettle-stdint.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* An aligned 16-byte block. */ -union nettle_block16 -{ - uint8_t b[16]; - unsigned long w[16 / sizeof(unsigned long)]; -}; - -/* Randomness. Used by key generation and dsa signature creation. */ -typedef void nettle_random_func(void *ctx, - size_t length, uint8_t *dst); - -/* Progress report function, mainly for key generation. */ -typedef void nettle_progress_func(void *ctx, int c); - -/* Realloc function, used by struct nettle_buffer. */ -typedef void *nettle_realloc_func(void *ctx, void *p, size_t length); - -/* Ciphers */ -typedef void nettle_set_key_func(void *ctx, const uint8_t *key); - -/* For block ciphers, const context. */ -typedef void nettle_cipher_func(const void *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - - -/* Uses a void * for cipher contexts. Used for crypt operations where - the internal state changes during the encryption. */ -typedef void nettle_crypt_func(void *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -/* Hash algorithms */ -typedef void nettle_hash_init_func(void *ctx); -typedef void nettle_hash_update_func(void *ctx, - size_t length, - const uint8_t *src); -typedef void nettle_hash_digest_func(void *ctx, - size_t length, uint8_t *dst); - -/* ASCII armor codecs. NOTE: Experimental and subject to change. */ - -typedef size_t nettle_armor_length_func(size_t length); -typedef void nettle_armor_init_func(void *ctx); - -typedef size_t nettle_armor_encode_update_func(void *ctx, - char *dst, - size_t src_length, - const uint8_t *src); - -typedef size_t nettle_armor_encode_final_func(void *ctx, char *dst); - -typedef int nettle_armor_decode_update_func(void *ctx, - size_t *dst_length, - uint8_t *dst, - size_t src_length, - const char *src); - -typedef int nettle_armor_decode_final_func(void *ctx); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_TYPES_H */ diff --git a/include/nettle/pbkdf2.h b/include/nettle/pbkdf2.h deleted file mode 100644 index 7b1c4c9..0000000 --- a/include/nettle/pbkdf2.h +++ /dev/null @@ -1,85 +0,0 @@ -/* pbkdf2.h - - PKCS #5 password-based key derivation function PBKDF2, see RFC 2898. - - Copyright (C) 2012 Simon Josefsson - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_PBKDF2_H_INCLUDED -#define NETTLE_PBKDF2_H_INCLUDED - -#include "nettle-meta.h" - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Namespace mangling */ -#define pbkdf2 nettle_pbkdf2 -#define pbkdf2_hmac_sha1 nettle_pbkdf2_hmac_sha1 -#define pbkdf2_hmac_sha256 nettle_pbkdf2_hmac_sha256 - -void -pbkdf2 (void *mac_ctx, - nettle_hash_update_func *update, - nettle_hash_digest_func *digest, - size_t digest_size, unsigned iterations, - size_t salt_length, const uint8_t *salt, - size_t length, uint8_t *dst); - -#define PBKDF2(ctx, update, digest, digest_size, \ - iterations, salt_length, salt, length, dst) \ - (0 ? ((update)((ctx), 0, (uint8_t *) 0), \ - (digest)((ctx), 0, (uint8_t *) 0)) \ - : pbkdf2 ((ctx), \ - (nettle_hash_update_func *)(update), \ - (nettle_hash_digest_func *)(digest), \ - (digest_size), (iterations), \ - (salt_length), (salt), (length), (dst))) - -/* PBKDF2 with specific PRFs. */ - -void -pbkdf2_hmac_sha1 (size_t key_length, const uint8_t *key, - unsigned iterations, - size_t salt_length, const uint8_t *salt, - size_t length, uint8_t *dst); - -void -pbkdf2_hmac_sha256 (size_t key_length, const uint8_t *key, - unsigned iterations, - size_t salt_length, const uint8_t *salt, - size_t length, uint8_t *dst); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_PBKDF2_H_INCLUDED */ diff --git a/include/nettle/pgp.h b/include/nettle/pgp.h deleted file mode 100644 index 4c2fd84..0000000 --- a/include/nettle/pgp.h +++ /dev/null @@ -1,248 +0,0 @@ -/* pgp.h - - PGP related functions. - - Copyright (C) 2001, 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_PGP_H_INCLUDED -#define NETTLE_PGP_H_INCLUDED - -#include - -#include "nettle-types.h" -#include "bignum.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define pgp_put_uint32 nettle_pgp_put_uint32 -#define pgp_put_uint16 nettle_pgp_put_uint16 -#define pgp_put_mpi nettle_pgp_put_mpi -#define pgp_put_string nettle_pgp_put_string -#define pgp_put_length nettle_pgp_put_length -#define pgp_put_header nettle_pgp_put_header -#define pgp_put_header_length nettle_pgp_put_header_length -#define pgp_sub_packet_start nettle_pgp_sub_packet_start -#define pgp_put_sub_packet nettle_pgp_put_sub_packet -#define pgp_sub_packet_end nettle_pgp_sub_packet_end -#define pgp_put_public_rsa_key nettle_pgp_put_public_rsa_key -#define pgp_put_rsa_sha1_signature nettle_pgp_put_rsa_sha1_signature -#define pgp_put_userid nettle_pgp_put_userid -#define pgp_crc24 nettle_pgp_crc24 -#define pgp_armor nettle_pgp_armor - -struct nettle_buffer; -struct rsa_public_key; -struct rsa_private_key; -struct sha1_ctx; - -int -pgp_put_uint32(struct nettle_buffer *buffer, uint32_t i); - -int -pgp_put_uint16(struct nettle_buffer *buffer, unsigned i); - -int -pgp_put_mpi(struct nettle_buffer *buffer, const mpz_t x); - -int -pgp_put_string(struct nettle_buffer *buffer, - unsigned length, - const uint8_t *s); - -int -pgp_put_length(struct nettle_buffer *buffer, - unsigned length); - -int -pgp_put_header(struct nettle_buffer *buffer, - unsigned tag, unsigned length); - -void -pgp_put_header_length(struct nettle_buffer *buffer, - /* start of the header */ - unsigned start, - unsigned field_size); - -unsigned -pgp_sub_packet_start(struct nettle_buffer *buffer); - -int -pgp_put_sub_packet(struct nettle_buffer *buffer, - unsigned type, - unsigned length, - const uint8_t *data); - -void -pgp_sub_packet_end(struct nettle_buffer *buffer, unsigned start); - -int -pgp_put_public_rsa_key(struct nettle_buffer *, - const struct rsa_public_key *key, - time_t timestamp); - -int -pgp_put_rsa_sha1_signature(struct nettle_buffer *buffer, - const struct rsa_private_key *key, - const uint8_t *keyid, - unsigned type, - struct sha1_ctx *hash); - -int -pgp_put_userid(struct nettle_buffer *buffer, - unsigned length, - const uint8_t *name); - -uint32_t -pgp_crc24(unsigned length, const uint8_t *data); - -int -pgp_armor(struct nettle_buffer *buffer, - const char *tag, - unsigned length, - const uint8_t *data); - -/* Values that can be passed to pgp_put_header when the size of the - * length field, but not the length itself, is known. Also the minimum length - * for the given field size. */ -enum pgp_lengths - { - PGP_LENGTH_ONE_OCTET = 0, - PGP_LENGTH_TWO_OCTETS = 192, - PGP_LENGTH_FOUR_OCTETS = 8384, - }; - -enum pgp_public_key_algorithm - { - PGP_RSA = 1, - PGP_RSA_ENCRYPT = 2, - PGP_RSA_SIGN = 3, - PGP_EL_GAMAL_ENCRYPT = 16, - PGP_DSA = 17, - PGP_EL_GAMAL = 20, - }; - -enum pgp_symmetric_algorithm - { - PGP_PLAINTEXT = 0, - PGP_IDEA = 1, - PGP_3DES = 2, - PGP_CAST5 = 3, - PGP_BLOWFISH = 4, - PGP_SAFER_SK = 5, - PGP_AES128 = 7, - PGP_AES192 = 8, - PGP_AES256 = 9, - }; - -enum pgp_compression_algorithm - { - PGP_UNCOMPRESSED = 0, - PGP_ZIP = 1, - PGP_ZLIB = 2, - }; - -enum pgp_hash_algorithm - { - PGP_MD5 = 1, - PGP_SHA1 = 2, - PGP_RIPEMD = 3, - PGP_MD2 = 5, - PGP_TIGER192 = 6, - PGP_HAVAL = 7, - }; - -enum pgp_tag - { - PGP_TAG_PUBLIC_SESSION_KEY = 1, - PGP_TAG_SIGNATURE = 2, - PGP_TAG_SYMMETRIC_SESSION_KEY = 3, - PGP_TAG_ONE_PASS_SIGNATURE = 4, - PGP_TAG_SECRET_KEY = 5, - PGP_TAG_PUBLIC_KEY = 6, - PGP_TAG_SECRET_SUBKEY = 7, - PGP_TAG_COMPRESSED = 8, - PGP_TAG_ENCRYPTED = 9, - PGP_TAG_MARKER = 10, - PGP_TAG_LITERAL = 11, - PGP_TAG_TRUST = 12, - PGP_TAG_USERID = 13, - PGP_TAG_PUBLIC_SUBKEY = 14, - }; - -enum pgp_signature_type - { - PGP_SIGN_BINARY = 0, - PGP_SIGN_TEXT = 1, - PGP_SIGN_STANDALONE = 2, - PGP_SIGN_CERTIFICATION = 0x10, - PGP_SIGN_CERTIFICATION_PERSONA = 0x11, - PGP_SIGN_CERTIFICATION_CASUAL = 0x12, - PGP_SIGN_CERTIFICATION_POSITIVE = 0x13, - PGP_SIGN_SUBKEY = 0x18, - PGP_SIGN_KEY = 0x1f, - PGP_SIGN_REVOCATION = 0x20, - PGP_SIGN_REVOCATION_SUBKEY = 0x28, - PGP_SIGN_REVOCATION_CERTIFICATE = 0x30, - PGP_SIGN_TIMESTAMP = 0x40, - }; - -enum pgp_subpacket_tag - { - PGP_SUBPACKET_CREATION_TIME = 2, - PGP_SUBPACKET_SIGNATURE_EXPIRATION_TIME = 3, - PGP_SUBPACKET_EXPORTABLE_CERTIFICATION = 4, - PGP_SUBPACKET_TRUST_SIGNATURE = 5, - PGP_SUBPACKET_REGULAR_EXPRESSION = 6, - PGP_SUBPACKET_REVOCABLE = 7, - PGP_SUBPACKET_KEY_EXPIRATION_TIME = 9, - PGP_SUBPACKET_PLACEHOLDER = 10 , - PGP_SUBPACKET_PREFERRED_SYMMETRIC_ALGORITHMS = 11, - PGP_SUBPACKET_REVOCATION_KEY = 12, - PGP_SUBPACKET_ISSUER_KEY_ID = 16, - PGP_SUBPACKET_NOTATION_DATA = 20, - PGP_SUBPACKET_PREFERRED_HASH_ALGORITHMS = 21, - PGP_SUBPACKET_PREFERRED_COMPRESSION_ALGORITHMS = 22, - PGP_SUBPACKET_KEY_SERVER_PREFERENCES = 23, - PGP_SUBPACKET_PREFERRED_KEY_SERVER = 24, - PGP_SUBPACKET_PRIMARY_USER_ID = 25, - PGP_SUBPACKET_POLICY_URL = 26, - PGP_SUBPACKET_KEY_FLAGS = 27, - PGP_SUBPACKET_SIGNERS_USER_ID = 28, - PGP_SUBPACKET_REASON_FOR_REVOCATION = 29, - }; - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_PGP_H_INCLUDED */ diff --git a/include/nettle/pkcs1.h b/include/nettle/pkcs1.h deleted file mode 100644 index 70aa21f..0000000 --- a/include/nettle/pkcs1.h +++ /dev/null @@ -1,114 +0,0 @@ -/* pkcs1.h - - PKCS1 embedding. - - Copyright (C) 2003 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_PKCS1_H_INCLUDED -#define NETTLE_PKCS1_H_INCLUDED - -#include "nettle-types.h" -#include "bignum.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define _pkcs1_signature_prefix _nettle_pkcs1_signature_prefix -#define pkcs1_rsa_digest_encode nettle_pkcs1_rsa_digest_encode -#define pkcs1_rsa_md5_encode nettle_pkcs1_rsa_md5_encode -#define pkcs1_rsa_md5_encode_digest nettle_pkcs1_rsa_md5_encode_digest -#define pkcs1_rsa_sha1_encode nettle_pkcs1_rsa_sha1_encode -#define pkcs1_rsa_sha1_encode_digest nettle_pkcs1_rsa_sha1_encode_digest -#define pkcs1_rsa_sha256_encode nettle_pkcs1_rsa_sha256_encode -#define pkcs1_rsa_sha256_encode_digest nettle_pkcs1_rsa_sha256_encode_digest -#define pkcs1_rsa_sha512_encode nettle_pkcs1_rsa_sha512_encode -#define pkcs1_rsa_sha512_encode_digest nettle_pkcs1_rsa_sha512_encode_digest -#define pkcs1_encrypt nettle_pkcs1_encrypt -#define pkcs1_decrypt nettle_pkcs1_decrypt - -struct md5_ctx; -struct sha1_ctx; -struct sha256_ctx; -struct sha512_ctx; - -uint8_t * -_pkcs1_signature_prefix(unsigned key_size, - uint8_t *buffer, - unsigned id_size, - const uint8_t *id, - unsigned digest_size); - -int -pkcs1_encrypt (size_t key_size, - /* For padding */ - void *random_ctx, nettle_random_func *random, - size_t length, const uint8_t *message, - mpz_t m); - -int -pkcs1_decrypt (size_t key_size, - const mpz_t m, - size_t *length, uint8_t *message); - -int -pkcs1_rsa_digest_encode(mpz_t m, size_t key_size, - size_t di_length, const uint8_t *digest_info); - -int -pkcs1_rsa_md5_encode(mpz_t m, size_t length, struct md5_ctx *hash); - -int -pkcs1_rsa_md5_encode_digest(mpz_t m, size_t length, const uint8_t *digest); - -int -pkcs1_rsa_sha1_encode(mpz_t m, size_t length, struct sha1_ctx *hash); - -int -pkcs1_rsa_sha1_encode_digest(mpz_t m, size_t length, const uint8_t *digest); - -int -pkcs1_rsa_sha256_encode(mpz_t m, size_t length, struct sha256_ctx *hash); - -int -pkcs1_rsa_sha256_encode_digest(mpz_t m, size_t length, const uint8_t *digest); - -int -pkcs1_rsa_sha512_encode(mpz_t m, size_t length, struct sha512_ctx *hash); - -int -pkcs1_rsa_sha512_encode_digest(mpz_t m, size_t length, const uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_PKCS1_H_INCLUDED */ diff --git a/include/nettle/poly1305.h b/include/nettle/poly1305.h deleted file mode 100644 index eadc405..0000000 --- a/include/nettle/poly1305.h +++ /dev/null @@ -1,128 +0,0 @@ -/* poly1305.h - - Poly1305 message authentication code. - - Copyright (C) 2013 Nikos Mavrogiannopoulos - Copyright (C) 2013, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_POLY1305_H_INCLUDED -#define NETTLE_POLY1305_H_INCLUDED - -#include "aes.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define poly1305_set_key nettle_poly1305_set_key -#define poly1305_digest nettle_poly1305_digest -#define _poly1305_block _nettle_poly1305_block - -#define poly1305_aes_set_key nettle_poly1305_aes_set_key -#define poly1305_aes_set_nonce nettle_poly1305_aes_set_nonce -#define poly1305_aes_update nettle_poly1305_aes_update -#define poly1305_aes_digest nettle_poly1305_aes_digest - -/* Low level functions/macros for the poly1305 construction. */ - -#define POLY1305_DIGEST_SIZE 16 -#define POLY1305_BLOCK_SIZE 16 -#define POLY1305_KEY_SIZE 16 - -struct poly1305_ctx { - /* Key, 128-bit value and some cached multiples. */ - union - { - uint32_t r32[6]; - uint64_t r64[3]; - } r; - uint32_t s32[3]; - /* State, represented as words of 26, 32 or 64 bits, depending on - implementation. */ - /* High bits first, to maintain alignment. */ - uint32_t hh; - union - { - uint32_t h32[4]; - uint64_t h64[2]; - } h; -}; - -/* Low-level internal interface. */ -void poly1305_set_key(struct poly1305_ctx *ctx, const uint8_t key[POLY1305_KEY_SIZE]); -/* Extracts digest, and adds it to s, the encrypted nonce. */ -void poly1305_digest (struct poly1305_ctx *ctx, union nettle_block16 *s); -/* Internal function. Process one block. */ -void _poly1305_block (struct poly1305_ctx *ctx, const uint8_t *m, - unsigned high); - -/* poly1305-aes */ - -#define POLY1305_AES_KEY_SIZE 32 -#define POLY1305_AES_DIGEST_SIZE 16 -#define POLY1305_AES_NONCE_SIZE 16 - -struct poly1305_aes_ctx -{ - /* Keep aes context last, to make it possible to use a general - poly1305_update if other variants are added. */ - struct poly1305_ctx pctx; - uint8_t block[POLY1305_BLOCK_SIZE]; - unsigned index; - uint8_t nonce[POLY1305_BLOCK_SIZE]; - struct aes128_ctx aes; -}; - -/* Also initialize the nonce to zero. */ -void -poly1305_aes_set_key (struct poly1305_aes_ctx *ctx, const uint8_t *key); - -/* Optional, if not used, messages get incrementing nonces starting - from zero. */ -void -poly1305_aes_set_nonce (struct poly1305_aes_ctx *ctx, - const uint8_t *nonce); - -/* Update is not aes-specific, but since this is the only implemented - variant, we need no more general poly1305_update. */ -void -poly1305_aes_update (struct poly1305_aes_ctx *ctx, size_t length, const uint8_t *data); - -/* Also increments the nonce */ -void -poly1305_aes_digest (struct poly1305_aes_ctx *ctx, - size_t length, uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_POLY1305_H_INCLUDED */ diff --git a/include/nettle/pss-mgf1.h b/include/nettle/pss-mgf1.h deleted file mode 100644 index 4a29c10..0000000 --- a/include/nettle/pss-mgf1.h +++ /dev/null @@ -1,58 +0,0 @@ -/* pss-mgf1.h - - PKCS#1 mask generation function 1, used in RSA-PSS (RFC-3447). - - Copyright (C) 2017 Daiki Ueno - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_PSS_MGF1_H_INCLUDED -#define NETTLE_PSS_MGF1_H_INCLUDED - -#include "nettle-meta.h" - -#include "sha1.h" -#include "sha2.h" - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Namespace mangling */ -#define pss_mgf1 nettle_pss_mgf1 - -void -pss_mgf1(const void *seed, const struct nettle_hash *hash, - size_t length, uint8_t *mask); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_PSS_MGF1_H_INCLUDED */ diff --git a/include/nettle/pss.h b/include/nettle/pss.h deleted file mode 100644 index 7627cfe..0000000 --- a/include/nettle/pss.h +++ /dev/null @@ -1,65 +0,0 @@ -/* pss.h - - PKCS#1 RSA-PSS (RFC-3447). - - Copyright (C) 2017 Daiki Ueno - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_PSS_H_INCLUDED -#define NETTLE_PSS_H_INCLUDED - -#include "nettle-types.h" -#include "bignum.h" - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Namespace mangling */ -#define pss_encode_mgf1 nettle_pss_encode_mgf1 -#define pss_verify_mgf1 nettle_pss_verify_mgf1 - -int -pss_encode_mgf1(mpz_t m, size_t bits, - const struct nettle_hash *hash, - size_t salt_length, const uint8_t *salt, - const uint8_t *digest); - -int -pss_verify_mgf1(const mpz_t m, size_t bits, - const struct nettle_hash *hash, - size_t salt_length, - const uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_PSS_H_INCLUDED */ diff --git a/include/nettle/realloc.h b/include/nettle/realloc.h deleted file mode 100644 index 66d376f..0000000 --- a/include/nettle/realloc.h +++ /dev/null @@ -1,48 +0,0 @@ -/* realloc.h - - Copyright (C) 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_REALLOC_H_INCLUDED -#define NETTLE_REALLOC_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -nettle_realloc_func nettle_realloc; -nettle_realloc_func nettle_xrealloc; - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_REALLOC_H_INCLUDED */ diff --git a/include/nettle/ripemd160.h b/include/nettle/ripemd160.h deleted file mode 100644 index 80d1d8a..0000000 --- a/include/nettle/ripemd160.h +++ /dev/null @@ -1,88 +0,0 @@ -/* ripemd160.h - - RIPEMD-160 hash function. - - Copyright (C) 2011 Andres Mejia - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_RIPEMD160_H_INCLUDED -#define NETTLE_RIPEMD160_H_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -#include "nettle-types.h" - -/* Name mangling */ -#define ripemd160_init nettle_ripemd160_init -#define ripemd160_update nettle_ripemd160_update -#define ripemd160_digest nettle_ripemd160_digest - -/* RIPEMD160 */ - -#define RIPEMD160_DIGEST_SIZE 20 -#define RIPEMD160_BLOCK_SIZE 64 -/* For backwards compatibility */ -#define RIPEMD160_DATA_SIZE RIPEMD160_BLOCK_SIZE - -/* Digest is kept internally as 5 32-bit words. */ -#define _RIPEMD160_DIGEST_LENGTH 5 - -struct ripemd160_ctx -{ - uint32_t state[_RIPEMD160_DIGEST_LENGTH]; - uint64_t count; /* 64-bit block count */ - uint8_t block[RIPEMD160_BLOCK_SIZE]; - unsigned int index; -}; - -void -ripemd160_init(struct ripemd160_ctx *ctx); - -void -ripemd160_update(struct ripemd160_ctx *ctx, - size_t length, - const uint8_t *data); - -void -ripemd160_digest(struct ripemd160_ctx *ctx, - size_t length, - uint8_t *digest); - -/* Internal compression function. STATE points to 5 uint32_t words, - and DATA points to 64 bytes of input data, possibly unaligned. */ -void -_nettle_ripemd160_compress(uint32_t *state, const uint8_t *data); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_RIPEMD160_H_INCLUDED */ diff --git a/include/nettle/rsa.h b/include/nettle/rsa.h deleted file mode 100644 index 0aac6a2..0000000 --- a/include/nettle/rsa.h +++ /dev/null @@ -1,564 +0,0 @@ -/* rsa.h - - The RSA publickey algorithm. - - Copyright (C) 2001, 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_RSA_H_INCLUDED -#define NETTLE_RSA_H_INCLUDED - -#include "nettle-types.h" -#include "bignum.h" - -#include "md5.h" -#include "sha1.h" -#include "sha2.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define rsa_public_key_init nettle_rsa_public_key_init -#define rsa_public_key_clear nettle_rsa_public_key_clear -#define rsa_public_key_prepare nettle_rsa_public_key_prepare -#define rsa_private_key_init nettle_rsa_private_key_init -#define rsa_private_key_clear nettle_rsa_private_key_clear -#define rsa_private_key_prepare nettle_rsa_private_key_prepare -#define rsa_pkcs1_verify nettle_rsa_pkcs1_verify -#define rsa_pkcs1_sign nettle_rsa_pkcs1_sign -#define rsa_pkcs1_sign_tr nettle_rsa_pkcs1_sign_tr -#define rsa_md5_sign nettle_rsa_md5_sign -#define rsa_md5_sign_tr nettle_rsa_md5_sign_tr -#define rsa_md5_verify nettle_rsa_md5_verify -#define rsa_sha1_sign nettle_rsa_sha1_sign -#define rsa_sha1_sign_tr nettle_rsa_sha1_sign_tr -#define rsa_sha1_verify nettle_rsa_sha1_verify -#define rsa_sha256_sign nettle_rsa_sha256_sign -#define rsa_sha256_sign_tr nettle_rsa_sha256_sign_tr -#define rsa_sha256_verify nettle_rsa_sha256_verify -#define rsa_sha512_sign nettle_rsa_sha512_sign -#define rsa_sha512_sign_tr nettle_rsa_sha512_sign_tr -#define rsa_sha512_verify nettle_rsa_sha512_verify -#define rsa_md5_sign_digest nettle_rsa_md5_sign_digest -#define rsa_md5_sign_digest_tr nettle_rsa_md5_sign_digest_tr -#define rsa_md5_verify_digest nettle_rsa_md5_verify_digest -#define rsa_sha1_sign_digest nettle_rsa_sha1_sign_digest -#define rsa_sha1_sign_digest_tr nettle_rsa_sha1_sign_digest_tr -#define rsa_sha1_verify_digest nettle_rsa_sha1_verify_digest -#define rsa_sha256_sign_digest nettle_rsa_sha256_sign_digest -#define rsa_sha256_sign_digest_tr nettle_rsa_sha256_sign_digest_tr -#define rsa_sha256_verify_digest nettle_rsa_sha256_verify_digest -#define rsa_sha512_sign_digest nettle_rsa_sha512_sign_digest -#define rsa_sha512_sign_digest_tr nettle_rsa_sha512_sign_digest_tr -#define rsa_sha512_verify_digest nettle_rsa_sha512_verify_digest -#define rsa_pss_sha256_sign_digest_tr nettle_rsa_pss_sha256_sign_digest_tr -#define rsa_pss_sha256_verify_digest nettle_rsa_pss_sha256_verify_digest -#define rsa_pss_sha384_sign_digest_tr nettle_rsa_pss_sha384_sign_digest_tr -#define rsa_pss_sha384_verify_digest nettle_rsa_pss_sha384_verify_digest -#define rsa_pss_sha512_sign_digest_tr nettle_rsa_pss_sha512_sign_digest_tr -#define rsa_pss_sha512_verify_digest nettle_rsa_pss_sha512_verify_digest -#define rsa_encrypt nettle_rsa_encrypt -#define rsa_decrypt nettle_rsa_decrypt -#define rsa_decrypt_tr nettle_rsa_decrypt_tr -#define rsa_sec_decrypt nettle_rsa_sec_decrypt -#define rsa_compute_root nettle_rsa_compute_root -#define rsa_compute_root_tr nettle_rsa_compute_root_tr -#define rsa_generate_keypair nettle_rsa_generate_keypair -#define rsa_keypair_to_sexp nettle_rsa_keypair_to_sexp -#define rsa_keypair_from_sexp_alist nettle_rsa_keypair_from_sexp_alist -#define rsa_keypair_from_sexp nettle_rsa_keypair_from_sexp -#define rsa_public_key_from_der_iterator nettle_rsa_public_key_from_der_iterator -#define rsa_private_key_from_der_iterator nettle_rsa_private_key_from_der_iterator -#define rsa_keypair_from_der nettle_rsa_keypair_from_der -#define rsa_keypair_to_openpgp nettle_rsa_keypair_to_openpgp -#define _rsa_verify _nettle_rsa_verify -#define _rsa_verify_recover _nettle_rsa_verify_recover -#define _rsa_check_size _nettle_rsa_check_size -#define _rsa_blind _nettle_rsa_blind -#define _rsa_unblind _nettle_rsa_unblind - -/* This limit is somewhat arbitrary. Technically, the smallest modulo - which makes sense at all is 15 = 3*5, phi(15) = 8, size 4 bits. But - for ridiculously small keys, not all odd e are possible (e.g., for - 5 bits, the only possible modulo is 3*7 = 21, phi(21) = 12, and e = - 3 don't work). The smallest size that makes sense with pkcs#1, and - which allows RSA encryption of one byte messages, is 12 octets, 89 - bits. */ - -#define RSA_MINIMUM_N_OCTETS 12 -#define RSA_MINIMUM_N_BITS (8*RSA_MINIMUM_N_OCTETS - 7) - -struct rsa_public_key -{ - /* Size of the modulo, in octets. This is also the size of all - * signatures that are created or verified with this key. */ - size_t size; - - /* Modulo */ - mpz_t n; - - /* Public exponent */ - mpz_t e; -}; - -struct rsa_private_key -{ - size_t size; - - /* d is filled in by the key generation function; otherwise it's - * completely unused. */ - mpz_t d; - - /* The two factors */ - mpz_t p; mpz_t q; - - /* d % (p-1), i.e. a e = 1 (mod (p-1)) */ - mpz_t a; - - /* d % (q-1), i.e. b e = 1 (mod (q-1)) */ - mpz_t b; - - /* modular inverse of q , i.e. c q = 1 (mod p) */ - mpz_t c; -}; - -/* Signing a message works as follows: - * - * Store the private key in a rsa_private_key struct. - * - * Call rsa_private_key_prepare. This initializes the size attribute - * to the length of a signature. - * - * Initialize a hashing context, by callling - * md5_init - * - * Hash the message by calling - * md5_update - * - * Create the signature by calling - * rsa_md5_sign - * - * The signature is represented as a mpz_t bignum. This call also - * resets the hashing context. - * - * When done with the key and signature, don't forget to call - * mpz_clear. - */ - -/* Calls mpz_init to initialize bignum storage. */ -void -rsa_public_key_init(struct rsa_public_key *key); - -/* Calls mpz_clear to deallocate bignum storage. */ -void -rsa_public_key_clear(struct rsa_public_key *key); - -int -rsa_public_key_prepare(struct rsa_public_key *key); - -/* Calls mpz_init to initialize bignum storage. */ -void -rsa_private_key_init(struct rsa_private_key *key); - -/* Calls mpz_clear to deallocate bignum storage. */ -void -rsa_private_key_clear(struct rsa_private_key *key); - -int -rsa_private_key_prepare(struct rsa_private_key *key); - - -/* PKCS#1 style signatures */ -int -rsa_pkcs1_sign(const struct rsa_private_key *key, - size_t length, const uint8_t *digest_info, - mpz_t s); - -int -rsa_pkcs1_sign_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - size_t length, const uint8_t *digest_info, - mpz_t s); -int -rsa_pkcs1_verify(const struct rsa_public_key *key, - size_t length, const uint8_t *digest_info, - const mpz_t signature); - -int -rsa_md5_sign(const struct rsa_private_key *key, - struct md5_ctx *hash, - mpz_t signature); - -int -rsa_md5_sign_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - struct md5_ctx *hash, mpz_t s); - - -int -rsa_md5_verify(const struct rsa_public_key *key, - struct md5_ctx *hash, - const mpz_t signature); - -int -rsa_sha1_sign(const struct rsa_private_key *key, - struct sha1_ctx *hash, - mpz_t signature); - -int -rsa_sha1_sign_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - struct sha1_ctx *hash, - mpz_t s); - -int -rsa_sha1_verify(const struct rsa_public_key *key, - struct sha1_ctx *hash, - const mpz_t signature); - -int -rsa_sha256_sign(const struct rsa_private_key *key, - struct sha256_ctx *hash, - mpz_t signature); - -int -rsa_sha256_sign_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - struct sha256_ctx *hash, - mpz_t s); - -int -rsa_sha256_verify(const struct rsa_public_key *key, - struct sha256_ctx *hash, - const mpz_t signature); - -int -rsa_sha512_sign(const struct rsa_private_key *key, - struct sha512_ctx *hash, - mpz_t signature); - -int -rsa_sha512_sign_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - struct sha512_ctx *hash, - mpz_t s); - -int -rsa_sha512_verify(const struct rsa_public_key *key, - struct sha512_ctx *hash, - const mpz_t signature); - -/* Variants taking the digest as argument. */ -int -rsa_md5_sign_digest(const struct rsa_private_key *key, - const uint8_t *digest, - mpz_t s); - -int -rsa_md5_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - const uint8_t *digest, mpz_t s); - -int -rsa_md5_verify_digest(const struct rsa_public_key *key, - const uint8_t *digest, - const mpz_t signature); - -int -rsa_sha1_sign_digest(const struct rsa_private_key *key, - const uint8_t *digest, - mpz_t s); - -int -rsa_sha1_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - const uint8_t *digest, - mpz_t s); - -int -rsa_sha1_verify_digest(const struct rsa_public_key *key, - const uint8_t *digest, - const mpz_t signature); - -int -rsa_sha256_sign_digest(const struct rsa_private_key *key, - const uint8_t *digest, - mpz_t s); - -int -rsa_sha256_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - const uint8_t *digest, - mpz_t s); - -int -rsa_sha256_verify_digest(const struct rsa_public_key *key, - const uint8_t *digest, - const mpz_t signature); - -int -rsa_sha512_sign_digest(const struct rsa_private_key *key, - const uint8_t *digest, - mpz_t s); - -int -rsa_sha512_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - const uint8_t *digest, - mpz_t s); - -int -rsa_sha512_verify_digest(const struct rsa_public_key *key, - const uint8_t *digest, - const mpz_t signature); - -/* PSS style signatures */ -int -rsa_pss_sha256_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - size_t salt_length, const uint8_t *salt, - const uint8_t *digest, - mpz_t s); - -int -rsa_pss_sha256_verify_digest(const struct rsa_public_key *key, - size_t salt_length, - const uint8_t *digest, - const mpz_t signature); - -int -rsa_pss_sha384_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - size_t salt_length, const uint8_t *salt, - const uint8_t *digest, - mpz_t s); - -int -rsa_pss_sha384_verify_digest(const struct rsa_public_key *key, - size_t salt_length, - const uint8_t *digest, - const mpz_t signature); - -int -rsa_pss_sha512_sign_digest_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - size_t salt_length, const uint8_t *salt, - const uint8_t *digest, - mpz_t s); - -int -rsa_pss_sha512_verify_digest(const struct rsa_public_key *key, - size_t salt_length, - const uint8_t *digest, - const mpz_t signature); - - -/* RSA encryption, using PKCS#1 */ -/* These functions uses the v1.5 padding. What should the v2 (OAEP) - * functions be called? */ - -/* Returns 1 on success, 0 on failure, which happens if the - * message is too long for the key. */ -int -rsa_encrypt(const struct rsa_public_key *key, - /* For padding */ - void *random_ctx, nettle_random_func *random, - size_t length, const uint8_t *cleartext, - mpz_t cipher); - -/* Message must point to a buffer of size *LENGTH. KEY->size is enough - * for all valid messages. On success, *LENGTH is updated to reflect - * the actual length of the message. Returns 1 on success, 0 on - * failure, which happens if decryption failed or if the message - * didn't fit. */ -int -rsa_decrypt(const struct rsa_private_key *key, - size_t *length, uint8_t *cleartext, - const mpz_t ciphertext); - -/* Timing-resistant version, using randomized RSA blinding. */ -int -rsa_decrypt_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - size_t *length, uint8_t *message, - const mpz_t gibberish); - -/* like rsa_decrypt_tr but with additional side-channel resistance. - * NOTE: the length of the final message must be known in advance. */ -int -rsa_sec_decrypt(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - size_t length, uint8_t *message, - const mpz_t gibberish); - -/* Compute x, the e:th root of m. Calling it with x == m is allowed. */ -void -rsa_compute_root(const struct rsa_private_key *key, - mpz_t x, const mpz_t m); - -/* Safer variant, using RSA blinding, and checking the result after - CRT. */ -int -rsa_compute_root_tr(const struct rsa_public_key *pub, - const struct rsa_private_key *key, - void *random_ctx, nettle_random_func *random, - mpz_t x, const mpz_t m); - -/* Key generation */ - -/* Note that the key structs must be initialized first. */ -int -rsa_generate_keypair(struct rsa_public_key *pub, - struct rsa_private_key *key, - - void *random_ctx, nettle_random_func *random, - void *progress_ctx, nettle_progress_func *progress, - - /* Desired size of modulo, in bits */ - unsigned n_size, - - /* Desired size of public exponent, in bits. If - * zero, the passed in value pub->e is used. */ - unsigned e_size); - - -#define RSA_SIGN(key, algorithm, ctx, length, data, signature) ( \ - algorithm##_update(ctx, length, data), \ - rsa_##algorithm##_sign(key, ctx, signature) \ -) - -#define RSA_VERIFY(key, algorithm, ctx, length, data, signature) ( \ - algorithm##_update(ctx, length, data), \ - rsa_##algorithm##_verify(key, ctx, signature) \ -) - - -/* Keys in sexp form. */ - -struct nettle_buffer; - -/* Generates a public-key expression if PRIV is NULL .*/ -int -rsa_keypair_to_sexp(struct nettle_buffer *buffer, - const char *algorithm_name, /* NULL means "rsa" */ - const struct rsa_public_key *pub, - const struct rsa_private_key *priv); - -struct sexp_iterator; - -int -rsa_keypair_from_sexp_alist(struct rsa_public_key *pub, - struct rsa_private_key *priv, - unsigned limit, - struct sexp_iterator *i); - -/* If PRIV is NULL, expect a public-key expression. If PUB is NULL, - * expect a private key expression and ignore the parts not needed for - * the public key. */ -/* Keys must be initialized before calling this function, as usual. */ -int -rsa_keypair_from_sexp(struct rsa_public_key *pub, - struct rsa_private_key *priv, - unsigned limit, - size_t length, const uint8_t *expr); - - -/* Keys in PKCS#1 format. */ -struct asn1_der_iterator; - -int -rsa_public_key_from_der_iterator(struct rsa_public_key *pub, - unsigned limit, - struct asn1_der_iterator *i); - -int -rsa_private_key_from_der_iterator(struct rsa_public_key *pub, - struct rsa_private_key *priv, - unsigned limit, - struct asn1_der_iterator *i); - -/* For public keys, use PRIV == NULL */ -int -rsa_keypair_from_der(struct rsa_public_key *pub, - struct rsa_private_key *priv, - unsigned limit, - size_t length, const uint8_t *data); - -/* OpenPGP format. Experimental interface, subject to change. */ -int -rsa_keypair_to_openpgp(struct nettle_buffer *buffer, - const struct rsa_public_key *pub, - const struct rsa_private_key *priv, - /* A single user id. NUL-terminated utf8. */ - const char *userid); - -/* Internal functions. */ -int -_rsa_verify(const struct rsa_public_key *key, - const mpz_t m, - const mpz_t s); - -int -_rsa_verify_recover(const struct rsa_public_key *key, - mpz_t m, - const mpz_t s); - -size_t -_rsa_check_size(mpz_t n); - -/* _rsa_blind and _rsa_unblind are deprecated, unused in the library, - and will likely be removed with the next ABI break. */ -void -_rsa_blind (const struct rsa_public_key *pub, - void *random_ctx, nettle_random_func *random, - mpz_t c, mpz_t ri); -void -_rsa_unblind (const struct rsa_public_key *pub, mpz_t c, const mpz_t ri); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_RSA_H_INCLUDED */ diff --git a/include/nettle/salsa20.h b/include/nettle/salsa20.h deleted file mode 100644 index 4301988..0000000 --- a/include/nettle/salsa20.h +++ /dev/null @@ -1,114 +0,0 @@ -/* salsa20.h - - The Salsa20 stream cipher. - - Copyright (C) 2012 Simon Josefsson - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_SALSA20_H_INCLUDED -#define NETTLE_SALSA20_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define salsa20_set_key nettle_salsa20_set_key -#define salsa20_128_set_key nettle_salsa20_128_set_key -#define salsa20_256_set_key nettle_salsa20_256_set_key -#define salsa20_set_nonce nettle_salsa20_set_nonce -#define salsa20_crypt nettle_salsa20_crypt -#define _salsa20_core _nettle_salsa20_core - -#define salsa20r12_crypt nettle_salsa20r12_crypt - -/* Alias for backwards compatibility */ -#define salsa20_set_iv nettle_salsa20_set_nonce - -/* In octets.*/ -#define SALSA20_128_KEY_SIZE 16 -#define SALSA20_256_KEY_SIZE 32 -#define SALSA20_BLOCK_SIZE 64 -#define SALSA20_NONCE_SIZE 8 -#define SALSA20_IV_SIZE SALSA20_NONCE_SIZE - -/* Aliases */ -#define SALSA20_MIN_KEY_SIZE 16 -#define SALSA20_MAX_KEY_SIZE 32 -#define SALSA20_KEY_SIZE 32 - -#define _SALSA20_INPUT_LENGTH 16 - -struct salsa20_ctx -{ - /* Indices 1-4 and 11-14 holds the key (two identical copies for the - shorter key size), indices 0, 5, 10, 15 are constant, indices 6, 7 - are the IV, and indices 8, 9 are the block counter: - - C K K K - K C I I - B B C K - K K K C - */ - uint32_t input[_SALSA20_INPUT_LENGTH]; -}; - -void -salsa20_128_set_key(struct salsa20_ctx *ctx, const uint8_t *key); -void -salsa20_256_set_key(struct salsa20_ctx *ctx, const uint8_t *key); - -void -salsa20_set_key(struct salsa20_ctx *ctx, - size_t length, const uint8_t *key); - -void -salsa20_set_nonce(struct salsa20_ctx *ctx, const uint8_t *nonce); - -void -salsa20_crypt(struct salsa20_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -void -salsa20r12_crypt(struct salsa20_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -void -_salsa20_core(uint32_t *dst, const uint32_t *src, unsigned rounds); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_SALSA20_H_INCLUDED */ diff --git a/include/nettle/serpent.h b/include/nettle/serpent.h deleted file mode 100644 index f1ab4b9..0000000 --- a/include/nettle/serpent.h +++ /dev/null @@ -1,102 +0,0 @@ -/* serpent.h - - The serpent block cipher. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* Serpent is a 128-bit block cipher that accepts a key size of 256 - * bits, designed by Ross Anderson, Eli Biham, and Lars Knudsen. See - * http://www.cl.cam.ac.uk/~rja14/serpent.html for details. - */ - -#ifndef NETTLE_SERPENT_H_INCLUDED -#define NETTLE_SERPENT_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define serpent_set_key nettle_serpent_set_key -#define serpent128_set_key nettle_serpent128_set_key -#define serpent192_set_key nettle_serpent192_set_key -#define serpent256_set_key nettle_serpent256_set_key -#define serpent_encrypt nettle_serpent_encrypt -#define serpent_decrypt nettle_serpent_decrypt - -#define SERPENT_BLOCK_SIZE 16 - -/* Other key lengths are possible, but the design of Serpent makes - * smaller key lengths quite pointless; they cheated with the AES - * requirements, using a 256-bit key length exclusively and just - * padding it out if the desired key length was less, so there really - * is no advantage to using key lengths less than 256 bits. */ -#define SERPENT_KEY_SIZE 32 - -/* Allow keys of size 128 <= bits <= 256 */ - -#define SERPENT_MIN_KEY_SIZE 16 -#define SERPENT_MAX_KEY_SIZE 32 - -#define SERPENT128_KEY_SIZE 16 -#define SERPENT192_KEY_SIZE 24 -#define SERPENT256_KEY_SIZE 32 - -struct serpent_ctx -{ - uint32_t keys[33][4]; /* key schedule */ -}; - -void -serpent_set_key(struct serpent_ctx *ctx, - size_t length, const uint8_t *key); -void -serpent128_set_key(struct serpent_ctx *ctx, const uint8_t *key); -void -serpent192_set_key(struct serpent_ctx *ctx, const uint8_t *key); -void -serpent256_set_key(struct serpent_ctx *ctx, const uint8_t *key); - -void -serpent_encrypt(const struct serpent_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -serpent_decrypt(const struct serpent_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_SERPENT_H_INCLUDED */ diff --git a/include/nettle/sexp.h b/include/nettle/sexp.h deleted file mode 100644 index f6b3df6..0000000 --- a/include/nettle/sexp.h +++ /dev/null @@ -1,213 +0,0 @@ -/* sexp.h - - Parsing s-expressions. - Copyright (C) 2002 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_SEXP_H_INCLUDED -#define NETTLE_SEXP_H_INCLUDED - -#include -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define sexp_iterator_first nettle_sexp_iterator_first -#define sexp_transport_iterator_first nettle_sexp_transport_iterator_first -#define sexp_iterator_next nettle_sexp_iterator_next -#define sexp_iterator_enter_list nettle_sexp_iterator_enter_list -#define sexp_iterator_exit_list nettle_sexp_iterator_exit_list -#define sexp_iterator_subexpr nettle_sexp_iterator_subexpr -#define sexp_iterator_get_uint32 nettle_sexp_iterator_get_uint32 -#define sexp_iterator_check_type nettle_sexp_iterator_check_type -#define sexp_iterator_check_types nettle_sexp_iterator_check_types -#define sexp_iterator_assoc nettle_sexp_iterator_assoc -#define sexp_format nettle_sexp_format -#define sexp_vformat nettle_sexp_vformat -#define sexp_transport_format nettle_sexp_transport_format -#define sexp_transport_vformat nettle_sexp_transport_vformat -#define sexp_token_chars nettle_sexp_token_chars - -enum sexp_type - { SEXP_ATOM, SEXP_LIST, SEXP_END }; - -struct sexp_iterator -{ - size_t length; - const uint8_t *buffer; - - /* Points at the start of the current sub expression. */ - size_t start; - /* If type is SEXP_LIST, pos points at the start of the current - * element. Otherwise, it points at the end. */ - size_t pos; - unsigned level; - - enum sexp_type type; - - size_t display_length; - const uint8_t *display; - - size_t atom_length; - const uint8_t *atom; -}; - - -/* All these functions return 1 on success, 0 on failure */ - -/* Initializes the iterator. */ -int -sexp_iterator_first(struct sexp_iterator *iterator, - size_t length, const uint8_t *input); - -/* NOTE: Decodes the input string in place */ -int -sexp_transport_iterator_first(struct sexp_iterator *iterator, - size_t length, uint8_t *input); - -int -sexp_iterator_next(struct sexp_iterator *iterator); - -/* Current element must be a list. */ -int -sexp_iterator_enter_list(struct sexp_iterator *iterator); - -/* Skips the rest of the current list */ -int -sexp_iterator_exit_list(struct sexp_iterator *iterator); - -#if 0 -/* Skips out of as many lists as necessary to get back to the given - * level. */ -int -sexp_iterator_exit_lists(struct sexp_iterator *iterator, - unsigned level); -#endif - -/* Gets start and length of the current subexpression. Implies - * sexp_iterator_next. */ -const uint8_t * -sexp_iterator_subexpr(struct sexp_iterator *iterator, - size_t *length); - -int -sexp_iterator_get_uint32(struct sexp_iterator *iterator, - uint32_t *x); - - -/* Checks the type of the current expression, which should be a list - * - * ( ...) - */ -int -sexp_iterator_check_type(struct sexp_iterator *iterator, - const char *type); - -const char * -sexp_iterator_check_types(struct sexp_iterator *iterator, - unsigned ntypes, - const char * const *types); - -/* Current element must be a list. Looks up element of type - * - * (key rest...) - * - * For a matching key, the corresponding iterator is initialized - * pointing at the start of REST. - * - * On success, exits the current list. - */ -int -sexp_iterator_assoc(struct sexp_iterator *iterator, - unsigned nkeys, - const char * const *keys, - struct sexp_iterator *values); - - -/* Output functions. What is a reasonable API for this? It seems - * ugly to have to reimplement string streams. */ - -/* Declared for real in buffer.h */ -struct nettle_buffer; - -/* Returns the number of output characters, or 0 on out of memory. If - * buffer == NULL, just compute length. - * - * Format strings can contained matched parentheses, tokens ("foo" in - * the format string is formatted as "3:foo"), whitespace (which - * separates tokens but is otherwise ignored) and the following - * formatting specifiers: - * - * %s String represented as size_t length, const uint8_t *data. - * - * %t Optional display type, represented as - * size_t display_length, const uint8_t *display, - * display == NULL means no display type. - * - * %i Non-negative small integer, uint32_t. - * - * %b Non-negative bignum, mpz_t. - * - * %l Literal string (no length added), typically a balanced - * subexpression. Represented as size_t length, const uint8_t - * *data. - * - * %(, %) Allows insertion of unbalanced parenthesis. - * - * Modifiers: - * - * %0 For %s, %t and %l, says that there's no length argument, - * instead the string is NUL-terminated, and there's only one - * const uint8_t * argument. - */ - -size_t -sexp_format(struct nettle_buffer *buffer, - const char *format, ...); - -size_t -sexp_vformat(struct nettle_buffer *buffer, - const char *format, va_list args); - -size_t -sexp_transport_format(struct nettle_buffer *buffer, - const char *format, ...); - -size_t -sexp_transport_vformat(struct nettle_buffer *buffer, - const char *format, va_list args); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_SEXP_H_INCLUDED */ diff --git a/include/nettle/sha.h b/include/nettle/sha.h deleted file mode 100644 index 7d4afde..0000000 --- a/include/nettle/sha.h +++ /dev/null @@ -1,42 +0,0 @@ -/* sha.h - - This file is deprecated, and provided only for backwards - compatibility with earlier versions of Nettle. Please use sha1.h - and/or sha2.h instead. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_SHA_H_INCLUDED -#define NETTLE_SHA_H_INCLUDED - -#include "sha1.h" -#include "sha2.h" - -#endif /* NETTLE_SHA_H_INCLUDED */ diff --git a/include/nettle/sha1.h b/include/nettle/sha1.h deleted file mode 100644 index 7500d0c..0000000 --- a/include/nettle/sha1.h +++ /dev/null @@ -1,88 +0,0 @@ -/* sha1.h - - The sha1 hash function. - - Copyright (C) 2001, 2012 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_SHA1_H_INCLUDED -#define NETTLE_SHA1_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define sha1_init nettle_sha1_init -#define sha1_update nettle_sha1_update -#define sha1_digest nettle_sha1_digest - -/* SHA1 */ - -#define SHA1_DIGEST_SIZE 20 -#define SHA1_BLOCK_SIZE 64 -/* For backwards compatibility */ -#define SHA1_DATA_SIZE SHA1_BLOCK_SIZE - -/* Digest is kept internally as 5 32-bit words. */ -#define _SHA1_DIGEST_LENGTH 5 - -struct sha1_ctx -{ - uint32_t state[_SHA1_DIGEST_LENGTH]; /* State variables */ - uint64_t count; /* 64-bit block count */ - uint8_t block[SHA1_BLOCK_SIZE]; /* SHA1 data buffer */ - unsigned int index; /* index into buffer */ -}; - -void -sha1_init(struct sha1_ctx *ctx); - -void -sha1_update(struct sha1_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha1_digest(struct sha1_ctx *ctx, - size_t length, - uint8_t *digest); - -/* Internal compression function. STATE points to 5 uint32_t words, - and DATA points to 64 bytes of input data, possibly unaligned. */ -void -_nettle_sha1_compress(uint32_t *state, const uint8_t *data); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_SHA1_H_INCLUDED */ diff --git a/include/nettle/sha2.h b/include/nettle/sha2.h deleted file mode 100644 index 6537c0e..0000000 --- a/include/nettle/sha2.h +++ /dev/null @@ -1,206 +0,0 @@ -/* sha2.h - - The sha2 family of hash functions. - - Copyright (C) 2001, 2012 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_SHA2_H_INCLUDED -#define NETTLE_SHA2_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define sha224_init nettle_sha224_init -#define sha224_digest nettle_sha224_digest -#define sha256_init nettle_sha256_init -#define sha256_update nettle_sha256_update -#define sha256_digest nettle_sha256_digest -#define sha384_init nettle_sha384_init -#define sha384_digest nettle_sha384_digest -#define sha512_init nettle_sha512_init -#define sha512_update nettle_sha512_update -#define sha512_digest nettle_sha512_digest -#define sha512_224_init nettle_sha512_224_init -#define sha512_224_digest nettle_sha512_224_digest -#define sha512_256_init nettle_sha512_256_init -#define sha512_256_digest nettle_sha512_256_digest - -/* For backwards compatibility */ -#define SHA224_DATA_SIZE SHA256_BLOCK_SIZE -#define SHA256_DATA_SIZE SHA256_BLOCK_SIZE -#define SHA512_DATA_SIZE SHA512_BLOCK_SIZE -#define SHA384_DATA_SIZE SHA512_BLOCK_SIZE - -/* SHA256 */ - -#define SHA256_DIGEST_SIZE 32 -#define SHA256_BLOCK_SIZE 64 - -/* Digest is kept internally as 8 32-bit words. */ -#define _SHA256_DIGEST_LENGTH 8 - -struct sha256_ctx -{ - uint32_t state[_SHA256_DIGEST_LENGTH]; /* State variables */ - uint64_t count; /* 64-bit block count */ - uint8_t block[SHA256_BLOCK_SIZE]; /* SHA256 data buffer */ - unsigned int index; /* index into buffer */ -}; - -void -sha256_init(struct sha256_ctx *ctx); - -void -sha256_update(struct sha256_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha256_digest(struct sha256_ctx *ctx, - size_t length, - uint8_t *digest); - -/* Internal compression function. STATE points to 8 uint32_t words, - DATA points to 64 bytes of input data, possibly unaligned, and K - points to the table of constants. */ -void -_nettle_sha256_compress(uint32_t *state, const uint8_t *data, const uint32_t *k); - - -/* SHA224, a truncated SHA256 with different initial state. */ - -#define SHA224_DIGEST_SIZE 28 -#define SHA224_BLOCK_SIZE SHA256_BLOCK_SIZE -#define sha224_ctx sha256_ctx - -void -sha224_init(struct sha256_ctx *ctx); - -#define sha224_update nettle_sha256_update - -void -sha224_digest(struct sha256_ctx *ctx, - size_t length, - uint8_t *digest); - - -/* SHA512 */ - -#define SHA512_DIGEST_SIZE 64 -#define SHA512_BLOCK_SIZE 128 - -/* Digest is kept internally as 8 64-bit words. */ -#define _SHA512_DIGEST_LENGTH 8 - -struct sha512_ctx -{ - uint64_t state[_SHA512_DIGEST_LENGTH]; /* State variables */ - uint64_t count_low, count_high; /* 128-bit block count */ - uint8_t block[SHA512_BLOCK_SIZE]; /* SHA512 data buffer */ - unsigned int index; /* index into buffer */ -}; - -void -sha512_init(struct sha512_ctx *ctx); - -void -sha512_update(struct sha512_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha512_digest(struct sha512_ctx *ctx, - size_t length, - uint8_t *digest); - -/* Internal compression function. STATE points to 8 uint64_t words, - DATA points to 128 bytes of input data, possibly unaligned, and K - points to the table of constants. */ -void -_nettle_sha512_compress(uint64_t *state, const uint8_t *data, const uint64_t *k); - - -/* SHA384, a truncated SHA512 with different initial state. */ - -#define SHA384_DIGEST_SIZE 48 -#define SHA384_BLOCK_SIZE SHA512_BLOCK_SIZE -#define sha384_ctx sha512_ctx - -void -sha384_init(struct sha512_ctx *ctx); - -#define sha384_update nettle_sha512_update - -void -sha384_digest(struct sha512_ctx *ctx, - size_t length, - uint8_t *digest); - - -/* SHA512_224 and SHA512_256, two truncated versions of SHA512 - with different initial states. */ - -#define SHA512_224_DIGEST_SIZE 28 -#define SHA512_224_BLOCK_SIZE SHA512_BLOCK_SIZE -#define sha512_224_ctx sha512_ctx - -void -sha512_224_init(struct sha512_224_ctx *ctx); - -#define sha512_224_update nettle_sha512_update - -void -sha512_224_digest(struct sha512_224_ctx *ctx, - size_t length, - uint8_t *digest); - -#define SHA512_256_DIGEST_SIZE 32 -#define SHA512_256_BLOCK_SIZE SHA512_BLOCK_SIZE -#define sha512_256_ctx sha512_ctx - -void -sha512_256_init(struct sha512_256_ctx *ctx); - -#define sha512_256_update nettle_sha512_update - -void -sha512_256_digest(struct sha512_256_ctx *ctx, - size_t length, - uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_SHA2_H_INCLUDED */ diff --git a/include/nettle/sha3.h b/include/nettle/sha3.h deleted file mode 100644 index 0c65537..0000000 --- a/include/nettle/sha3.h +++ /dev/null @@ -1,193 +0,0 @@ -/* sha3.h - - The sha3 hash function (aka Keccak). - - Copyright (C) 2012 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_SHA3_H_INCLUDED -#define NETTLE_SHA3_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define sha3_permute nettle_sha3_permute -#define _sha3_update _nettle_sha3_update -#define _sha3_pad _nettle_sha3_pad -#define sha3_224_init nettle_sha3_224_init -#define sha3_224_update nettle_sha3_224_update -#define sha3_224_digest nettle_sha3_224_digest -#define sha3_256_init nettle_sha3_256_init -#define sha3_256_update nettle_sha3_256_update -#define sha3_256_digest nettle_sha3_256_digest -#define sha3_384_init nettle_sha3_384_init -#define sha3_384_update nettle_sha3_384_update -#define sha3_384_digest nettle_sha3_384_digest -#define sha3_512_init nettle_sha3_512_init -#define sha3_512_update nettle_sha3_512_update -#define sha3_512_digest nettle_sha3_512_digest - -/* Indicates that SHA3 is the NIST FIPS 202 version. */ -#define NETTLE_SHA3_FIPS202 1 - -/* The sha3 state is a 5x5 matrix of 64-bit words. In the notation of - Keccak description, S[x,y] is element x + 5*y, so if x is - interpreted as the row index and y the column index, it is stored - in column-major order. */ -#define SHA3_STATE_LENGTH 25 - -/* The "width" is 1600 bits or 200 octets */ -struct sha3_state -{ - uint64_t a[SHA3_STATE_LENGTH]; -}; - -void -sha3_permute (struct sha3_state *state); - -unsigned -_sha3_update (struct sha3_state *state, - unsigned block_size, uint8_t *block, - unsigned pos, - size_t length, const uint8_t *data); -void -_sha3_pad (struct sha3_state *state, - unsigned block_size, uint8_t *block, unsigned pos); - -/* The "capacity" is set to 2*(digest size), 512 bits or 64 octets. - The "rate" is the width - capacity, or width - 2 * (digest - size). */ - -#define SHA3_224_DIGEST_SIZE 28 -#define SHA3_224_BLOCK_SIZE 144 - -#define SHA3_256_DIGEST_SIZE 32 -#define SHA3_256_BLOCK_SIZE 136 - -#define SHA3_384_DIGEST_SIZE 48 -#define SHA3_384_BLOCK_SIZE 104 - -#define SHA3_512_DIGEST_SIZE 64 -#define SHA3_512_BLOCK_SIZE 72 - -/* For backwards compatibility */ -#define SHA3_224_DATA_SIZE SHA3_224_BLOCK_SIZE -#define SHA3_256_DATA_SIZE SHA3_256_BLOCK_SIZE -#define SHA3_384_DATA_SIZE SHA3_384_BLOCK_SIZE -#define SHA3_512_DATA_SIZE SHA3_512_BLOCK_SIZE - -struct sha3_224_ctx -{ - struct sha3_state state; - unsigned index; - uint8_t block[SHA3_224_BLOCK_SIZE]; -}; - -void -sha3_224_init (struct sha3_224_ctx *ctx); - -void -sha3_224_update (struct sha3_224_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha3_224_digest(struct sha3_224_ctx *ctx, - size_t length, - uint8_t *digest); - -struct sha3_256_ctx -{ - struct sha3_state state; - unsigned index; - uint8_t block[SHA3_256_BLOCK_SIZE]; -}; - -void -sha3_256_init (struct sha3_256_ctx *ctx); - -void -sha3_256_update (struct sha3_256_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha3_256_digest(struct sha3_256_ctx *ctx, - size_t length, - uint8_t *digest); - -struct sha3_384_ctx -{ - struct sha3_state state; - unsigned index; - uint8_t block[SHA3_384_BLOCK_SIZE]; -}; - -void -sha3_384_init (struct sha3_384_ctx *ctx); - -void -sha3_384_update (struct sha3_384_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha3_384_digest(struct sha3_384_ctx *ctx, - size_t length, - uint8_t *digest); - -struct sha3_512_ctx -{ - struct sha3_state state; - unsigned index; - uint8_t block[SHA3_512_BLOCK_SIZE]; -}; - -void -sha3_512_init (struct sha3_512_ctx *ctx); - -void -sha3_512_update (struct sha3_512_ctx *ctx, - size_t length, - const uint8_t *data); - -void -sha3_512_digest(struct sha3_512_ctx *ctx, - size_t length, - uint8_t *digest); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_SHA3_H_INCLUDED */ diff --git a/include/nettle/twofish.h b/include/nettle/twofish.h deleted file mode 100644 index 1056e59..0000000 --- a/include/nettle/twofish.h +++ /dev/null @@ -1,98 +0,0 @@ -/* twofish.h - - The twofish block cipher. - - Copyright (C) 2001, 2014 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -/* - * Twofish is a 128-bit block cipher that accepts a variable-length - * key up to 256 bits, designed by Bruce Schneier and others. See - * http://www.counterpane.com/twofish.html for details. - */ - -#ifndef NETTLE_TWOFISH_H_INCLUDED -#define NETTLE_TWOFISH_H_INCLUDED - -#include "nettle-types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define twofish_set_key nettle_twofish_set_key -#define twofish128_set_key nettle_twofish128_set_key -#define twofish192_set_key nettle_twofish192_set_key -#define twofish256_set_key nettle_twofish256_set_key -#define twofish_encrypt nettle_twofish_encrypt -#define twofish_decrypt nettle_twofish_decrypt - -#define TWOFISH_BLOCK_SIZE 16 - -/* Variable key size between 128 and 256 bits. But the only valid - * values are 16 (128 bits), 24 (192 bits) and 32 (256 bits). */ -#define TWOFISH_MIN_KEY_SIZE 16 -#define TWOFISH_MAX_KEY_SIZE 32 - -#define TWOFISH_KEY_SIZE 32 -#define TWOFISH128_KEY_SIZE 16 -#define TWOFISH192_KEY_SIZE 24 -#define TWOFISH256_KEY_SIZE 32 - -struct twofish_ctx -{ - uint32_t keys[40]; - uint32_t s_box[4][256]; -}; - -void -twofish_set_key(struct twofish_ctx *ctx, - size_t length, const uint8_t *key); -void -twofish128_set_key(struct twofish_ctx *context, const uint8_t *key); -void -twofish192_set_key(struct twofish_ctx *context, const uint8_t *key); -void -twofish256_set_key(struct twofish_ctx *context, const uint8_t *key); - -void -twofish_encrypt(const struct twofish_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); -void -twofish_decrypt(const struct twofish_ctx *ctx, - size_t length, uint8_t *dst, - const uint8_t *src); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_TWOFISH_H_INCLUDED */ diff --git a/include/nettle/umac.h b/include/nettle/umac.h deleted file mode 100644 index f4d3c7a..0000000 --- a/include/nettle/umac.h +++ /dev/null @@ -1,253 +0,0 @@ -/* umac.h - - UMAC message authentication code (RFC-4418). - - Copyright (C) 2013 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_UMAC_H_INCLUDED -#define NETTLE_UMAC_H_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -/* Namespace mangling */ -#define umac32_set_key nettle_umac32_set_key -#define umac64_set_key nettle_umac64_set_key -#define umac96_set_key nettle_umac96_set_key -#define umac128_set_key nettle_umac128_set_key -#define umac32_set_nonce nettle_umac32_set_nonce -#define umac64_set_nonce nettle_umac64_set_nonce -#define umac96_set_nonce nettle_umac96_set_nonce -#define umac128_set_nonce nettle_umac128_set_nonce -#define umac32_update nettle_umac32_update -#define umac64_update nettle_umac64_update -#define umac96_update nettle_umac96_update -#define umac128_update nettle_umac128_update -#define umac32_digest nettle_umac32_digest -#define umac64_digest nettle_umac64_digest -#define umac96_digest nettle_umac96_digest -#define umac128_digest nettle_umac128_digest -#define _umac_set_key _nettle_umac_set_key -#define _umac_nh _nettle_umac_nh -#define _umac_nh_n _nettle_umac_nh_n -#define _umac_poly64 _nettle_umac_poly64 -#define _umac_poly128 _nettle_umac_poly128 -#define _umac_l2_init _nettle_umac_l2_init -#define _umac_l2 _nettle_umac_l2 -#define _umac_l2_final _nettle_umac_l2_final -#define _umac_l3_init _nettle_umac_l3_init -#define _umac_l3 _nettle_umac_l3 - -#include "nettle-types.h" -#include "aes.h" - -#define UMAC_KEY_SIZE AES128_KEY_SIZE -#define UMAC32_DIGEST_SIZE 4 -#define UMAC64_DIGEST_SIZE 8 -#define UMAC96_DIGEST_SIZE 12 -#define UMAC128_DIGEST_SIZE 16 -#define UMAC_BLOCK_SIZE 1024 -#define UMAC_MIN_NONCE_SIZE 1 -#define UMAC_MAX_NONCE_SIZE AES_BLOCK_SIZE -/* For backwards compatibility */ -#define UMAC_DATA_SIZE UMAC_BLOCK_SIZE - -/* Subkeys and state for UMAC with tag size 32*n bits. */ -#define _UMAC_STATE(n) \ - uint32_t l1_key[UMAC_BLOCK_SIZE/4 + 4*((n)-1)]; \ - /* Keys in 32-bit pieces, high first */ \ - uint32_t l2_key[6*(n)]; \ - uint64_t l3_key1[8*(n)]; \ - uint32_t l3_key2[(n)]; \ - /* AES cipher for encrypting the nonce */ \ - struct aes128_ctx pdf_key; \ - /* The l2_state consists of 2*n uint64_t, for poly64 \ - and poly128 hashing, followed by n additional \ - uint64_t used as an input buffer. */ \ - uint64_t l2_state[3*(n)]; \ - /* Input to the pdf_key, zero-padded and low bits \ - cleared if appropriate. */ \ - uint8_t nonce[AES_BLOCK_SIZE]; \ - unsigned short nonce_length /* For incrementing */ - - /* Buffering */ -#define _UMAC_BUFFER \ - unsigned index; \ - /* Complete blocks processed */ \ - uint64_t count; \ - uint8_t block[UMAC_BLOCK_SIZE] - -#define _UMAC_NONCE_CACHED 0x80 - -struct umac32_ctx -{ - _UMAC_STATE(1); - /* Low bits and cache flag. */ - unsigned short nonce_low; - /* Previous padding block */ - uint32_t pad_cache[AES_BLOCK_SIZE / 4]; - _UMAC_BUFFER; -}; - -struct umac64_ctx -{ - _UMAC_STATE(2); - /* Low bit and cache flag. */ - unsigned short nonce_low; - /* Previous padding block */ - uint32_t pad_cache[AES_BLOCK_SIZE/4]; - _UMAC_BUFFER; -}; - -struct umac96_ctx -{ - _UMAC_STATE(3); - _UMAC_BUFFER; -}; - -struct umac128_ctx -{ - _UMAC_STATE(4); - _UMAC_BUFFER; -}; - -/* The _set_key function initialize the nonce to zero. */ -void -umac32_set_key (struct umac32_ctx *ctx, const uint8_t *key); -void -umac64_set_key (struct umac64_ctx *ctx, const uint8_t *key); -void -umac96_set_key (struct umac96_ctx *ctx, const uint8_t *key); -void -umac128_set_key (struct umac128_ctx *ctx, const uint8_t *key); - -/* Optional, if not used, messages get incrementing nonces starting from zero. */ -void -umac32_set_nonce (struct umac32_ctx *ctx, - size_t nonce_length, const uint8_t *nonce); -void -umac64_set_nonce (struct umac64_ctx *ctx, - size_t nonce_length, const uint8_t *nonce); -void -umac96_set_nonce (struct umac96_ctx *ctx, - size_t nonce_length, const uint8_t *nonce); -void -umac128_set_nonce (struct umac128_ctx *ctx, - size_t nonce_length, const uint8_t *nonce); - -void -umac32_update (struct umac32_ctx *ctx, - size_t length, const uint8_t *data); -void -umac64_update (struct umac64_ctx *ctx, - size_t length, const uint8_t *data); -void -umac96_update (struct umac96_ctx *ctx, - size_t length, const uint8_t *data); -void -umac128_update (struct umac128_ctx *ctx, - size_t length, const uint8_t *data); - -/* The _digest functions increment the nonce */ -void -umac32_digest (struct umac32_ctx *ctx, - size_t length, uint8_t *digest); -void -umac64_digest (struct umac64_ctx *ctx, - size_t length, uint8_t *digest); -void -umac96_digest (struct umac96_ctx *ctx, - size_t length, uint8_t *digest); -void -umac128_digest (struct umac128_ctx *ctx, - size_t length, uint8_t *digest); - - -/* Internal functions */ -#define UMAC_POLY64_BLOCKS 16384 - -#define UMAC_P64_OFFSET 59 -#define UMAC_P64 (- (uint64_t) UMAC_P64_OFFSET) - -#define UMAC_P128_OFFSET 159 -#define UMAC_P128_HI (~(uint64_t) 0) -#define UMAC_P128_LO (-(uint64_t) UMAC_P128_OFFSET) - -void -_umac_set_key (uint32_t *l1_key, uint32_t *l2_key, - uint64_t *l3_key1, uint32_t *l3_key2, - struct aes128_ctx *pad, const uint8_t *key, unsigned n); - -uint64_t -_umac_nh (const uint32_t *key, unsigned length, const uint8_t *msg); - -/* Equivalent to - - for (i = 0; i < n; i++) - out[i] = _umac_nh (key + 4*i, length, msg); - - but processing input only once. -*/ -void -_umac_nh_n (uint64_t *out, unsigned n, const uint32_t *key, - unsigned length, const uint8_t *msg); - -/* Returns y*k + m (mod p), including "marker" processing. Return - value is *not* in canonical representation, and must be normalized - before the output is used. */ -uint64_t -_umac_poly64 (uint32_t kh, uint32_t kl, uint64_t y, uint64_t m); - -void -_umac_poly128 (const uint32_t *k, uint64_t *y, uint64_t mh, uint64_t ml); - -void -_umac_l2_init (unsigned size, uint32_t *k); - -void -_umac_l2(const uint32_t *key, uint64_t *state, unsigned n, - uint64_t count, const uint64_t *m); - -void -_umac_l2_final(const uint32_t *key, uint64_t *state, unsigned n, - uint64_t count); - -void -_umac_l3_init (unsigned size, uint64_t *k); - -uint32_t -_umac_l3 (const uint64_t *key, const uint64_t *m); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_UMAC_H_INCLUDED */ diff --git a/include/nettle/version.h b/include/nettle/version.h deleted file mode 100644 index b202049..0000000 --- a/include/nettle/version.h +++ /dev/null @@ -1,64 +0,0 @@ -/* version.h - - Information about library version. - - Copyright (C) 2015 Red Hat, Inc. - Copyright (C) 2015 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_VERSION_H_INCLUDED -#define NETTLE_VERSION_H_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -/* Individual version numbers in decimal */ -#define NETTLE_VERSION_MAJOR 3 -#define NETTLE_VERSION_MINOR 4 - -#define NETTLE_USE_MINI_GMP 0 - -/* We need a preprocessor constant for GMP_NUMB_BITS, simply using - sizeof(mp_limb_t) * CHAR_BIT is not good enough. */ -#if NETTLE_USE_MINI_GMP -# define GMP_NUMB_BITS n/a -#endif - -int -nettle_version_major (void); - -int -nettle_version_minor (void); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_VERSION_H_INCLUDED */ diff --git a/include/nettle/yarrow.h b/include/nettle/yarrow.h deleted file mode 100644 index 808ac0a..0000000 --- a/include/nettle/yarrow.h +++ /dev/null @@ -1,145 +0,0 @@ -/* yarrow.h - - The yarrow pseudo-randomness generator. - - Copyright (C) 2001 Niels M枚ller - - This file is part of GNU Nettle. - - GNU Nettle is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - - GNU Nettle is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received copies of the GNU General Public License and - the GNU Lesser General Public License along with this program. If - not, see http://www.gnu.org/licenses/. -*/ - -#ifndef NETTLE_YARROW_H_INCLUDED -#define NETTLE_YARROW_H_INCLUDED - -#include "aes.h" -#include "sha2.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Name mangling */ -#define yarrow256_init nettle_yarrow256_init -#define yarrow256_seed nettle_yarrow256_seed -#define yarrow256_update nettle_yarrow256_update -#define yarrow256_random nettle_yarrow256_random -#define yarrow256_is_seeded nettle_yarrow256_is_seeded -#define yarrow256_needed_sources nettle_yarrow256_needed_sources -#define yarrow256_fast_reseed nettle_yarrow256_fast_reseed -#define yarrow256_slow_reseed nettle_yarrow256_slow_reseed -#define yarrow_key_event_init nettle_yarrow_key_event_init -#define yarrow_key_event_estimate nettle_yarrow_key_event_estimate - -/* Obsolete alias for backwards compatibility. Will be deleted in some - later version. */ -#define yarrow256_force_reseed yarrow256_slow_reseed - -enum yarrow_pool_id { YARROW_FAST = 0, YARROW_SLOW = 1 }; - -struct yarrow_source -{ - /* Indexed by yarrow_pool_id */ - uint32_t estimate[2]; - - /* The pool next sample should go to. */ - enum yarrow_pool_id next; -}; - - -#define YARROW256_SEED_FILE_SIZE (2 * AES_BLOCK_SIZE) - -/* Yarrow-256, based on SHA-256 and AES-256 */ -struct yarrow256_ctx -{ - /* Indexed by yarrow_pool_id */ - struct sha256_ctx pools[2]; - - int seeded; - - /* The current key and counter block */ - struct aes256_ctx key; - uint8_t counter[AES_BLOCK_SIZE]; - - /* The entropy sources */ - unsigned nsources; - struct yarrow_source *sources; -}; - -void -yarrow256_init(struct yarrow256_ctx *ctx, - unsigned nsources, - struct yarrow_source *sources); - -void -yarrow256_seed(struct yarrow256_ctx *ctx, - size_t length, - const uint8_t *seed_file); - -/* Returns 1 on reseed */ -int -yarrow256_update(struct yarrow256_ctx *ctx, - unsigned source, unsigned entropy, - size_t length, const uint8_t *data); - -void -yarrow256_random(struct yarrow256_ctx *ctx, size_t length, uint8_t *dst); - -int -yarrow256_is_seeded(struct yarrow256_ctx *ctx); - -unsigned -yarrow256_needed_sources(struct yarrow256_ctx *ctx); - -void -yarrow256_fast_reseed(struct yarrow256_ctx *ctx); - -void -yarrow256_slow_reseed(struct yarrow256_ctx *ctx); - - -/* Key event estimator */ -#define YARROW_KEY_EVENT_BUFFER 16 - -struct yarrow_key_event_ctx -{ - /* Counter for initial priming of the state */ - unsigned index; - unsigned chars[YARROW_KEY_EVENT_BUFFER]; - unsigned previous; -}; - -void -yarrow_key_event_init(struct yarrow_key_event_ctx *ctx); - -unsigned -yarrow_key_event_estimate(struct yarrow_key_event_ctx *ctx, - unsigned key, unsigned time); - -#ifdef __cplusplus -} -#endif - -#endif /* NETTLE_YARROW_H_INCLUDED */ diff --git a/include/zip.h b/include/zip.h deleted file mode 100644 index a90776d..0000000 --- a/include/zip.h +++ /dev/null @@ -1,479 +0,0 @@ -#ifndef _HAD_ZIP_H -#define _HAD_ZIP_H - -/* - zip.h -- exported declarations. - Copyright (C) 1999-2020 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#ifdef __cplusplus -extern "C" { -#if 0 -} /* fix autoindent */ -#endif -#endif - -#include - -#ifndef ZIP_EXTERN -#ifndef ZIP_STATIC -#ifdef _WIN32 -#define ZIP_EXTERN __declspec(dllimport) -#elif defined(__GNUC__) && __GNUC__ >= 4 -#define ZIP_EXTERN __attribute__((visibility("default"))) -#else -#define ZIP_EXTERN -#endif -#else -#define ZIP_EXTERN -#endif -#endif - -#include -#include -#include - -/* flags for zip_open */ - -#define ZIP_CREATE 1 -#define ZIP_EXCL 2 -#define ZIP_CHECKCONS 4 -#define ZIP_TRUNCATE 8 -#define ZIP_RDONLY 16 - - -/* flags for zip_name_locate, zip_fopen, zip_stat, ... */ - -#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */ -#define ZIP_FL_NODIR 2u /* ignore directory component */ -#define ZIP_FL_COMPRESSED 4u /* read compressed data */ -#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */ -#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */ -#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */ -#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */ -#define ZIP_FL_ENC_RAW 64u /* get unmodified string */ -#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */ -#define ZIP_FL_LOCAL 256u /* in local header */ -#define ZIP_FL_CENTRAL 512u /* in central directory */ -/* 1024u reserved for internal use */ -#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */ -#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */ -#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */ - -/* archive global flags flags */ - -#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */ - - -/* create a new extra field */ - -#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX -#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX - - -/* libzip error codes */ - -#define ZIP_ER_OK 0 /* N No error */ -#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */ -#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */ -#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */ -#define ZIP_ER_SEEK 4 /* S Seek error */ -#define ZIP_ER_READ 5 /* S Read error */ -#define ZIP_ER_WRITE 6 /* S Write error */ -#define ZIP_ER_CRC 7 /* N CRC error */ -#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */ -#define ZIP_ER_NOENT 9 /* N No such file */ -#define ZIP_ER_EXISTS 10 /* N File already exists */ -#define ZIP_ER_OPEN 11 /* S Can't open file */ -#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */ -#define ZIP_ER_ZLIB 13 /* Z Zlib error */ -#define ZIP_ER_MEMORY 14 /* N Malloc failure */ -#define ZIP_ER_CHANGED 15 /* N Entry has been changed */ -#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */ -#define ZIP_ER_EOF 17 /* N Premature end of file */ -#define ZIP_ER_INVAL 18 /* N Invalid argument */ -#define ZIP_ER_NOZIP 19 /* N Not a zip archive */ -#define ZIP_ER_INTERNAL 20 /* N Internal error */ -#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */ -#define ZIP_ER_REMOVE 22 /* S Can't remove file */ -#define ZIP_ER_DELETED 23 /* N Entry has been deleted */ -#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */ -#define ZIP_ER_RDONLY 25 /* N Read-only archive */ -#define ZIP_ER_NOPASSWD 26 /* N No password provided */ -#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */ -#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */ -#define ZIP_ER_INUSE 29 /* N Resource still in use */ -#define ZIP_ER_TELL 30 /* S Tell error */ -#define ZIP_ER_COMPRESSED_DATA 31 /* N Compressed data invalid */ -#define ZIP_ER_CANCELLED 32 /* N Operation cancelled */ - -/* type of system error value */ - -#define ZIP_ET_NONE 0 /* sys_err unused */ -#define ZIP_ET_SYS 1 /* sys_err is errno */ -#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */ - -/* compression methods */ - -#define ZIP_CM_DEFAULT -1 /* better of deflate or store */ -#define ZIP_CM_STORE 0 /* stored (uncompressed) */ -#define ZIP_CM_SHRINK 1 /* shrunk */ -#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */ -#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */ -#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */ -#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */ -#define ZIP_CM_IMPLODE 6 /* imploded */ -/* 7 - Reserved for Tokenizing compression algorithm */ -#define ZIP_CM_DEFLATE 8 /* deflated */ -#define ZIP_CM_DEFLATE64 9 /* deflate64 */ -#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */ -/* 11 - Reserved by PKWARE */ -#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */ -/* 13 - Reserved by PKWARE */ -#define ZIP_CM_LZMA 14 /* LZMA (EFS) */ -/* 15-17 - Reserved by PKWARE */ -#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */ -#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */ -#define ZIP_CM_LZMA2 33 -#define ZIP_CM_XZ 95 /* XZ compressed data */ -#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */ -#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */ -#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */ - -/* encryption methods */ - -#define ZIP_EM_NONE 0 /* not encrypted */ -#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */ -#if 0 /* Strong Encryption Header not parsed yet */ -#define ZIP_EM_DES 0x6601 /* strong encryption: DES */ -#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */ -#define ZIP_EM_3DES_168 0x6603 -#define ZIP_EM_3DES_112 0x6609 -#define ZIP_EM_PKZIP_AES_128 0x660e -#define ZIP_EM_PKZIP_AES_192 0x660f -#define ZIP_EM_PKZIP_AES_256 0x6610 -#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */ -#define ZIP_EM_RC4 0x6801 -#endif -#define ZIP_EM_AES_128 0x0101 /* Winzip AES encryption */ -#define ZIP_EM_AES_192 0x0102 -#define ZIP_EM_AES_256 0x0103 -#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */ - -#define ZIP_OPSYS_DOS 0x00u -#define ZIP_OPSYS_AMIGA 0x01u -#define ZIP_OPSYS_OPENVMS 0x02u -#define ZIP_OPSYS_UNIX 0x03u -#define ZIP_OPSYS_VM_CMS 0x04u -#define ZIP_OPSYS_ATARI_ST 0x05u -#define ZIP_OPSYS_OS_2 0x06u -#define ZIP_OPSYS_MACINTOSH 0x07u -#define ZIP_OPSYS_Z_SYSTEM 0x08u -#define ZIP_OPSYS_CPM 0x09u -#define ZIP_OPSYS_WINDOWS_NTFS 0x0au -#define ZIP_OPSYS_MVS 0x0bu -#define ZIP_OPSYS_VSE 0x0cu -#define ZIP_OPSYS_ACORN_RISC 0x0du -#define ZIP_OPSYS_VFAT 0x0eu -#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu -#define ZIP_OPSYS_BEOS 0x10u -#define ZIP_OPSYS_TANDEM 0x11u -#define ZIP_OPSYS_OS_400 0x12u -#define ZIP_OPSYS_OS_X 0x13u - -#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX - - -enum zip_source_cmd { - ZIP_SOURCE_OPEN, /* prepare for reading */ - ZIP_SOURCE_READ, /* read data */ - ZIP_SOURCE_CLOSE, /* reading is done */ - ZIP_SOURCE_STAT, /* get meta information */ - ZIP_SOURCE_ERROR, /* get error information */ - ZIP_SOURCE_FREE, /* cleanup and free resources */ - ZIP_SOURCE_SEEK, /* set position for reading */ - ZIP_SOURCE_TELL, /* get read position */ - ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */ - ZIP_SOURCE_COMMIT_WRITE, /* writing is done */ - ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */ - ZIP_SOURCE_WRITE, /* write data */ - ZIP_SOURCE_SEEK_WRITE, /* set position for writing */ - ZIP_SOURCE_TELL_WRITE, /* get write position */ - ZIP_SOURCE_SUPPORTS, /* check whether source supports command */ - ZIP_SOURCE_REMOVE, /* remove file */ - ZIP_SOURCE_RESERVED_1, /* previously used internally */ - ZIP_SOURCE_BEGIN_WRITE_CLONING, /* like ZIP_SOURCE_BEGIN_WRITE, but keep part of original file */ - ZIP_SOURCE_ACCEPT_EMPTY, /* whether empty files are valid archives */ - ZIP_SOURCE_GET_FILE_ATTRIBUTES /* get additional file attributes */ -}; -typedef enum zip_source_cmd zip_source_cmd_t; - -#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (((zip_int64_t)1) << (cmd)) - -/* clang-format off */ - -#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE)) - -#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS)) - -#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \ - | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE)) - -/* clang-format on */ - -/* for use by sources */ -struct zip_source_args_seek { - zip_int64_t offset; - int whence; -}; - -typedef struct zip_source_args_seek zip_source_args_seek_t; -#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type *)NULL : (type *)(data)) - - -/* error information */ -/* use zip_error_*() to access */ -struct zip_error { - int zip_err; /* libzip error code (ZIP_ER_*) */ - int sys_err; /* copy of errno (E*) or zlib error code */ - char *_Nullable str; /* string representation or NULL */ -}; - -#define ZIP_STAT_NAME 0x0001u -#define ZIP_STAT_INDEX 0x0002u -#define ZIP_STAT_SIZE 0x0004u -#define ZIP_STAT_COMP_SIZE 0x0008u -#define ZIP_STAT_MTIME 0x0010u -#define ZIP_STAT_CRC 0x0020u -#define ZIP_STAT_COMP_METHOD 0x0040u -#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u -#define ZIP_STAT_FLAGS 0x0100u - -struct zip_stat { - zip_uint64_t valid; /* which fields have valid values */ - const char *_Nullable name; /* name of the file */ - zip_uint64_t index; /* index within archive */ - zip_uint64_t size; /* size of file (uncompressed) */ - zip_uint64_t comp_size; /* size of file (compressed) */ - time_t mtime; /* modification time */ - zip_uint32_t crc; /* crc of file data */ - zip_uint16_t comp_method; /* compression method used */ - zip_uint16_t encryption_method; /* encryption method used */ - zip_uint32_t flags; /* reserved for future use */ -}; - -struct zip_buffer_fragment { - zip_uint8_t *_Nonnull data; - zip_uint64_t length; -}; - -struct zip_file_attributes { - zip_uint64_t valid; /* which fields have valid values */ - zip_uint8_t version; /* version of this struct, currently 1 */ - zip_uint8_t host_system; /* host system on which file was created */ - zip_uint8_t ascii; /* flag whether file is ASCII text */ - zip_uint8_t version_needed; /* minimum version needed to extract file */ - zip_uint32_t external_file_attributes; /* external file attributes (host-system specific) */ - zip_uint16_t general_purpose_bit_flags; /* general purpose big flags, only some bits are honored */ - zip_uint16_t general_purpose_bit_mask; /* which bits in general_purpose_bit_flags are valid */ -}; - -#define ZIP_FILE_ATTRIBUTES_HOST_SYSTEM 0x0001u -#define ZIP_FILE_ATTRIBUTES_ASCII 0x0002u -#define ZIP_FILE_ATTRIBUTES_VERSION_NEEDED 0x0004u -#define ZIP_FILE_ATTRIBUTES_EXTERNAL_FILE_ATTRIBUTES 0x0008u -#define ZIP_FILE_ATTRIBUTES_GENERAL_PURPOSE_BIT_FLAGS 0x0010u - -struct zip; -struct zip_file; -struct zip_source; - -typedef struct zip zip_t; -typedef struct zip_error zip_error_t; -typedef struct zip_file zip_file_t; -typedef struct zip_file_attributes zip_file_attributes_t; -typedef struct zip_source zip_source_t; -typedef struct zip_stat zip_stat_t; -typedef struct zip_buffer_fragment zip_buffer_fragment_t; - -typedef zip_uint32_t zip_flags_t; - -typedef zip_int64_t (*zip_source_callback)(void *_Nullable, void *_Nullable, zip_uint64_t, zip_source_cmd_t); -typedef void (*zip_progress_callback)(zip_t *_Nonnull, double, void *_Nullable); -typedef int (*zip_cancel_callback)(zip_t *_Nonnull, void *_Nullable); - -#ifndef ZIP_DISABLE_DEPRECATED -typedef void (*zip_progress_callback_t)(double); -ZIP_EXTERN void zip_register_progress_callback(zip_t *_Nonnull, zip_progress_callback_t _Nullable); /* use zip_register_progress_callback_with_state */ - -ZIP_EXTERN zip_int64_t zip_add(zip_t *_Nonnull, const char *_Nonnull, zip_source_t *_Nonnull); /* use zip_file_add */ -ZIP_EXTERN zip_int64_t zip_add_dir(zip_t *_Nonnull, const char *_Nonnull); /* use zip_dir_add */ -ZIP_EXTERN const char *_Nullable zip_get_file_comment(zip_t *_Nonnull, zip_uint64_t, int *_Nullable, int); /* use zip_file_get_comment */ -ZIP_EXTERN int zip_get_num_files(zip_t *_Nonnull); /* use zip_get_num_entries instead */ -ZIP_EXTERN int zip_rename(zip_t *_Nonnull, zip_uint64_t, const char *_Nonnull); /* use zip_file_rename */ -ZIP_EXTERN int zip_replace(zip_t *_Nonnull, zip_uint64_t, zip_source_t *_Nonnull); /* use zip_file_replace */ -ZIP_EXTERN int zip_set_file_comment(zip_t *_Nonnull, zip_uint64_t, const char *_Nullable, int); /* use zip_file_set_comment */ -ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */ -ZIP_EXTERN void zip_error_get(zip_t *_Nonnull, int *_Nullable, int *_Nullable); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */ -ZIP_EXTERN int zip_error_to_str(char *_Nonnull, zip_uint64_t, int, int); /* use zip_error_init_with_code / zip_error_strerror */ -ZIP_EXTERN void zip_file_error_get(zip_file_t *_Nonnull, int *_Nullable, int *_Nullable); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */ -#endif - -ZIP_EXTERN int zip_close(zip_t *_Nonnull); -ZIP_EXTERN int zip_delete(zip_t *_Nonnull, zip_uint64_t); -ZIP_EXTERN zip_int64_t zip_dir_add(zip_t *_Nonnull, const char *_Nonnull, zip_flags_t); -ZIP_EXTERN void zip_discard(zip_t *_Nonnull); - -ZIP_EXTERN zip_error_t *_Nonnull zip_get_error(zip_t *_Nonnull); -ZIP_EXTERN void zip_error_clear(zip_t *_Nonnull); -ZIP_EXTERN int zip_error_code_zip(const zip_error_t *_Nonnull); -ZIP_EXTERN int zip_error_code_system(const zip_error_t *_Nonnull); -ZIP_EXTERN void zip_error_fini(zip_error_t *_Nonnull); -ZIP_EXTERN void zip_error_init(zip_error_t *_Nonnull); -ZIP_EXTERN void zip_error_init_with_code(zip_error_t *_Nonnull, int); -ZIP_EXTERN void zip_error_set(zip_error_t *_Nullable, int, int); -ZIP_EXTERN const char *_Nonnull zip_error_strerror(zip_error_t *_Nonnull); -ZIP_EXTERN int zip_error_system_type(const zip_error_t *_Nonnull); -ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *_Nonnull, void *_Nonnull, zip_uint64_t); - -ZIP_EXTERN int zip_fclose(zip_file_t *_Nonnull); -ZIP_EXTERN zip_t *_Nullable zip_fdopen(int, int, int *_Nullable); -ZIP_EXTERN zip_int64_t zip_file_add(zip_t *_Nonnull, const char *_Nonnull, zip_source_t *_Nonnull, zip_flags_t); -ZIP_EXTERN void zip_file_attributes_init(zip_file_attributes_t *_Nonnull); -ZIP_EXTERN void zip_file_error_clear(zip_file_t *_Nonnull); -ZIP_EXTERN int zip_file_extra_field_delete(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_extra_field_set(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *_Nullable, zip_uint16_t, zip_flags_t); -ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t *_Nonnull, zip_uint64_t, zip_flags_t); -ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN const zip_uint8_t *_Nullable zip_file_extra_field_get(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t *_Nullable, zip_uint16_t *_Nullable, zip_flags_t); -ZIP_EXTERN const zip_uint8_t *_Nullable zip_file_extra_field_get_by_id(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *_Nullable, zip_flags_t); -ZIP_EXTERN const char *_Nullable zip_file_get_comment(zip_t *_Nonnull, zip_uint64_t, zip_uint32_t *_Nullable, zip_flags_t); -ZIP_EXTERN zip_error_t *_Nonnull zip_file_get_error(zip_file_t *_Nonnull); -ZIP_EXTERN int zip_file_get_external_attributes(zip_t *_Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t *_Nullable, zip_uint32_t *_Nullable); -ZIP_EXTERN int zip_file_rename(zip_t *_Nonnull, zip_uint64_t, const char *_Nonnull, zip_flags_t); -ZIP_EXTERN int zip_file_replace(zip_t *_Nonnull, zip_uint64_t, zip_source_t *_Nonnull, zip_flags_t); -ZIP_EXTERN int zip_file_set_comment(zip_t *_Nonnull, zip_uint64_t, const char *_Nullable, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_set_dostime(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t); -ZIP_EXTERN int zip_file_set_encryption(zip_t *_Nonnull, zip_uint64_t, zip_uint16_t, const char *_Nullable); -ZIP_EXTERN int zip_file_set_external_attributes(zip_t *_Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t); -ZIP_EXTERN int zip_file_set_mtime(zip_t *_Nonnull, zip_uint64_t, time_t, zip_flags_t); -ZIP_EXTERN const char *_Nonnull zip_file_strerror(zip_file_t *_Nonnull); -ZIP_EXTERN zip_file_t *_Nullable zip_fopen(zip_t *_Nonnull, const char *_Nonnull, zip_flags_t); -ZIP_EXTERN zip_file_t *_Nullable zip_fopen_encrypted(zip_t *_Nonnull, const char *_Nonnull, zip_flags_t, const char *_Nullable); -ZIP_EXTERN zip_file_t *_Nullable zip_fopen_index(zip_t *_Nonnull, zip_uint64_t, zip_flags_t); -ZIP_EXTERN zip_file_t *_Nullable zip_fopen_index_encrypted(zip_t *_Nonnull, zip_uint64_t, zip_flags_t, const char *_Nullable); -ZIP_EXTERN zip_int64_t zip_fread(zip_file_t *_Nonnull, void *_Nonnull, zip_uint64_t); -ZIP_EXTERN zip_int8_t zip_fseek(zip_file_t *_Nonnull, zip_int64_t, int); -ZIP_EXTERN zip_int64_t zip_ftell(zip_file_t *_Nonnull); -ZIP_EXTERN const char *_Nullable zip_get_archive_comment(zip_t *_Nonnull, int *_Nullable, zip_flags_t); -ZIP_EXTERN int zip_get_archive_flag(zip_t *_Nonnull, zip_flags_t, zip_flags_t); -ZIP_EXTERN const char *_Nullable zip_get_name(zip_t *_Nonnull, zip_uint64_t, zip_flags_t); -ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *_Nonnull, zip_flags_t); -ZIP_EXTERN const char *_Nonnull zip_libzip_version(void); -ZIP_EXTERN zip_int64_t zip_name_locate(zip_t *_Nonnull, const char *_Nonnull, zip_flags_t); -ZIP_EXTERN zip_t *_Nullable zip_open(const char *_Nonnull, int, int *_Nullable); -ZIP_EXTERN zip_t *_Nullable zip_open_from_source(zip_source_t *_Nonnull, int, zip_error_t *_Nullable); -ZIP_EXTERN int zip_register_progress_callback_with_state(zip_t *_Nonnull, double, zip_progress_callback _Nullable, void (*_Nullable)(void *_Nullable), void *_Nullable); -ZIP_EXTERN int zip_register_cancel_callback_with_state(zip_t *_Nonnull, zip_cancel_callback _Nullable, void (*_Nullable)(void *_Nullable), void *_Nullable); -ZIP_EXTERN int zip_set_archive_comment(zip_t *_Nonnull, const char *_Nullable, zip_uint16_t); -ZIP_EXTERN int zip_set_archive_flag(zip_t *_Nonnull, zip_flags_t, int); -ZIP_EXTERN int zip_set_default_password(zip_t *_Nonnull, const char *_Nullable); -ZIP_EXTERN int zip_set_file_compression(zip_t *_Nonnull, zip_uint64_t, zip_int32_t, zip_uint32_t); -ZIP_EXTERN int zip_source_begin_write(zip_source_t *_Nonnull); -ZIP_EXTERN int zip_source_begin_write_cloning(zip_source_t *_Nonnull, zip_uint64_t); -ZIP_EXTERN zip_source_t *_Nullable zip_source_buffer(zip_t *_Nonnull, const void *_Nullable, zip_uint64_t, int); -ZIP_EXTERN zip_source_t *_Nullable zip_source_buffer_create(const void *_Nullable, zip_uint64_t, int, zip_error_t *_Nullable); -ZIP_EXTERN zip_source_t *_Nullable zip_source_buffer_fragment(zip_t *_Nonnull, const zip_buffer_fragment_t *_Nonnull, zip_uint64_t, int); -ZIP_EXTERN zip_source_t *_Nullable zip_source_buffer_fragment_create(const zip_buffer_fragment_t *_Nullable, zip_uint64_t, int, zip_error_t *_Nullable); -ZIP_EXTERN int zip_source_close(zip_source_t *_Nonnull); -ZIP_EXTERN int zip_source_commit_write(zip_source_t *_Nonnull); -ZIP_EXTERN zip_error_t *_Nonnull zip_source_error(zip_source_t *_Nonnull); -ZIP_EXTERN zip_source_t *_Nullable zip_source_file(zip_t *_Nonnull, const char *_Nonnull, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *_Nullable zip_source_file_create(const char *_Nonnull, zip_uint64_t, zip_int64_t, zip_error_t *_Nullable); -ZIP_EXTERN zip_source_t *_Nullable zip_source_filep(zip_t *_Nonnull, FILE *_Nonnull, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *_Nullable zip_source_filep_create(FILE *_Nonnull, zip_uint64_t, zip_int64_t, zip_error_t *_Nullable); -ZIP_EXTERN void zip_source_free(zip_source_t *_Nullable); -ZIP_EXTERN zip_source_t *_Nullable zip_source_function(zip_t *_Nonnull, zip_source_callback _Nonnull, void *_Nullable); -ZIP_EXTERN zip_source_t *_Nullable zip_source_function_create(zip_source_callback _Nonnull, void *_Nullable, zip_error_t *_Nullable); -ZIP_EXTERN int zip_source_get_file_attributes(zip_source_t *_Nonnull, zip_file_attributes_t *_Nonnull); -ZIP_EXTERN int zip_source_is_deleted(zip_source_t *_Nonnull); -ZIP_EXTERN void zip_source_keep(zip_source_t *_Nonnull); -ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...); -ZIP_EXTERN int zip_source_open(zip_source_t *_Nonnull); -ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t *_Nonnull, void *_Nonnull, zip_uint64_t); -ZIP_EXTERN void zip_source_rollback_write(zip_source_t *_Nonnull); -ZIP_EXTERN int zip_source_seek(zip_source_t *_Nonnull, zip_int64_t, int); -ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void *_Nonnull, zip_uint64_t, zip_error_t *_Nullable); -ZIP_EXTERN int zip_source_seek_write(zip_source_t *_Nonnull, zip_int64_t, int); -ZIP_EXTERN int zip_source_stat(zip_source_t *_Nonnull, zip_stat_t *_Nonnull); -ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *_Nonnull); -ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t *_Nonnull); -#ifdef _WIN32 -ZIP_EXTERN zip_source_t *zip_source_win32a(zip_t *, const char *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_win32a_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *); -ZIP_EXTERN zip_source_t *zip_source_win32handle(zip_t *, void *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_win32handle_create(void *, zip_uint64_t, zip_int64_t, zip_error_t *); -ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_t, zip_int64_t); -ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *); -#endif -ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *_Nonnull, const void *_Nullable, zip_uint64_t); -ZIP_EXTERN zip_source_t *_Nullable zip_source_zip(zip_t *_Nonnull, zip_t *_Nonnull, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t); -ZIP_EXTERN int zip_stat(zip_t *_Nonnull, const char *_Nonnull, zip_flags_t, zip_stat_t *_Nonnull); -ZIP_EXTERN int zip_stat_index(zip_t *_Nonnull, zip_uint64_t, zip_flags_t, zip_stat_t *_Nonnull); -ZIP_EXTERN void zip_stat_init(zip_stat_t *_Nonnull); -ZIP_EXTERN const char *_Nonnull zip_strerror(zip_t *_Nonnull); -ZIP_EXTERN int zip_unchange(zip_t *_Nonnull, zip_uint64_t); -ZIP_EXTERN int zip_unchange_all(zip_t *_Nonnull); -ZIP_EXTERN int zip_unchange_archive(zip_t *_Nonnull); -ZIP_EXTERN int zip_compression_method_supported(zip_int32_t method, int compress); -ZIP_EXTERN int zip_encryption_method_supported(zip_uint16_t method, int encode); - -#ifdef __cplusplus -} -#endif - -#endif /* _HAD_ZIP_H */ diff --git a/include/zipconf.h b/include/zipconf.h deleted file mode 100644 index 861595a..0000000 --- a/include/zipconf.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _HAD_ZIPCONF_H -#define _HAD_ZIPCONF_H - -/* - zipconf.h -- platform specific include file - - This file was generated automatically by CMake - based on ../cmake-zipconf.h.in. - */ - -#define LIBZIP_VERSION "1.7.3" -#define LIBZIP_VERSION_MAJOR 1 -#define LIBZIP_VERSION_MINOR 7 -#define LIBZIP_VERSION_MICRO 3 - -/* #undef ZIP_STATIC */ - -#define _Nullable -#define _Nonnull - -#if !defined(__STDC_FORMAT_MACROS) -#define __STDC_FORMAT_MACROS 1 -#endif -#include - -typedef int8_t zip_int8_t; -typedef uint8_t zip_uint8_t; -typedef int16_t zip_int16_t; -typedef uint16_t zip_uint16_t; -typedef int32_t zip_int32_t; -typedef uint32_t zip_uint32_t; -typedef int64_t zip_int64_t; -typedef uint64_t zip_uint64_t; - -#define ZIP_INT8_MIN (-ZIP_INT8_MAX-1) -#define ZIP_INT8_MAX 0x7f -#define ZIP_UINT8_MAX 0xff - -#define ZIP_INT16_MIN (-ZIP_INT16_MAX-1) -#define ZIP_INT16_MAX 0x7fff -#define ZIP_UINT16_MAX 0xffff - -#define ZIP_INT32_MIN (-ZIP_INT32_MAX-1L) -#define ZIP_INT32_MAX 0x7fffffffL -#define ZIP_UINT32_MAX 0xffffffffLU - -#define ZIP_INT64_MIN (-ZIP_INT64_MAX-1LL) -#define ZIP_INT64_MAX 0x7fffffffffffffffLL -#define ZIP_UINT64_MAX 0xffffffffffffffffULL - -#endif /* zipconf.h */ diff --git a/omc/bin/alarmAgent b/omc/bin/alarmAgent deleted file mode 100644 index cb1f60ae50c2a71799228606e0cb2a0e1b935c61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640232 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%0DX?$xbp_mRmDq( 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

7L+%hT~O}vMj1*dKayXG7`J<)bSIRUpxow- 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

wT#l;PR3W7O~fHAcYBD8$}WC&;d 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%0D`Ett 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 b9~3Ci+svP6{_^wxKGQ#F<>%*1a;E>kP~I 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 Or4e!*ZGCyO>i^%<-j-E-~aRf{G;rh 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%0A;l;i0#I(ie(;T+t<)#RzqZY$ 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%0DqbPHwq1^S8=EkS?q2qSWK%MM6wj1up>$H=7 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

tE1HUO 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 -WrlmB{TJhO2 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 z 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

nyfzkV*U5=;<6@Nm40!Rzj&3h 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 HW%z#p1VVz) diff --git a/omc/bin/changehostname b/omc/bin/changehostname deleted file mode 100644 index f92177f..0000000 --- a/omc/bin/changehostname +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# $1 - parameter like -# $2 - hostname -# $3 - filename -function modify_hostname() -{ - if [ -e $3 ] ;then - tmpfile=$3_bak - sed "s/^\s*$1\s*=\s*.*-/$1 = $2-/" $3 > $tmpfile - mv -f $tmpfile $3 - chmod 644 $3 - fi -} - - - -nowHostname=`hostname -s` -#echo hostname=$nowHostname - -nowHostnamePrefix=`echo $nowHostname|awk -F'-' '{print $1}'` -#echo nowHostnamePrefix=$nowHostnamePrefix - -configDir=/usr/local/omc/config -binconfDir=/usr/local/omc/bin/conf - -modify_hostname master-host $nowHostnamePrefix $configDir/my.cnf_omc-0 -modify_hostname master-host $nowHostnamePrefix $configDir/my.cnf_omc-0.ES -modify_hostname master-host $nowHostnamePrefix $configDir/my.cnf_omc-1 -modify_hostname master-host $nowHostnamePrefix $configDir/my.cnf_omc-1.ES - -modify_hostname master-host $nowHostnamePrefix $binconfDir/my.cnf_omc-0 -modify_hostname master-host $nowHostnamePrefix $binconfDir/my.cnf_omc-0.ES -modify_hostname master-host $nowHostnamePrefix $binconfDir/my.cnf_omc-1 -modify_hostname master-host $nowHostnamePrefix $binconfDir/my.cnf_omc-1.ES - - -modify_hostname omc_master $nowHostnamePrefix $configDir/server.conf -modify_hostname mysql_master $nowHostnamePrefix $configDir/server.conf -modify_hostname omc_slave $nowHostnamePrefix $configDir/server.conf -modify_hostname mysql_slave $nowHostnamePrefix $configDir/server.conf - -modify_hostname omc_master $nowHostnamePrefix $binconfDir/server.conf -modify_hostname mysql_master $nowHostnamePrefix $binconfDir/server.conf -modify_hostname omc_slave $nowHostnamePrefix $binconfDir/server.conf -modify_hostname mysql_slave $nowHostnamePrefix $binconfDir/server.conf - diff --git a/omc/bin/chgDate b/omc/bin/chgDate deleted file mode 100644 index 9b58a9a..0000000 --- a/omc/bin/chgDate +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -#when change the date of system, -#people always forget to do "hwclock --systohc" -#But system will use the hardware clock after reboot. -#so it is necessary to do it by this script. - -#By Hewd 2004-02-04 - -if [ $# -ne 2 ] ; then - echo "Example:" - echo "chgdate \"2004-02-15 12:00:00\"" -else - date --set="$1 $2" - echo "date --set=\"$1 $2\"" - echo "hwclock --systohc" - date --set="$1 $2" - hwclock --systohc -fi - diff --git a/omc/bin/chkDb b/omc/bin/chkDb deleted file mode 100644 index 413ed0d..0000000 --- a/omc/bin/chkDb +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# chkconfig: 2345 89 05 -# description: as following -# For OMC to fix table -# Comments to support chkconfig on RedHat Linux - -if [ `uname -r |grep -c '2.4.7-10'` -eq 1 ] ; then - dataDir="/usr/local/mysql/data" - mysqlBinDir="/usr/local/mysql/bin" -else - dataDir="/var/lib/mysql" - mysqlBinDir="/usr/bin/" -fi - -confDir=/usr/local/omc/bin/conf - -mode=$1 -case "$mode" in - start) - if [ `grep -c "dbStopMode=1" $confDir/chkDb.conf` -eq 0 ] ; then - cd $mysqlBinDir - chown -R mysql:mysql $dataDir/* - ./myisamchk -r -f -O sort_buffer_size=32M $dataDir/*/*.MYI - else - echo "It needn't to check database. " - echo "If you want to check database forcibly,please use \"$0 force\" " - fi - echo "dbStopMode=0" > $confDir/chkDb.conf - ;; - force) - cd $mysqlBinDir - ./myisamchk -r -f -O sort_buffer_size=32M $dataDir/*/*.MYI - ;; - stop) - echo "dbStopMode=1" > $confDir/chkDb.conf - ;; - *) - echo "Check and fix all database file" - echo "Usage: $0 start|force" - ;; -esac diff --git a/omc/bin/clearDb b/omc/bin/clearDb deleted file mode 100644 index 7b25ed3..0000000 --- a/omc/bin/clearDb +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - - -if [ `uname -r |grep -c '2.4.7-10'` -eq 1 ] ; then - dataDir="/usr/local/mysql/data" - mysqlBin="/usr/local/mysql/bin/mysql" -else - dataDir="/var/lib/mysql" - mysqlBin="/usr/bin/mysql" -fi - -mysql_user=`/usr/local/mssBak/script/encryption 1 "6266706d736f7a7c7b6b7f7b7f"` -mysql_pw=`/usr/local/mssBak/script/encryption 1 "2b3a392757557b697b7e7e757b777c"` - - -echo "Clear CSTA_DB.*Detail" -echo "show tables from CSTA_DB like '%Detail%';"|$mysqlBin -u$mysql_user -p$mysql_pw | sed -e '1d'|awk '/Detail/{print "DELETE FROM CSTA_DB."$1";"}' | $mysqlBin -u$mysql_user -p$mysql_pw - -echo "Clear CSTA_DB.*Sum" -echo "show tables from CSTA_DB like '%Sum%';"|$mysqlBin -u$mysql_user -p$mysql_pw | sed -e '1d'|awk '/Sum/{print "DELETE FROM CSTA_DB."$1";"}' | $mysqlBin -u$mysql_user -p$mysql_pw - -echo "Clear CDR_DB.cdrFrom*" -echo "show tables from CDR_DB like 'cdrFrom%';"|$mysqlBin -u$mysql_user -p$mysql_pw | sed -e '1d'|awk '/cdrFrom/{print "DELETE FROM CDR_DB."$1";"}' | $mysqlBin -u$mysql_user -p$mysql_pw - -echo "Clear CSTA and CDR'S record finished!!" - diff --git a/omc/bin/conf/NR.conf b/omc/bin/conf/NR.conf deleted file mode 100644 index d633b48..0000000 --- a/omc/bin/conf/NR.conf +++ /dev/null @@ -1,48 +0,0 @@ -#NR.conf - -# Enable or disable the NRTRDE function,0-disable,1-enable -Flag=0 - -# The local mcc -MCC=460 - -# The local mnc -MNC=02 - -# The local tag -LOCAL_TADIG=FEAKE - -# The time to make NRTRDE Delivery Report and Error Report -MAKE_REPORT_TIME=12 - -# The max value of CallEventDuration of a CDR -CallEventDurationMax=6000 - -# The version of the NRTRDE Delivery report -ND_VERSION=1.0 - -# The version of the NRTRDE Error report -NE_VERSION=1.0 - -# The specificationVersionNumber of the NRTRDE file -NR_SVN=2 - -# The ReleaseVersionNumber of the NRTRDE file -NR_RVN=1 - -# The backup directory -NR_RECV_BAK_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/NR_RECV_BAK/ -NR_SEND_BAK_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/NR_SEND_BAK/ -ND_RECV_BAK_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/ND_RECV_BAK/ -ND_SEND_BAK_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/ND_SEND_BAK/ -NE_RECV_BAK_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/NE_RECV_BAK/ -NE_SEND_BAK_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/NE_SEND_BAK/ -LOCAL_CSV_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/LOCAL_CSV/ - -# The source directory to send the file -SEND_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/SEND/ - -# The directory to receive the file -RECV_DIR=/usr/local/apache/htdocs/db_backup/nrtrde/RECV/ - - diff --git a/omc/bin/conf/conv_prefix.conf b/omc/bin/conf/conv_prefix.conf deleted file mode 100644 index 559e81a387b6312d956b50e3fedb676b96d64cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23616 zcmeI(!E&205P)H=aV~ut3k*o-zChm~ryM%dQ=3C?ee_nq;COcl(3H${+Fut(tJO;S zFq6aylDfWa!)lY1(rQ8(l-!lJo+YU>bP$l5=}^Sx?8WK}7@*KmY**5I_I{1pXC)llvXE3MM3> z{E%Hf^tk)L;GweT7aRD4etdrV_Pjp-$mP~oViW-c5I_I{1Q2*d;OEqWeVxZaG z^6dDWxAi*D``y>Ay6-jq>Ff8$X7~fo!3)ggj;>3+Nfw63?qO5 z0tg_000IagfB*srAbWRHFV*h=u zGettGb=5M*JqGEjO#h`9UuKShY-```Z1~dd#SFi(TOReC)}0^CDS-**<@qZAu;cse z<&8&R8UhF)fB*srAb for detailed information about - # the directives. - # - # Do NOT simply read the instructions in here without understanding - # what they do. They're here only as hints or reminders. If you are unsure - # consult the online docs. You have been warned. - # - # After this file is processed, the server will look for and process - # /usr/local/apache/conf/srm.conf and then /usr/local/apache/conf/access.conf - # unless you have overridden these with ResourceConfig and/or - # AccessConfig directives here. - # - # The configuration directives are grouped into three basic sections: - # 1. Directives that control the operation of the Apache server process as a - # whole (the 'global environment'). - # 2. Directives that define the parameters of the 'main' or 'default' server, - # which responds to requests that aren't handled by a virtual host. - # These directives also provide default values for the settings - # of all virtual hosts. - # 3. Settings for virtual hosts, which allow Web requests to be sent to - # different IP addresses or hostnames and have them handled by the - # same Apache server process. - # - # Configuration and logfile names: If the filenames you specify for many - # of the server's control files begin with "/" (or "drive:/" for Win32), the - # server will use that explicit path. If the filenames do *not* begin - # with "/", the value of ServerRoot is prepended -- so "logs/foo.log" - # with ServerRoot set to "/usr/local/apache" will be interpreted by the - # server as "/usr/local/apache/logs/foo.log". - # - - ### Section 1: Global Environment - # - # The directives in this section affect the overall operation of Apache, - # such as the number of concurrent requests it can handle or where it - # can find its configuration files. - # - - # - # ServerType is either inetd, or standalone. Inetd mode is only supported on - # Unix platforms. - # - ServerType standalone - - # - # ServerRoot: The top of the directory tree under which the server's - # configuration, error, and log files are kept. - # - # NOTE! If you intend to place this on an NFS (or otherwise network) - # mounted filesystem then please read the LockFile documentation - # (available at ); - # you will save yourself a lot of trouble. - # - # Do NOT add a slash at the end of the directory path. - # - ServerRoot "/usr/local/apache" - - # - # The LockFile directive sets the path to the lockfile used when Apache - # is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or - # USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be left at - # its default value. The main reason for changing it is if the logs - # directory is NFS mounted, since the lockfile MUST BE STORED ON A LOCAL - # DISK. The PID of the main server process is automatically appended to - # the filename. - # - #LockFile /usr/local/apache/logs/httpd.lock - - # - # PidFile: The file in which the server should record its process - # identification number when it starts. - # - PidFile /usr/local/apache/logs/httpd.pid - - # - # ScoreBoardFile: File used to store internal server process information. - # Not all architectures require this. But if yours does (you'll know because - # this file will be created when you run Apache) then you *must* ensure that - # no two invocations of Apache share the same scoreboard file. - # - ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard - - # - # In the standard configuration, the server will process this file, - # srm.conf, and access.conf in that order. The latter two files are - # now distributed empty, as it is recommended that all directives - # be kept in a single file for simplicity. The commented-out values - # below are the built-in defaults. You can have the server ignore - # these files altogether by using "/dev/null" (for Unix) or - # "nul" (for Win32) for the arguments to the directives. - # - #ResourceConfig conf/srm.conf - #AccessConfig conf/access.conf - - # - # Timeout: The number of seconds before receives and sends time out. - # - Timeout 300 - - # - # KeepAlive: Whether or not to allow persistent connections (more than - # one request per connection). Set to "Off" to deactivate. - # - KeepAlive On - - # - # MaxKeepAliveRequests: The maximum number of requests to allow - # during a persistent connection. Set to 0 to allow an unlimited amount. - # We recommend you leave this number high, for maximum performance. - # - MaxKeepAliveRequests 100 - - # - # KeepAliveTimeout: Number of seconds to wait for the next request from the - # same client on the same connection. - # - KeepAliveTimeout 15 - - # - # Server-pool size regulation. Rather than making you guess how many - # server processes you need, Apache dynamically adapts to the load it - # sees --- that is, it tries to maintain enough server processes to - # handle the current load, plus a few spare servers to handle transient - # load spikes (e.g., multiple simultaneous requests from a single - # Netscape browser). - # - # It does this by periodically checking how many servers are waiting - # for a request. If there are fewer than MinSpareServers, it creates - # a new spare. If there are more than MaxSpareServers, some of the - # spares die off. The default values are probably OK for most sites. - # - MinSpareServers 5 - MaxSpareServers 10 - - # - # Number of servers to start initially --- should be a reasonable ballpark - # figure. - # - StartServers 5 - - # - # Limit on total number of servers running, i.e., limit on the number - # of clients who can simultaneously connect --- if this limit is ever - # reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW. - # It is intended mainly as a brake to keep a runaway server from taking - # the system with it as it spirals down... - # - MaxClients 100 - - # - # MaxRequestsPerChild: the number of requests each child process is - # allowed to process before the child dies. The child will exit so - # as to avoid problems after prolonged use when Apache (and maybe the - # libraries it uses) leak memory or other resources. On most systems, this - # isn't really needed, but a few (such as Solaris) do have notable leaks - # in the libraries. For these platforms, set to something like 10000 - # or so; a setting of 0 means unlimited. - # - # NOTE: This value does not include keepalive requests after the initial - # request per connection. For example, if a child process handles - # an initial request and 10 subsequent "keptalive" requests, it - # would only count as 1 request towards this limit. - # - MaxRequestsPerChild 0 - - # - # Listen: Allows you to bind Apache to specific IP addresses and/or - # ports, in addition to the default. See also the - # directive. - # - #Listen 3000 - #Listen 12.34.56.78:80 - - # - # BindAddress: You can support virtual hosts with this option. This directive - # is used to tell the server which IP address to listen to. It can either - # contain "*", an IP address, or a fully qualified Internet domain name. - # See also the and Listen directives. - # - #BindAddress * - - # - # Dynamic Shared Object (DSO) Support - # - # To be able to use the functionality of a module which was built as a DSO you - # have to place corresponding `LoadModule' lines at this location so the - # directives contained in it are actually available _before_ they are used. - # Please read the file README.DSO in the Apache 1.3 distribution for more - # details about the DSO mechanism and run `httpd -l' for the list of already - # built-in (statically linked and thus always available) modules in your httpd - # binary. - # - # Note: The order is which modules are loaded is important. Don't change - # the order below without expert advice. - # - # Example: - # LoadModule foo_module libexec/mod_foo.so - - # - # ExtendedStatus controls whether Apache will generate "full" status - # information (ExtendedStatus On) or just basic information (ExtendedStatus - # Off) when the "server-status" handler is called. The default is Off. - # - #ExtendedStatus On - - ### Section 2: 'Main' server configuration - # - # The directives in this section set up the values used by the 'main' - # server, which responds to any requests that aren't handled by a - # definition. These values also provide defaults for - # any containers you may define later in the file. - # - # All of these directives may appear inside containers, - # in which case these default settings will be overridden for the - # virtual host being defined. - # - - # - # If your ServerType directive (set earlier in the 'Global Environment' - # section) is set to "inetd", the next few directives don't have any - # effect since their settings are defined by the inetd configuration. - # Skip ahead to the ServerAdmin directive. - # - - # - # Port: The port to which the standalone server listens. For - # ports < 1023, you will need httpd to be run as root initially. - # - Port 80 - - # - # If you wish httpd to run as a different user or group, you must run - # httpd as root initially and it will switch. - # - # User/Group: The name (or #number) of the user/group to run httpd as. - # . On SCO (ODT 3) use "User nouser" and "Group nogroup". - # . On HPUX you may not be able to use shared memory as nobody, and the - # suggested workaround is to create a user www and use that user. - # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) - # when the value of (unsigned)Group is above 60000; - # don't use Group nobody on these systems! - # -User www -Group omc - -# -# ServerAdmin: Your address, where problems with the server should be -# e-mailed. This address appears on some server-generated pages, such -# as error documents. -# -ServerAdmin root@omc-u2 - -# -# ServerName allows you to set a host name which is sent back to clients for -# your server if it's different than the one the program would get (i.e., use -# "www" instead of the host's real name). -# -# Note: You cannot just invent host names and hope they work. The name you -# define here must be a valid DNS name for your host. If you don't understand -# this, ask your network administrator. -# If your host doesn't have a registered DNS name, enter its IP address here. -# You will have to access it by its address (e.g., http://123.45.67.89/) -# anyway, and this will make redirections work in a sensible way. -# - -ServerName omc-u2 -# -# DocumentRoot: The directory out of which you will serve your -# documents. By default, all requests are taken from this directory, but -# symbolic links and aliases may be used to point to other locations. -# -DocumentRoot "/usr/local/apache/htdocs/" - -# -# Each directory to which Apache has access, can be configured with respect -# to which services and features are allowed and/or disabled in that -# directory (and its subdirectories). -# -# First, we configure the "default" to be a very restrictive set of -# permissions. -# - - Options FollowSymLinks - AllowOverride None - - -# -# Note that from this point forward you must specifically allow -# particular features to be enabled - so if something's not working as -# you might expect, make sure that you have specifically enabled it -# below. -# - -# -# This should be changed to whatever you set DocumentRoot to. -# - - -# -# This may also be "None", "All", or any combination of "Indexes", -# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews". -# -# Note that "MultiViews" must be named *explicitly* --- "Options All" -# doesn't give it to you. -# - Options Indexes FollowSymLinks MultiViews - -# -# This controls which options the .htaccess files in directories can -# override. Can also be "All", or any combination of "Options", "FileInfo", -# "AuthConfig", and "Limit" -# - AllowOverride None - -# -# Controls who can get stuff from this server. -# - Order allow,deny - Allow from all - - -# -# UserDir: The name of the directory which is appended onto a user's home -# directory if a ~user request is received. -# - - UserDir public_html - - -# -# Control access to UserDir directories. The following is an example -# for a site where these directories are restricted to read-only. -# -# -# AllowOverride FileInfo AuthConfig Limit -# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec -# -# Order allow,deny -# Allow from all -# -# -# Order deny,allow -# Deny from all -# -# - -# -# DirectoryIndex: Name of the file or files to use as a pre-written HTML -# directory index. Separate multiple entries with spaces. -# - - DirectoryIndex index.php index.html index.php3 - - -# -# AccessFileName: The name of the file to look for in each directory -# for access control information. -# -AccessFileName .htaccess - -# -# The following lines prevent .htaccess files from being viewed by -# Web clients. Since .htaccess files often contain authorization -# information, access is disallowed for security reasons. Comment -# these lines out if you want Web visitors to see the contents of -# .htaccess files. If you change the AccessFileName directive above, -# be sure to make the corresponding changes here. -# -# Also, folks tend to use names such as .htpasswd for password -# files, so this will protect those as well. -# - - Order allow,deny - Deny from all - - -# -# CacheNegotiatedDocs: By default, Apache sends "Pragma: no-cache" with each -# document that was negotiated on the basis of content. This asks proxy -# servers not to cache the document. Uncommenting the following line disables -# this behavior, and proxies will be allowed to cache the documents. -# -#CacheNegotiatedDocs - -# -# UseCanonicalName: (new for 1.3) With this setting turned on, whenever -# Apache needs to construct a self-referencing URL (a URL that refers back -# to the server the response is coming from) it will use ServerName and -# Port to form a "canonical" name. With this setting off, Apache will -# use the hostname:port that the client supplied, when possible. This -# also affects SERVER_NAME and SERVER_PORT in CGI scripts. -# -UseCanonicalName On - -# -# TypesConfig describes where the mime.types file (or equivalent) is -# to be found. -# - - TypesConfig /usr/local/apache/conf/mime.types - - -# -# DefaultType is the default MIME type the server will use for a document -# if it cannot otherwise determine one, such as from filename extensions. -# If your server contains mostly text or HTML documents, "text/plain" is -# a good value. If most of your content is binary, such as applications -# or images, you may want to use "application/octet-stream" instead to -# keep browsers from trying to display binary files as though they are -# text. -# -DefaultType text/plain - -# -# The mod_mime_magic module allows the server to use various hints from the -# contents of the file itself to determine its type. The MIMEMagicFile -# directive tells the module where the hint definitions are located. -# mod_mime_magic is not part of the default server (you have to add -# it yourself with a LoadModule [see the DSO paragraph in the 'Global -# Environment' section], or recompile the server and include mod_mime_magic -# as part of the configuration), so it's enclosed in an container. -# This means that the MIMEMagicFile directive will only be processed if the -# module is part of the server. -# - - MIMEMagicFile /usr/local/apache/conf/magic - - -# -# HostnameLookups: Log the names of clients or just their IP addresses -# e.g., www.apache.org (on) or 204.62.129.132 (off). -# The default is off because it'd be overall better for the net if people -# had to knowingly turn this feature on, since enabling it means that -# each client request will result in AT LEAST one lookup request to the -# nameserver. -# -HostnameLookups Off - -# -# ErrorLog: The location of the error log file. -# If you do not specify an ErrorLog directive within a -# container, error messages relating to that virtual host will be -# logged here. If you *do* define an error logfile for a -# container, that host's errors will be logged there and not here. -# -ErrorLog /usr/local/apache/logs/error_log - -# -# LogLevel: Control the number of messages logged to the error_log. -# Possible values include: debug, info, notice, warn, error, crit, -# alert, emerg. -# -LogLevel warn - -# -# The following directives define some format nicknames for use with -# a CustomLog directive (see below). -# -LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined -LogFormat "%h %l %u %t \"%r\" %>s %b" common -LogFormat "%{Referer}i -> %U" referer -LogFormat "%{User-agent}i" agent - -# -# The location and format of the access logfile (Common Logfile Format). -# If you do not define any access logfiles within a -# container, they will be logged here. Contrariwise, if you *do* -# define per- access logfiles, transactions will be -# logged therein and *not* in this file. -# -CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log 86400" common - -# -# If you would like to have agent and referer logfiles, uncomment the -# following directives. -# -#CustomLog /usr/local/apache/logs/referer_log referer -#CustomLog /usr/local/apache/logs/agent_log agent - -# -# If you prefer a single logfile with access, agent, and referer information -# (Combined Logfile Format) you can use the following directive. -# -#CustomLog /usr/local/apache/logs/access_log combined - -# -# Optionally add a line containing the server version and virtual host -# name to server-generated pages (error documents, FTP directory listings, -# mod_status and mod_info output etc., but not CGI generated documents). -# Set to "EMail" to also include a mailto: link to the ServerAdmin. -# Set to one of: On | Off | EMail -# -ServerSignature On - -# -# Aliases: Add here as many aliases as you need (with no limit). The format is -# Alias fakename realname -# - - - # - # Note that if you include a trailing / on fakename then the server will - # require it to be present in the URL. So "/icons" isn't aliased in this - # example, only "/icons/".. - # - #Alias /icons/ "/usr/local/apache/icons/" - #Alias /mysql/ "/usr/local/apache/htdocs/phpMyAdmin/" - #Alias /omc/ "/usr/local/apache/htdocs/ts_omc/" - - - Options Indexes MultiViews - AllowOverride None - Order allow,deny - Allow from all - - - # - # ScriptAlias: This controls which directories contain server scripts. - # ScriptAliases are essentially the same as Aliases, except that - # documents in the realname directory are treated as applications and - # run by the server when requested rather than as documents sent to the client. - # The same rules about trailing "/" apply to ScriptAlias directives as to - # Alias. - # - ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" - - # - # "/usr/local/apache/cgi-bin" should be changed to whatever your ScriptAliased - # CGI directory exists, if you have that configured. - # - - AllowOverride None - Options None - Order allow,deny - Allow from all - - - -# End of aliases. - -# -# Redirect allows you to tell clients about documents which used to exist in -# your server's namespace, but do not anymore. This allows you to tell the -# clients where to look for the relocated document. -# Format: Redirect old-URI new-URL -# - -# -# Directives controlling the display of server-generated directory listings. -# - - - # - # FancyIndexing is whether you want fancy directory indexing or standard - # - IndexOptions FancyIndexing - - # - # AddIcon* directives tell the server which icon to show for different - # files or filename extensions. These are only displayed for - # FancyIndexed directories. - # - AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip - - AddIconByType (TXT,/icons/text.gif) text/* - AddIconByType (IMG,/icons/image2.gif) image/* - AddIconByType (SND,/icons/sound2.gif) audio/* - AddIconByType (VID,/icons/movie.gif) video/* - - AddIcon /icons/binary.gif .bin .exe - AddIcon /icons/binhex.gif .hqx - AddIcon /icons/tar.gif .tar - AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv - AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip - AddIcon /icons/a.gif .ps .ai .eps - AddIcon /icons/layout.gif .html .shtml .htm .pdf - AddIcon /icons/text.gif .txt - AddIcon /icons/c.gif .c - AddIcon /icons/p.gif .pl .py - AddIcon /icons/f.gif .for - AddIcon /icons/dvi.gif .dvi - AddIcon /icons/uuencoded.gif .uu - AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl - AddIcon /icons/tex.gif .tex .csv - AddIcon /icons/bomb.gif core - - AddIcon /icons/back.gif .. - AddIcon /icons/hand.right.gif README - AddIcon /icons/folder.gif ^^DIRECTORY^^ - AddIcon /icons/blank.gif ^^BLANKICON^^ - - # - # DefaultIcon is which icon to show for files which do not have an icon - # explicitly set. - # - DefaultIcon /icons/unknown.gif - - # - # AddDescription allows you to place a short description after a file in - # server-generated indexes. These are only displayed for FancyIndexed - # directories. - # Format: AddDescription "description" filename - # - #AddDescription "GZIP compressed document" .gz - #AddDescription "tar archive" .tar - #AddDescription "GZIP compressed tar archive" .tgz - - # - # ReadmeName is the name of the README file the server will look for by - # default, and append to directory listings. - # - # HeaderName is the name of a file which should be prepended to - # directory indexes. - # - # If MultiViews are amongst the Options in effect, the server will - # first look for name.html and include it if found. If name.html - # doesn't exist, the server will then look for name.txt and include - # it as plaintext if found. - # - ReadmeName README - HeaderName HEADER - - # - # IndexIgnore is a set of filenames which directory indexing should ignore - # and not include in the listing. Shell-style wildcarding is permitted. - # - IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t - - -# End of indexing directives. - -# -# Document types. -# - - - # - # AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress - # information on the fly. Note: Not all browsers support this. - # Despite the name similarity, the following Add* directives have nothing - # to do with the FancyIndexing customization directives above. - # - #AddEncoding x-compress Z - #AddEncoding x-gzip gz tgz - - # - # AddLanguage allows you to specify the language of a document. You can - # then use content negotiation to give a browser a file in a language - # it can understand. - # - # Note 1: The suffix does not have to be the same as the language - # keyword --- those with documents in Polish (whose net-standard - # language code is pl) may wish to use "AddLanguage pl .po" to - # avoid the ambiguity with the common suffix for perl scripts. - # - # Note 2: The example entries below illustrate that in quite - # some cases the two character 'Language' abbriviation is not - # identical to the two character 'Country' code for its country, - # E.g. 'Danmark/dk' versus 'Danish/da'. - # - # Note 3: In the case of 'ltz' we violate the RFC by using a three char - # specifier. But there is 'work in progress' to fix this and get - # the reference data for rfc1766 cleaned up. - # - # Danish (da) - Dutch (nl) - English (en) - Estonian (ee) - # French (fr) - German (de) - Greek-Modern (el) - # Italian (it) - Portugese (pt) - Luxembourgeois* (ltz) - # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz) - # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) - # - AddLanguage da .dk - AddLanguage nl .nl - AddLanguage en .en - AddLanguage et .ee - AddLanguage fr .fr - AddLanguage de .de - AddLanguage el .el - AddLanguage it .it - AddLanguage ja .ja - AddCharset ISO-2022-JP .jis - AddLanguage pl .po - AddCharset ISO-8859-2 .iso-pl - AddLanguage pt .pt - AddLanguage pt-br .pt-br - AddLanguage ltz .lu - AddLanguage ca .ca - AddLanguage es .es - AddLanguage sv .se - AddLanguage cz .cz - - # LanguagePriority allows you to give precedence to some languages - # in case of a tie during content negotiation. - # - # Just list the languages in decreasing order of preference. We have - # more or less alphabetized them here. You probably want to change this. - # - - LanguagePriority en da nl et fr de el it ja pl pt pt-br ltz ca es sv - - - # - # AddType allows you to tweak mime.types without actually editing it, or to - # make certain files to be certain types. - # - # For example, the PHP 3.x module (not part of the Apache distribution - see - # http://www.php.net) will typically use: - # - AddType application/x-httpd-php3 .php3 - AddType application/x-httpd-php3-source .phps - # - # And for PHP 4.x, use: - # - AddType application/x-httpd-php .php3 - AddType application/x-httpd-php .inc - AddType application/x-httpd-php .php - AddType application/x-httpd-php-source .phps - - AddType application/x-tar .tar - AddType application/x-tgz .tgz - AddType application/x-csv .csv - - # - # AddHandler allows you to map certain file extensions to "handlers", - # actions unrelated to filetype. These can be either built into the server - # or added with the Action command (see below) - # - # If you want to use server side includes, or CGI outside - # ScriptAliased directories, uncomment the following lines. - # - # To use CGI scripts: - # - #AddHandler cgi-script .cgi - - # - # To use server-parsed HTML files - # - #AddType text/html .shtml - #AddHandler server-parsed .shtml - - # - # Uncomment the following line to enable Apache's send-asis HTTP file - # feature - # - #AddHandler send-as-is asis - - # - # If you wish to use server-parsed imagemap files, use - # - #AddHandler imap-file map - - # - # To enable type maps, you might want to use - # - #AddHandler type-map var - - -# End of document types. - -# -# Action lets you define media types that will execute a script whenever -# a matching file is called. This eliminates the need for repeated URL -# pathnames for oft-used CGI file processors. -# Format: Action media/type /cgi-script/location -# Format: Action handler-name /cgi-script/location -# - -# -# MetaDir: specifies the name of the directory in which Apache can find -# meta information files. These files contain additional HTTP headers -# to include when sending the document -# -#MetaDir .web - -# -# MetaSuffix: specifies the file name suffix for the file containing the -# meta information. -# -#MetaSuffix .meta - -# -# Customizable error response (Apache style) -# these come in three flavors -# -# 1) plain text -#ErrorDocument 500 "The server made a boo boo. -# n.b. the (") marks it as text, it does not get output -# -# 2) local redirects -#ErrorDocument 404 /missing.html -# to redirect to local URL /missing.html -#ErrorDocument 404 /cgi-bin/missing_handler.pl -# N.B.: You can redirect to a script or a document using server-side-includes. -# -# 3) external redirects -#ErrorDocument 402 http://some.other_server.com/subscription_info.html -# N.B.: Many of the environment variables associated with the original -# request will *not* be available to such a script. - -# -# Customize behaviour based on the browser -# - - - # - # The following directives modify normal HTTP response behavior. - # The first directive disables keepalive for Netscape 2.x and browsers that - # spoof it. There are known problems with these browser implementations. - # The second directive is for Microsoft Internet Explorer 4.0b2 - # which has a broken HTTP/1.1 implementation and does not properly - # support keepalive when it is used on 301 or 302 (redirect) responses. - # - BrowserMatch "Mozilla/2" nokeepalive - BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 - - # - # The following directive disables HTTP/1.1 responses to browsers which - # are in violation of the HTTP/1.0 spec by not being able to grok a - # basic 1.1 response. - # - BrowserMatch "RealPlayer 4\.0" force-response-1.0 - BrowserMatch "Java/1\.0" force-response-1.0 - BrowserMatch "JDK/1\.0" force-response-1.0 - - - -# -# Allow server status reports, with the URL of http://servername/server-status -# Change the ".your_domain.com" to match your domain to enable. -# -# -# SetHandler server-status -# Order deny,allow -# Deny from all -# Allow from .your_domain.com -# - -# -# Allow remote server configuration reports, with the URL of -# http://servername/server-info (requires that mod_info.c be loaded). -# Change the ".your_domain.com" to match your domain to enable. -# -# -# SetHandler server-info -# Order deny,allow -# Deny from all -# Allow from .your_domain.com -# - -# -# There have been reports of people trying to abuse an old bug from pre-1.1 -# days. This bug involved a CGI script distributed as a part of Apache. -# By uncommenting these lines you can redirect these attacks to a logging -# script on phf.apache.org. Or, you can record them yourself, using the script -# support/phf_abuse_log.cgi. -# -# -# Deny from all -# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi -# - -# -# Proxy Server directives. Uncomment the following lines to -# enable the proxy server: -# -# - #ProxyRequests On - # - # - # Order deny,allow - # Deny from all - # Allow from .your_domain.com - # - - # - # Enable/disable the handling of HTTP/1.1 "Via:" headers. - # ("Full" adds the server version; "Block" removes all outgoing Via: headers) - # Set to one of: Off | On | Full | Block - # - #ProxyVia On - - # - # To enable the cache as well, edit and uncomment the following lines: - # (no cacheing without CacheRoot) - # - #CacheRoot "/usr/local/apache/proxy" - #CacheSize 5 - #CacheGcInterval 4 - #CacheMaxExpire 24 - #CacheLastModifiedFactor 0.1 - #CacheDefaultExpire 1 - #NoCache a_domain.com another_domain.edu joes.garage_sale.com - -# -# End of proxy directives. - -### Section 3: Virtual Hosts -# -# VirtualHost: If you want to maintain multiple domains/hostnames on your -# machine you can setup VirtualHost containers for them. -# Please see the documentation at -# for further details before you try to setup virtual hosts. -# You may use the command line option '-S' to verify your virtual host -# configuration. - -# -# If you want to use name-based virtual hosts you need to define at -# least one IP address (and port number) for them. -# -#NameVirtualHost 12.34.56.78:80 -#NameVirtualHost 192.168.1.230 - - -# -# VirtualHost example: -# Almost any Apache directive may go into a VirtualHost container. -# - -# -# ServerAdmin webmaster@host.some_domain.com -# DocumentRoot /usr/local/apache/htdocs/ -# ServerName omc-u2 -# ErrorLog logs/host.some_domain.com-error_log -# CustomLog logs/host.some_domain.com-access_log common -# - -# -# ServerAdmin webmaster@host.some_domain.com -# DocumentRoot /usr/local/apache/htdocs/phpMyAdmin/ -# ServerName admin -# ErrorLog logs/host.some_domain.com-error_log -# CustomLog logs/host.some_domain.com-access_log common -# - - - -# -# diff --git a/omc/bin/conf/manager_engine.conf b/omc/bin/conf/manager_engine.conf deleted file mode 100644 index 9114648f6f2cf0079c43bc13fc85a3f85f4ed799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 bcmZQzU|>iF;)SyxojMAnha;Hw7u8n)(a!~> diff --git a/omc/bin/conf/mcms_conf.txt b/omc/bin/conf/mcms_conf.txt deleted file mode 100644 index 30fea2b..0000000 --- a/omc/bin/conf/mcms_conf.txt +++ /dev/null @@ -1,2 +0,0 @@ -bind ip=192.168.4.75 -shm key shift=0 diff --git a/omc/bin/conf/menu_page b/omc/bin/conf/menu_page deleted file mode 100644 index 2f32f7a..0000000 --- a/omc/bin/conf/menu_page +++ /dev/null @@ -1,17 +0,0 @@ - - ******************* - * MENU PAGE * - ******************* - - a -- IPTR m -- MNP - b -- MTP3 n -- DEBUG - c -- SCCP o -- AUC - d -- TCAP p -- SMPP - e -- XAPP r -- EMS - f -- MSC s -- BICC - g -- VLR t -- MGC - h -- SSF u -- GCP - i -- SMEG v -- 8ECP - j -- SMSC w -- AIF - k -- PPS y -- ISUP - l -- SNMP z -- AAS diff --git a/omc/bin/conf/menu_page2 b/omc/bin/conf/menu_page2 deleted file mode 100644 index 9f5eaaa..0000000 --- a/omc/bin/conf/menu_page2 +++ /dev/null @@ -1,17 +0,0 @@ - - ******************* - * MENU PAGE * - ******************* - - a -- IPTR m -- MNP - b -- MTP3 n -- DEBUG - c -- SCCP o -- AUC - d -- TCAP p -- SMPP - e -- XAPP r -- XUA - f -- MSC s -- BICC - g -- VLR t -- MGC - h -- SSF u -- GCP - i -- SMEG v -- 8ECP - j -- SMSC w -- AIF - k -- PPS y -- ISUP - l -- SNMP z -- AAS diff --git a/omc/bin/conf/mtp3.conf b/omc/bin/conf/mtp3.conf deleted file mode 100644 index 38a4570..0000000 --- a/omc/bin/conf/mtp3.conf +++ /dev/null @@ -1,1477 +0,0 @@ -#MTP3 CONFIGURE FILE - -[SERVICE NETWORK SP LEN] -[77] - -[MTP3LITE TCP PORT] -[0000] - -[LOCAL SP] -[000001] [000200] [000001] [000001] -[000001] [000200] [000001] [000000] - -[LINK ATTRIBUTE] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [02.00.41cae29b.03.09.00.00000000.ff.ff.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [03.00.41cae29b.03.03.00.00000000.ff.fc.42cae29b] -[04.00.41cae29b.03.04.00.00000000.0f.ff.ffffffff] [05.00.41cae29b.03.05.00.00000000.ff.ff.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [1c.00.41cae29b.03.0f.00.00000000.ff.fc.42cae29b] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [18.00.41cae29b.03.00.00.00000000.ff.ff.42cae29b] [1e.00.41cae29b.03.12.00.00000000.ff.fc.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [13.01.41cae29b.03.01.01.00000000.ff.ff.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[13.00.41cae29b.03.0a.00.00000000.ff.ff.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [7e.00.41cae29b.03.06.01.00000000.0f.ff.ffffffff] [7f.00.42cae29b.03.05.01.00000000.0f.ff.ffffffff] -[13.00.42cae29b.02.0a.00.00000000.ff.fc.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] -[80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] [80.00.ffffffff.00.00.00.00000000.00.00.ffffffff] - -[LINKSET ATTRIBUTE] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] -[000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] [000000.00.00000000000000000000000000000000] - -[SG ATTRIBUTES] -[00.00.00.00000000] [01.01.00.21CAE29B] [01.00.00.23CAE29B] [01.01.00.23CAE29B] -[00.00.00.00000000] [00.00.00.00000000] [01.00.00.24CAE29B] [01.01.00.23CAE29B] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] -[00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] [00.00.00.00000000] - -[NATIONAL NETWORK SP] -[001fd4.01.80.00000000] [002b72.12.12.00000000] [0007d0.5a.5a.00000000] [000fa0.03.03.00000000] -[00006f.6f.80.00000000] [000009.04.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [00001a.05.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000002.0e.80.00000000] [000000.80.80.00000000] -[000003.20.20.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000014.14.14.00000000] [000015.15.15.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000037.37.37.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000030.30.30.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [00004d.4d.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] - -[NATIONAL NETWORK SPARE SP] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000007.07.80.00000000] -[000005.08.80.00000000] [000008.09.80.00000000] [000004.0a.80.00000000] [00005d.06.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [00000a.0b.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] - -[INTERNATIONAL NETWORK SP] -[003952.64.80.00000000] [003953.65.80.00000000] [0001f4.10.10.00000000] [00000a.0c.80.00000000] -[000009.04.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] - -[INTERNATIONAL NETWORK SPARE SP] -[000000.80.80.00000000] [000005.19.80.00000000] [000006.1a.80.00000000] [0001f4.20.20.00000000] -[000100.1c.80.00000000] [000150.1e.80.00000000] [00000a.1b.80.00000000] [000110.21.80.00000000] -[000078.23.80.00000000] [000001.40.40.00000000] [000020.00.00.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] -[000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] [000000.80.80.00000000] - -[LOCAL ACN] -030303030202020202030302020303020303020303030303030303030303030302020202 - -[INTERNATIONAL NETWORK ACN] -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 - -[INTERNATIONAL NETWORK SPARE ACN] -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 - -[NATIONAL NETWORK ACN] -020303030202020202030302020202020303020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 - -[NATIONAL NETWORK SPARE ACN] -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 -030303030202020202030302020202020202020303030303030303030303030302020202 - diff --git a/omc/bin/conf/nrtrde_seq.conf b/omc/bin/conf/nrtrde_seq.conf deleted file mode 100644 index 37627334d25809609f13098f461febd893baa8c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2004 zcmZQ#U|?|e@bq&8(t /dev/null 2>&1 -ulimit -c unlimited - -USER=`id -un` -LOGNAME=$USER -MAIL="/var/spool/mail/$USER" - -HOSTNAME=`/bin/hostname` -HISTSIZE=1000 - -if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then - INPUTRC=/etc/inputrc -fi - -export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC - -for i in /etc/profile.d/*.sh ; do - if [ -r $i ]; then - . $i - fi -done - -unset i -PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/etc/rc.d/init.d" diff --git a/omc/bin/conf/raid.conf b/omc/bin/conf/raid.conf deleted file mode 100644 index 05506c2..0000000 --- a/omc/bin/conf/raid.conf +++ /dev/null @@ -1,24 +0,0 @@ -[Global] -# Function Enable Flag, Value = [On/Off] -EnableFlag=On - -# The Port of the server SNMP for the RAID service -ServerSNMPPort=161 - -# The System Type, Value = [MCSS/MCMS] -SystemType=MCSS - -# This is a table to configure the remote server which need check RAID -# ServerName, Value = [MSS/EMS/VMS/MCMS] -# ServerType, Value = [Intel/Dell] -# CheckFlag, Value = [On/Off] -# ------------------------------------------ -# ServerName ServerType CheckFlag -[MCSS Server] -EMS,Intel,On -MSS,Intel,On -VMS,Intel,On -RCM,Intel,On -[MCMS Server] -MCMS,Intel,On - diff --git a/omc/bin/conf/rsyncd.conf b/omc/bin/conf/rsyncd.conf deleted file mode 100644 index 283a113..0000000 --- a/omc/bin/conf/rsyncd.conf +++ /dev/null @@ -1,15 +0,0 @@ -uid=mysql -gid=mysql -use chroot=no -max connections=4 -pid file=/var/run/rsyncd.pid -lock file=/var/run/rsync.lock -log file=/var/log/rsyncd.log - -[data] -path=/usr/local/mysql/data/ -list=true - -[conf] -path=/usr/local/omc/bin/conf/ -list=true diff --git a/omc/bin/conf/sccp.conf b/omc/bin/conf/sccp.conf deleted file mode 100644 index 382ec7a..0000000 --- a/omc/bin/conf/sccp.conf +++ /dev/null @@ -1,1058 +0,0 @@ -#SCCP Config file (R9V1_05) - -[Local Node] -#ssn NetID msisdn ip0 ip1 -4 2 57888123001 155.226.202.34 172.18.129.1 -6 1 57888123002 155.226.202.35 - -7 1 57888123003 155.226.202.35 - -8 1 57888123004 155.226.202.35 - -9 1 57888123005 155.226.202.35 - -10 2 57888123006 155.226.202.35 172.18.99.1 -11 2 57888123007 155.226.202.35 172.18.99.1 -19 2 57888123008 155.226.202.35 172.18.99.1 -20 2 57888123009 155.226.202.35 172.18.99.1 -21 2 57888123010 155.226.202.35 - -22 1 57888123011 155.226.202.35 - -23 1 57888123012 155.226.202.35 - -32 2 57888123015 155.226.202.35 172.18.99.1 -33 2 57888123016 155.226.202.35 172.18.99.1 -146 2 57888123017 155.226.202.35 172.18.99.1 -147 2 57888123018 155.226.202.35 172.18.99.1 -153 2 57888123019 155.226.202.35 172.18.99.1 -254 1 57888123020 155.226.202.35 172.18.99.1 -[GTT_Table] -#No EN NP TT StartDigits EndDigits NI SPC SSN RI AI S E N Rep -0 1 6 - 570028000000000 570028000000100 1 000200 6 1 7 -1 1 1 - 57888123007 57888123007 1 000200 11 1 7 -2 0 - - - - 0 000000 0 0 0 -3 1 6 - 570029000000000 570029000000100 1 000200 6 0 7 1 15 1 57888123002 -4 1 1 - 578885 578885 1 000200 6 1 7 -5 0 - - - - 0 000000 0 0 0 -6 0 - - - - 0 000000 0 0 0 -7 0 - - - - 0 000000 0 0 0 -8 0 - - - - 0 000000 0 0 0 -9 0 - - - - 0 000000 0 0 0 -10 0 - - - - 0 000000 0 0 0 -11 0 - - - - 0 000000 0 0 0 -12 0 - - - - 0 000000 0 0 0 -13 0 - - - - 0 000000 0 0 0 -14 0 - - - - 0 000000 0 0 0 -15 0 - - - - 0 000000 0 0 0 -16 0 - - - - 0 000000 0 0 0 -17 0 - - - - 0 000000 0 0 0 -18 0 - - - - 0 000000 0 0 0 -19 0 - - - - 0 000000 0 0 0 -20 0 - - - - 0 000000 0 0 0 -21 0 - - - - 0 000000 0 0 0 -22 0 - - - - 0 000000 0 0 0 -23 0 - - - - 0 000000 0 0 0 -24 0 - - - - 0 000000 0 0 0 -25 0 - - - - 0 000000 0 0 0 -26 0 - - - - 0 000000 0 0 0 -27 0 - - - - 0 000000 0 0 0 -28 0 - - - - 0 000000 0 0 0 -29 0 - - - - 0 000000 0 0 0 -30 0 - - - - 0 000000 0 0 0 -31 0 - - - - 0 000000 0 0 0 -32 0 - - - - 0 000000 0 0 0 -33 0 - - - - 0 000000 0 0 0 -34 0 - - - - 0 000000 0 0 0 -35 0 - - - - 0 000000 0 0 0 -36 0 - - - - 0 000000 0 0 0 -37 0 - - - - 0 000000 0 0 0 -38 0 - - - - 0 000000 0 0 0 -39 0 - - - - 0 000000 0 0 0 -40 0 - - - - 0 000000 0 0 0 -41 0 - - - - 0 000000 0 0 0 -42 0 - - - - 0 000000 0 0 0 -43 0 - - - - 0 000000 0 0 0 -44 0 - - - - 0 000000 0 0 0 -45 0 - - - - 0 000000 0 0 0 -46 0 - - - - 0 000000 0 0 0 -47 0 - - - - 0 000000 0 0 0 -48 0 - - - - 0 000000 0 0 0 -49 0 - - - - 0 000000 0 0 0 -50 0 - - - - 0 000000 0 0 0 -51 0 - - - - 0 000000 0 0 0 -52 0 - - - - 0 000000 0 0 0 -53 0 - - - - 0 000000 0 0 0 -54 0 - - - - 0 000000 0 0 0 -55 0 - - - - 0 000000 0 0 0 -56 0 - - - - 0 000000 0 0 0 -57 0 - - - - 0 000000 0 0 0 -58 0 - - - - 0 000000 0 0 0 -59 0 - - - - 0 000000 0 0 0 -60 0 - - - - 0 000000 0 0 0 -61 0 - - - - 0 000000 0 0 0 -62 0 - - - - 0 000000 0 0 0 -63 0 - - - - 0 000000 0 0 0 -64 0 - - - - 0 000000 0 0 0 -65 0 - - - - 0 000000 0 0 0 -66 0 - - - - 0 000000 0 0 0 -67 0 - - - - 0 000000 0 0 0 -68 0 - - - - 0 000000 0 0 0 -69 0 - - - - 0 000000 0 0 0 -70 0 - - - - 0 000000 0 0 0 -71 0 - - - - 0 000000 0 0 0 -72 0 - - - - 0 000000 0 0 0 -73 0 - - - - 0 000000 0 0 0 -74 0 - - - - 0 000000 0 0 0 -75 0 - - - - 0 000000 0 0 0 -76 0 - - - - 0 000000 0 0 0 -77 0 - - - - 0 000000 0 0 0 -78 0 - - - - 0 000000 0 0 0 -79 0 - - - - 0 000000 0 0 0 -80 0 - - - - 0 000000 0 0 0 -81 0 - - - - 0 000000 0 0 0 -82 0 - - - - 0 000000 0 0 0 -83 0 - - - - 0 000000 0 0 0 -84 0 - - - - 0 000000 0 0 0 -85 0 - - - - 0 000000 0 0 0 -86 0 - - - - 0 000000 0 0 0 -87 0 - - - - 0 000000 0 0 0 -88 0 - - - - 0 000000 0 0 0 -89 0 - - - - 0 000000 0 0 0 -90 0 - - - - 0 000000 0 0 0 -91 0 - - - - 0 000000 0 0 0 -92 0 - - - - 0 000000 0 0 0 -93 0 - - - - 0 000000 0 0 0 -94 0 - - - - 0 000000 0 0 0 -95 0 - - - - 0 000000 0 0 0 -96 0 - - - - 0 000000 0 0 0 -97 0 - - - - 0 000000 0 0 0 -98 0 - - - - 0 000000 0 0 0 -99 0 - - - - 0 000000 0 0 0 -100 0 - - - - 0 000000 0 0 0 -101 0 - - - - 0 000000 0 0 0 -102 0 - - - - 0 000000 0 0 0 -103 0 - - - - 0 000000 0 0 0 -104 0 - - - - 0 000000 0 0 0 -105 0 - - - - 0 000000 0 0 0 -106 0 - - - - 0 000000 0 0 0 -107 0 - - - - 0 000000 0 0 0 -108 0 - - - - 0 000000 0 0 0 -109 0 - - - - 0 000000 0 0 0 -110 0 - - - - 0 000000 0 0 0 -111 0 - - - - 0 000000 0 0 0 -112 0 - - - - 0 000000 0 0 0 -113 0 - - - - 0 000000 0 0 0 -114 0 - - - - 0 000000 0 0 0 -115 0 - - - - 0 000000 0 0 0 -116 0 - - - - 0 000000 0 0 0 -117 0 - - - - 0 000000 0 0 0 -118 0 - - - - 0 000000 0 0 0 -119 0 - - - - 0 000000 0 0 0 -120 0 - - - - 0 000000 0 0 0 -121 0 - - - - 0 000000 0 0 0 -122 0 - - - - 0 000000 0 0 0 -123 0 - - - - 0 000000 0 0 0 -124 0 - - - - 0 000000 0 0 0 -125 0 - - - - 0 000000 0 0 0 -126 0 - - - - 0 000000 0 0 0 -127 0 - - - - 0 000000 0 0 0 -128 0 - - - - 0 000000 0 0 0 -129 0 - - - - 0 000000 0 0 0 -130 0 - - - - 0 000000 0 0 0 -131 0 - - - - 0 000000 0 0 0 -132 0 - - - - 0 000000 0 0 0 -133 0 - - - - 0 000000 0 0 0 -134 0 - - - - 0 000000 0 0 0 -135 0 - - - - 0 000000 0 0 0 -136 0 - - - - 0 000000 0 0 0 -137 0 - - - - 0 000000 0 0 0 -138 0 - - - - 0 000000 0 0 0 -139 0 - - - - 0 000000 0 0 0 -140 0 - - - - 0 000000 0 0 0 -141 0 - - - - 0 000000 0 0 0 -142 0 - - - - 0 000000 0 0 0 -143 0 - - - - 0 000000 0 0 0 -144 0 - - - - 0 000000 0 0 0 -145 0 - - - - 0 000000 0 0 0 -146 0 - - - - 0 000000 0 0 0 -147 0 - - - - 0 000000 0 0 0 -148 0 - - - - 0 000000 0 0 0 -149 0 - - - - 0 000000 0 0 0 -150 0 - - - - 0 000000 0 0 0 -151 0 - - - - 0 000000 0 0 0 -152 0 - - - - 0 000000 0 0 0 -153 0 - - - - 0 000000 0 0 0 -154 0 - - - - 0 000000 0 0 0 -155 0 - - - - 0 000000 0 0 0 -156 0 - - - - 0 000000 0 0 0 -157 0 - - - - 0 000000 0 0 0 -158 0 - - - - 0 000000 0 0 0 -159 0 - - - - 0 000000 0 0 0 -160 0 - - - - 0 000000 0 0 0 -161 0 - - - - 0 000000 0 0 0 -162 0 - - - - 0 000000 0 0 0 -163 0 - - - - 0 000000 0 0 0 -164 0 - - - - 0 000000 0 0 0 -165 0 - - - - 0 000000 0 0 0 -166 0 - - - - 0 000000 0 0 0 -167 0 - - - - 0 000000 0 0 0 -168 0 - - - - 0 000000 0 0 0 -169 0 - - - - 0 000000 0 0 0 -170 0 - - - - 0 000000 0 0 0 -171 0 - - - - 0 000000 0 0 0 -172 0 - - - - 0 000000 0 0 0 -173 0 - - - - 0 000000 0 0 0 -174 0 - - - - 0 000000 0 0 0 -175 0 - - - - 0 000000 0 0 0 -176 0 - - - - 0 000000 0 0 0 -177 0 - - - - 0 000000 0 0 0 -178 0 - - - - 0 000000 0 0 0 -179 0 - - - - 0 000000 0 0 0 -180 0 - - - - 0 000000 0 0 0 -181 0 - - - - 0 000000 0 0 0 -182 0 - - - - 0 000000 0 0 0 -183 0 - - - - 0 000000 0 0 0 -184 0 - - - - 0 000000 0 0 0 -185 0 - - - - 0 000000 0 0 0 -186 0 - - - - 0 000000 0 0 0 -187 0 - - - - 0 000000 0 0 0 -188 0 - - - - 0 000000 0 0 0 -189 0 - - - - 0 000000 0 0 0 -190 0 - - - - 0 000000 0 0 0 -191 0 - - - - 0 000000 0 0 0 -192 0 - - - - 0 000000 0 0 0 -193 0 - - - - 0 000000 0 0 0 -194 0 - - - - 0 000000 0 0 0 -195 0 - - - - 0 000000 0 0 0 -196 0 - - - - 0 000000 0 0 0 -197 0 - - - - 0 000000 0 0 0 -198 0 - - - - 0 000000 0 0 0 -199 0 - - - - 0 000000 0 0 0 -200 0 - - - - 0 000000 0 0 0 -201 0 - - - - 0 000000 0 0 0 -202 0 - - - - 0 000000 0 0 0 -203 0 - - - - 0 000000 0 0 0 -204 0 - - - - 0 000000 0 0 0 -205 0 - - - - 0 000000 0 0 0 -206 0 - - - - 0 000000 0 0 0 -207 0 - - - - 0 000000 0 0 0 -208 0 - - - - 0 000000 0 0 0 -209 0 - - - - 0 000000 0 0 0 -210 0 - - - - 0 000000 0 0 0 -211 0 - - - - 0 000000 0 0 0 -212 0 - - - - 0 000000 0 0 0 -213 0 - - - - 0 000000 0 0 0 -214 0 - - - - 0 000000 0 0 0 -215 0 - - - - 0 000000 0 0 0 -216 0 - - - - 0 000000 0 0 0 -217 0 - - - - 0 000000 0 0 0 -218 0 - - - - 0 000000 0 0 0 -219 0 - - - - 0 000000 0 0 0 -220 0 - - - - 0 000000 0 0 0 -221 0 - - - - 0 000000 0 0 0 -222 0 - - - - 0 000000 0 0 0 -223 0 - - - - 0 000000 0 0 0 -224 0 - - - - 0 000000 0 0 0 -225 0 - - - - 0 000000 0 0 0 -226 0 - - - - 0 000000 0 0 0 -227 0 - - - - 0 000000 0 0 0 -228 0 - - - - 0 000000 0 0 0 -229 0 - - - - 0 000000 0 0 0 -230 0 - - - - 0 000000 0 0 0 -231 0 - - - - 0 000000 0 0 0 -232 0 - - - - 0 000000 0 0 0 -233 0 - - - - 0 000000 0 0 0 -234 0 - - - - 0 000000 0 0 0 -235 0 - - - - 0 000000 0 0 0 -236 0 - - - - 0 000000 0 0 0 -237 0 - - - - 0 000000 0 0 0 -238 0 - - - - 0 000000 0 0 0 -239 0 - - - - 0 000000 0 0 0 -240 0 - - - - 0 000000 0 0 0 -241 0 - - - - 0 000000 0 0 0 -242 0 - - - - 0 000000 0 0 0 -243 0 - - - - 0 000000 0 0 0 -244 0 - - - - 0 000000 0 0 0 -245 0 - - - - 0 000000 0 0 0 -246 0 - - - - 0 000000 0 0 0 -247 0 - - - - 0 000000 0 0 0 -248 0 - - - - 0 000000 0 0 0 -249 0 - - - - 0 000000 0 0 0 -250 0 - - - - 0 000000 0 0 0 -251 0 - - - - 0 000000 0 0 0 -252 0 - - - - 0 000000 0 0 0 -253 0 - - - - 0 000000 0 0 0 -254 0 - - - - 0 000000 0 0 0 -255 0 - - - - 0 000000 0 0 0 -256 0 - - - - 0 000000 0 0 0 -257 0 - - - - 0 000000 0 0 0 -258 0 - - - - 0 000000 0 0 0 -259 0 - - - - 0 000000 0 0 0 -260 0 - - - - 0 000000 0 0 0 -261 0 - - - - 0 000000 0 0 0 -262 0 - - - - 0 000000 0 0 0 -263 0 - - - - 0 000000 0 0 0 -264 0 - - - - 0 000000 0 0 0 -265 0 - - - - 0 000000 0 0 0 -266 0 - - - - 0 000000 0 0 0 -267 0 - - - - 0 000000 0 0 0 -268 0 - - - - 0 000000 0 0 0 -269 0 - - - - 0 000000 0 0 0 -270 0 - - - - 0 000000 0 0 0 -271 0 - - - - 0 000000 0 0 0 -272 0 - - - - 0 000000 0 0 0 -273 0 - - - - 0 000000 0 0 0 -274 0 - - - - 0 000000 0 0 0 -275 0 - - - - 0 000000 0 0 0 -276 0 - - - - 0 000000 0 0 0 -277 0 - - - - 0 000000 0 0 0 -278 0 - - - - 0 000000 0 0 0 -279 0 - - - - 0 000000 0 0 0 -280 0 - - - - 0 000000 0 0 0 -281 0 - - - - 0 000000 0 0 0 -282 0 - - - - 0 000000 0 0 0 -283 0 - - - - 0 000000 0 0 0 -284 0 - - - - 0 000000 0 0 0 -285 0 - - - - 0 000000 0 0 0 -286 0 - - - - 0 000000 0 0 0 -287 0 - - - - 0 000000 0 0 0 -288 0 - - - - 0 000000 0 0 0 -289 0 - - - - 0 000000 0 0 0 -290 0 - - - - 0 000000 0 0 0 -291 0 - - - - 0 000000 0 0 0 -292 0 - - - - 0 000000 0 0 0 -293 0 - - - - 0 000000 0 0 0 -294 0 - - - - 0 000000 0 0 0 -295 0 - - - - 0 000000 0 0 0 -296 0 - - - - 0 000000 0 0 0 -297 0 - - - - 0 000000 0 0 0 -298 0 - - - - 0 000000 0 0 0 -299 0 - - - - 0 000000 0 0 0 -300 0 - - - - 0 000000 0 0 0 -301 0 - - - - 0 000000 0 0 0 -302 0 - - - - 0 000000 0 0 0 -303 0 - - - - 0 000000 0 0 0 -304 0 - - - - 0 000000 0 0 0 -305 0 - - - - 0 000000 0 0 0 -306 0 - - - - 0 000000 0 0 0 -307 0 - - - - 0 000000 0 0 0 -308 0 - - - - 0 000000 0 0 0 -309 0 - - - - 0 000000 0 0 0 -310 0 - - - - 0 000000 0 0 0 -311 0 - - - - 0 000000 0 0 0 -312 0 - - - - 0 000000 0 0 0 -313 0 - - - - 0 000000 0 0 0 -314 0 - - - - 0 000000 0 0 0 -315 0 - - - - 0 000000 0 0 0 -316 0 - - - - 0 000000 0 0 0 -317 0 - - - - 0 000000 0 0 0 -318 0 - - - - 0 000000 0 0 0 -319 0 - - - - 0 000000 0 0 0 -320 0 - - - - 0 000000 0 0 0 -321 0 - - - - 0 000000 0 0 0 -322 0 - - - - 0 000000 0 0 0 -323 0 - - - - 0 000000 0 0 0 -324 0 - - - - 0 000000 0 0 0 -325 0 - - - - 0 000000 0 0 0 -326 0 - - - - 0 000000 0 0 0 -327 0 - - - - 0 000000 0 0 0 -328 0 - - - - 0 000000 0 0 0 -329 0 - - - - 0 000000 0 0 0 -330 0 - - - - 0 000000 0 0 0 -331 0 - - - - 0 000000 0 0 0 -332 0 - - - - 0 000000 0 0 0 -333 0 - - - - 0 000000 0 0 0 -334 0 - - - - 0 000000 0 0 0 -335 0 - - - - 0 000000 0 0 0 -336 0 - - - - 0 000000 0 0 0 -337 0 - - - - 0 000000 0 0 0 -338 0 - - - - 0 000000 0 0 0 -339 0 - - - - 0 000000 0 0 0 -340 0 - - - - 0 000000 0 0 0 -341 0 - - - - 0 000000 0 0 0 -342 0 - - - - 0 000000 0 0 0 -343 0 - - - - 0 000000 0 0 0 -344 0 - - - - 0 000000 0 0 0 -345 0 - - - - 0 000000 0 0 0 -346 0 - - - - 0 000000 0 0 0 -347 0 - - - - 0 000000 0 0 0 -348 0 - - - - 0 000000 0 0 0 -349 0 - - - - 0 000000 0 0 0 -350 0 - - - - 0 000000 0 0 0 -351 0 - - - - 0 000000 0 0 0 -352 0 - - - - 0 000000 0 0 0 -353 0 - - - - 0 000000 0 0 0 -354 0 - - - - 0 000000 0 0 0 -355 0 - - - - 0 000000 0 0 0 -356 0 - - - - 0 000000 0 0 0 -357 0 - - - - 0 000000 0 0 0 -358 0 - - - - 0 000000 0 0 0 -359 0 - - - - 0 000000 0 0 0 -360 0 - - - - 0 000000 0 0 0 -361 0 - - - - 0 000000 0 0 0 -362 0 - - - - 0 000000 0 0 0 -363 0 - - - - 0 000000 0 0 0 -364 0 - - - - 0 000000 0 0 0 -365 0 - - - - 0 000000 0 0 0 -366 0 - - - - 0 000000 0 0 0 -367 0 - - - - 0 000000 0 0 0 -368 0 - - - - 0 000000 0 0 0 -369 0 - - - - 0 000000 0 0 0 -370 0 - - - - 0 000000 0 0 0 -371 0 - - - - 0 000000 0 0 0 -372 0 - - - - 0 000000 0 0 0 -373 0 - - - - 0 000000 0 0 0 -374 0 - - - - 0 000000 0 0 0 -375 0 - - - - 0 000000 0 0 0 -376 0 - - - - 0 000000 0 0 0 -377 0 - - - - 0 000000 0 0 0 -378 0 - - - - 0 000000 0 0 0 -379 0 - - - - 0 000000 0 0 0 -380 0 - - - - 0 000000 0 0 0 -381 0 - - - - 0 000000 0 0 0 -382 0 - - - - 0 000000 0 0 0 -383 0 - - - - 0 000000 0 0 0 -384 0 - - - - 0 000000 0 0 0 -385 0 - - - - 0 000000 0 0 0 -386 0 - - - - 0 000000 0 0 0 -387 0 - - - - 0 000000 0 0 0 -388 0 - - - - 0 000000 0 0 0 -389 0 - - - - 0 000000 0 0 0 -390 0 - - - - 0 000000 0 0 0 -391 0 - - - - 0 000000 0 0 0 -392 0 - - - - 0 000000 0 0 0 -393 0 - - - - 0 000000 0 0 0 -394 0 - - - - 0 000000 0 0 0 -395 0 - - - - 0 000000 0 0 0 -396 0 - - - - 0 000000 0 0 0 -397 0 - - - - 0 000000 0 0 0 -398 0 - - - - 0 000000 0 0 0 -399 0 - - - - 0 000000 0 0 0 -400 0 - - - - 0 000000 0 0 0 -401 0 - - - - 0 000000 0 0 0 -402 0 - - - - 0 000000 0 0 0 -403 0 - - - - 0 000000 0 0 0 -404 0 - - - - 0 000000 0 0 0 -405 0 - - - - 0 000000 0 0 0 -406 0 - - - - 0 000000 0 0 0 -407 0 - - - - 0 000000 0 0 0 -408 0 - - - - 0 000000 0 0 0 -409 0 - - - - 0 000000 0 0 0 -410 0 - - - - 0 000000 0 0 0 -411 0 - - - - 0 000000 0 0 0 -412 0 - - - - 0 000000 0 0 0 -413 0 - - - - 0 000000 0 0 0 -414 0 - - - - 0 000000 0 0 0 -415 0 - - - - 0 000000 0 0 0 -416 0 - - - - 0 000000 0 0 0 -417 0 - - - - 0 000000 0 0 0 -418 0 - - - - 0 000000 0 0 0 -419 0 - - - - 0 000000 0 0 0 -420 0 - - - - 0 000000 0 0 0 -421 0 - - - - 0 000000 0 0 0 -422 0 - - - - 0 000000 0 0 0 -423 0 - - - - 0 000000 0 0 0 -424 0 - - - - 0 000000 0 0 0 -425 0 - - - - 0 000000 0 0 0 -426 0 - - - - 0 000000 0 0 0 -427 0 - - - - 0 000000 0 0 0 -428 0 - - - - 0 000000 0 0 0 -429 0 - - - - 0 000000 0 0 0 -430 0 - - - - 0 000000 0 0 0 -431 0 - - - - 0 000000 0 0 0 -432 0 - - - - 0 000000 0 0 0 -433 0 - - - - 0 000000 0 0 0 -434 0 - - - - 0 000000 0 0 0 -435 0 - - - - 0 000000 0 0 0 -436 0 - - - - 0 000000 0 0 0 -437 0 - - - - 0 000000 0 0 0 -438 0 - - - - 0 000000 0 0 0 -439 0 - - - - 0 000000 0 0 0 -440 0 - - - - 0 000000 0 0 0 -441 0 - - - - 0 000000 0 0 0 -442 0 - - - - 0 000000 0 0 0 -443 0 - - - - 0 000000 0 0 0 -444 0 - - - - 0 000000 0 0 0 -445 0 - - - - 0 000000 0 0 0 -446 0 - - - - 0 000000 0 0 0 -447 0 - - - - 0 000000 0 0 0 -448 0 - - - - 0 000000 0 0 0 -449 0 - - - - 0 000000 0 0 0 -450 0 - - - - 0 000000 0 0 0 -451 0 - - - - 0 000000 0 0 0 -452 0 - - - - 0 000000 0 0 0 -453 0 - - - - 0 000000 0 0 0 -454 0 - - - - 0 000000 0 0 0 -455 0 - - - - 0 000000 0 0 0 -456 0 - - - - 0 000000 0 0 0 -457 0 - - - - 0 000000 0 0 0 -458 0 - - - - 0 000000 0 0 0 -459 0 - - - - 0 000000 0 0 0 -460 0 - - - - 0 000000 0 0 0 -461 0 - - - - 0 000000 0 0 0 -462 0 - - - - 0 000000 0 0 0 -463 0 - - - - 0 000000 0 0 0 -464 0 - - - - 0 000000 0 0 0 -465 0 - - - - 0 000000 0 0 0 -466 0 - - - - 0 000000 0 0 0 -467 0 - - - - 0 000000 0 0 0 -468 0 - - - - 0 000000 0 0 0 -469 0 - - - - 0 000000 0 0 0 -470 0 - - - - 0 000000 0 0 0 -471 0 - - - - 0 000000 0 0 0 -472 0 - - - - 0 000000 0 0 0 -473 0 - - - - 0 000000 0 0 0 -474 0 - - - - 0 000000 0 0 0 -475 0 - - - - 0 000000 0 0 0 -476 0 - - - - 0 000000 0 0 0 -477 0 - - - - 0 000000 0 0 0 -478 0 - - - - 0 000000 0 0 0 -479 0 - - - - 0 000000 0 0 0 -480 0 - - - - 0 000000 0 0 0 -481 0 - - - - 0 000000 0 0 0 -482 0 - - - - 0 000000 0 0 0 -483 0 - - - - 0 000000 0 0 0 -484 0 - - - - 0 000000 0 0 0 -485 0 - - - - 0 000000 0 0 0 -486 0 - - - - 0 000000 0 0 0 -487 0 - - - - 0 000000 0 0 0 -488 0 - - - - 0 000000 0 0 0 -489 0 - - - - 0 000000 0 0 0 -490 0 - - - - 0 000000 0 0 0 -491 0 - - - - 0 000000 0 0 0 -492 0 - - - - 0 000000 0 0 0 -493 0 - - - - 0 000000 0 0 0 -494 0 - - - - 0 000000 0 0 0 -495 0 - - - - 0 000000 0 0 0 -496 0 - - - - 0 000000 0 0 0 -497 0 - - - - 0 000000 0 0 0 -498 0 - - - - 0 000000 0 0 0 -499 0 - - - - 0 000000 0 0 0 -500 0 - - - - 0 000000 0 0 0 -501 0 - - - - 0 000000 0 0 0 -502 0 - - - - 0 000000 0 0 0 -503 0 - - - - 0 000000 0 0 0 -504 0 - - - - 0 000000 0 0 0 -505 0 - - - - 0 000000 0 0 0 -506 0 - - - - 0 000000 0 0 0 -507 0 - - - - 0 000000 0 0 0 -508 0 - - - - 0 000000 0 0 0 -509 0 - - - - 0 000000 0 0 0 -510 0 - - - - 0 000000 0 0 0 -511 0 - - - - 0 000000 0 0 0 -512 0 - - - - 0 000000 0 0 0 -513 0 - - - - 0 000000 0 0 0 -514 0 - - - - 0 000000 0 0 0 -515 0 - - - - 0 000000 0 0 0 -516 0 - - - - 0 000000 0 0 0 -517 0 - - - - 0 000000 0 0 0 -518 0 - - - - 0 000000 0 0 0 -519 0 - - - - 0 000000 0 0 0 -520 0 - - - - 0 000000 0 0 0 -521 0 - - - - 0 000000 0 0 0 -522 0 - - - - 0 000000 0 0 0 -523 0 - - - - 0 000000 0 0 0 -524 0 - - - - 0 000000 0 0 0 -525 0 - - - - 0 000000 0 0 0 -526 0 - - - - 0 000000 0 0 0 -527 0 - - - - 0 000000 0 0 0 -528 0 - - - - 0 000000 0 0 0 -529 0 - - - - 0 000000 0 0 0 -530 0 - - - - 0 000000 0 0 0 -531 0 - - - - 0 000000 0 0 0 -532 0 - - - - 0 000000 0 0 0 -533 0 - - - - 0 000000 0 0 0 -534 0 - - - - 0 000000 0 0 0 -535 0 - - - - 0 000000 0 0 0 -536 0 - - - - 0 000000 0 0 0 -537 0 - - - - 0 000000 0 0 0 -538 0 - - - - 0 000000 0 0 0 -539 0 - - - - 0 000000 0 0 0 -540 0 - - - - 0 000000 0 0 0 -541 0 - - - - 0 000000 0 0 0 -542 0 - - - - 0 000000 0 0 0 -543 0 - - - - 0 000000 0 0 0 -544 0 - - - - 0 000000 0 0 0 -545 0 - - - - 0 000000 0 0 0 -546 0 - - - - 0 000000 0 0 0 -547 0 - - - - 0 000000 0 0 0 -548 0 - - - - 0 000000 0 0 0 -549 0 - - - - 0 000000 0 0 0 -550 0 - - - - 0 000000 0 0 0 -551 0 - - - - 0 000000 0 0 0 -552 0 - - - - 0 000000 0 0 0 -553 0 - - - - 0 000000 0 0 0 -554 0 - - - - 0 000000 0 0 0 -555 0 - - - - 0 000000 0 0 0 -556 0 - - - - 0 000000 0 0 0 -557 0 - - - - 0 000000 0 0 0 -558 0 - - - - 0 000000 0 0 0 -559 0 - - - - 0 000000 0 0 0 -560 0 - - - - 0 000000 0 0 0 -561 0 - - - - 0 000000 0 0 0 -562 0 - - - - 0 000000 0 0 0 -563 0 - - - - 0 000000 0 0 0 -564 0 - - - - 0 000000 0 0 0 -565 0 - - - - 0 000000 0 0 0 -566 0 - - - - 0 000000 0 0 0 -567 0 - - - - 0 000000 0 0 0 -568 0 - - - - 0 000000 0 0 0 -569 0 - - - - 0 000000 0 0 0 -570 0 - - - - 0 000000 0 0 0 -571 0 - - - - 0 000000 0 0 0 -572 0 - - - - 0 000000 0 0 0 -573 0 - - - - 0 000000 0 0 0 -574 0 - - - - 0 000000 0 0 0 -575 0 - - - - 0 000000 0 0 0 -576 0 - - - - 0 000000 0 0 0 -577 0 - - - - 0 000000 0 0 0 -578 0 - - - - 0 000000 0 0 0 -579 0 - - - - 0 000000 0 0 0 -580 0 - - - - 0 000000 0 0 0 -581 0 - - - - 0 000000 0 0 0 -582 0 - - - - 0 000000 0 0 0 -583 0 - - - - 0 000000 0 0 0 -584 0 - - - - 0 000000 0 0 0 -585 0 - - - - 0 000000 0 0 0 -586 0 - - - - 0 000000 0 0 0 -587 0 - - - - 0 000000 0 0 0 -588 0 - - - - 0 000000 0 0 0 -589 0 - - - - 0 000000 0 0 0 -590 0 - - - - 0 000000 0 0 0 -591 0 - - - - 0 000000 0 0 0 -592 0 - - - - 0 000000 0 0 0 -593 0 - - - - 0 000000 0 0 0 -594 0 - - - - 0 000000 0 0 0 -595 0 - - - - 0 000000 0 0 0 -596 0 - - - - 0 000000 0 0 0 -597 0 - - - - 0 000000 0 0 0 -598 0 - - - - 0 000000 0 0 0 -599 0 - - - - 0 000000 0 0 0 -600 0 - - - - 0 000000 0 0 0 -601 0 - - - - 0 000000 0 0 0 -602 0 - - - - 0 000000 0 0 0 -603 0 - - - - 0 000000 0 0 0 -604 0 - - - - 0 000000 0 0 0 -605 0 - - - - 0 000000 0 0 0 -606 0 - - - - 0 000000 0 0 0 -607 0 - - - - 0 000000 0 0 0 -608 0 - - - - 0 000000 0 0 0 -609 0 - - - - 0 000000 0 0 0 -610 0 - - - - 0 000000 0 0 0 -611 0 - - - - 0 000000 0 0 0 -612 0 - - - - 0 000000 0 0 0 -613 0 - - - - 0 000000 0 0 0 -614 0 - - - - 0 000000 0 0 0 -615 0 - - - - 0 000000 0 0 0 -616 0 - - - - 0 000000 0 0 0 -617 0 - - - - 0 000000 0 0 0 -618 0 - - - - 0 000000 0 0 0 -619 0 - - - - 0 000000 0 0 0 -620 0 - - - - 0 000000 0 0 0 -621 0 - - - - 0 000000 0 0 0 -622 0 - - - - 0 000000 0 0 0 -623 0 - - - - 0 000000 0 0 0 -624 0 - - - - 0 000000 0 0 0 -625 0 - - - - 0 000000 0 0 0 -626 0 - - - - 0 000000 0 0 0 -627 0 - - - - 0 000000 0 0 0 -628 0 - - - - 0 000000 0 0 0 -629 0 - - - - 0 000000 0 0 0 -630 0 - - - - 0 000000 0 0 0 -631 0 - - - - 0 000000 0 0 0 -632 0 - - - - 0 000000 0 0 0 -633 0 - - - - 0 000000 0 0 0 -634 0 - - - - 0 000000 0 0 0 -635 0 - - - - 0 000000 0 0 0 -636 0 - - - - 0 000000 0 0 0 -637 0 - - - - 0 000000 0 0 0 -638 0 - - - - 0 000000 0 0 0 -639 0 - - - - 0 000000 0 0 0 -640 0 - - - - 0 000000 0 0 0 -641 0 - - - - 0 000000 0 0 0 -642 0 - - - - 0 000000 0 0 0 -643 0 - - - - 0 000000 0 0 0 -644 0 - - - - 0 000000 0 0 0 -645 0 - - - - 0 000000 0 0 0 -646 0 - - - - 0 000000 0 0 0 -647 0 - - - - 0 000000 0 0 0 -648 0 - - - - 0 000000 0 0 0 -649 0 - - - - 0 000000 0 0 0 -650 0 - - - - 0 000000 0 0 0 -651 0 - - - - 0 000000 0 0 0 -652 0 - - - - 0 000000 0 0 0 -653 0 - - - - 0 000000 0 0 0 -654 0 - - - - 0 000000 0 0 0 -655 0 - - - - 0 000000 0 0 0 -656 0 - - - - 0 000000 0 0 0 -657 0 - - - - 0 000000 0 0 0 -658 0 - - - - 0 000000 0 0 0 -659 0 - - - - 0 000000 0 0 0 -660 0 - - - - 0 000000 0 0 0 -661 0 - - - - 0 000000 0 0 0 -662 0 - - - - 0 000000 0 0 0 -663 0 - - - - 0 000000 0 0 0 -664 0 - - - - 0 000000 0 0 0 -665 0 - - - - 0 000000 0 0 0 -666 0 - - - - 0 000000 0 0 0 -667 0 - - - - 0 000000 0 0 0 -668 0 - - - - 0 000000 0 0 0 -669 0 - - - - 0 000000 0 0 0 -670 0 - - - - 0 000000 0 0 0 -671 0 - - - - 0 000000 0 0 0 -672 0 - - - - 0 000000 0 0 0 -673 0 - - - - 0 000000 0 0 0 -674 0 - - - - 0 000000 0 0 0 -675 0 - - - - 0 000000 0 0 0 -676 0 - - - - 0 000000 0 0 0 -677 0 - - - - 0 000000 0 0 0 -678 0 - - - - 0 000000 0 0 0 -679 0 - - - - 0 000000 0 0 0 -680 0 - - - - 0 000000 0 0 0 -681 0 - - - - 0 000000 0 0 0 -682 0 - - - - 0 000000 0 0 0 -683 0 - - - - 0 000000 0 0 0 -684 0 - - - - 0 000000 0 0 0 -685 0 - - - - 0 000000 0 0 0 -686 0 - - - - 0 000000 0 0 0 -687 0 - - - - 0 000000 0 0 0 -688 0 - - - - 0 000000 0 0 0 -689 0 - - - - 0 000000 0 0 0 -690 0 - - - - 0 000000 0 0 0 -691 0 - - - - 0 000000 0 0 0 -692 0 - - - - 0 000000 0 0 0 -693 0 - - - - 0 000000 0 0 0 -694 0 - - - - 0 000000 0 0 0 -695 0 - - - - 0 000000 0 0 0 -696 0 - - - - 0 000000 0 0 0 -697 0 - - - - 0 000000 0 0 0 -698 0 - - - - 0 000000 0 0 0 -699 0 - - - - 0 000000 0 0 0 -700 0 - - - - 0 000000 0 0 0 -701 0 - - - - 0 000000 0 0 0 -702 0 - - - - 0 000000 0 0 0 -703 0 - - - - 0 000000 0 0 0 -704 0 - - - - 0 000000 0 0 0 -705 0 - - - - 0 000000 0 0 0 -706 0 - - - - 0 000000 0 0 0 -707 0 - - - - 0 000000 0 0 0 -708 0 - - - - 0 000000 0 0 0 -709 0 - - - - 0 000000 0 0 0 -710 0 - - - - 0 000000 0 0 0 -711 0 - - - - 0 000000 0 0 0 -712 0 - - - - 0 000000 0 0 0 -713 0 - - - - 0 000000 0 0 0 -714 0 - - - - 0 000000 0 0 0 -715 0 - - - - 0 000000 0 0 0 -716 0 - - - - 0 000000 0 0 0 -717 0 - - - - 0 000000 0 0 0 -718 0 - - - - 0 000000 0 0 0 -719 0 - - - - 0 000000 0 0 0 -720 0 - - - - 0 000000 0 0 0 -721 0 - - - - 0 000000 0 0 0 -722 0 - - - - 0 000000 0 0 0 -723 0 - - - - 0 000000 0 0 0 -724 0 - - - - 0 000000 0 0 0 -725 0 - - - - 0 000000 0 0 0 -726 0 - - - - 0 000000 0 0 0 -727 0 - - - - 0 000000 0 0 0 -728 0 - - - - 0 000000 0 0 0 -729 0 - - - - 0 000000 0 0 0 -730 0 - - - - 0 000000 0 0 0 -731 0 - - - - 0 000000 0 0 0 -732 0 - - - - 0 000000 0 0 0 -733 0 - - - - 0 000000 0 0 0 -734 0 - - - - 0 000000 0 0 0 -735 0 - - - - 0 000000 0 0 0 -736 0 - - - - 0 000000 0 0 0 -737 0 - - - - 0 000000 0 0 0 -738 0 - - - - 0 000000 0 0 0 -739 0 - - - - 0 000000 0 0 0 -740 0 - - - - 0 000000 0 0 0 -741 0 - - - - 0 000000 0 0 0 -742 0 - - - - 0 000000 0 0 0 -743 0 - - - - 0 000000 0 0 0 -744 0 - - - - 0 000000 0 0 0 -745 0 - - - - 0 000000 0 0 0 -746 0 - - - - 0 000000 0 0 0 -747 0 - - - - 0 000000 0 0 0 -748 0 - - - - 0 000000 0 0 0 -749 0 - - - - 0 000000 0 0 0 -750 0 - - - - 0 000000 0 0 0 -751 0 - - - - 0 000000 0 0 0 -752 0 - - - - 0 000000 0 0 0 -753 0 - - - - 0 000000 0 0 0 -754 0 - - - - 0 000000 0 0 0 -755 0 - - - - 0 000000 0 0 0 -756 0 - - - - 0 000000 0 0 0 -757 0 - - - - 0 000000 0 0 0 -758 0 - - - - 0 000000 0 0 0 -759 0 - - - - 0 000000 0 0 0 -760 0 - - - - 0 000000 0 0 0 -761 0 - - - - 0 000000 0 0 0 -762 0 - - - - 0 000000 0 0 0 -763 0 - - - - 0 000000 0 0 0 -764 0 - - - - 0 000000 0 0 0 -765 0 - - - - 0 000000 0 0 0 -766 0 - - - - 0 000000 0 0 0 -767 0 - - - - 0 000000 0 0 0 -768 0 - - - - 0 000000 0 0 0 -769 0 - - - - 0 000000 0 0 0 -770 0 - - - - 0 000000 0 0 0 -771 0 - - - - 0 000000 0 0 0 -772 0 - - - - 0 000000 0 0 0 -773 0 - - - - 0 000000 0 0 0 -774 0 - - - - 0 000000 0 0 0 -775 0 - - - - 0 000000 0 0 0 -776 0 - - - - 0 000000 0 0 0 -777 0 - - - - 0 000000 0 0 0 -778 0 - - - - 0 000000 0 0 0 -779 0 - - - - 0 000000 0 0 0 -780 0 - - - - 0 000000 0 0 0 -781 0 - - - - 0 000000 0 0 0 -782 0 - - - - 0 000000 0 0 0 -783 0 - - - - 0 000000 0 0 0 -784 0 - - - - 0 000000 0 0 0 -785 0 - - - - 0 000000 0 0 0 -786 0 - - - - 0 000000 0 0 0 -787 0 - - - - 0 000000 0 0 0 -788 0 - - - - 0 000000 0 0 0 -789 0 - - - - 0 000000 0 0 0 -790 0 - - - - 0 000000 0 0 0 -791 0 - - - - 0 000000 0 0 0 -792 0 - - - - 0 000000 0 0 0 -793 0 - - - - 0 000000 0 0 0 -794 0 - - - - 0 000000 0 0 0 -795 0 - - - - 0 000000 0 0 0 -796 0 - - - - 0 000000 0 0 0 -797 0 - - - - 0 000000 0 0 0 -798 0 - - - - 0 000000 0 0 0 -799 0 - - - - 0 000000 0 0 0 -800 0 - - - - 0 000000 0 0 0 -801 0 - - - - 0 000000 0 0 0 -802 0 - - - - 0 000000 0 0 0 -803 0 - - - - 0 000000 0 0 0 -804 0 - - - - 0 000000 0 0 0 -805 0 - - - - 0 000000 0 0 0 -806 0 - - - - 0 000000 0 0 0 -807 0 - - - - 0 000000 0 0 0 -808 0 - - - - 0 000000 0 0 0 -809 0 - - - - 0 000000 0 0 0 -810 0 - - - - 0 000000 0 0 0 -811 0 - - - - 0 000000 0 0 0 -812 0 - - - - 0 000000 0 0 0 -813 0 - - - - 0 000000 0 0 0 -814 0 - - - - 0 000000 0 0 0 -815 0 - - - - 0 000000 0 0 0 -816 0 - - - - 0 000000 0 0 0 -817 0 - - - - 0 000000 0 0 0 -818 0 - - - - 0 000000 0 0 0 -819 0 - - - - 0 000000 0 0 0 -820 0 - - - - 0 000000 0 0 0 -821 0 - - - - 0 000000 0 0 0 -822 0 - - - - 0 000000 0 0 0 -823 0 - - - - 0 000000 0 0 0 -824 0 - - - - 0 000000 0 0 0 -825 0 - - - - 0 000000 0 0 0 -826 0 - - - - 0 000000 0 0 0 -827 0 - - - - 0 000000 0 0 0 -828 0 - - - - 0 000000 0 0 0 -829 0 - - - - 0 000000 0 0 0 -830 0 - - - - 0 000000 0 0 0 -831 0 - - - - 0 000000 0 0 0 -832 0 - - - - 0 000000 0 0 0 -833 0 - - - - 0 000000 0 0 0 -834 0 - - - - 0 000000 0 0 0 -835 0 - - - - 0 000000 0 0 0 -836 0 - - - - 0 000000 0 0 0 -837 0 - - - - 0 000000 0 0 0 -838 0 - - - - 0 000000 0 0 0 -839 0 - - - - 0 000000 0 0 0 -840 0 - - - - 0 000000 0 0 0 -841 0 - - - - 0 000000 0 0 0 -842 0 - - - - 0 000000 0 0 0 -843 0 - - - - 0 000000 0 0 0 -844 0 - - - - 0 000000 0 0 0 -845 0 - - - - 0 000000 0 0 0 -846 0 - - - - 0 000000 0 0 0 -847 0 - - - - 0 000000 0 0 0 -848 0 - - - - 0 000000 0 0 0 -849 0 - - - - 0 000000 0 0 0 -850 0 - - - - 0 000000 0 0 0 -851 0 - - - - 0 000000 0 0 0 -852 0 - - - - 0 000000 0 0 0 -853 0 - - - - 0 000000 0 0 0 -854 0 - - - - 0 000000 0 0 0 -855 0 - - - - 0 000000 0 0 0 -856 0 - - - - 0 000000 0 0 0 -857 0 - - - - 0 000000 0 0 0 -858 0 - - - - 0 000000 0 0 0 -859 0 - - - - 0 000000 0 0 0 -860 0 - - - - 0 000000 0 0 0 -861 0 - - - - 0 000000 0 0 0 -862 0 - - - - 0 000000 0 0 0 -863 0 - - - - 0 000000 0 0 0 -864 0 - - - - 0 000000 0 0 0 -865 0 - - - - 0 000000 0 0 0 -866 0 - - - - 0 000000 0 0 0 -867 0 - - - - 0 000000 0 0 0 -868 0 - - - - 0 000000 0 0 0 -869 0 - - - - 0 000000 0 0 0 -870 0 - - - - 0 000000 0 0 0 -871 0 - - - - 0 000000 0 0 0 -872 0 - - - - 0 000000 0 0 0 -873 0 - - - - 0 000000 0 0 0 -874 0 - - - - 0 000000 0 0 0 -875 0 - - - - 0 000000 0 0 0 -876 0 - - - - 0 000000 0 0 0 -877 0 - - - - 0 000000 0 0 0 -878 0 - - - - 0 000000 0 0 0 -879 0 - - - - 0 000000 0 0 0 -880 0 - - - - 0 000000 0 0 0 -881 0 - - - - 0 000000 0 0 0 -882 0 - - - - 0 000000 0 0 0 -883 0 - - - - 0 000000 0 0 0 -884 0 - - - - 0 000000 0 0 0 -885 0 - - - - 0 000000 0 0 0 -886 0 - - - - 0 000000 0 0 0 -887 0 - - - - 0 000000 0 0 0 -888 0 - - - - 0 000000 0 0 0 -889 0 - - - - 0 000000 0 0 0 -890 0 - - - - 0 000000 0 0 0 -891 0 - - - - 0 000000 0 0 0 -892 0 - - - - 0 000000 0 0 0 -893 0 - - - - 0 000000 0 0 0 -894 0 - - - - 0 000000 0 0 0 -895 0 - - - - 0 000000 0 0 0 -896 0 - - - - 0 000000 0 0 0 -897 0 - - - - 0 000000 0 0 0 -898 0 - - - - 0 000000 0 0 0 -899 0 - - - - 0 000000 0 0 0 -900 0 - - - - 0 000000 0 0 0 -901 0 - - - - 0 000000 0 0 0 -902 0 - - - - 0 000000 0 0 0 -903 0 - - - - 0 000000 0 0 0 -904 0 - - - - 0 000000 0 0 0 -905 0 - - - - 0 000000 0 0 0 -906 0 - - - - 0 000000 0 0 0 -907 0 - - - - 0 000000 0 0 0 -908 0 - - - - 0 000000 0 0 0 -909 0 - - - - 0 000000 0 0 0 -910 0 - - - - 0 000000 0 0 0 -911 0 - - - - 0 000000 0 0 0 -912 0 - - - - 0 000000 0 0 0 -913 0 - - - - 0 000000 0 0 0 -914 0 - - - - 0 000000 0 0 0 -915 0 - - - - 0 000000 0 0 0 -916 0 - - - - 0 000000 0 0 0 -917 0 - - - - 0 000000 0 0 0 -918 0 - - - - 0 000000 0 0 0 -919 0 - - - - 0 000000 0 0 0 -920 0 - - - - 0 000000 0 0 0 -921 0 - - - - 0 000000 0 0 0 -922 0 - - - - 0 000000 0 0 0 -923 0 - - - - 0 000000 0 0 0 -924 0 - - - - 0 000000 0 0 0 -925 0 - - - - 0 000000 0 0 0 -926 0 - - - - 0 000000 0 0 0 -927 0 - - - - 0 000000 0 0 0 -928 0 - - - - 0 000000 0 0 0 -929 0 - - - - 0 000000 0 0 0 -930 0 - - - - 0 000000 0 0 0 -931 0 - - - - 0 000000 0 0 0 -932 0 - - - - 0 000000 0 0 0 -933 0 - - - - 0 000000 0 0 0 -934 0 - - - - 0 000000 0 0 0 -935 0 - - - - 0 000000 0 0 0 -936 0 - - - - 0 000000 0 0 0 -937 0 - - - - 0 000000 0 0 0 -938 0 - - - - 0 000000 0 0 0 -939 0 - - - - 0 000000 0 0 0 -940 0 - - - - 0 000000 0 0 0 -941 0 - - - - 0 000000 0 0 0 -942 0 - - - - 0 000000 0 0 0 -943 0 - - - - 0 000000 0 0 0 -944 0 - - - - 0 000000 0 0 0 -945 0 - - - - 0 000000 0 0 0 -946 0 - - - - 0 000000 0 0 0 -947 0 - - - - 0 000000 0 0 0 -948 0 - - - - 0 000000 0 0 0 -949 0 - - - - 0 000000 0 0 0 -950 0 - - - - 0 000000 0 0 0 -951 0 - - - - 0 000000 0 0 0 -952 0 - - - - 0 000000 0 0 0 -953 0 - - - - 0 000000 0 0 0 -954 0 - - - - 0 000000 0 0 0 -955 0 - - - - 0 000000 0 0 0 -956 0 - - - - 0 000000 0 0 0 -957 0 - - - - 0 000000 0 0 0 -958 0 - - - - 0 000000 0 0 0 -959 0 - - - - 0 000000 0 0 0 -960 0 - - - - 0 000000 0 0 0 -961 0 - - - - 0 000000 0 0 0 -962 0 - - - - 0 000000 0 0 0 -963 0 - - - - 0 000000 0 0 0 -964 0 - - - - 0 000000 0 0 0 -965 0 - - - - 0 000000 0 0 0 -966 0 - - - - 0 000000 0 0 0 -967 0 - - - - 0 000000 0 0 0 -968 0 - - - - 0 000000 0 0 0 -969 0 - - - - 0 000000 0 0 0 -970 0 - - - - 0 000000 0 0 0 -971 0 - - - - 0 000000 0 0 0 -972 0 - - - - 0 000000 0 0 0 -973 0 - - - - 0 000000 0 0 0 -974 0 - - - - 0 000000 0 0 0 -975 0 - - - - 0 000000 0 0 0 -976 0 - - - - 0 000000 0 0 0 -977 0 - - - - 0 000000 0 0 0 -978 0 - - - - 0 000000 0 0 0 -979 0 - - - - 0 000000 0 0 0 -980 0 - - - - 0 000000 0 0 0 -981 0 - - - - 0 000000 0 0 0 -982 0 - - - - 0 000000 0 0 0 -983 0 - - - - 0 000000 0 0 0 -984 0 - - - - 0 000000 0 0 0 -985 0 - - - - 0 000000 0 0 0 -986 0 - - - - 0 000000 0 0 0 -987 0 - - - - 0 000000 0 0 0 -988 0 - - - - 0 000000 0 0 0 -989 0 - - - - 0 000000 0 0 0 -990 0 - - - - 0 000000 0 0 0 -991 0 - - - - 0 000000 0 0 0 -992 0 - - - - 0 000000 0 0 0 -993 0 - - - - 0 000000 0 0 0 -994 0 - - - - 0 000000 0 0 0 -995 0 - - - - 0 000000 0 0 0 -996 0 - - - - 0 000000 0 0 0 -997 0 - - - - 0 000000 0 0 0 -998 0 - - - - 0 000000 0 0 0 -999 0 - - - - 0 000000 0 0 0 -1000 0 - - - - 0 000000 0 0 0 -1001 0 - - - - 0 000000 0 0 0 -1002 0 - - - - 0 000000 0 0 0 -1003 0 - - - - 0 000000 0 0 0 -1004 0 - - - - 0 000000 0 0 0 -1005 0 - - - - 0 000000 0 0 0 -1006 0 - - - - 0 000000 0 0 0 -1007 0 - - - - 0 000000 0 0 0 -1008 0 - - - - 0 000000 0 0 0 -1009 0 - - - - 0 000000 0 0 0 -1010 0 - - - - 0 000000 0 0 0 -1011 0 - - - - 0 000000 0 0 0 -1012 0 - - - - 0 000000 0 0 0 -1013 0 - - - - 0 000000 0 0 0 -1014 0 - - - - 0 000000 0 0 0 -1015 0 - - - - 0 000000 0 0 0 -1016 0 - - - - 0 000000 0 0 0 -1017 0 - - - - 0 000000 0 0 0 -1018 0 - - - - 0 000000 0 0 0 -1019 0 - - - - 0 000000 0 0 0 -1020 0 - - - - 0 000000 0 0 0 -1021 0 - - - - 0 000000 0 0 0 -1022 0 - - - - 0 000000 0 0 0 -1023 0 - - - - 0 000000 0 0 0 - -[RL_SSN] -#NetID DPC SSN - -[GTT_ATTRIBUTE] -Idx - 0 0000000000000000000000000000000000000000000000000000000000000000 -1 0000000000000000000000000000000000000000000000000000000000000000 -3 0000000000000000000000000000000000000000000000000000000000000000 -4 0000000000000000000000000000000000000000000000000000000000000000 diff --git a/omc/bin/conf/smeg.conf b/omc/bin/conf/smeg.conf deleted file mode 100644 index b8b908637d324cf90749ce5694e2fe27a9fa6bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmZQbEiPd|1_pXy$Y7yo$Y2SUKv#jRnkcrZsVRdQlFAZwASVwjU}OxWxEL6c6La*E i^C4nLDiKVe6i`7fLI9P;Xb!Xk6)+m1@<(~-ApiieybMkN diff --git a/omc/bin/conf/smpp.conf b/omc/bin/conf/smpp.conf deleted file mode 100644 index 342d30d..0000000 --- a/omc/bin/conf/smpp.conf +++ /dev/null @@ -1,35 +0,0 @@ -#SMPP Config file (V1.0.01) -#Copy this file to ./conf/smpp.conf to set global options -#No lkEn lkType serverType sessionType sysID pwd sysType LGTT RGTT LIP RIP sessionTimer enqTimer inactTimer rspTimer ServiceNum localSSN remoteSSN -0 129 1 0 0 Test 123456 esme -- -- 192.168.4.75 10.10.1.179 5 10 5 5 98765 0 0 -1 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -2 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -3 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -4 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -5 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -6 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -7 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -8 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -9 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -10 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -11 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -12 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -13 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -14 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -15 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -16 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -17 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -18 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -19 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -20 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -21 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -22 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -23 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -24 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -25 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -26 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -27 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -28 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -29 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -30 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 -31 0 0 0 0 Test 123456 GSM -- -- 0.0.0.0 0.0.0.0 5 10 5 5 -- 0 0 diff --git a/omc/bin/conf/snmp.conf b/omc/bin/conf/snmp.conf deleted file mode 100644 index abeab14..0000000 --- a/omc/bin/conf/snmp.conf +++ /dev/null @@ -1,36 +0,0 @@ -[version-1] -[manager] -engineID=00000063000000A19BE2CAC5 - -[engine-2] -engineType=0 -securityLevel=3 -userName=Sw1tch3msUser! -authPassword=Sw1tch3msPass -privacyPassword=Sw1tch3msPriv -engineID=00000063000000A19BE2CAC5 -contextName=Sw1tch3msUser! -contextEngineID=00000063000000A19BE2CAC5 - -[engine-3] -engineType=2 -securityLevel=3 -userName=Wxc2LocalUser! -authPassword=Sw1tch3msPass -privacyPassword=Sw1tch3msPriv -engineID=00000063000000A19BE2CAC5 -contextName=Sw1tch3msUser! -contextEngineID=00000063000000A19BE2CAC5 - -[engine-4] -engineType=1 -securityLevel=3 -userName=McmsRaid123! -authPassword=Sw1tch3msPass -privacyPassword=Sw1tch3msPriv -engineID=00000063000000A19BE2CAC5 -contextName=McmsRaid123! -contextEngineID=00000063000000A19BE2CAC5 -remoteIp=172.18.128.1 -remotePort=161 - diff --git a/omc/bin/conf/welcomeSMS.conf b/omc/bin/conf/welcomeSMS.conf deleted file mode 100644 index 9b1f313..0000000 --- a/omc/bin/conf/welcomeSMS.conf +++ /dev/null @@ -1,11 +0,0 @@ -#WelcomeSMS conf file - -#1-enable 0-disable -flag=1 - -#The day time to keep roamer record -keep_day_time=7 - -#The service number of the smpp link -service_number=98765 - diff --git a/omc/bin/cstaCollector b/omc/bin/cstaCollector deleted file mode 100644 index 07a8afddafa5cfc6a43533c09f280bf997140b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668472 zcmeFa3w%`7)iyqX96%sW6r!l8Q9+^JKt(}8gEBfQ*r=e0BG&|>K#)whRFU8?n(;6i zt!a5*t75IyR&B8@7ij|tVg`M^1Z$PHScA9D7}SWjc+LNL*52pLo|73stN-u)eV$^tqjKa(vETXWyAVLPbRiqc6U71G_5(ev5oVeR=pj+SlLL z1#qt5RC1BJAXWWs>y&=&rtzI|WxhVV$#Ctf&_3ttNXRSmW&3OGr&64&FJHmTXYqEB zg1y(r{!4Lnu4X<-Y0{;7u1&8ge$Lg*N87A?LQ3_md^-JF;#c`agwLQI8uiD;xGj%@ibrg8=&$+S;{$2W3X!^G)uUO}szChW- zd+pmp@prCHc^4xe?XtIj+MK>iba~n8VX|iGTpd3Kbl zryhUmDJN8vpKy|hK)DL>k6N5}(KsKfrJgu#Mqj5Y1v~th)?25O{+}DBo?18T)<69C zs8e?Cf9&Kl4@k62e#*@}q~Ra==_+^O2<}KDqUS6Hkl%^8TZF>r8*u3IzFSM4pFM1s z?KB^qlDeD-f%Z>FI`)0up&VuipMV^US z=x1fow>FEN*Jr_x&%(b~7J1k`XR7z3vhcYsOSxmS$REp6Zr3dQU(7%AFYqHq+o-BNB%!2QoMV?!-@V_#PJb798zmbK1Z5I6NS@@ik1^;Rm{P9`vXJsij zm_@J3Ecmu8_K9XG_wQNCy*vy3!Yur+%Yy%N7W|*G@Gr`u*VkG2T$6>*vsv`2%EHIW z!smi4^sQOwf0~8yO_>*(G)a+WB%Hmd;<{OrO6JWg zpXXEer6r+hGbha}U!dW+Wpife+bN}`CDTGB)0tYKadRqXn_xw#d|t_-*~}OXe-|mCh=MsMBUnFPrBp zn^O{+G$&L(#aB85Qv1rv=g#s~gyzkeHYEfTOj|f*Qfb+oDYMFcQsOHsom4hwddb32 z`J5@UOC&>u4|!)+_)zY2W}7y1p0A=LR2C|mT{6!%t9;s&S-ka?mdz@m6jNpa=c`y$ zQ8uTv+*esKtE6PEue741y?ntO$T+2lv!VEG)C?r36f;dPuMGJ_4%Q~nGs`PNs(RovzS7cJ zl@&9oN2p}B4;qv&K)t{SbLZlUqVPXiA|ot2yBq?Sget(9dQx?f2HJsUy2yrlByxJ? zT$VO_PN-y#h%G%Mmz>2q`?L5ykelG5^dv>#e7-A$w~D`x@=rL<);rl6$qIlftJ*dp=Vsmx=F zoRW*$(tc1(wPRR^%^5J;!IWv!N>JaE*vRLUvp%K>bGp&YDf4_K3(*)$7tAXQ!E-`W zLZua;#m%&9Crz7qt@6zI6^;rJ5t7o*a5DOlw81IUr_b}1!cGu*>g*}=%BD=8%81a( z0`u-v-c3_?=Z!x9>~kiabizp|43TtpLDOcHp)Mv39_n*aPjT-~cJBro$Wzc!cJln! z*#mpi)8S0ixtfFJa#B<&+Acb!t4op2b#I{*M>7Yp{MXHwWAInBP7bEz2o-a7cJI{4 zk%P2fV+>=wtPuYy4=&rs2Y%~;;~&$1W~2|jv;q;=&b~%B-SVx{>7?&nR+i`Ub@gr2 zxLyKx@x89$yYBcI!flpsr-uI|aIWuD4Xg4yx#c_YUU%FZ$x?j2hjl#H!8aEP+Sjcq zeVlaQ!fomJ;$0{Ze*--Di5fr1gP*1GLp}JPXnc_eU#;;$5B_HwU+lsEO5?Y^pyXss z@@A1x{WKf+9~tf-(-3_PYN?q92cS2d!N+6=rZNoRRBRW5Dh{B<+%l*#$aH}HH&meHPpbPLAZZK27X@`>+=N-yndu1sl^7~iN!Nvyn)}( z;4|64oAcP22ELa;Ki9xBuI~ITH1Guu64xpNe}I9nHt+`;_!$H1>J@COWG zpl>zs{S17Yf$wkNeb1%*|7Zi>&A=aH;PVaq00ZC0zz;O=g$Dju13$pPbM55(4Knb@ zJ4jrI8u$|oe35}a(ZB}{{2&8gY~TkQ`0)n*Bm+O$z@Kd3XBv3U1)RUR27ZWx#C4&8 zKh?lj8Tiu-e6@ieYT#=O{4fK*!oZ(y;8z;>GYtI027b7KUuED&82EJt{!9a3Z{W`| z@LLRgk%4bA@OtQ#)NKa-Y=gepz@KB_69#^ifp0bN0R!J=;LkPizUNc^f1ZKwX5fPc zKHtEfZ{YhF_zMhtp@F~9zz;C+qYeBZ13$*V4>j-?8TcXt|6>CmH1Nd+zSzKDY~aTm zc*ZQ8zsUyvQU{6aOanjGz|S@C>Pe|eTxj4gGw7=f{N)C|+Q5%D@HGbh3Io5wz)vvn zD-HaW2L53Kf0cn>W#A_o_;m*UY6D+y;3paQEe3wFfp0SKQw;nz13%TkHyikA20mfn zryKZI17Bj`+YEfEf%ob88|OGP416~OKhwbH8~8E<-^ajTW8e!7{Iv#tfPtT7;0GD_ z*#>^7fuCdGiwyi+10OW-*BSU?13%Bek2mlY27a=E4;lEG2ENk3&o%J#4g5j_zres( z8Tf?;zS_VqGVnD9{wD^0g@M1`z^^p$iw*q427ZZwUuEE{4E#C+ztq6j8~B?H{1yWr zHt=v}G9rszj zV5C0Osl6!}-rVg;F-!Z9U*2u`cD46^02lw^KGMrNZC7$fdwYA0z&Rk@mE7vWodj-h z;m!g-?!vhO-|xZgEJjI0>2!{SH{3C%!x-bL6(BFj_2!{SH%m6U-cVPy8p}z|= z;0yh~bo6JS7xnML4Dh1fePK zs73v|FaxyE--Q{NMg6-l1G3QHg&By2{w~Y_EcAC_2411R3p3yf{l9SZFA{i%3y&0d zs|%kkaDxkWJpQv}}X!czrqaN%hJKkmZQ1-{>f89;>oF3i9o^mkzf457aZ za{z+=F3bQS^mkzf2BE(TGav~4U6_GD=fFJ7Lg&F8W{kt#&e5ijHW?&EcyD$TK(BFj_$bbif6NB%`8j6;XvZA?0mput4o5ujVh>#D zfoFT*5)VAl1CR5-V?1!c1CQ{)Lp<>D9=N{;KGXvjc;Gw_YzH@fuHigbsl)N2Y$>0Kj?w)@xZknIOc&P9(b__uJpjOJ#dK!p6G$cdEhY~ zIN*Utc;F!(_;?T8-vb}&feSovo(Hx(@K<+u>fZyu>w(|$z^{7Xzj@&2Jn&NVXS9aGnRYJn&byd+Of< zzw3eD^1!cp;Jjys_jE#5(vxfG9>p}TZ=?VVBmjT3nvDk<^Rv^w0vu@>OSX-z7p@*wM#L&Y&?altf zt4Q~xzJh*=&<~lw%fPRL(bizYduIh3+Byew8iQNE4)q3u<28eB?aie!FLCm7eo{4J zBJ%nwj~y2bk9hqy+yg?a|<5nYfiF%a{b#B?n78?7Or%bAG0Zu!igT!2L0j6*&I zOA4clcLt-C%|UxivmMwOj1_FSEf+kWkH!JqN+7KA0{VfhdbBtQ%uC1t(bM;kXXzLJ=V^ho`p zRM1z$OJMK`zJSeIpH(_yF_qVBBi_87dHexP210`3Mf+wmyZebFeXM z18#%SP2hQ#+%;}w&cvrubcjX&QWt#+Yyj{vv*_(uN2sFbb14wC18viT$0`Gati)DG z`?PDJ#HNqiQRVHSF7V_2EeC8Lu5G8HLcGJKd%0rFs4t>p$?!Q9M6qO@QYipgq9k6mvMW zoQ@D8I<^a*z6+cOBF5Qf%|Aq?T*j2B^?Rf!K1cUpsVAc>i16Y*K3_EOW_aZ7Eytp|C5F?)kzq{*%b>=fhAAW68b zvws=w!kgRwAU8RoeZy^?{LA=ec=A5{!~@$QzArfm_jX`=a7D1JzVPVdP^Sf#v6!5u zU^I}32bzWINKggsaS1!nER^H1oth-!`crIFl|S+o$TAZQwIK&e{%3ZIxNOc=3WN}z zMOT}!$2AA1y%;QeQ5E$}FuZAav{U9HisBR!*#Zf>>fs)R*%*u>1Jb;dohF#Akl}W| zWcEn~y>qKLqmsD+A)RobIY%+?1Lng5&Hm;8gMK(1*q&osxqbaTh6T3!m){9gOTW1F z=^=hp6hw|$TTM<2z^Ns-2BU}KycxkSb$2_$m`J7bipcMkQ+C_zEVQ}@fPN74S6Oai;W=bL$eVJ{NhwCKI7Cfngv0^IP8Z8d0?7l8L?~Vafu$xuIohQhEtJKlsC@ktG*m$Y6f|5x$0?{tL4$aS7Zrj(q+;o#=}Wi$ z5&f%5VsK9<^@SS#NX$(#at#oteY63jv6_6Te5fb>+Y@$Z1Ftsa$5k%70j~5~LSEoI z+xs8q8@9BO%2V~z=r5E)FxWoFZrP23TZ@})h_4bT+Z4=ytLU>HK3q4vs`iDD2_OL(&02W z(|4)E4!8V4uFz7Gb}=sy`Y&4OwVErneHptAZ6W_;a{wv;ue}N8cC4Cu9XX_w*^ov@8?4HyjzQZ zeurr5MnUWO@_Cu^&z0)VyWEriddaW37Yt7cF%N!$nMxmcmSjbxzedNfYw4>|XiW`r zl*P^vqx+X128ER;fPC@?BzIkA2LzD09!4il%zMkq1at4hApf&rV>IqH$(hJM1|brC z@RMpxY%{3BXx+1T-sfpDb}f-?3v$W(op4PV>$W5%vW{7fp%&gjA~ixzz#|yCJTY*2 zTzr*hfbuInt6dE%MH?K(==q!5vmk_%_5E!^XYAL+_atP^A%`Z3aZ z7sQMN!eUB+nytHuCP)dpBLOd36X^$@{tflv#Gr=e+~_7?`n#B%CbU7};}+Kg#i0fS zX_^`9A2?9TjH*xiI%A)-68802HW&*uuSchoYC4-}OJL!;zY)n(J*2C+c|7MnI(B?D-Uh*{t{^l!^~*gNrS$YootKvYM1{*H|D z@S6)p`{J6d0@9F)&VwWS-H_bvuzy>jnIY< z2ru4#U}b)IakH?EV@`Mh`LC6s1WIRBUjRU$E}@<)rx%`W{ke%?I5+SX5ciZ zT;b#=r$%5Er+VCBzEeq7xx(tOO0as+VFi!!C3%>u<{qkIugw!}@=87;UGk+ni`8^!9m6}()vIvvsDhqT z60N>m1VkfSNNKA}tme1|=}%fE`&M)(r{N%)U~I^c8;zz|{RXpG2cde9;s)k_-nyT*&$xv9SCB)$L8eHUm_h*v}Or!E{@Z z4T}(3d@Nw8QN!9-m@4&wN}@x{V$4LO1PrBQgb2}ys*7`cH)i57#^mu*z~M0r#ZfG~ zsGIh77m>Srr}sK?2r8wT;HBnF-*Z16wl{q`A#vFc>8H-j{A38Yz6x~8urcfHr5vi_ ziHl%gWx}!a;b>&lzi^4E3)1gZ_FqRVd=3|A7L7b?!nx7NqkzM8{Ix=dsGHuQ{nZU; z(2{ggUztztVB9`=q*{S*TA%J z{nb%xZFhf-Dv{r|{!9uZRQaUcA44r?mKY@O^(0>N>%mT9N^=CQ ze0D(vNhQ3fEOcu#qB^LwD^XA|XRCUOa1Cn^U3T;ZHC4RrRnGH&8Pi6hR2oRnbq3w)oIUba?$xx>PHwW&%xzaYxlMFR10AU$X*TnwvorkE~=G{*pV; zC~N^u%^&C7ltJ1^6M13az(p1W^r;zn@_R0%nvm zIfTtrbCh_O6r2`5Q>8i)w8%CkgHlVpi+=d-4i;9+L`GG$*7XRap{RJ`c_aDkT%-$^ zSg>b`v>Qm*7t*k5s(s_xT*YG|Ahgk9q&r;cLgc#8;Cj%uEw+Gt;6J?-!wT@#_C!iZ?ec*PCvxQctd1RW4Oi)o&J>!jXprNOWbr z0q1wB|E4!5o22<^#i_Xwh5WQ4UC2Yygk&$2viz(DN3{k|uDAYfs=r&Zc%C;H&8kk-KAGy zPi~TjT{<*H-6(L4!jPF=qYX$PS~GyU>jq;DSc(DPSL6)%D0X_LS`wL3#JZA_2B|e* z3ON-ToDN2EJn}0P3LE*7C>DJYL39ZgkJUtg&7vu^Fz69t!ESpbLBqvBNj9+|Bj+3a z(~q`E)rrbg)H0mN872jWj&QO-!8b^TQZMtWN57bUzcU179_&jrB1>FBSca^8;q zq0fbZLvxSFv=YB~M%0{x@UL|9{^fa~v#sZWiCRtgr7CJx@nAWO70WwTBumXIK75&s zt!0b6-TFqZ5YlHAm8YShoh}Tt`{kTLYgw1-4lHJU#4?@v%g3JD*U z-Y;cnU51>lYF?RZ{v0uv>ibgW+Wa>$*SLjVbJcLolfhh%m_@vZ9r!4=pQ~EHXP9dy zczew?ouh8LGh{YblkQGp)(7qTrmCPfcy=_`GgMB@wb>;8_e)gHHP=v<4I>E&&9#rI zOBd)8x2m83+jq*(J{Lh!u79U6wT@cgwb<2xjuz_~w@%O;TP`z1naB~*V}@hAUW3fk zo#M10Nc0x&b0}I$qf)T3ttKRh^1l>Ob@iV*6q92`KQ5696I+S>r0q^@OD(e`hFK4Z zGCfy8#EH*U>M}(Thz&Y@#2weM5+nfd9*RJetGmn=lXZMzity}4K36F;y3{yLi3D&- zf1L0;odDNO&rz#tRLYIjsLn|k2W6gj$F+3wA-|tTNwghae-VY)Rz;=M7lqJ5{tl}L z)Il?KK&%=UMD>)!Jt#5SFmQ3{8>J3r1C=1PjJ-^>@08&O)90m|WC(y14Ld9hk0K$S zZNx6X<7Kw!V`eEAb*9i4ida&F>V8!Z%6#siCZeH_KaoQzo@21=a2+q0DwnrY5+y!p zuGAwvX)=snSN)Zv*LG&bU$Q4^713=HcNo2t=rVd~8{ko~Ve0dvTa>krx<;&hoz%Ow zc4#Z5vaFET+C`YJX0i4?@KU-#huVG!HfkB^T3urN6gieRRLV?sV_!89T}w~WoOC6h zq6R9*l5Y`Aw`ApgZjN}Omf~Zel?Q5&XZW$)uOp&yx;$SeH{x*{Quk~^8Qqmsd9k_l zfRxPVXOp=~_42F-rC*UKy(buw;i zd;72_E3M>Js+=uC&(0|E4q6~eV%Dgv@g$88YdGk~6VI6GvYJb0{W+`K$*^huhY>pYGcu7VNZ_K_)O% zW%g@<@l}n~k{9-l*w+2vHB1VqJWQwRZ3r$T`x9D9U3kRvFo!lhH%> zu~!X}!o<7bIQ!9YFqZ%yI6E&G9r_T$M1dF3i~vnoS|H}vRiDr}tB~YhUV=>*E!?3S z;2go-TDufGC0UxcPTEnXf8aaA82T=_vV1hamlGJR&O&RZ$-8T zBej95&DJfA+8>uJaF}^S!tBGb669nsWZ0$-a=r#LvE}_$nG162jYnWTC|T!X4e7zQ z)s{_mEP!M`bIJa5b(DUplTh4;YVK|aC3Pa*ZdzQekr}Gn<}p$ zB3`6hA8!j)vlKEUCiG*Z^<~CnG3R)x--KP1kNN9a9xr&L4|;(gNl8WAW5>P)e1sPL zZkop|0j;9cJKcmhLqzU2D`{$ePr!yQhr@n6&fheK5M357(!AcCg#> zpg&_HmWTfCmcYnDo7WR#HrZm1+?Vs1=nIL`r&D=VLmv!pk%s;rZk&cbC)q4cB$C>`5wD|W z`8tFHzX8}E;o?UXj0PXAr5q?eT%Q|X7FiAe$-7NQJM<+hR6#VM9X!s%4x1H)Ve~Fx zm=d4}xkBjV9D%MUjM{f#?madI4g>Z_y5rYV!Z#QADM*cizKy_zDFJ^%0rOKZ1*|Ok zPlUtdD<#(;4=0Zym9INm6!k?@?9DF3mzb=gz0@vxHVrCz7WIp6QXJFjL!t15qB_zS z+f3q-WynT0I$tnW3?Ed!tmci|O7YZ<5j-h?`tt@|2Yta=OdETyti)z```))nPb-Ye zKAYa)jU6&SK}i#OwTwWk;D(=c!3ywdHmuO8Atc2HFj5b!v1);5(;a@#2!UrhYk1asz?55yQbqsqsgA6 zao*r=9Hbo63JeB!t^yLBP_*!(kN6{ZI;>^7p=S?VJfVa#C#`6x=(C5hM)f`{Sb86R z-pT2GCL|-8S87b*23X3a$CP`g8Dq+0M~jeZobX3JSE^_=BwTVS-rh*QE_m2Q#(lk? z8P1Eb>|`-QQ6VUlx@m=#nS~Xhu;dC&2l*hWFIny85j8My=A5eTxkLq)wEp5J-)!9der*?cp0D$bJ1{M8|J2OwqW!QZ1XQ)29$06 zO@Z>J&<8Tm=sECs7TTGw2c%lx$je7wHgep^v6srwxDrE2hIm%cf(@f}5C1okqpMfS zrFI1_X4~8{xIP~F3y?4z_T1L%yCC*r+~*BRb=m|@NZ9C2NH(a1d%V%DCY^wFe0p?i ztx71m8wph?+1(Fvug=jSA)<5q!kc53&e0*^Qk{cRrIm3y6YL00q56Ty7T#jHf{TAm z)lvvFJl7w&2X6&A*tJzR0b7c;ciYVhO@rE*npi|E?mi}MO7RX_%fJLHm~9Hj3)&I( zV?&~7WHZ2U9e>^MoDZ9VAp&{WvR;zADn1wT|9(@fxO2LED~4^l0kxZzer|3$y?-P6 znTTk@X}m~oV>PChV*fqaXxm$lbao)j!pnUQEuUH8Ejv}B8y~&yDrcgUcpg5(?nF5m z+o+p0m(%x$h>1n$2zYvZt(2IWVdZa-dJzF-;iyE-r58$$A(xsm?x>>y#hd-hUR7mf z%3B1NK=AZPGw*}QivdX`Me0eRM#}9^BDOCNj9oE%dc-VaUdN6p;qqE1(GIC7&PdQ{ z`9dSpGN@wnp7dnM&nDD)5K3EJ-Wt(wdc6#tlOMv$It}4W=^-IGng`-ab3Fz8{x62) zSe+`*sp7-$9LC$~RkmY1*%l(3Yv?7aJXJO6JYqe$1wdLrN)nnjHsqbF4d)s_F)|r{ z65JL`%D00D7%B!H z*27aOuhOz+Dkz(2R44=n`lnfXSL%|cd`#(N_x2V?(QJT`E&>n8nOO1mpqa!NZ4q`EJu!O$62rD(Nm>C1-+&cA$CJKX&j=|V2Z zB&1qkVuh!qY*te8BI8M7J;oEZUv2)=Jp!)7hRBQpzK;%fcLL6ZfZn>@fiKgVz1)@A znBOVAx%Jlx62#{GLYu|+BNfY8DGlBF0|{W~c`)M$?5x6q@c^?6aQ5u_;Gd}bN>BO! zTnn`0LW&mW4@jXg$)aY|6Qt14QLvK2@;T`s;iYF@|2hP{soJ4o9o9kU3kS+Xc`k~Q z_Pvn(fZWYxCn$G81Os(1!8Nk9PX;@k5q8@IqlYO+aS%q?g~EJgrd~{83Sb5`NyCjV z*+p69TNi(YSwQQ-p5m*`)EAMO{F!)WJ-keczXc$)Vhi%C`BBinu^wR$VuG&(~Pob7P+?z9oHFU&vkrfls(yXo<5)ysln|5;kL8e$Z>(_XMt$z zsOXO9Kh)lUL8dqdLL79^`9{`07;h!akh~Ag%SiY=$C+rPO&Nw4UnL(LNF9C~!+bK{ zFifmZT48shFeSx7=~67B6le*rd6x}UtNCo#?Z2m}9vl6&XIqjCbljFCPbGCH7`iOI zpZen;S&BR3Lt)xG-a)_P?F9MsTlLa6+zNY00kN7{zy@P=YI3!@Ncy9!BPmBz6ms$T z@~}e%pExHlLPip@a5n z+QWG&{0bKy&OWDe5kzztc*VyCi419)+Iftk^T)cf5v6$Q#}p>jGhXwUtEYOrt(0LPfL?(9{V~a*ThtjKZ#g%`Zi9#2AqG3d zd>kfuzZAOED&xaP$vcB&KXx_ERSuDBjROh7{7u9@Vh6mP@m7 z`%(GtcAUSe`A?+%YszWeJmHO{1u;vfOx zMG-26URP^RRZ>)!^f>B?r_=G}fJ!&VR5Qmvx>M*PB+C15r{P8k{SXq6ZG&c2s#xKn zNt)32F*%mE-Lo7Rnl5zoVG(+s@S@Q5W^1`zl{8kD^d&0F5t?$T74Ktaj{YLF-K2%S z2{%gUU3he}5d!)W=d#G-`Sx!x8VS;=V(NklxRss}jf_{W#*00d+YsfhC_lE4(;Wr$ zj#basshrjV{^mdT`VI+NLZ%jAU%jB0u1mudP9 z*jpxdn@sLZXYvNCTGu2d!OuBOZ=spzw^%;31iZG)sI}kBcXWDL3s9D7sQ0kcEDd!B zP31OJ`ULi2(MxW?9vr8Q?se0xR)asi$ZfhM(js;5dDHzU&he5OO}5ytN`|;ttzsgh8CQuH ztEVn1>N@sRaE=XmJz%tk2l=3qQF1i`s#(QVrx_G4s6|BYB5zw6>6f-rh^$ho40F$! z%09$IFk|IJJfspX{6gPj75vf?l34_U0(Op|!6nBFm6UX*UdIzB1?POP}^5V7Jf zr03IqH;LT6Ry=^_b|wt!$%pm)nO-Y?fh7uhoOCPRVlux76E}|)H=5}uAln;l7Gh6RoTM7cISdd^<0-ljRbdiOc9{WUgFd3vt0w zgN6QqfhzyNF*W{y<5v0yPF&?5SW@pFIJ?O|u(H`daB-`#4vGYkXK=l$=s(f}qmdex z6jK*WO}?T<5v3v)Q7T;2WK`}j8Rbho3SHD&PXzJg1Y~%|2p@m`9K-eve5|8V5ypB= zk|Z26^j;~1Zzbb-7%x7Y!U%K5~g+pKD6pgHq!$qAHI>dU|;_4dy1O z!bF{clAw;yz+vQA4fqnPO*nt4SUf*n6m}82;%(0Afjb3 zne4jg?<-{QP&rcwn-rm#^SIF14!AQyMICS_hK}oiyCKx41MUQWYqYl#i1Dc`m6sHX(p`D|bfG z>Uh>=eLRSbGSyz<4-+dS?#k&Io+8xF^avBk-($`ES3*@_2D; zPUSeoKc095+`g4qS9`>|>1Pxxk*a<5Vg|Sy-RF0BO6{E#9MM387SfNpSfmr)WqQG} zXVH48aQr`ORW_A+qMMqy1pbGvYPYA<-iA8d{VBDh*&T6_@xS?$+RIT@|4UA(T_v#t z>6dq?3dnd$tu17!ryB)#u@F@T7&`L|BMe&FG70k650~*b@oRBPYpnt$8kM*j<7(ob zJJG24-03a~9F-Ge>AC0_FmlGM^=6JL5N~A5Pc)*?#9;iSS|eKFAf!d>wxbJ(uHJ@U zW2(WgdBh`c0?9u#E8eo#I`K<9HyDZdO|O$NCBuhH`hdUlEs}Gz_-kn)oWEfTb2o!& zSTpz%WvDAPhdEr=5P9SMeO!E@UkUfsCn@fTYrEV})!eU8+;^Q}%vDCX+}ki@9S3y@d(SzB*VCLypi~pS*)YU`Efz`V%N^*HUL&EMv!LCH5}3 zs7c3%X7N8`W;|vgkt$nHI%4R1FiquTUJ_-pKU5W|sx^#ib@Rj%+mQiNi}W{B7C=L?W>h%9=iyGw8fmMe0<$xrdIXY4?MF z(2;EGG)270Lp&G6#%l$b-xNCY8-1LK_0^z`UUB^C%Bk;XKdk2tgXmTIK7<(;Y{c0N zWadKiO4GJeC0dDDj3fokr1Mk~#>IHzW!D4tq1)3kiH)KW2iL`In4(^VLLEWJYC%m0 z`0Xs2f*$V*I+vO;6DydbB|GeP7C9b0GMcJ%Z|VJ9X2 z^RAt7XofhYa-qezR}@F%uH{BmO_-lidVU#!#;u$JxAC3WvC*#7lK;wZG`c)wIYn{3 z%qaH_buX@Kx#j*2*p@D|kUpPwuQc8tjRvKh*AVilMxN ziQCaL>lSjKbh=vQMK0$*f)XWZ&NmyJdl{UExSan53dLC+x0_ODcRNywAwLhCVJnKR zu9r*gI$S*6Hui?J0(&A~hL1Cx{VGfOpwl8=pyzR%I2Et zBGxY_x>i!LeUn7$ap}!p@iwxJm~b60d=Z5fOCExe1)Z8Cp=};Rx5X%Wkb!#=wp7IW zp{heXL5v(}CR-fiBHZ1>Ao60sj%bGx^G#;+U1s-F*R*UK1`q`)mQoR%aUzUk>QXCq zbaWqbv>Cx^utA?m@pbTg)OUZBqs)P$=sy=}9Ub0A7o=*qx1n+qu~Hdn2h>}MpQ9d9 zPJn(DE9S**@H+ex(Qighl*m`c9Mm6W$gyfATEb3qJOeCHbE1ec4t0HX&Yt=X{~6LfR3j{9b@W!-?+Xv*&?z5!jH68WgrW-aMvR(v!vlm&esJ3M|-iv4^5Qxc0Z@fQ%QYmeh!Vh&^MGm4s9T zWbCa>s1 zyGUcJMh~VQ3P{zLZ{yc`#`g5d z(m+&&y?F~tK%aoGfCo!_uzJ!0#WCJELEqR zsCfnnW#)2Z#}Muw_P>#mIj<#m3)+0?7C|>$aLO}VEU6F!apzr$4ZS+F!pj#+;+ zv;2%%QX4SSdO9iKcP8~rQX9<7ei61NV70EZ~s;Wuv1B>Zo*a7(3aTX%x@`kW$Tnzn9P%B8=INTsFM z7-tK%^~Aw6b>1bEt>94t&ew!++}=+R_vJXh6*|VO2~uRE>I(mU6Kc=89vNiQ&OF@M z)-3#*ma(oRx?miBQJwD{;O|kLpWZeHMcWWX-tOsW5ZC^AAAD8i(;S4Cx0gn(FAl<& zZ`W9L;4mDowoFA0B1rtHe+>e;flqL9GcF&aW=2N0Xkpi$NPnYO9R52#kkt>5j)d6j z3&mBH6D$Qww)$w;S^wQm!{OY9V2rCWd|wDDfVtShsROAa`3ddeJpQP)>8X8ttoQYC z>Lq49{+LLUI0#&A>j5N-KXg%1+MhC&F<|SUgZw>If7>qQbA@dI7tL4pZ@AuBax~*3 zjka|KIHCKeYbOq@bkg`0Fnrf^VSze_v(Z|FI~+MqyVAFv%qA{qD7 zBMSXtnT|fByfdB{v!gRCZsjAhQOAu|7Zz^z-%EGaLrPDTV-D2b-pX0oItPC zjLu2l*qz_d`bmVqc;eH5yF+b}TCGM+!R=JdyqH@a|?J@ z4?p5m^$Cy;wR;Ska1n}fck_RY+Q6($o&?%fSENVtZL1uNoSHtqg7*3hK8%*S8+o7* zK0@;h)Pr7I@im%F;m>m_yEa-IkQE%(@RIyD9y0saTDKiw`Bq5N`IT-Q6T+QwatFSG z_%Beztvm49$+?wNXO+gS<+v@I)@a>=EBL%JC%*^ls|nX?>uLOg-#l=^TdkNejRlo3 zo}w8iNAXCI_R5Q>KXBN88s3z{Bh6ygS;t8WmcCv&!)sTHd`BvN(kJy1MvZDf=syvU ze2#>Ow)GC2E^3Wc0_*^QPUIp$wzW-C&QvKcsFYIyp~U{Y2-`>S9ZmEe%EMMo79adM zaP0isy83T<2JI{gje18=UmQ!iLs)#e2NfJE`1)7~p3`(@do#4U7$x8k64B~7Sms^D z1!QYyvor=3N3b-k4RC?$e#rAnuG*KLYW0%bJtcQfZf8ha(;EeJ-~$m)ra7 zZDT`n6}OFe4+B1Y+hj7H<7K=xU(8tg>l7Gfz3adka zaE`M2%?$L&n-JEyWP;8|NK(@GwSkb(^!DcQP+*YfO3VbT3N2( z>oR1rt@n9}tz$uu=L10E;H$ZXLk>FFLN^z4)?=@9)Orylcvla<_&D`JcEKhxu&sx1 zDUH_L1U|`f)GWSV4GeqB3Gl#@W0aFZH9b@|Tt+Re$;>T&{I>2JNs?$m-wCFdAhl7% zzX{MN77>?YXHZCY6w+w*0A`OK(N?Gx$qE#TM+b)T7Lv=TaV#andbrA zfm1au4)bC#x2;=&fqDE9u9jel%Z~P%=w5sV83`lEK}_@{`d7ANG0~O@6tUnmq(Y3L za;e7y^-eg$n1>+nowv$-6rG18WyGqMeF1+p!-1CqdLK~AsH(=E0;8PAOVkP~Xc#W;NHd(cOdaMl7z^U|72$?sr|talf^|Yw=;?k&s3D-=VxwzNjkq4COS- zbMcT7erkBbKy={o$XL1!{*2){$^KEf@9)K%c)}xHk1q{!5a%ab`Jgjg$KSy>?uXsZ zxQPn0 zSdYrZ^tWG7gX(fL~LTXy^n2vvr$t>lZzj=ytS@h%{@ zm4wBIa#}7{1{I%v90Z_y%FV@AvQ{9cmHdVzZY#O)I;WM~0eq^J90FN{$PU3nKzBo1c1yfKOO@+y9@CcO+v zw)H50sC6dpv0Q#grJSOmyA^a8S;VX`AXN+dDDEoYv+pIS1w4D<+9JxJ6-X0Z5KgFv zM3f=A^~2zUiEt$%G)p&=Ol?DzqfHri!3y#APOV~sAcC3Z_S8Z1JV76X>}0DzblkRJ zbPTqr?nI!DUFBscF^I5h@+p=o5BLuT`o}=q#Y1JWHdLN(CL2kBa%_x+flocVPHh~; zU3or}gLY9LE*%ahFd6`;cLwb-ShS#QyRtbNAKBj2ay^;&*Nod4ekW&G)8ZnXwTQB` zoTQZCp$V7nFc;RJ+RY%(+TYR@ExQMdDFsSMd_9q9Sv+5 z9UW7jvd}5WPpOiBO|#JP9oQyc+M|VVmXKJekQT!6h_p~~AuTl84%7#29zvV4lsaLJ z_ImLf+N&n_TiB~m*=uZvylM8rM(0X+>$q)*+J0U=ZYLta3GGYWky9*{?n|9JF#HC- z#9dmhFXj8!j!Dp3|A{Y!I)4k>XkQxIA#XO@z>k`|_Ian1whu=<)z0*lk}pl#ed6Rkj|sT*>B;YG;GA1FCj*q=uxOb(Ll=hr6>84`oee zY*%N)PlPsI_w;s@YCr1xVI6vyck#)tZ{5QTaJ?dE2M53#pgs4J^Wmza`8VrfuI?bt z-uEy^cF4PTmidQ#Dh!r+(CZJs-lIP_eeEFA5~$rwmiQig;G&E^P(0mp#(q4os&nT~ zIl*{9g2A}fLo@7F3T)BWCVgd;pZI2dP4J3gx*lKlst)`KcYl(*)wp{^?$+S$0l8a? zr#`DN!fxOrdleQ~gC{LD^lo!hJosAAs94B{!Ht1-U(0+n6Hb&ZRTgdxLe0eF)1hnBI+IM^Odd$A8u4dyoA}R@r*57 z9Xv(9OVz>lp;8CG7jLv4mWx{l|3wgz{AYELpREoiOWEI79dt6ee;;)aM%$2f`4ilz zI^c_xdr=1?*{V`?F#a^DgJY$wS^ebV)2B( z+H@UM;6}BBVB22R!7yYn>Y!L8wT>dzw))D&t%E#*|8X4*$W{k0oora?J0B0`o7}&T zI`|wP9FxB21Kg-O*!;;})xm0HFzVphlcXKoM=at?a&hY*O7K6fgF)HqpjgWOzS_aA z!A1>#=XFqHcKb_r7E08mE`h!X8(f=l@lIXsT4J$5L(%A6I#(1yNQLvSDe8l;lHULk zg5oh+%)wMl)}DaL_&psQsnA0O=@6FH&;Fj`^r}NKOi%1OOA{pzMOe^fi3xGNY-RWt z=3LQKkTPcd9^9R+3=gm*XDh?aAMJ}}R=xysFk2GY8mp#XB9k^PX$?W0R$Wt)0_224 ze}tbxQa*bOUp266sUW`Kn4BV9tRtn2K2io|NZ+cAgWNKnJTa{dpDJSmzG;R~iIh?J zEz6(|N{>nDW!#4Zw5ADC#sDb;i^^}IN9C1@fBOlh4m>==`f3*y=qAj&Y3A`FiJZ0^ zjr3O~eUPLNYEd71N*)g7QyUa?t{~o2plgOV9Ux)CR}!P(&85*uE+2BOl?y&d63TP# zM{Kv|p9vS7fDiOC2%K`kvxkbD9#0n+EFa;x;D3vCA|%2KiIFyzZ42mMThtBZewo6+ zV{m+S3I;`YP<&)y))Zk=Ono%s;~NR-@lVO=iGTiSk{kcTjI68Jx23x_1vm3~-mn-l zF>R6e?VI|X;k1ozBHyT~zu47l=YMdXmAR>RMKPk(-Zu3<-BL}xC+^**es}A4+0=(0 zXS%S{)K8N#zN@Cb?bx(3bW{K9``=|#52cr(n|isF@m)0a-f8@$sqZh$vp4l!?@_^T z*VL~-#gAVm}(eu>p>!R!2y_lM4wl? z-qvBBD>d!yHQO)um~s$eX?O!@+o$NHqpO>6@l25Ly}mbroz=B5@&>MWa-HA>f3OJY zIRmPW?7*F-Xc>Sn_mMWZ0!Cow(&$|QAC@8-&k3>+RMn9zcm4~>zsXKNK{5tbOT5Iu zI&xr1=}(B29PSh1NGmBE;e438^-V#;tq^tvX~BKNb8u=tzNmlPs3%*Dv z>3HnD6iUm?%nId&+pHVPeQt-~C)G{J- zOVTf>)U;!SN}ECZj(4i)F9q<$j`mQW(i0`u)Uc<(*WIh{vgkJ2b9dXZIoj&|#F5uw z?y5Te9`3*SN-PeQf1Jg_*GOtAQm%R#?tzR(b|Oc(j=xJ5oRC3G__g6Db}cF4E1zMy zu~f3PV@bMTrY(&2!r0`b3tMn zB}-1+V-JEskbKdF^g|mdT`Hwul(}^8bMBFngG(cPRCDK;vR9*^D;r7>8+^xO$Phh- z_%{lBJ$8)!%xm1uM?1!?!YdjX)Lju=(YQ>8iZ0)(KA&jw7J0E-WFCtAp*}MhJ$)qP zoFH?3F8kDL+>iP>^~txZGO$k7=O8pp&fcYO;SJw(?DZkW_HWZ}w|?RkrOXwDZ&&?L z&lxIXZ|nINAA614^C+jDxAfRkJ)<9QLiO^1PrP^VH}qB-V^_~Ypgn_JE3mX!;mi;_ z&L>kog!imF%)V2po!oL}e!u0&w#N*jsEMyqUOiMuO?-DJ_#V{SQ%UkH<2xzIF(AL= zvt+?|2Mp$B5Fy=}_Hwn6ll-fCxO zNge?qq5qb8!;8O10Zpay_hR0&msanboQMTRiaEAXSAX=sSEH1m4T(PAofUGOFo5~%Ncb%dOh%DE4DoyHm9tOfo_N=5+<^%1E91VE>H+<0+!#_rIEe_G z#0OV|pIPY+*xFGz+;_#hIamQmyf0S#MKBgop~9y1h{$3OY2NKpD$kEe%sq=?L!k{P zy67lj28B|?dzY50cF%oqiu?ZGoIBi!f_Gk`m#?p(%T!VMoCO;7EKs`@G1EAiQegMP z{O(h~c@xqy_kqm1rKlC}&s)4Tf8s$-&9`vj`ooI1<6O<#L1tSaO?}5}+!qnXR?X@* zw1M4v&!BJIP3pY?r$Ic4J*3(PzJ=hlz6P|=ZSZXU0^+ALUBb9oq~GuOJ04@%f$fO&M#pW(5Ml?m z;IR~Yi9w;Wkbv)I%D_^c^jd7?0mwOSv*d8juGmE@%3!mUe8+89{IJW2??B-3XrdUpBIIyDC9}-@zon5Zj@E+g!X$bBr;ZCbZ zIuv(hhT~}dE_Qi0Y<8A^Kt+9^%uNol&83@_uu$>zg(_((Zklfiq$W3D>(s->eAx5fZ&PPl_UR7V=TIIGOUF$wq}2o4=zy6l3yH*G*5N5Z zCKsN-vko%4aELBk*+G`dUL9*94*8UAF2lJL8RZz>DKwf2<3TRhj(FaRot2LM`#3&) zLWknIWGHUDR8NNX7~`oJt}?7{YrbmuxnkL_9oRp#e@AUTLy=0GYCN8YZBemOmw1-~ z&q$@^pA5%BSGErO^OW(GZW4Z&gc0pOu)&YS5zPH#oiYeHR_v0&22seoI~#QF!2SUQ z&Ar{k$0$P13>#hx*(wo#XUd3Ps|6G@17qzT@A@=hH*4Z^oPI*6)V8MOZQr1N! zt>uL5bm8VD`yd40Re7zVM>oZOh!_~d%?P+Qef%jVD->?w7 zN=lt_;3G0sGT)V1S1o%zTXHG4%JW?~#(o`SO(MGNmGum%%?yq)7Zc*$ImSD0cujF@ z2KL)w9_1LF`$ixl&UZD*bvK-;=6zbA}?_`_&z||11Od1T

d)WA-sBTw&S#cDAO2uYC3P3ML+`#@faa5?4ZG=GL1{0Og;#$lnGCP z1}MKZ{kX0EgAkik)x%!aRgwMb`sXkU{p9sh1Rd)W7EbhJb{uz@LCJ1H8*Tbz2dSf* z>fffUW<1@?}j3Mf@W>Yk$G4P6a_P6j{RP8I=D>3dBmK5t*%jS%st`%dS-QBK) zlW`o}#V`Zp$E)e%Ua79BLYbLNzz#T3Eqg#*E1Hf{h7QVblx^6yjV%{` z%-WCTL>kpPY*WRts0;eIo*~}%nzs>_W7;J3*)jt;unoMQ_=Bq<7C>kP`j8Hp^?it! z+d(7qG zr$3D357&2!T5khkTg~`QKOj1~_)EJW(ibOf1is8^8sTf|>bp@d>MjB*xWX=&fm9xL z8_QeFyBwU!wn?81_d?<)$3u~VQ4WKsHH^2`$@o2%+40`)d6KKict0C&0P{qHc%Y50 z!jp4pA6cAn+JHAdW!2WE45JdH!7dR@b2L9m4?(WxI60u|v*(aQrgP`(SM4w57hL## zaAxItPHpcTPK51iXhtMI8?#t%4&NvocHw~_A0WTqd&AEK?*fj1iiU-B( z1)D%`RK(Jq#jv&~WPmSrtirp(D4ZYfSeLrRk^ByJOX{{Mb;}Pp>1@rZTluDvV#en$X|d{sVts0jz>1TILa{*c8W)yb#W9(<#-8q^pbdl zk}1yoh>}XBh$@vIS;AlgI?Bp2pg8>=cf9SEy3J4B_DS9HfD%nRAa#rJ$-xdy-4>;8 zc~%ayslt?0xxgt&S*o%@Pu!_g7O!m3+r?21WrMyhjsmG1{cxwWq-2Woac(L_RH>)n zPT7F6k`9U&<5uf6K6N`ebvrY4J2!Q^(7g>*sqBGjeXY^g6}+kfl$>LcM@h$$l-^h2 zPNlL)rT26f$Fh~)vs@g7P&q=lQ<_m4#rXy&HBcoU`*QU6C}Vua@gAk;#JGWjhNp05|?0tk8~dtchbN9*hoJ~rL&%$ z^mPqtFSF#|U(&4~UCh@v87=DA%Cy^1uT|Du7f;roQBYapj&EKcdIv#X6{2*H(vHoia z#W-Tj8meQaGVT!S;q`3B|~n$48%EVl9R?U3<6siVk8~5$sg(6 zk;#=NlTKhV&Lh_F6ajbTt-$;eCY{&U9`_~ZAZ0Hq@$>cv9p<3e5Z;Y(GQ1r!7yW^A z2)T#pTOUzZEqX3W9q1t#%~IEbU}F=E(9AdJ@E!_|*P7rVyxZi|Ed!_A4xI4z2|4vr z6OBMkOZU{Wdb|+iOU>1r-r-ceb50ZI>6o7n!$`M$82WH&u_?d9 z+kCBPaM8NHIA#HFjpWPayZ$J$ZFPZ&M@3i&Y`p9l$chs;X1{(QPI>c3{tVET#Beh! zbpX8dI;7F-pE#0o(QhXalhYLU9dhN#gG=!q=4^D61Hci@0e8pYZV>L!1oMN@$RH}> ze)VOjK((aCS6@U)eB6bQ`sz!Vr8pRT|JNy0(da@?Q-vCIXJTqC=l6H`ZqHPBQ<|0W zO$UC?QHosMgiEw`8-6`A47{KNB(#7+3HNR%?)m^{TN^()ut&H#pEl$kP22h%5JyGG zmbiT2VAp~j%C0=-WoaFYAxr;lF9~15d~HvTkHdEq0m4^a?=(>Ms{Vh}y?1<+#TGZd zDUXB_7Llb`FeoS}T~QE}phi~(j0M3CA`vWzxS=Q|xLM7*EW{GU4qkgju2cyr;BHXV zh@z-~QBikYRP=Hc5#jxQ&&*SHlOVqL{p0uJ^C8dd%xQDx%$Yueiz*4giz>+$`_J*W z{Vd#$YD!^CmblJDPpecrU4c!palzwQ)Pw-@X?DMBLt!QbYXDorj(vEiq;fv{u#h@)b661!WL#jUro=u;N*^*FkiID&PvHqYvjlq zmPh|^hmJfbbRj%4$EE0juEtmkW3?HtFf2DA%XZ>qlB+&UR#HXBdL;M4>cmgL?Xj_G z)1@nl+-Jl->XejcyeJG{4LVxi+ezu$`^mcm}FlJ>SV%$E2H?; zG}zK(W>V64_T0UEb4UO{??-gY@feVus!w=QDMNyrz2ScEywCECN~0Bf{|MA)EOa$U zYti4*deBMhF3O)=ou+#b_OG;LR1?>n!N%!6NxFESy#kXdjWU12WWE#bo3uk^ zlv`(JNbnE!`flNSj#6uXxCKBPYL47ue(7i3j`{FnX`}44Obav@>A$IW9quiKBpQ?5 zIDd63wUpKY;`l{vm~3$rFBVhX10>!(_epev5=~0g4QpO>TAkhU7imYS9pc{7Gslz@ zTL?~!*Ks}?WNaI9_IPzoUHp^cFhMh z!F!xxQ40gaYhMx zNt-M%JF*^(=S9FoGFzdrlwe`czu%=8$_Ih878TF=QDT?7_%~`LB=WDpg%+Zru?lb+ zCG?l`1HktbphSjczeo`hR^Abk2tbXGWf6@1$Q}za68?RI1XL%E}!0MzA_uSkXtATJk&}Blk8K_!xV4hz^4v`q!s9 zL5cxV(t_1j3NP$=>K#i*v9=Uh)M4vrsyK;c9Sx>v!9cQ(hAY4W=*aVz2tG!M=9KEE z?+?vLyhk}Bo$H%$(k7QS)K+8>FNdw=}`rkTu3MXZ6QrkUe+|r)y@N_x<1)t3xR$~cSr zaLmRvSlky$7K|Ung(OKh74s9izHCsbtS_0)qPP?wNky?JYSot&haF^5xG7p{efj&M z_?GwL*q&s)ct_7MB57(-oB}y@QKZ$+=)CO>7DZGt(0EZS7k`qZviC_TwJ08mBp1c} z){PWJL^=3t>(kxwja3vwR4R)i%UKlb0itTv(SYD$g3%TM(>uV|cKDHejT{jt8f%81 z<`{)7uQf*LMH5VIdC^faZjh+}G>>?DUe5~ri+SM#Nq3J#r#oVtxv`zRhc*!D7)zDp z{Z=&dHTPCd;EKN-`wob+R+JN8Y7dcCa7ua`TXZb2jQEDQ+Z6Y2G-Zo;y zQHk)<+c)@Nw7NgeHF1s5#75ZOO1S!futFg$;RpZX=hz5euCv7aw?=3aGUfu(UxOt) zKLYV~Hh8%WUTlM3P4K$E@TMEVIU3O7JZ^)Ju)%u@^~|8rh2Se~@H=eq<81K#s1W|T zKZC|^2*mHT!7sPLe|M|QLiSpM*R%>6QG#D-gP&@H*Vy2Tg!<1xV*$at+u&_&@JDR$ z$wECRXiOmZU*d$Nymzg&6nUc!ewI-GGH9Ge@b_)-k8JRPHh3GMo*Oip6Z|O~{B;|= zg$@2Ks<6MVB4}(uAU??kpKF6}ZK*VK7~U`fREwgZ@fxAew4o>1(68IjC4lNYJ7^RU zn$xPfOwYBU=V)kdXW&v|)*22aX~=i}7k2pzf2i7UgpD*b1*wT%*Nw)`A<}9a>8EN- zrS0k=!6t>%p+vgJMyj%rzRp%z$IAjDUK4q4m*Q>Nh2FfnYCY_E*v43#f|0cbd(VW; zOT^&q9g_t*8k-tJL~BIM))57aNON94=wDZaJ;bHz0{zE>zm|+xP?9&-+4cs*F*HEx8%oS@nvw?Mu z@vv!o)PiY|-mo{^Z@+XidekKWt}>>mEmX!N)rWccrI$|dR>g9vc4r1ZsoHmRx1G3! zMP_=c>WpsHm^1|_rYMQParhx>9KQBcEW@CSh`A=DU`#?bp|F5q$`C)~#aj6C>4XgT zd%BYLs3#T*;d^nompII~G3;L))e9Oe>=djr>Z_*!flg%*jkB@yX|)=}+2>g1444+C zDv^$x0I(rOh^<6RVm-P12Kw1H2u4c|5NOB+M)Q(DaOIu@gareTo034#nRS4$8Ue(c z1cG-b9Uv44AYGC`+9!d~9srV_1kybTgzI$x`Esu_N4=9kSl0luItk?DB#&m9p}_ASP@~^ za9Wmf4?FvqBl(iusQh#jgoY+hYJ<=93glx2!ZM~rE3uW?C5{mwLlnpx1o2m*XOf=` zrmf|01$M7cDm@aGm_$q)%&t8m()ENg2vm=pHk)@9;6O#LGqROLPFv2i3d$qo2vm=p zwx1aaaK|>PqO?0?P9mpG=rRQrA(TO&dgQbr^-zFMC~_wwb4ld1Ej3Y4Q-vIX>XBpD z3o72mp+LwOuE-673X;gRP*5urR97KKpnBxEWDRoj72y7@l3895nnVuU76~;$L48Ij zgFyAjaeW$qxe9QxB6s}>HaWVRH8dwc9j>76RZ!y`P-0B<^MKm5Ta~{sB~U%4*y2sV zcNO43Ct%m4Y+$Q70iRZYt(}0Z*|r^%KL9yB4<*Mr<7{Zw`AL8{vp~Rn0M>H>pJ%1G zfW-h#srne7PD0;Xro>iKEjW$yAMeXidB~KyiUxd0XN8FdrXfTtjs|8RB&m5ttR>OB zV)d&;ZCRMBew7MZ-h-^*(Yyuf*W>*BlU*eLY(I$b3MB6bp)?ivk5|i^K%qfn+UGPg z$s?M@5CuZJPMeLDE(C;?G~Ai=%af9nkGuoxc2Ff2YisNZ!7^qcZ*+y;#~Ub)3&7jq zk%NUh(W{E7Ue#VaOSF3h2=907!}9N_{|uIw^RNEO-n^^_Z)JZE=0!7iwDjqNTU#iv z0y!D05qY~p#xv)(Y(5}wmk$TLc3nFQM}zZfaS;u6nFZ;d_pPLZk5uFWQLQv=tAjaE zlK6bY0nXXi7}-nrHP8`7gCnn%9uG2~*CX>V$S7Wh&`q4Jeq{oBT|MXt3K~R*ZC*uL z^mH-JZ3TZP43Wv9zd1W-&V0pZ>1asn4VI0P54IPwuf^RzskXl2yotVXlSdA@Y*n7H z$SXn#l%VHYil5x#vp|0r>hBBu7T{GF@gF2Aq)}#H9I};r=Dx@c0=t9QF2L#6@*{-2+O6)x49=Y+yrcKynh!UM~qUo4YRq zX<=iz27L;k^8B?j>)cFYO8vAbpXCjCNgdu|?3xD4 zve<*gYiR)&1A9u!j>H%1zwPmHnhMq_>7Nh_#n4ravV)`TAg8M}fXv=2*lBhwXDl^9 zi5)Dpg9~&}F@vn|td}BA9Hnqo-u5cQsZ_EThb!wJDvomK9d8IJ|3`rooDU(wL8r_= ztfV(S5t+Y6u^8_?(31O5ipSA)g#xVzcS&IL8V|N zz}UTs3D{WWF8+i)q>#~3bLwVu!UKso4CEV}64S)jBmROQsSNuoJqi%hR!K2U+<_Si zj*OA%bgtiaMmQvYk%jTdZZObY6j9b+K7m|*R0SG?3Esm2K8xZ2z zTVpK(XNS71#wTPf!C!ECYyZCe+%aeKei1Qw!MfmQBESRn1o+SA@FFu{9Z_Q@8lPfyjYI4eSrL$@vzri(xK?v z{_Su{84%s6!*TndRr+LA?u1|Eg#XA{Rw#vj3O;OX5GZGP7k>ul)v7d+owSb)&0^9b zY-bc29?+!gx^l=>N!@{5EX8idW}VvLhz-%a9ip?rp}Za3?Z-VwI8M!Z0G<}I%cN z)Ksv%WE<ql$^rq15LloVh;uuFg7Hg(4-b-D7O_?MRjy; zn{X+w>IHHopw&YCrAr*8e(N64QmN?LT_Z`dxb>Z4y^u`&<@{jrm70$RUce7lnP}h@ zgnA?7Rom|t6WH2*w?clE5gOa?L|fQw_a%O*74ghJSsY6K-e$m?X@>H-?&kuylKSm8 z98$0RgQ#U9oC4C0X(v@wR@3-YWKxr$$IQxP*~8|ipYrZHU6e4Z`ubVNi-DY1ZESJ4)a{K41d;4>xu6F zNyi+T7V8hLK^eUG%Q=MEUpQpdGBisL5Kldjj^I5}@m8Fwf8V#i0)$<$EGQu)^j6`g zHHk5YDhwKZDGJ`X=Z9|}lh9x%q3IT(3K~IpM3Ew9PGfYSRkBud(WW0r)xD3+uFQ_5 z$5X@vj3^Q!MI0dl!B{E33iu1#*H|9t=Hbp{Y=^s8N2pV6fDHqdM@&4$2%w=Xxl6{G zA;ZVt%gcye!q(a|RseF-O70@%3U)MNk7GeAVvI&g8jK`)2I@*kZ(E3}$q!T9ppgp% z@E#x^&uRR0t3@uGVy~sq3qN;3y-L|>=zWBYqY-yHBMUpL=n>!^H8K&60L%Ty_dq0Q z{De=UKYlMofG3P0D%SAZDy;74n?#NGkwmP7J7h!<#=>3DC`X{Q)ONQ+!;g1%Erzss z^22m`LkDar{239Y$h)({i0N-!FYkMGA5^UJ`TA}cS~S*`pTIOEK%!&80TVelKq7R> z5f@CyKw6L>%P43#4G^#ZM5SSg)4lBMbWDI%V#5{piFv-+V5dT44bT+5Y)=i6aQI44 zaktOh^qauMuPDLNL9ofJr)*|%oTP=$Jof<&_CUddRsJg85X7)tdXqj4BnWhKBS4`r z=?XW3dPCV~S^}~)3f5w*WU%qUUTp5l@>h0%eIY~e5mSH)&ioYcHq!_gWi-Ml_=|&y zXY0ES%j{krCN&!rx2i})sNYLK(YhIn4X8CrE`Bl~R4W{{#P$k2(PGR2pf|i&vV&Vz zs0$`4KRx3&id@D>Eji8+1O+Hb(@ov;7VYCqs3b}5(0wqvfObjg6w#E?UNRxHN=m09 zPD7(uHAyStFdY#x_P^7vxjy!0e2Q>M>FvM_dA>&&4Ax1MPcc}IAJ`;OD{+O0i{x#G z>hrdjZC2FdvjBwuYy$cD0J`fHHO#SaZj2#vr zo;My53F38pjgd#;F9wf7oFj-;{fQRNE}qW`U>U>?5bPrX*b;8O6L^W6KO6zLd5`cm zcD)lU?au{_{)}F3GZ2opSo3icmcbE zQoTZD{Dh2qkUF4x@{9GH*OTCGJFoxE89coUIf=%O;Ky_ZZ7J3Poxv_+Gx)@j zn&J%JLek$l0~pK$fU`WLyZAe_gSMvQ^kV>;NIs%09wC`iJrtfJbapKcg1C!$pjk=C zDoi8K1++3t{5Z)%Eh$xI>B&J9QaUh2xsS2yy>qHa)V=J|cd|-KX{&(vJzAe_6l}p! zvkV$P0|uZQ@If|+SYmvMABlFlkmrc!<7nDFuMe6rNA9!(EG6#WIl!A50jlo+hXB%a zH2)V4Fuf5*$qsN!q+yv4-~e9)iYeCt9bgdv8+Cwp{_;OLz|Np;Ily+3iGSn(QPf|( z?XXxMmcxw?B&L+DJl>GNZ6OEm>K+8@fn43(o&VU?J#w$*>V^xp>FQ1aFL8Cf5P+*Y zL3kTYpHr^xLjYs11R`w{O`IDsG7+QA-7zK(8y~JkdD7!;UdKF`uI?TFQZo~;JW$Wo zJ&shmI;`z`Q+jG|fWPhRu!Fl*a1Zv_j@VnmVWV*)>0;kcvkEpBu`FyMKy!U5V$q`D z7#r5dcb5!JPfyx202;f4zhYW@ZxH*2N#@vOGF8}#TQCPF$}^{Qb}t7QCrJiBON~S- zjsYXpWxMbl%u&$OU^DSp zUNZd(91z`35fhgwbE?+ngy;zlobbKMTaDOVa%oLgiq`%JqPH+&CvJ8%b=MQ94&80| z6<21@+}mtQC#p^|^2{?T%j{39EMK)A^8{njq57p-tGJ==R5%~qDV%>t7m=3$^jl{E zAE=6B=QcW9XvtswF}cjw6{YlOQ5r*(Xb26EP&D@GPv{W@jaDbMr|WIX4-A7FtdG$U zWw0eRI7$Fk^@bOLR}jl>{1|Qew%0F;el5LFV=W>$U-%Z1>zQU-5OF9OeQ&5KMbeN_ z0urb9F2wKvwbSC44pR)Z)4~XTSoO!z-D)P(@b(J6 z5X7+~w{3X!Ja{p)9LigWDU%mCN~wx9gRsMQFfYUUP!C8`kpm=hkczAXLXC}Zl%#bw z(-cCML>{IhS7<8#Nsx59M1m!5SV1QmM>&HVz3$hmHPHJ4^i^;050_0t_0A76G*bvZOoAE&%dHZ358{+z_JLMW)E5&7 z_gHkr&kD|f#D3=vgnDIn1#*{EcCPy4CRov0kh6!+w1h)}h#6Imm%m%2YR6q*ql7pk z0*7!dD8UDnP!g5#HAR3R^7Sk)7$vc5>tVZy-HF)YaBp8YEVf404Bnv{77ynNbN6$v`6nsJ#=22NaWmdJE8z z019~)_JS=7<8HO==8--guJ_DEyow<)#>}!}h{>2qDy9Gpz}>axSNAnxGDVzm&cY1WukOpMesy=}xUnUoRpx`n!#$}8WHM2lri?GB1z&CS^Llu7v-$rd@37{;K7$s6WkoK)!$H|&4hy*=8bO0PL| z&G2^P&=o_i>~7^~Trjd$b^ZeK(Tja}xfQ67G>Yo&4FP{xt`Df3Tm`vy`P?Ad0k~ zEyFb%^*l!oXe4=#g|IOm{t+Zu?@eg~Kv5E-02FaX6IA_DTNoH0Z-=TCk{u1!6or+i zu;;V4s1W4UTuD`qHNUS{+5)++aMQOeD0kp(VUt(NshPYI4COe^K)v!}BHdfHyP5m- znjkKT5=y~*NUP)vwbF5+-0M+I(&&d(u8@$o;NYl@2a@E^L2bNAO%j3@n|uN@AEDfv z2UJgOy#``xuYKWf=x3yr`b8gDAu%SLAf`4zBHVL7LP?ps)svQ5=X{q`JpLWIj)e(i z18Wp{yQ6tAsyv#vlOGiujeYkG+-BY`y?PPfhNRf9P^lM}TIKDak;^JZ4Q7hG?ln*l zPZslR-tx*Wt{j((!C zwB!29j)8f*X0`yIfq5I;bFl$iunpT((fDR1;bcLsjxHyCSN7sf3FkQ+pocDutPCtzmp``qI z+ta|hmwVowP+2Lp<=o%+7eEd^r-^9Ze{T2PIw_L(yY5DGX)uc;8ze{r*!V@H#d>LVtl;Zo^#Dv)9;LCl>U&-di#5y22ZJ z;)gfb+Z&vgg(GUM3eYFqbm1qQ9y7)~LYt1pHo^bG;jJLHznmXeVXN2&+h9uQ1*N-- zSJSVB6ae76u(E1yVNVaCB1=oFX~w}or6RwL?NP7; zUX7BFAD0i)z7ipBLMQ-dfsIo@9Eu?8!ipDr$YgGv(5zB~83!Hm<8l}Gl`g6R9Egg< z3@xZHfxEaV0qtB+t|V#N+R|*^D$@84ix@42f6_dyD9qANi$|z1B^1Q};bAMw&)W!J z4Ev;cx`|MhgivlHOi>8#Vs3AX7|#JI!$caLgf!Pi8e$^J)+Ut|DmF<;j}u6hnysX4 zo8%f(Nw+INXEC{p>5C4eq^7ns|K1`>D#X2XW`X|nkfjmsjz@uFcwnV|WT#G5slHYb zYf!{X?pSv5-(wJn>S7n?0jCmvDtMfl;jwb3bsESch z*I8!|8xqOQbS3&CbuClV3*A=gxt9!cC2%mnc#$a?h1pihC6|n(15$lgO0o4p8Wwx| zR|6JRT(QsjT>8;BB92{m9@a3F*lnj{iV(d%lL%2?5+WLP+-HK?3#eGPo1`dn_~`zvG-HbGk(`P-3qO#gk#_5a@k@azZ38TzBo%$rF5Nhp+Wb9yhM1&w)107s+j{P{W=@ zB7iiZ(@|leP#F*SWw7Ha%*E(DY>d=Wp31U?a$K=6VJV?l-?b`TW#Aa(OaYB2kU7Ap zTGbwia*6^JuhbNug)6YDo=lA-)jqS@=`r6FFHJfVlaA2pmG1S1Fo!pa#Q=2J-~JQsZFwpu`?YA<_#(Octm<=#f|@ zHd8>Ou^DKvl705(;zx&@<*{fv`v-gI7|>jgY1F&9j5v# z>OqnK4L20)E@~kEQ*boFsl;BWz6U{T`oYlp2CnEJX!UG}*6As7J^Z({!k%yPO)JST z6&TJwB!$p$`bS&6oV7L8`@?+Yd>?}isOp16S7NNLk|}j3Ny&5$+}P0ywFv&qxC)}+ zEPgsq3|iIp0ikaj>{_^|q-vWn>p>Gb#rD#)XfBABWP7t_pL7r^UXQU3ofS=RW8)_H zYU9Y3xC<9kYo*$P?mNfKYDyZj=o zMB9(zbCk{Hjg^gXSEXV*(&w&E@oOQWY75W@0wk5l(X$8rBMxVigK}!u!TlakB?|ys zuLW6{BGFTu>eZoS#a_}7mGLQ5F8@0!EgPcJH-*Y!pyDtKr*9lHR~64_F==Oic6N^g zD#1P0w#>I0x6DjU-^IR)X_?X3eH*zFZ?wn-k>!;WYGUY{;kQeE*Yfg9d3-xFttM!U z+1LR<#*V=PdsEGs`0dVsRlcF zLBow7So_0YW9K#f5V7w=VKLjp8I99xAtQ!ZQmn%_WPFalhO0CU;2$6uHP+*=tM+UF zu2o6xk+cFq>}O|0<@`>FcwQnFF+%ZrNFquZ;o8|35CMspEfGTAhagY^d z)or{%V(o6@)c5UF_#W&L*3)3p$Let&Xqeqb_SDZ%L{&HIt@mu)u%~MZ<)aQr`6F)% z<#Z?IF-eqvzLz<%WnSw@tuOQRRLbiGU3Zh402c%cDTU16j1(lAP%A-yyypkKB7h4k0S`abB!bP#J zEJ7_437&J}o~LkgoD#?mLwGzKCthwGVi6hL0s{2bL|$|f$y7wP4pJ(Bn?^0bkPPVS zRUEX?+lju!iT?JxBL6}G)mqR?2pr;pO2DGx@<0eQBa)Lhom6InO33(Z=J{CpT%4%@ zzHkCuLjcbU@3THUiN8W3&1ocqghWeW=1G&!#!$a~13zgV{IJ_E!D@67ao@2MqZu#| z*H7YT&I6pOJKkwvA?9INv16hD_l2g+5=8SVSyiHW>p0qq=GCxo7tPzCB4xu?H1A{e zYqL5Wx<&n}QwZDDubBGm;0Fisq=v0}6Ci6iNX4x5=!LO6P;$Y%H~ll;+%H=Wbg{;c zsl|8)c&^wqh#Sg#(_T%+$ZQuYVi1ey{+TNj-h8F#*bg6=c)5g$8Y5b(odZzK@b}gT-^Y8U?g!YXj5U9Z^w}6yFL9pVdYA#mHP7$$8peC0&kAaW0xRH;3n%> z{&IdWn_5m7bJZ)iJ(dhY{bMf*Ydt)abIevFsV}OCmQW-r>}sbpMKxfNObty*H9)X` z2!Dgd`}i9T3dLi%pOYw5ovnry-oqfzQ zxVo1a8fk?tLWr!Q#syYfo)sdTNeCyJ3cO9>Jx6Jh!8NQ+HOfcgG~_4#1t zp|+%LxPr-Y`W`8mki&j)$?hDHn8Wf}Zzv5AF44t-8DI=B<2^+KgiXrs;8`1^h7XB^ z!(0%XvtpZMV%TE-LU!cH@2%bxp&$sxb zM~pA=fefGF1IUlm=RNg_s?SuQ1LP(}?NvLT zecPP5XDppdNfBbz*>F4`WL4v;uQG96r&@D;2Xuuz#KPeOf91t^%|J*!`ahG(7mfG3 z=zk_ON~_&3Im7fEGuYNWj~Bi9?cXrWY+2=$A-n|*Y~2NaIPJ6 zqeZTl(Z$3+L>z?(uaSv}Rj~{`ieU3twsznCRdwecV$F{Go>sHtGnlZq#sm!;Z*hAf zFvcRG-g0-#x1Id~o^Hq5KJKg{cfC@N1&hn!1US`x0_Jz{^WEbvY(6O49awT2 zDMifhnGGYxg}m4*fOGmegK&++=cp1P&l$kR`F;EyP(8Cf@`#YJe=w7dM-cnE^6C$pGa*(NP;Iq#70*`3pHO=|13+Abv3t#(LoUC6iu@Yo%iln^vdXYAUv zfmhefc;@V2UDfWRt75H#)kDIWZ8S3WZ?^(a{8{jyGjscX+|%oxzW_g!{<}6J z<`yI*i+R^G2NLrYz}FY^A;zvvoAW38C$kncDro`WU|tq$x@>P(?3`9fQ9933cFz?$R5f>z>VTF}c9Wn0h_@;k|bN)!n2 zizK8hD1<9g#%?xw`@kDs((n#g>%RL=a7!_(@gjh6x*|mx)+pZNNKrO_E_N2jykpnm zqS$nx_!Wv=_#5{011;W3y4<*_QBoHn1;#UU>^G*8E?l#3|9Jz}O@0=5Cn-FU?E6Kc ziK`KPWTWKLCB^u&i)2~wURQXh0dKpCZa@?7NQ$x6fj3p*QS+}fig&-l3pwxxD?Do6 z*C^f<3hxqpYzG2mDhC3EI(^5F3#C#fr=opm(3xn5@n)md@Jm=cx7y*!3)C?*Bln{j ziTh!CX7#%TVN|tGGXA!z4Hihdsy(op!(!H}FLJDU75GNnkf(rEZMiW9AG2OvB2jj| z%9Gzo^{Tf5LA~lKA*W})7lf0l(CjQZg)7rIWz0_!3nwN zA1(d6yjZA+T?e@Lqta^qbxqi~@cMdjQGC!6!=tLNaqIcL()hDVrM<(kBA%mnm9uwe zl2E2=QQ?M95NDUeL3}_};ZPL8sH4pykcSdA9Cs*=1#xcN?Z_n)x#jUFefA(&RrS@; zc&i9aBWrf>E|Rv{|3hSETKS1KD!2Llm1(ncqZ+pFZ95EN@)=?;>Zp1Oep<~kV_i4d zeJ~Bddy#?@`nSLq4nIb0$%7AU3GX|3O0bIn^Bee!-{*%sqdM^SW%!HVrvZC52w~?% zuaI#%BE>bFd?<&Tt&Rv8Cm>4c*29(=Ga@J>qYYw#*;4VHjbIjqODpstxc4ZLW&)&{ z+exIk2OmmvS;(^|hunALFMgjB^1RcYziaRpzfTDns}K?q-e@HvObi*%BdWd#_aQc7 zl!BMuH1Wd4>1IVubXT*#hh3UZO~p{U3Q1f`WV&jc;p`T zQ4sVTMLnGUpR_4GF`8_NAE>293w%rD7e?zD_>nyGl>4p}{@UZ!28|z8&n0ieMVjV7 zgbKJHgO{9uY&ZNS**8!i*g|zq$Ox&>pr{c<2v8Vu`>oJSgpfJJO|{~tTcO!HglyEl z3r45!aZPCsE>-w}p538{Ux6Ts2d(XE2q|^>?oQLCGG(M0TK%3GIt{z&LdGsAI8ZrD zD|j@v;-RRFPcC9n>BuM1eJjOlBsoc!tnkvP{u#*=XzDtsIyh|R57$A(?BGs2xZ4i8 zP^mO*mK|(m2ix1h96Q+64)(T#{q10`9rW74d^6iX&7+H{%7NlKdlJ#NYkRO@#Aiu#C>R>dbd#0JC|f~ zm^CMMW*{BU(Q=6dy>`$o2}B?(Its6X7A`fCUydmq&{eyYeOCggq(LC=KBGBfgw)QG zUsbLf{*8uDr($i1Ml9O|Dnyv2#Sq2~VL-Y^gQPiA(pB&G4tri|2c3tq(;Eck+zLUd z2|cM2TxxNTx-Pt+6Q=!gGn+v>N?cPQTRWX0P{bGlHm>+oT&@`reYoOy5rHxW_Z(P9 z?f_Qe2{^hDKon~~Xe1ce0CoAx`4^+2Q9x2ZvfT6a5UFE>6hzaoah<;x-&FaNm}ty1 z2*wlk6t{(zkVT1=?#C~00FHk5XLj|%#&rVWxo=xTH56(8S?t*Pd%{JoCtD4(^xj>nY5!o?1_1w^i6aX4T zARdk4xDnGd%vk?Mz-^<)yhtN3AQ@lG^3P9)Lg%%CC_Md>z5Vxw6wyHKxM>Nor79ep z1`e6S+Hov6;q#xP;gsSRw~~BJYLKV1@`gM^4+z6r>-1m$K&)G_xEnF%9wxq4Dr|{y z8KjFZ#ip-PZ4)4`TwPH)U0g5s-QDpiDyOG53R^^sp~R2h#oeqpsEi-0csT@I+I_cL zE_o$12A9kYl*a-BMX$Wvo5)L6MPj&+J0vmOfLUk*IrPV;VPa$k-4Fuj= z41^PGgkgf<4tyXfp4EV|Dz#MESETTzny<+r5Da1}`WhBgG`1cfIG=zl`pfxuf8qJ4 zbhkN3g|pwDXl74~_NuZ9@gDU&cE)V85~Smt14x4D6+JU_2kK+=|Db{rAz2SMI*UyY zH|?VSABs%lCMIV3MoWU&DAW-sxQ7zu)(t{#WW(g9k=!sv?mm*!<<;LN*Hn??^8~j8 zf*N{qo$Lq>v;m^3&FS$hMPw+6z!g)b-M5%piLHYYxvI!}4bf9-Hy7|@{awgt7ahx~UK9ZXSBV7$-t5JCZtdupPFHl6jm=~2dZ5wZe z3)u>%Hwt9C!)^a*$P1V?5>6w{lv26FYhJ@P1l9c4uPT?pbRx#SBV;x0Pkxa5<|_B9 zsNR2@>Wso5n&R?ze$ij~;hl@HLY@85dDaf^p~_5^B%%ryZvwuOWlDQ zPK<|*bjpb-b6V2zww!lB$FOcbY!hp#%yHQ_$XyADAZ`QVR$&5_SbJ`=?C)%ar9H=~ zzXD;TLU@b_+Ujd{d6e0xZz@!lVkeOx8hfcJa!{?X4sl@JU}Md)u@Ws*zTd{g zQhct$szsdXdj{B8UWGLPyx!1Q?>>=+BMpUzX_LmXaeEr&*`O0Ku0>eeW@fyPB3($* zTBTo4ur%-^bOkyjJyMgNGCzfMDA@^EpsNBi2dSNkiyY>~sa0PRl(-!QKH_ zGwZv?TUq~A*x7|sNrUH9-!-jpvw&)g= z4Hi8ajdpyA!uqWluwaYCnq^~6R9I}9wgLiJN*`<7=FEeuJy_qOh`iw-a+Xb`nqL6mrfw^+6#Iyx$No`R$=M#TlphkrzqG}3idi1 z_F)B!^NM$`L)k=(TRg1n=P3Al75o4j{sskqe8k8lV8l2bAGTh@L~5<{B}>6G9W+e0 z{u}ZJ>&*r*m$kmfPvD#g@}^tQw{!ik7etF%{vS_-nwBYqJy}4|7BkyMn5+<_3jqjP zOjQpyGYi|Wa^OT4xs@|1>=`F`qNqm|9x@+XE191Jcvl?FE8)XrhCHy02inXGo7p7I z>{4NNk}zwbkn@R*Adv&Ox?9gd)I6`UrkawmgV2 z&MvZ1pHisIK?{)p3-vhR8-G<{{c?znb+L^#!N&Ro5X|>t)W7&th4mJ(ATfD$wy{o9 zSoGYFYpi7tr+CrJTGNtxflkCYA7RUj9;rx=CTXqG_r_Wp*bH6iM&V3NdQ7T={_{|h z<`&F|@iW2}=_)lSHXKqv%DxP$*(*R*P*~@VrP;q*!HPoG@hzxZQ*@n~n+A7v5OXg6@nt%~mWZV=zASeisTw?fu?djM?!f+V!as zahk7C1u_bA0RD%7*Bj9NHYwee7^(o%3(qnK6k$)ANRs`7CAZ4l6;D|c4%jx6IvMx^ zsNssK3=G4)SP*mG%`oO^Af~=%nIrE=bNvm~=1Y*q)o@s&X~I1xHTbLcoUB4f?>YH5 zf?TxQ%{?bi6V9{HjPm2&xLG4{iFqh*uihXs+nYENdt3m40a41Pj_VOiA!QteyFRc( z1bqocV!1y%{VWtjT1^RV+i_tqvMPB$ZEti2Qufng4d8ohT7nh8rhaB98o=2!iNHm` zUrI0RSm$1PyI<3_p*E1mgHy843J=k2exXsK^~E@<)97Mgl+KbG~L05hlRH zQ90t_Ea?8;kpNCo?!P4>T)XIZ9ioBlxZ8#D!5aGEh6S|;wugjpzt$p@PcX0(Fc{YH z+lz`-(R3paPUe#ghW6wf+? zfP*ZsX)@Ath67+_e#ruMn=vQt-ShfmY-}Eiw{nxKES-g_H1+eOCgR?If0CC#vLK=M zukpFkp_2FEo1=j(6c_*EHE>HI`H7eK5a};xl4q7%Me;2{N4$Ghdkrw#0!UK;Apr~L zk1=x-&VKb8)1|1YS@9UFrsx5qaj-cEZ9GPtV1P=xonwbG)oa~}sxn!rQ@ zbp&C~_&`i-C{)2)dL&vd>QSW98osLsjTM@NQ)8Zgh6ba<&2JZ(TzHI71jc5^P`{OU z&X!fz6hSE#b=cgNv{S0FU(!+J%)lY;c|%a-m}tEd*d{9WYO-(~s5R#HKgI)>A8bxM z5oNAyr|ImYm8$XjQb_<;v%oO6<1cEi)b7Nsc1cXwctb%!fw$_1oT@$P*g~dm*|QMw z=p&iS!_^9qk3Oac?MEMZf(tJ{;v@%NfD}BkQk=l>JN!V^7Q<8qd&Wd%u)m2VAJ8zc z{Qz@Fm=Mw^YwcR1axhTpn|p2!<`kWtB*1F7susN|IpV;YyZlkwp|SBw)5SFBeGy1_ zjfT{Ki&-O((bzBsA(`K23HpwGJ1v1Clr7V(j=vTnqt10sc*LG3Q^A>|(BZ zm_>U)ORDE^`x7VC#k5IwG201K&&4dGi;1(4{<(`;^3Tweiy2|L0;h{P{W82%7%F4s z51)@KKrCOg(>u1xax=TJ@w%i{s+&1o+)TeVq#)iUoR6n-=!57jrLwCX-1JhgIllne zuI5-&>i^HW8qe0-#BkXZYQqg3WE*5WO;j~^FcLVrx+MFWc3i(mx#H{a1PUETQ*E1(FAVZvV-IPewDUUOM;EnW5iU7zvIZjmZHiaj7^j{@EC zAPJPo&$QYhE8t69!OuYJ(7%R*R=-DumL65y0zwhd7J54GfdV?1@8g3G<_GwogGu$F zgZUvoP<0JI_!objBh*m#QIH*iTp@zs402j!8qOhS1go*`1W>5RZl<}onI+f8xdRh` z9tp4r!S^G4uEg3GKFw!OP?+4hi>}@Qn$(X0u3*FYfUQP7J=j)t6HpU3XhyLn|A5gS z|C~`I@Cn!rH1pRq68IFq`*JMDK)*;}Gd`z80-xc7R-V?}6`g*3(6OXpVMldXbj9L* z?0!1Z&0b|^CqemJe@n8>mp+3zgA|Ni>vw4PZgxF`;k} z#fO6w(O8Eh39f||v{Pg*JvcJq{AS>Je3I1JyEd~DR3%G0%#s#^J3GTW{+pEHl|+>c ztDJ^CyDnjMkqfVzfrMY#qACIO?#_nSv6O)GuzOH1kgp;4rE1on%qYJeqkX8!n$e<( z4$a!NaYtz?(Vodf|Kwwhs<@=eCKcDvWTNzHl=R_xL_gb=q>|@sqJon|^mlAJMgcr$ zp%zH&O1KAk;55Ts{5>XU@NB00p06a3?mL>7 z65jI>exYwz{JzAdxr=%3I9`rF8XvEp`gix4>URE2o2p+)U6c$LOE2NhVB-orN9e_% zMMK?bL-i*$Jn6XzT^R=M=?1Swv5L=;7|7R7V$ysq<Hgtij8lE6_LC zAMd6pu0X#6btNH>93~yB5XV@8xrs}DAI@ovpm9C|MKiZFnTiYJjdSoL7{Pt-U*P8V zEy1df_5^F2?kq8SB0g~p0FFxn@W--jnC3{L%H=}W_)}=iC|a8-TC{m=-In9R@=*3A z4ap@BJx%#^(jg!EqGHH1A$iHj)n5i@O~n5 z<{-q&kFZKk&bXM#v%Db)Y*ehH4i&NhUaS)%`br)|!j6C|g5;o_|@*b+wK_enH)avO6C%g>ZgT zr9Ro@Hk3{_l>P0-ei^qCMJ9m=bN2I{=wysufzrHHee!U32nnCBqtUOo&5g4Q#8 z$XC6yne2`ucjrY!s}{{cNi+vT)YBX^53DQZR78`UUI)(!i`y2b*Radfzq^CwpHRdo zTGKzJ*>Jf`NcY_;UJtvR#S%EvB$lum0dMH^MITa!!&D(!HWQw-kLpH0EBKq&|5Fh~ zh8C*6!&%bxY9#WDsScccNZaG}SLc_c$8Q2r@eNZigd+2V_6X3<+v*JsgCSQ93N`h| z(}U~1{&*2I3bF?{pBm1`lXI+X>4^(K?l(N?2V48UCZ~?O;W*nh_#?SCN;G3P|M7{@cZBHkTFW}7j%EijE(q-F$yNq z&>Ep}sh@s|-FG2TG5en>HdH%erFeM-d0+KK1{4u2SB#9Pk0 zEW@6Q@S-6PCk*Q1>yM;697(6>B(O)l{Oag*7_9Fk0F3|;S~Pgw3lK`=sCmrEI1mvr zav(3(h9CQx%nm7yw}(ij@zzS<4y3-UQr_176)p_-oZDAhwL3q5gDK3n-;I4>sw~5P7H633I1HnSY2~0{a7>>fP@j_DI`FER{@+3krdxJgkut=)b{9& zP2^06(#_i)(fL|#L=`~lngx4elHz$zKE@OHfT%n03!Fp5`0)n{^R0x(A_?1^#A$fS z@P;6=T8nh>sc)ZrQs7M_;%()-UKf;p*C~`I6bhb=dr(3f-OIBV(UO+Kb^fjQhA^D`d+TxOi0=`Hhgk`Nqp!)=tf9vLyqnFdI0K)x3h zmF+Q8zAq$1`9|AHJ2?5^3sE7Aj=+oGk8*-JGYst=h7V6z-3+o#C8}yd<;yR*Tvf4F z1s}$O)oB~ks)IG%YH?JE(p?N8*ag~ZXxQr~nkjDRGSJmm`)-1#|AD5u-1u2O zm2#C7Xe?_@64~QG0%y>X{vOi(l^MwCMJ(*)#u`N6SDyUxoPm#;Ht|=sL3B_2hA}<@ zAgp;`hH3(okkFtPor6$3SH-3Yg~|z)?`=?}QWeWEef7AGnQ(oXtxAj$z(5gxOdDB_ zBGkaa>Vm2tGPEwzDzV`3j(d5vWWSq*d$`~lj|y(XjP{~Os~G((;$+`)@Qf-g+&5LO zPXw-1%17}VyI642i`j3B=mP)ltU|sYIU7kCu6RErg^Yc%c09BeGX6jSZnC(e!r0Cd z)Xmn#lnbg*J|eG!_}{evQ0>x6gyP@RMTI==2#Pb$@!3l37erOYtMaMO&gApR zkxIoTpQa|COyR?J*5q*mcpw8;f}+aZMF@fE`S_qtHMJ{L@@jWc$_y)>w#6)IDW)5c z1s;A|UVt@U_)iNTG2tWjK<;4Ro>wRtSlK_`x#-Zu^au$aKxO~`2&my(N zB1IXKxP?8Je$Cl*&9uaVq$W}zPdJ9#S2W}`7NpW6XM;q3EocyDm5klF8LpK$x(aDO z1?GRe&wBZy-JVcZ5C^4Ijv#%f#-zsy30G_v-h_?@N`bE8>QQo0I{Ny<*xbNp8_aabX_TDb$$(Wk>9e1K;I zHK`b0dNvgzuN6}%ysW;yQtkkHl2UrR=Z(R{lM)X#y8*?lX?iwa3Tc|}tr&B|xSZZ6 zHEpVID)+9rblmN}ocu92;1cuf9Qo%BPQpcW)7pF2$j?4GIo^uCIXNfg0r)a!$#~In`T{lhZ#ZXFyILr1eHxfA5;!Ieq%%^yv${J}2e$IXS0KKcwX%%?rFf zr{wfG70?y^bNUR(>DxOSY57PSrTKv=Y3AHKVd6N_9F4T`k=#jEb%Svh-+7?I8=0uD z4pr%EVMMy-ie_=V0AxMiUZX0Jluri>n>&OXu(BvB(Iv1lnL$Mj@&-R-C9J!1OrLqZQ2>mjk)McL=CMWW=N_S+7=v+6m-gky2#I=?s;Ry>@4AWo7`Z@ zyz>Z({TYI=Z)K)5EC&?YxE%M!>&fA8JPq)i_P_IN`%ifq|2xm8V+YD7UdvD=Y3uf( zQPA!3%vM}|J5VXVeIV_2KOolzwA+zf|F;rd@%@2v+5pejM*hz{&#upts~kzMP0gR~ zT#Cje0ql9>K{_65_Xd~ppu2N<1HC5PH~8HqbhV@xJ6eM1eqAX6Tt;|D880~i4cv{O zgR6M=uDR+m50M-rUp5uDgt>5?u9?v9w+cx(9SP`_fU!6~%3(hK)c9K!`st)-?Aj@q zOk$I-V&EYT?!^j=z#4ejXy9YA$G^nwAqh)M#VdtTzo#PyxaR|of>6$sf<{x$K}tb1 z6V9eSR!=Lo-PS$M0to$)W-c& zruIT*0;^S_*53D1KOyI%RC)u$L!_=j!=BGiA!*sWTaNPZ1_Qj&fJf!1n8L0mr0lnP ztCvHLS-0!wM&f6n=LX9d8>B&C37nXa`mNq7J9)6Y_|NDE9!T7Lh>LXQ3j3f)0*<*v z0_; zJ{G-LjC8u-mm29DfsiS9NFS@0BKp@EI@i5{LV>84u;=%IRt~077Hq<#!2WW6uthSR z(AbkHx$tbVq0es!dJZeK1^u!OePjdBfeJuF`0@8#1b;2V0j(>DHYB+IykM=mTK8I^ z!!G*e5~5vSDIvXmqvvg=+I~{{@cbP~mqjw&BAMkR`NbrYV|@7tQzIa*)>ex z>4&Mzlouq$myax!-OVha=b>E&CGOxPKLg~UC=<0D6~bW#uUYkj19=A=PNb@}k9kVb zCjLy~JDGKMGINueRpR?jG)r7Lh1(pd=06W#aMq6VPoc5_AG37UYc2;kmTib5eRE9f)8w1QaCM3f4yoF*w; zIZaTXTV)YET=9YUYa?dbi03wrNCS$eCn0{pu`{EFFj*a+u1BlJkZUC+fD-Dr^U9|DDNGudkg%pjQaU6c)eJZ6UDQkD}T|j|u zCLwZF5yGmYf`<4pWD#$rP?`9b=m|nZ36(L56W#vmtk9*UElj%$J}5-A*=cCpP}&u< zW&?!IjMWWF`2;kEx_9hdtb3Kx!puL_QRiCUY&tTv;87;!91icK9NHYz9X_XDU{!TY z_+hE2FX+BI$Ewpr5c)Sb=`Xp-q<3yxewv19{nBR6j2#I_ZCRqnQ_+>H6Ee6auF4yx^QT z^AZxCDlbi(yza1g;i&2X^YZL@4dmsd2J-T=bjWm@c(_G>ISlac%H<7oCYYDD4V6n` z5HeCd+cvQGos8a?pp}-mNFmeU?P`S4gjI#;|LM!?@IWC*-s&LvmXqW)CdpLiZlD_5 z&YhcLck{AE2^ zE&Z76Fz*`s?Ys7vc9F+qds%R(>u#u8jVA;XIJ-LU=aD?U*hQ3-md#&I z)v9)H9!RThX)!`*_n0{lQpF_Q(iSJ{c8_!K&^;m69D_WNd;y#YTrTs8mPxYfyD=Kb zB?J6R^a@EB!z-+Q(9Q@bS0I}SoL7MY{Q{R}#-@V11|3uQrkRKyfSmo|&QuBb%V{Fm z0LO)H^T+(RFx9GlU?bcEaDC>F`HQTSG+%2KiWbhOd?&U}V{^KNz^db%1B5Je-FeG&)uCd8}ZbMGB zA!DCsv_NiMiIbzo7K9O`H!Hu>wv{&oQQOKZ<4ju_hAb+RP}M8BqLF*N4AbEa)xh`+ zB-oPOXG^vf64X8X4qM$% z_jNStr(bWXdmA8Ag%Kt9wuOQ5EEa63arXf?MVEZwJV}9=pp+UeH`Y8SRn&K^lMSmp z^Q_#bbQ3G^7cxIO-InOHHsvHkL2jIa#KH<=d#s|aODrBOlT-pS8F%CL22elt< zVpodm_85WMPk^dtDJOrtNuH(jSK^^cPq7dey{?B!8SsQ2=1j$B@^U8wmYbl zwBQBS*8vbw=*mN)lG0a2BXskq3$DZ!fXEe6HL6VrPuinlLuG_=bS1rGf8$maWL~|2 zCyy2G#HQ*1)eNR@kyRT!&LWM8CS&z689Aer`QNxnd+i89iFSx8Mz~jdFsEHtflv=PvfVJBw9AnxBAEZV zNmtJozH@h&AR%#_~(}~BZM0fE*h(LprbplU?B#R+b(pYr@8nIuHM}G_}1>};r zKuO|WhE@ic5V&(nOjBR$l$d6P9aRjQCLp=|uaXwl8$=a_uUOnT&(Kc`IzYrQj?+JH zgc!lV*}x0QUoKw2?2Ic~<8kY7_WqBVcd75C%pvZ*XM!qlZ?KeQ5b|_EoI=N~(%hll zMu3c?81HF-0!E6*Ca@CTm#a$jr3@ z8jVT&Xo5szVThybkNu&X1TCs^U0>t++J3*0eS3-l^v^$&X#tRx|~a z+82eG)$0w0dE2S8 z8_fCnKo+LjnCEC9Q->mfG=wl48%XCDDXrv-iiZ9v!)kVfk}+{&u?{ zj&&A9+pEnYzo{+sqwthzgwUyBIUj~0WHiu1OBz2JH{$xssT|dV-7wkg!B!)L-o{QO zfsoR$RQL0{=^pHE-pQsW;jA9)GmyX=3{VsBhoTVnVB2VZ?7=c@^BZRbgjU_uBJ_P|Zt-e#PHfU@3Q^R!=SmCsL;$Of zViItfP5C_y+`}d{(@uTeCRMjt^<(3h4{-1uWdq+;pVSaL^?I9B8A#DJ#aVA`zBxAV zsW$L<0Hc@Vif>E;-hG0l%4Rn3KmfC~k3X9PyvYXMdWEH&mH5L7qPhlG%t*1Dw{6JhG$bA<*oXd2W@5I@`b8UTwhi_vz>LHw8*H8p zHp&KD46s8IeImy52vF6}+-%#;ctO#2^T1`Ms$A?Ir`U}(Zy-%o*z?`77W6}eRu1`Rbdtm*^}K-wuCjqAXkb*jY5-GcnK#go zPuq}#ZO8?Hq{OUNa}h?6>IvLrt7p0(YW4U=nCe+Cd1tjEeySG4mp+UNo0=ecn}q~h zJ(t^(Jqz;n)HBmIR;!)fOF%3N^RUO}8_hQVeS{ip^Dpb9req2@?Dcn^^u*=XTxsm*S1@b9n=)0w!YdrB6%QgOXEIVZNU8A&`mw*j2 zvuivvQyVhQie|KsvBG4mxLd`v^gTF?u>x!-dLPk*KWw z4f2NC)M^1S^(OH+Qdl*}8*Ecke>7E&<1z!QHp#Wk57K=pjk=c=y($vp$gil_y-X&M z^fVBkCg*cYbs1_O#lzoV(h1junXnqU62&wJ#CcJRJkpem^Lt$B?$;6HB zdrki7I+{9e7pmEnXbwX@Np^N z1Cqe$2XM^IrkQMJr=4my*~Q(%|au3HZ>FjI3}pHGuD$MyLvvXv8W_4ODtb}a7u&x+<|-G2Lo z>+s-Ai<`$qa$CCMpMe;RL?G7?is{~po5%GixOH-miF%WKG`H2Qz6k}uYcn0AR|n3@ z$>YXc-{aPaH-kEovygmuz2vErC+K7!xHfYo3QU#?ee7f{+!)_DSK>S?5qQ3FAg+;b zo-WAU%ycbpj?Y^$ebTs`ag!(Cs^x_wttMldFI*-Wvn=UxT(#>oypH+YV<(jjqp2Iw z^-XqOmJiRwRA->Sssa3<89WitD0_(v<$BS3au@S@3};+0kV_n_IN}4}!l6zv?vs3* zDpIj{I%zY15uJ0d$3yS`R-*q?Ozw1?Ow)4 zLkW<39)8mHMXa!wbyBBz!AC8wiv9X`WDUt5d08G7M#BB3I;Zk~7!I4qi(>H;Y-zE! z@DGKkJP091UIyM5IC)Q0yj$rhOdQ!>R>sLplbAHQ&AcHgE-w?Xnv4(T_y8giVJ|hu zAdad!Yhb@)oSZVj3HwAz9PLes1T+_2j{POheb;nMgd#<>hDmMq8O=%UZ>2XDjU5j& ztLN^4lOs}yFVHUEeb=3cbC6^I+9Wry9j!MS+f3hXa*W0%TmXlQvcPlz{-UGhx<+;2 zIY&PCZT95oq_0!L$e<+l?YX9tJ`Fgj{d9IL6Q0yqM9R#$ni7r17QxZeYM0`iguh${ zbnfDR0m%F@pS;wMbl*)n;GX}q73;#ueL+m~oe&Qp8p5A-wLSXy`3T9d61gu#j^Cqz zIy!*To%zZJP=Y7Y_g-a_@nX%%>hUMe(R22nJ0PxcLaZkQ=j>NFAZ9oro(F_AXP>kw zaoG9JeJhx+&u1kGmao7xZM~`a?VP*Czo^`lt3tdNSA{m{5VtHc?A)@*-wfw{lacahnE6s7?*9dW}OOl}g1=E}LZfvdRx6P?cB(3QV^0c{i z$TD0YnV?PyFL&TYX3mOtiQrGnI4iC z-J@A?wpm#&gKRL2=}R~9#mK_T&}D1BJ%cWKC9;7$dG>yt;gafhn3ktaZz?dbnTo@% zR(^s;!SyJEkZ~>Wnl@tX(oKxAvo_c%!sln2rF$YrtqM=M%-2hl(m&1P+R?|L$5KXBLx?KH(KsE_ z#}@SI1k}bl4ID9E1QFE6YW4Y3eS9b-pl{YtiF5Ua=LNWYr5grvhVTrg$bTqrxVWXv$j_W2ViaL|gbk^diF?<XFh{KUJUfkFi)W7)F&(MZ!V ztVhV61XCIoJG!W)b_{Xh`hVDa59lbXt#5o1c<6CZ2w=mYsDOYdA}wf8qJsjWf*r++ zq9Rfx6HqCEWFX@(fF+6@6@_cV2G{}ty%Xf3Mr`QSE0(J>4k9+hf_%T<-sdS(0^aw( z-nG8J;D z-fnQo$u`d41GRJzLiTEaaB+S`N(-NVLfL)e{AS4EbJG-@b?G>j&m1ZxPE(wBk8p9m z(2Mi7lWd#^WWia;ZjgfWPc58Yt>`b|e7B49NWYiQ#4nvmz`>We71e^zgFQIkC$*aX zr;mek7%Y=mv{{g4{B~Ymo0#W*NxAZh1br4m7(d10d_mA1nLSBr41lic)baL zT$;u=cW8P6Wix1c6@??#C{zZTQjBC`PW?1JmnSWBVZ=HDCGiZkUV!YqSoO_ye;(F( z2XAlTb>+D6m3N1P^M8E0L5p-wkbdQawChW-0pP^sa||bHP(;QC6I+uO!-7$(-MGdzx#| zvUX21imfa?4TNC)aMvKU^I~!_FiFUA^lIyLPo|#UOeZpvnfn~>$u!KHX@6vrxsT72 zqr$s1_g!D)puf_;&vLOj!wcgL=HT4t6;F;bFO0{LBm3OvY^bF>WTVf16IxO@EAd1Z zoR#q79i@qvejXfrc%-TafAJ5WecaC?_p_7vjD=e83v+Y+R)(76F9Q6j3^mgLe=0*w z@fTvnYGY+w_Jeoteu%>vQ$K$aFCR>wP)0SAjjs*ET&}zVXBS6BSNE}{WvNrdn%cCi zT2LuDpsboT<^)G7w8o`Fz`+{nOMpW$8nESVAV&uF2uEN?^ScQ-0{cb~1AT7? zSQxPJ$A?{eft{0Bjy*^HZkD(g-v(_=Y<}FI3=s%@G9maYN@xel1#FX8s3pNBi?BSy zFSLSGCl?IC6B1X>XNm6@!~^J3QdV48(7)TSMt#x-wYn>0ydt2)ZRu&C0n$7eRR1f`BYi%a}Xfw%Ijx^JY zXE@D7Zbhx(eor$!e1hFfi`ufA7f@l0oW$T%%6_J{Q-j1g$YD$5Y4~>A>0|*Z?esYS zX0+2fx1DfG<$q19PVBX}c50`oZad9slhIBvZ)7-q#vC;&W4TC`Q6Huo12RwBf-#OB zzOx%Gt5DcJOUaD^1Xp^BiPmLMq;0~m8oO`wRmdOgn(UnYJk8Uvr`mFi%F;6%d)FutZ|zjE=3G;tY5fHn zCsw0?!B2bE91S&0+(%Gq(7BV$R&-ZW?mOM(`)A&{%KYPOzTd#|PV0|$TR%*Wn;rr5 zjO+a;o@lXqYTc-}aX8R}gAspSC(hP?bk~VZT;b!Ehp4yjsOJGE7+`d?6s3))xg=fc zCF#W;Hc5}Ra^&9AMP+tn+~TSP%2hT7Z z*C4AND0W%Z(~J3nV{KO51m{TufkGRS`Wm7>yJ=5C1~Zl`tL9M6=MPm-VjTrJ!kzKO z05@Ici*3cY*vNSYuq{0kUZ3DtFDH3~8T8rURojxzKw$;^BV#gT%t>BbRxO1}M%cNd z`S&(+w6$**WXP59AeSpa$!^+nT6dc(SE3dhrqOp>5kdvPGjS1|bAQ6bUJ_dtPeI67T{@IokR<^Bs3T44ntp~+yG(*1zDeQ_xO0_NbCii|l(!=Q zVIl|0ceU`(t3^0vtl1QX%N}d)rlQDL(=b{Gt2v2V1SCi0Il<#>1ZEfnrV@cPdk17# zW#h#8C}|h4oA$KK0yxq|Xoh_ha`-6$K>TKkL8PSt0h1N*uc^_~U9#g>b0kMy;ESm- zH}M~=le*apuPMPj`T`4u3kS2?BW4W})v5V{Dfvd)`5GpwQuCFj4z%HoW{Wx4)h&xTfY^-&6;6LU1`~HX z4vdtpWl9qrNew~;CXLG54)6lZ9}7WMQV4rW$eSOfvzSz+}Ido#YC~Gr}*^8XY^?t+7A- zQ`1C3EJp|7P?bQAMy1AxEW$t(bgiK_{>7#ocItgZ5;qKRE1T}EZ1vH0WlP~dYPafB zSf$l(3{I?xi^U(b(i)2oTL>afmb}C)e1mc``W@jmege?z=?$7B2B(zj{X zn0;D9%DPzRW@r|uUT5TDYeNyPkVI*-p^|8KO^p+0C^%+x2dg~8VQ!PL8Q%uMH8&Xst~<(Mpk~8VL3MqpC%4_l-&Sw#Ql}ov1~4Ww zYB*sUn_-kVCR*Z4{1XVlGr$QD#p;)wO4xQc-OZqo2}V zkAVCYSfvCIwv*i3`C7cjT(~HN`LA$)5hDS%RN@Q-1qvrD*suIr>B1H2wUZ! zfe50TxDCa$%MIhpJvP5?Ya?(UQha#d&rNq*1UzgVh*U`k%lecev({0X#Nm4 z^BEbL8zi1f$=uD&d}v1IhPFQ>t%tevHekDD!#y72JyP#R{ zxO7XJ*=(bTYu{J>b0*u%G3gr${WV9hJ+PD|Ja>armnw1+w^2{hP^M?SXteTVCG;#g zQVTRo4spf&iQNw0at;G7==l%MY6hneLaUf;VWBO!)zdU_ptgZlR2yGN2<@=m z?;V;UVoNxe&9C0jZ5S*h9ExEF`*NsJ4@ zRp!_et~x{l(U$lb5)L)Nk9W&bZd52jB-I;Rl`SDv-A*dtXFGhF*aG*nlljC!4t{}F z{{E$d9L$F%y+=5~HkXqB#X$}Nh~{_N;xN@mCg7GWk_f+OlA#AVq$>6uf8r%>RQdu5 ziLX1@?mIXHh=qC}8-8}M9C%N*t+7XYkAQCgJzPQa$LFtDMtL(C?Lp-9Y#HfR3FET?dq@$h7n#b8RXzPoQ~)-H9QBjJk26 z-KPLc93LP>xbuiV(UpcVErrat>0ZLtif^pquik5lyLgZa^Zg1Elf%J^kA4+a#6PF; zaJkUasrVi4(nqZyOum;=^EG$!@d-5mklLe@nz#)m0)-2Z!au-YKdE3;gw}uvFh=l} zcG>Ms9erR5Mh~JTl@$X~6K>5TA*6zLYLY5kgha}{cWO$+V&_gx2H^wApTlOpZi<GW8m!h13C@ZI+9Xvca0k=dk|Kf<= zCyHuK!Q0%VN~n7%F<#Ws>(ACc@Z4VaY4sjKzTWGdecw^Ym3#W&^R)gU#=(3aAM5PH+m^qMFntcyF+Wm{if|Wv6OdA?_?oy++rGNf7w1_RXm=T!kS@pJG z?ZqzvUoyyl+*{9^`6=Z4p`gmr6*M&w=?`Bj!?&|5bT1mg!|lQZ^bqbMGlbVEPKwDngcaU(~T*s#V)WVY9Q;#z(1+5l$e@qx@MU zx$a4LRk9!uo)HfRzl82S5t2Fap{0$5+~jD)Ek>M9co*QyJ1xrPw1~$^qxsP)yiNd+-O*e^l6b{eUmx#fNjua|8oUfUA)QA6e}#25^}>_zg~Yn)J)c z;ka?Q_)E8)fPFO3707Lo+;7Dvi!K!J!fU!)opaa4yT;a*JxzRsjzF#RnZny5kOVkE zys=(cyeUvyyh}@1<9lM(g4>S!6mP;iu#8MJmtlf+j-&`yn>wS^w`DWFZDrH`H8Nr- z*&TVn>m9M;ZN9`~8h4O^h-oJX+6LlzS}sJ;AO`c-x=0Uv?C>0?fK|F}twT2;^>O{*<$SU{3jrUA~fISq0elZTUAjed|gJkP(e8r~iURc20KUfGD$b z&54DIxAiOj)<0*kSWb}@aEO};;CN)@jzGAj3|&2ZoV|^l#t`)amI<#Mj-RyQD9r(4 zjXA(pim&v<)Hq0pcsywT`=iIIY~9~h@5^NXR!#W6;I#De?9&7T>GfqCYWMcLz3^Hd z09`cWRQrN?j#1X~PdqjsRokhitGLv`;8SF&4P8M5@Gp6_sWMWETI0G4LW@*ph$dba6oePZt}8??Rj13pYgE!G!6F8s2MeW-8G}eEVVs`oYnQ@gyf>(sG4|+ zR7sE90?)0%y){E!%$K*X49!dir|nS4wW8}@0vmj5AR@-b{`N@@OoZSgZA!#U0|v3S zcnyNhlKbgLUd%e)e_->RvT8v;I16OHe@u3U6gCUCu<5JGNj5g$(7VM_!n&`Xg7k#q z!^1IaJaRybtSkA8@T&cw0Ws^;>D1*}%pz)OD;mQz^uFYA`{GdnC}vinm>(wGPw2hA z##XFV)~Toy8f#RoLCiXiNVtT#mgX9F#QB{!SMiFj5Q<2dq?VNZ#4(`O~Vap_HJswj#e;EuiUefNY?Ei|t;Ct^p zVgGA4g8lk7dm!yGusM0&?uqXFSEH4@{gXKGKfq~DEVM*_da%hr3V;8~&H9oL7IS4Y z+hR%#25~Q+d&88HE3dn3aA3{w%Z6MtrKEdFAl%NrmS1nyw=0U~_ufQeWqJA_;2j8u zp5_#wyqZ70U;z3ffU$B)%%XW+x3PdbOCHfw#x9bYId*yIBRoz#9d1Lh(1QS&gI?kx z0w$?D@PT#M0$*aME++|$h$5gUwR}(1k_mWpswL!;?^VkCQ|oorhe^70WF=O(QJg>D zP0Y%76_v8{eln?zn!g_oge0-c9Shw{M3P4WD8Gz%0>Sr}T@OZzX7B?GeH&0@jU{UTrE}0?sB%QE6Ef1Jy? z<)&=+s_$Isq^(NKqvVcmDHG6pyfd;!^G72eCs)zo4IB(*UbPw++6{qOl|idYNYPD? z%l6h5N-Or08f#lrd)k6SNoVB*#4QIoF+J;#AtpmI7^{=$xAB)E$q+@y--2#6)KJ5Z z`e?((HT-ePF`Zl`*()3FkM&qW&-Kt%CG6H(wOi&j+=gC{jAiD7AgO?5O`?o7OsHTN zHiwKIz#-czlQ&8<9HL}PzAYGKvzg*RdTqL$m5E0`6W103Ulv#3pTf!{R&xE$qO{!Pn(LEo4VIDC%aAy(?AhG=Vy$S-nJPjXY= zH>sFn2qcv4;-WHh$oLa&T6SAp|b8P_->dqR5H% z(*KH5CQkt8`DFu_;UXjCt#=&O-X!0u(HuBxT51_i5#Wx|BOR8+_m>^LlsXs>A*n#C zN<3SY^{}P*OCko+4yZz7>z9aQN{e+QOvZ3aO^Uwiz4&}bINBN@tj9287#lu;<6Qx- z6ExwSn2Z`$5ednUawc7>)#SlR<2__Gk^+&(h=B$MWuN8`u#7a(t*9S=O^JRDOpk@` zM<&~3C+53MPwbCxTcXwekOZ^JG`s*Ld@)6h51%7IH5Comh_StwSz*dV0}XA;>osoW zm@~1)@)}$s_k%ILm!cL3>DYag4r6uKIt2jm?tE?^p>oRcf2EAyl&O?5ri54$6)J75 zdT^FnH_g;q3-|a#FSBWk^-X7@ShzQ?7wu&$KzmJAkKt0ool%t3T_Hsq=CYpC+0;?% z8C`;uMXdPkKD38Dy2vkog$9R;uBkgcsrKl?9koA!lg@ToyTl+VVcl$&Ige}v@R4HP z58v>}P8jc(SnfvH+*eB!gE;@qdMQc>ihsfYh(`Xu4-lR`H(_r)8>={YdB&@})|-2} zqFBp~=I#89M7rbldv}x06m&j>UPP>4uAtQA1aYfz9G}#-WHY>Rgl`N0pl^!r0Y4%h zlP~LG0h}S~%irWqu=SFp*2WLGlqSad<~pwcrkm>)pLm8n<#F+amZWf&5XIbwZ(@Y&5@ zf+sfU$$Rf^#~*cADM5vgbb1sZ1eqmEmI66$%t+}0_<`w>WP+0#tARKl z%7${MN1CcgKr`WyfKrKdFoVE}-x$WgoxFV4P5z2vOc(jF@Gc~m@4C)k(FDUaX|`!dbp+sDI%YiRt98I2WQ@zUx>&-drU;XQCEymcTFP zp+gw<$=H(!aO`OiDLhujo_469%@*&9*U;>+HM8qFhn(fpE|=j%pP=mKB`81iFvMry6^{0mM!K33F_pe4E% zLMat76e}ByOmZ{F#s!Rb?2r@{%(X#yxVcG&Az666Q{006*Q4ie%^#CWm++W^df-e06f)MY6o z*^Y_kcl@`b6%jFzp=l@)3k}9!w5j~y+J#l}r88WDHxWVx^ORNdufOztQv?_i4h6L% zz=qeE0vO&_R!P=XHQ|kc#Tc{`-DC;$kOh1tm&C^qLGc%73|h9nV^Tc5W!JI>)^?w@ z@br{{iDASs(D5TbA^FBB@@87>u!1z`_(Nkbp_f^&pp8}<(H31>RQ#|^r+o39V6|xr zyk1K(f+;e*?qiP(H~htx;j^KK4hgETEg1!WBf!XsU-X;J2%{rcrn) z*sTYXR;4CQ#Y>lubeVyi+NEj7<6a!T`q5@VPhD!!Dx*S$ZO3FN`~;fN z7AQ{2Y2qA<)z{b?|EiU=HtbyIi>0w;Z%nLmelE?q$tc*XVKSzUi`KMFK>b-G^)KO! zk?UY`FxZ6wr2&AIJloc%Le?3*>Ii#`vTEvS4%RPKV8B+Yq$-e25QpYDY7%zK9L7;; zW1#F-X=hstQ_^V#KsQ#SaFiVLG$D|)$(!bmHBcocm_~}Dl~hcGrjdP+6W_weXbEF(pM!{?K{Q5)bh;}F%m1YFHQbc9 zg5qD0OmX5*5%&#y>51~wxu2lMyF_G4@AeU7SO(6f6RFzVr1WKl)--vN zog?1V!Og$wb{YAYB>$?-`+#@A)WfoZ(E$|1_imf7(I~M3aaW6sid8sh9HlnfU@1~2 zLnkaagh-&*3SR!c#|mEY9mUI9?2Q|aID0UJgIvZ!L@I^pj!X z^)I7_3!ji$Mc!m;oIKSu6guQ&Q(L*P0qtlqTCdwrLh>Xbxi-EE!bNkQ;gdS=2Lb`71$&< zcAE29T&5X|E6wjB^SjvmE-}B$&98WP!EH-8hTj?!zrp<0ncpqucdPl0^LH)(#Bbd} zjS6)F5@?2(#4EKn{`N2iH5TKH8QYl&%LT?q_-!b}cTeJ0-y(p(Kt$?~&l6i@@8FR_ z-XoXh=X&e6lqmJ>z_c2JE8iOQ?`B%P6}QI#jXVCX(r|{LVa+qa{u&%^knF0#Q6_k( z2FID;ej1!+f_sJvfww-TkauYC5=k|)d*Y&=M;9s@SDMVPYUWc7sOL5K`a25h5e>d? zf_G@}o#mQ3PlK4Zd%J?`ZHaJ!TMpO@jf0^GXd~D5)8&YhRtiOZkfF zL*=Z2eggSPahNN>+%!|!c5u{!e^9nv?x)Yuk5Ci$v!(k<%{9de+)qlhiS6Nj{=cTg zSmk=;B3Yl;QNOK5yhYK z>TTd?UdaqBj=tWbE#BH?SUht*PQ%(4CjVrl=VE2IG^OscHWgbU*0H*-N4)=^=(i z)?+HZhUCHhuK-+-4g}34(h5?V#H<(3ryJ5oq|7P3b2H7Mls?Ur?wC?qg|$hns0kcu zrUHU5!T!{R@S+Q$p@GmT1%gT`pJkzh#)^1N_pwAJd5#NZx(j8^S4st6y%Z|ekP0K~ z3Wblfv=|FGU!MnrlE%mSDd1(hk~$(d9$ZopJgqxLkm348@bLQbxFWcxTRmWy#fYGw z&6&;z@v=BYkhS8>4u6aYX7!f+5t&oOund+SVps{iNfX1E_%O%}rHalEU?p=wsi;r| zL9T)@UPg`lD68h*v!=pPC9?p=!mD*@Dis#SHnM>nsgfUCxkO$bMQfuHsvDMPDqg^h z7A?l0UP&0udmESdn3>kEpbQJxGcY{4r%rp|$BQYy)}0bGJt1a-W)RVOm5gP=Ci6_q ze3=PO)Zl{bWw)%9vLTcC6l6}E!W)+idfe#2;OeSJ9rP{|^!%Zdx#bYGcDR*%p*1PS0;Fx20zbUc7>LG*JM6WGv|mcs*N|( z;O^{Yr)b$7rtBxDK*&Dv=m13-LiXLmj*$KQA4dm%lTzG_?jn`NbmVM!*j3_~dWlJ; z#Kw!2OXoSMx0_T}6*oLw?4-VLQn?ctZ;G;slQPje-9_&_LC+uJ5gb&#!U5DodKiOZ zjgp-saYXSVlPV}aq^ajRsZX0!L9s$ptDV$?WNaQ=D=3cD)T1SikSk0oR_}cA08$e( zxD#QN*zot#haCP^;i(VK$qfPLIe^|ZfM860@jcIqylin&PnJP`OtydHpJ{48i6as< zCRGS{Ra4(}QcsaFzaiieO+8QISazLB6$0iVHStQ53<8!u=n(Mk7a|}7QS>ec$PWgH zAb*Nhk#tf|m3f3gz9Xx+FtdvGZWWWY3iwS~ZKNpioQ$1TZe2(fpFRU1tuui%aDj9c zApQ_f8=?3BDNaDkynyZiAjCc3q{dCENXj%#{me4C97h9&v%3;s7c40%=7c zflMF~7szNAh|AAwy+Gbv0U!-BfgC7x%2L_E3WS2&(!peid>L}W0D@E(Pn(~@v1?hy z60}|#$8Nvh;n)jX9gdyvR8b=7ri!BoIZb03#6?BWU{0i#=h|+faGQZY3O2dkO1*ld<^YPBl;^LPw@Te-z3_P zH+tM$0E-fNb@w_5y(zhZ)Q#sH);ulg2BAVCG?_qB$EDG{^-g8FsP?yyFqcq8cid2@ z!D{NBejIQ*6HcwTHX?zaFJK63K5N|14en>1`?p^T-Yp_!4 zt&P8-!M9CtjRp@gi-IdOIK~8*Xz&RWyhVdQo8TM`o+Pr3OEWY$&jhc~V4Vq$)Sw#Y z+W2W2{F|t1ZM?SzA2-2H8vMxw57giQ-9?Qz)8K+N%Glp~XIVHI2nBOztn}Kt02Uon z*5%k$@J?Cbr$ue$UW4sjBaOZG3Nglp!c=OuOYsf{JO?HULw{9j%S$leW zRJo+!wg+YojM?Hqt&I=;03dNQ<$BC$O*&3X+YU{b9%HsUJ{DSof{jph>}RQZSrR`H z>uC)=!=H%t7=B!L&n>6X-Ls@^#F{z4INqtOkA4rH9XyZp+?~p+3;jNy%HBNCzv6S4Nw)$$eWH~(xGM=*V2~Aul73i%5Nb3AXV9dAv;mIMo;tyb!qbP&<;>l%=%PQZOsNha3|hBN7i1 z>T#{%EkxEiqS6`MIQkKr8;x|Cg40(G%0U2tS26rDp;Ort8%>(Y&Js zCOcRa#tH8LAR?WY1ZIYFf9pO?3%1CiQe1!#) zQ?MMwF9<+b_|6v+*(}ijZtc+a!zQjJY#*}@9$WlMX+YO^5lXuLFO)V_y5-=!S5X4? zxWZ$Ie2GI%3^m4!NtOZ07_bVfQh4Kv$Wc0z+g{q|Q9tA198*3Aj$#pO*!N;@&f<>|r}7#|R@G>cMp-pH1C60|<_392 zTQ~-`rsnF1TmWbZq?Ih5cK^c=Ad6=?fjXSx_~Y|e+)6H(mlng;>pR5Gt;Y|pSKtaN z&yRPiwVv;zj_-i~2oqP8J&D9h>)nBEo2#5Hyb@h$#F{6mwnzL*B&&(M7y!gKS#uAl zGbVD;t!g4q#A1Y+$OB|q!fGV5>I~gzj-$0|DZat%KPCc3{{(5I?!j^R{EY3@J$M;D zKgTB|X9N)2{+-u$AL1akzIO^@OWy)wx`G@Z(ay$cCh7t>Bh8iaVZt6!>t6D&vTEkZ z_0PQxEuN8serq=(L382h#_JG>g{n~`C$Ujl!a7axEb1gD2iYl=RZG`2wKrs{^Sk6$ z22*w}kzvfBTa=gIV7jh6is1_jyaWIiB)3z>c;Sh)g`aBb1`eiJSZ^{Wl3y!7)(iaU zyI!o+$Fe|^QR!?{sFXBr%-=vh*w`+E~{{DbX zS0xI74iPOlBhNttAt>T?Y;dX$8JfE6t@xJg&AV>A<6!&M>B8D6Oo&+H@#Bsj?mo$; zpr}_01&7-d1Q#j=2Rjt}f@!yn5T5?P{LvR*P$wOZiLR%&@rSNQUfXh@C+YJh%{yDj zs8DhMAW(K)d4^Xva{dXUD86W#Xsoo!EX~aX6YeJ-slN0Ft2x@6IrBdB@A^F}IMf~yn6XkcFDi?x zZihH(6Ogb+QW;YH_tn?kb6n&sP%;Bj$ z*9R(gjq3xo)#YFsG^_OGgg6zMy5fxjV>V>vA8u&c;9LTPqwt0AHOGq;;MUbPp7BOF zLny5{W=DM>c6dNsO%Sbf@jN8lwCYDO&p-E4XgAuxR8%Qr=>(2vf`9CWz^N*ZA<)k( z=a0PZi_B`X{h|9kiq+j8TBt$V?n0mNiYKXx~`KQ2h6E}l= zeOnoL;0vqTd$2}%f#)%*CIM(-b|5SdyW z)vb*m0V5`+i5TKa=E^8PcuJ0rh1n$5Akt3;w*EP1L2my-Juky-?W-QUkDc{3JAo)G zH~s5p1KA141F{%)!Gf8w^s#Sb?aRB|Wg8$09#n=UxR;zdax0l=Ms1$%beLl>Yvbo* z`hodM!&08umLVTOSn;ojp7ple9g$)Do?2|z9fb_pb%(8ISt?>Zjvr5T7#7~w-RZp- zFwyS4t9#qM_q22@dy>F=0zV9&LA-#7X?RMJ_AbqLc zhjK=YOSQP(_O~pn4I#$Lbl+dm3#`RKqCSYhAip#G=lKbOna7zqcZVw{;~|ysh3A)l z^?lxq=pMg|0S}xSc!l;aBlT@f#WSj)BmM>31pdDY6(cd8lh7LX;sfljn8(78rWelr zD}{r@oZ2vHw`-$QKxJq+2#STy#$T#6L!4v2xsh|s-M!j2ueH{6)#jC9Ui`@mr70iz zQl#KnAce_+j1V8&m{pW7yTcZz?K-Bfm3+1FwMUZK*2RDX7l|emTh<=Udqy(2ef2Zw z;O$g<*h}NLmewx5r%HysE6Y??t|8Q@HOW+Rkyf(vixi>d-3W)wl>$oD``sw%)?2CB zZa}ugnYvy|K$J5rpjA9~Vb%^$*sDA8)HXmNIibK4a?0Uoj6f9@zJ&13q=E6jbd zhfmP+u$7?`(HMaIYfosY2IjC&MxGM|GYkqbo=1)kkVCG%w-%*UASZkxGEjih ztx$uEQYLX|HyX9rcj_fJcv|F@_0s4}&%(oIw_}z55*f`}%d}X0BG3Vq&C`%T6Sx@a5|F#e0?3uSzI#Ps9wv7ffsjpx4uCi@4aClMnN(0}RdfddL;~so zI98A2c>>%Ynx`!|@-t~Go^vW}>JPoGoPVWOTfO3Nxvq{@2u@95Bs#{+YOW>O_R`8( z8({%z%iaigX%(s#y|bY2ifZUqxt}S`IIgnR^%w?$s2ST=t>qk9xI)9vP~>Ynz$;>j z5|lJ|H9dzowB2P}9jaBLPSS|I6SMBP`iOZ)!7DN2YBJlxCFX@&#EeXsu1FrP2(9@P z2svvY{!mm!Zni=D4|vA{?Zujl#?U-UAwrRNrDSsjDvt55Ei0LJ;Y45%6HRk_r36QB zsNqDZLHj36Aj;SCP(9D#7O|%CYW`py=M~AVk#fR56wq}3_)2=g_Vdg1(DfRD`+Ine zfGMQs?Q7!=$VSY>6cqZeCi{k}N_QZ@Qt9L-5BsK#pTHAzAUN9E8<^pWHT}RGonarZ z*rSU1f@k4;nox^3LlD6mFx7nE&fo_B@K}yH82{NxnOv@02%TGumO{_pkAQv28~v+S z^0U4Q28J;q>hZpNVCc>DE^7Xt%71u`!asJQ^oIEvLB;$v) z;Rc$&_a`ET(%afv1&_!*$%7--5l8Zx3oJ}pA9ftZ6UuOb{HhyVAR|^2Bw<|T4^7k# zV8_QP(p+%?qGQtQVyaLm%$^JI|L!(UC%t87F0Q z?Ng#OB8Ebf%88ho`;n4rHJ_#?X6+#kJCuy3G3&j8>O+Mc^6AIS1|tllIW<4 zLIxYV;)Wn+V4hf{r1uoi`!IocxfJ)SQ^1UsC@P9hq64_r^tRm8|DNu1D`_M4ipfI} zuuiVCOyv_uefUF%RHvsK39*e?S9gIUbJqFF(U{(*&R6W~xX0EO@01oEqF|j>cknnY z_!=%z!Bw0Z0XLx`0Vfv-2XDKsjb8zJDvN(CoAIM=)-26l`1PCZ!q-b->)kCbIc7lr zVD_R5oT9x^6n8@ZD0RzvPTZn?aObNy4xz4RA+lru(^HSTc71U-UT`Vi>0ce(3GNmH zoz#tsPmY6a3K##B?11E>kj%;8i)4p$^Vv%#3+}f5X^(Fz?sK+we?YQE{*-c)vVE!b z`9Q(0O?vDe> z3kV4_bMT#5+?Bm-8@p^058GNDO_{KDkm51K;PJx_gU6^>fAqKiZDb()AMC)_V0GTR z^{!{}F8GBVpvc|3?}JgRhQnbUE{gmNbPCsX-cT7Diacf2{JUT2$N>Ciey7>W?F60*^yUV-tD_#0(9&ajtDn;7SQbyXCYQu)ap{va+Z3 zNVuO!mw(RRu(SukZ>{LYAIWD>P?U>)>4%E717CbzrSz|gdq%hMb4Z5pk55vCybMtA zY7fK}{S_8cF22i%WAbXdh_t+V`V_f8+C#80E6}OtpGP-4M)1Zf>DPRPZW)| z!1|We*NvuBh^+L=)1oTc3!hb8W0FlZ^vD>WPs)YrFRV}SFm#dwl=g0XwuFl#{<)agjvNXTeJo(YT>Qny0jYJe`arp&+iJ14R%0$ z!2w{YR*1TeKwaj^5DJ*Y`{z%ESps91U8l5Oj3T&u`agBUwj3dHHCd(jClM?Y zgZocFayaxZvz1G8`{X9v^9{V_fS0%yLs}&qbo-KRBT~1l(eFUP0)t~jz~EX%#ck%6 zw0v+SBB$to!wWW8^dvh9w>q1sLOZH~6V=U*YUo5wkA=QR`RTAclu^SMeY;wORwm7O zb_LDBsjI|s>WW9O$O~n%PW0Y*L3pQ<)$8fZ26FYO97Aop%GG6NG1Ol%SUNSu#9ch7 zI1F;)@-49)%rk|(GGou|w}1|`0e>*F7q@z>;WLuvI2?-0r~H82A%i%ZkJ!O8{Hrjq zu|sG2@t%_t8jP$POmGMnUY(QxU~oMeOd)V1dF9)h3><#`c|);`7VTBN+QXc7E5Mxc z*9z>Mw(7YI`Wp_bVf^e!t<4i%D#4o*lmP$ypP{&k*3ekHWnGbQ8ru~KI1s7e>|G>0 ztX}-rSzU4!_(3*Dii#*IQDJ!sM^sEUukvtWzo+&lCa-luR#%T>`^iS>zL;_*RrxQ- zv&Vp)DLAgG*1P;kjx+V_OAbqT`;$iow~|k4>f@NLLO`OTPLU8( z%p`y1uYZYLu7JRDeS5XAHU40py&w`uJNo`Pq|WV}xZx9EZ-U+lQsnK9;9gp5ec8$^ ziiF-rGDZUH_`@62s`y31`D6Q#^1W2X%SeSExG2h-4`w)*Ooc0{-d3Fk1&T?ha5{0y zk3v^d8>WzGeKO(qhd4NfDZk*KH05Q_LrM$xh?Dz*=gEbPVOFadSiEY8p*&nG03P{$ z$y2e5&#JtOG(Wb|MH+ZL9hxQiT_ndE=H?_@!G{86b7oib=TCr}`Hbd|4sQ&v{J{Ek zyBbu6)+14)?^^fGp*eNsTN`&q_x~!ZjpX0Gk=RQnZtC8fyAp5^!DI~F*bm1)!1xgN zgGTbNb2B&n5Erz~m)zjN2qZ+Rhz6dHk(1U@Yrk7n7RD|ioAQry%hp@b1XR>v3(uau zBd1fW`OhhgvzrrH>)Y3L7NJ!^DY>I>&m|^lUbX!F9}|^ky3-QeXx9l%_$IW(Bv#=x zXyFn5&`E9#?+x6WG~DzAFMXkG`I6Vf-#|!j1@cN;&W62AqDQ8SFz<>|kv%}JzN5hJ zTbz56PQDa74GPG$4h14ztEfzRHQYCZBX5sv@r46|L$k$05V81dP27+!=-r;pD(GF{ zAeT6p`?yij+tjs!9?-zBN`1sSm@u`Ml~;@?Leue#u$7yVz_Ea~Hpcj$KEqmFJ9*af z%(mvBPTTsv8-UCL40^JtQn;nF9Lj0`Qvx_cZ!acG^Q!tz ze>Ag6UG?2K6%7I#3pYYF%;pCUE?S+$9XI}#=JJ3e>XXKV7_qjqgVIF$>l9vPI99aob3Cg%H*F7g_C!qe7!Px zsOD8p#vk4rCr=Dwtc+K>tOZgg!-%wDdb35z#*3VHYf`R7-$-#wxfXq2W1|ht?6DDL z5o06n)M9L5pJn4&8-54m;=Yt|63&w_1xGA2!xme>A@`q=Oy{gk1^{T#76Oe_>5q4a zG?oqR^r+}%cnK>jrdl4sryZ=Y+-sJ>on2EPhj*BXmli;$a|jIAZ|hR*S?FD)Cgc(g z4`_dA0@cK5sdnA8=LI)ci}SB+x$4CDTAI) zqzC)Q=yWnT=wD^m!y9hdc6(`!b03n{@XxtW2G}y-N$pNQ1L~Ob6WfTjsYbZP{Rinz z87N`%3_6?lnujO> zL9?U`M&CpkjZPViz9s1A=Ml?QA!ZUEW*J_FUquu%*u&8Pj%@r=*WuOhhZt6VwANF^ z3`nz}_COQqA=!m5X9-UaS%*OYqHjTTq>40|F0R&^&{#DLaywA`eQM)(!IL*)-G?H5 zh5q1V*)Z7l_pD;jVKSJt7MyV9Er}&~TXsK94qJUu2Z#8~j3GXMD6lhY zBKhqV<4@N(rVkiizFh6vQ9hA`^+;5^Ce5VnX%CgJ6m-qnf6E6l+uQ9SE}f+Jm!%l1 zLn)OR#%eLp!$gj^`lV0gip!8j<{tyJT$c<{p(fdR_n(R2-4q#h$vbJzKGA3_KgKVn zkjfb?R#(50`YU=sR%^BX~%4bygfnomQ%+ZS% zVF+9(2)Q~tW_?bjsF8ab+OF|GF8$u3*E%S#{=H3`Y_-!E`$L z!`8@WD9qL^%T&Zq-OVRNtdkil??{-I0g-0VzZ^hN;8Gl2<)ZNcT3|mEz)Zak+0eW6 z70o?JU}iM!Rm9?Fhz_6}ZK~b$2i{@&%oQi?hF}{^`V&Y8TFajX14cr==;_0!Akb(5 zu7oelNO0bWK%4fm6pRiwZn`I}L7@nSwoT)4`V0aGhywu85QN3QzQtw!=r(PIBQokT zNHohxNI|0PQQ?>(vGeYFkvQE&;)NAyNX)nvs6B+(tXv3ZB%~nF!izw#egtCII$Y?T zj(~suSXfISaj2wJvcX?^91+xgkpb@3*3@$mYb%{lAC8#>ovn8I_uJEp{sM#VhTzIniw22(R)a5Kg#3=G(0f1 z8O%uFRT5UBC9wq{2x2V3U+Q5mm_+H$Cm=$u`{xHl7hSs#2*$4~flJYfE#VIVg;dD! zA_S<^!w+(Y@i2=?%6U5_@g*dNTj1R{Ru2C&0&Y-xvdJv?5@0sCvrx3QAvj8&vK)#_ z-l=?^kQ|fZ{4n8u(nS8bk3-CK(S?Z`JB2MaS!^4I3%l$VYp48AWsP0WR1c5#hpg?D zM}sl84FB7|Vuztc_^7ni(dfA6lOD|>!|-BMO|(Uu6mHE&3b4MN$i!g_*GG9<^r56;4LJd)y&AtxR%;s)&&$kaeYl&vX2^KKgCAHQ_U40#ehzHe zYn%09Z>l+sA3PbPO1v&Dcxt%3WVwn>QVGk23`6a9mZS7 zS@bFEXY%=1<##{?FUm$s(_y_49!3Voe@7XRiM0v1o&DJmo`X2WY5j~3gtz0T@GxA( zZGC~S6lm{A4hI^ZnIg0&VNo1tPa}&!TPAs}CHN`ym%i*lJ%2jl;F5-21R+QGOS;Oc z`Pc8Ct9-P&J}-TR;}M+Iy?ce_b?+`9dvrym(Vdhe>(z$pY`qvN1tTAS4#NOmLId{# zhPNP$PEnn&gDnix6XP`XB{!9xc>^?dDPcqx$+hrWUY3c^|r_dGkeXJdSr$j2WKPCwpCocJK2@Lf+; zq&&*VKs5hgzmds61E;ior1d+%fc)KFQyFTDMpDvqgV)4Yp{a&M3Tz`|V~qR5rPg(U zG4JqrLuPfYv9)bIzMoX-&TWR|Y?Yx>&5=HABH>sl3<@hmcO^gmicaXn_DRZcg^SY@ zd=7rIPu%^DEs zii``4fpeDVc?z9+u*7}qa!no|Q)!s%U%dt8S0p!m5*l74_<0kj^cX&MmeOLOMC=P}Tan$|Ie{)H`ZQ4m*@6gSGL{ zB1#){7eP^6zHukSiuoYbW!3zP0o5uFVNJQAEC=0+4YHP?gmoyaJrqV74ex5wWdF9C zji#W{2Zuk1Z@EPp?)yK7s`-xN17$zMPoaP6X@(yjyR}ypkV^7f=+Oc`C%GDX#2EXS z&I}LOWa-I{{1r{Z6U_3MGP{EGo}qLDU_`7#b^=K}dxvAD)(O81ZI0<#XYD&$1`9yl z^t)+xGG=M(F2ka#=~g*kOc}IK1O0*7uW`_D@xV(`{3#0{rQQ(){V6d&dotBt;5H00 z`)P0%lZ5?&#-V~nZG8RqKQT*=SXch6X!EX+v$Lbv9w>Tl(f$e8IJaiwCN99n!cR;1 z^ayg^w}%xN*h zTg>lP^Bd=Htt>V3D|t{vzBxwCzYWHeXAjCH3Kw8={n|hC6S!*P13IX?17S>kB3zf| zy?HqB&a@PuiLcRK2CnQ+$a1~$8)~9#qyx$puHuJ(6<)u=w3viPghX{{Bdv)Xfx&EUq)`-f=p=%p ze@As{;|D>YVd2A~9WKX`jmrfzI4yO~YHwHNnSrhO(KfT2RnPlNnd#?fAzw+yh+u42 z7tMR^4)VZVKWq`s)MHR!R-7)n$o8N=)3GDb{7Tp$jsjd{ZPe)eM=ls4(I)CIvfy8U zN6@pot!{w8xSl~!>8Ht|%=Hy9)_PYy#O!!rUMXt@I+@jT6Nd#DwnMgOqEpJX~xAJX00^u3)aPZ4Oc;uGwhRWit0rbomh#L>f zV6zv1BW4ePr3Yt{<8jCX=SFY_Mixzt6J_zPvKd=_!2^)6D^gU{xA@CoBme5+oyl_< zUxGW3aQ*`#a4hjghbhNFhHf#AYZn473_P?%2bROwgJ)D&kBv>=;+@x*3pyUjE8kWG z3IHcq7p|);-UJi53%KG%vl&}-L2mx-Y?#`3F+^5v#_z(IVvJpjI`t{uG}Sy{@TC(y zypw-b@utpz_ifpXZ}%%T8D2FR0^#BvvEpsM1kP%K!wN{Af-c^MLzmnv((!HtFZ1Tq zMS395j?^{$8=+XBZ#&M(AYrzTpOOnbhk&)XJcR5QEDc(kIw6M8>_vSZ5e7NT7z;bYk`8{sc#oMNH9Va7J zWNJ%dKZ8rcG9R{B02705QtSkPy7S1;X2jJNOD~yt!!#F8Go>hy+18JZi*m-KMidn)+&QQ~$5f*#g+?N**PD z3+kb;3n&zI@yPM)ZNn)Qa7-1nSHhJ%V`LerVr;-3088s$Ug7CVYvZ@h;V@_uv%w`F zKkAZy!%1pE8o+iX4zf7j!aW%>NTN$Vzjfe%54hwrY;H#FFTke%D=iad;5(2BKJ?bw zC0NYr8)9X8F%xw@Io?^3Y@BFBBde~F4CrTRhO(7$jef3_?mB~v}-#lkG6|^XpQlV|>qYEuM6CR^mJW2Yo$9Z6fST_mDBoMI3(D2XZL-Mb zOI~8i!_(T~i|&<%<<=)8Z)Jk)oa#MLtKrguWkFACy&3gL+UqkYX@mwFW+)fjWX{R> z>D-AYrGZG<79xu!G`O0kL}A7v8T5yzk8!>NF&MP-+=YAK1aX{fi_}c;;xSP05QRnA z7g*Lcry}(J`7{TKj_gJxLO3$YySoH5iGn}7}Ab!366HB8H03umSTc7 zs;}C{uV-WBLVE9%$McpzEmQ0?j{Nz;)$q1NJu8>UPt{`lq^$$sMtDS$*T71$Me|pQ z85X;J7q#77;#^)$dEr#TSDI4q~6$EHT zrq2wu%AmPY=Ha-f{x$x0}0sKhVLVbF%C0yd_|)M+r@5N@eBVfbK^S}yhGluLE!vWbP>VeOwk0@?ObZQH+It*5a&K*^P-2^nj8 z8n9d>J|{WEJ=r5763t&BeKesqhg_}AUVFoqhJXD|8fTb zS22!bq{yJUCNNy|)WQ&xKR&rxP$HbCx)}mCd}JIQB37D=bC>#A>SO2ZU6mibw$1a{ zy6vTVV@4q`#Nt2Ek=1>{D`K53SV~*;kwpKTB4m+E^)KzCoND-VmInxGZtzM1_x*Q~ z?yUR%;Kqkl-X)xpfsoH8s0VA6>a!`vy^s`OR!6_H9zt5i+E5UBkodF-IjjJn8}G4L z`L2RemMh3!ZUDkKcEI{5c^>&{shh!)qF{%Iny zKv4S`+}vc%xE(4Jwr27tVojAF`^D^%d_-O0i3(e%AyjJ(`gkagEt_ks-ha18#rRM7bv!J`xxrGzN8IOe!7h{LkO&I@Rc|V{;7!FF0pq0 zI)-Qrj?+{Lvy495TwdLY3@I55*6|Clo|5v`GWoIT@mGA0=@_6d@k+E8CjCok zO1!~5QR{>d1vx{OIu}DGZUY+e=g3RG7Z2{@GUfocJ?m0;aW9Q8*k>kx1;#`^l@Eco zt{!OqP)lSaUugj8)C5Xmw~~7{pO!O3J{_S(lVOk1%tLIg_!hA7v?&JeZ^6-2Ez@?$p$@0+n2 zc%s7Ae{LDxJc&aL#0Q2NFds9d3n}0yz*4E;alqA z5JdSvbYxAcCv4LsYQY&Rscv>PE9IDE)-}NBRFrV}<=*(#2YEoR{4Ne!~<6Jjx}x8Il*l|zWiTwr0^%fRC!B@~6)_{7Pm2Uc%EM#@M{37%9g+-*3M zcDP&iYE}+JHHQgP6zql|N1?c36GT|AF7&FvBMeamTB`~$>`?(8`YNwxNngo^SXZi?R#r|Av#V1e>#{`f?AZY;}6{HG^_c#O7C zwU!B6@hC0vSMRAMPU3xSYgG2a53z6y7LHoKOw9^^7PBNk8ZYkydG`RgYbs|jgtg@k z{p79=|=Kpc5^PMLm$Ieihn*|xo5p0qxJ74m@%}U z01qZ)zShhcwrrBjFPgHiYcQU@?D1OmGE??mWKIK20@bQs@x>s<7n2QAzR5S_zg zLZ+I(X*D(3tNCZ4pjc+A>7|)JF=da^-~vg_Aa9|Too>qh`cEOxX3aMmoSVJuxmtFb zDO;_X-!Nw^p3>mL>}A`g);k-S6J2mCl+7C0ZL;Pz-kGB}`5owx%Uh)_Rz2C0W zmNQS&p6dX5!T^HV@x`xDBpz{6|1_x-h4^Wj`iqk~0+%9_070>nrd}>_L~)Ht6%?Ck z>OY;-PNTFe2ByCFw*DYsqen9ge{)>|`lb@_n*(T?0VD)G3_z%Qy2KHQFHEWs5Yp6t zJE>P(>LK7NO`RrjEc=y76#@op>Tgc!m6v%4I0mVSrkMl;x-gTd_O$ULAOit-fD~mF zcNido{8#-1`GrpE*Cthv-+93VP8IoD1xFpf-NaZ{k&h)iHj-3PP9T?O z0$Jt)sk>GsMJ@q~TAz)!0iEdu)K76eRpMC9e3L4;9-^rsC-oVVDw6VNU!ilEllqoP z6-IB>)YqNV27glmL{ipks>ZS2{w5W(7hilSQWJAHpE4%Q$kEX*dEbw7nqfaFN+4Yf z5aH2fT1A1AdWuOE(gw1M!!oNF1ZP&$(hIZ-Hp2l9kdBgWn&FQ=0P>N{$z<{RC4*;) z3uLeh#Km)j7szS?smcVBD|L#@HFSyn)!}C^Lyi!8J%9kuV;npunp7cn1gkhcvx*r< zJH$SCjqsDi7CAshNxC7{Paxl-ZPOZMybI(K7f5FZ$Ph1(jqrd;EYAee-v!dv1=7(0 za=jr(hz$|Qm`ot&Nhaag=BpiY&T@d1dVv%XNc&76Ymahx5_N$TJ3txeeu_>#NaM$KM}iaFgc1#z+Ypp?>rH^ zVhl4uZ9PxKb~qyaiP#s>2H4ej8o-fLmkINp5QuDO9jLzcH)hgQEQ`P{`qt2psIfc% zGZVDWhW3iablfq7;4KEL>oj=330|tfPfIoPSsHxNq!wxL9iT~yj?>^K$!rEatX%88 zyQkFqsL9+=GglZ;KjVTVpwY|(ztUh^6Z}Aftqsl_G-#RNiy90XBp=h@8WX%ngSk@` z$@vUMtRAzSiA1HeRZIrVz9eT1tt7EZM#J_(i?dcOJ8IFqRRZ2+`dOC?(xfv!^ro?-=l?d*;L*ITEPaFiNA?5KQO3=$l zL2#J_GlrTSwc-v_H1h(@JkgY$rNR5NmyI7MNdG6OWzS(|xN+c+SVQ}e*j%Zb4^*KE9L64^=Qd_(Z`Z9u^z@D8T30CoTe)TK3SDXk1T*@+kkRQ4y_+Z4AXN1v8BJ_hi*=Vl~w~#1JwVBiF>(= z;qsF<@DSTeg0O5%?R*n6a9E3Bqv4e4P&WXMk%Flq5^Cojp?noZaD-A`qpBe}>13J+ z9LziTtv0}eS0DGSoBlX3YK91`$LmT+ml?7WLKtRLGyemA%Ij)a2^oz9Ul7M{t)7Mu z53@&s6u8~`MAFNv`QwA@jpWuyx{8IZNt0<8 ztrHX(4~T0vw`a%h;Lev{7U5b7_9d?tN+aVMfM($3G**H8#RZb%nDVJ8wbfE$7t!k- zBrt2`@NWuLsK4bs8HUfj15#*7I3Q z1@OKwfu!kaXHj%hUk!YD6iBboNj>v4hv{C!#h*vAoLXi_s zX>5HFwT_vU4|7p#l$m;*rZxs@Ro#R?tEK_9wVgygAHz2q=?O?XB`O>`4UOk0aT301 z`SX~?w)pU$$bFxgO++-W?%=a{Jg}0Fprwk3i5S~ofL{MRux~7+v7QlH&l&iEw(UMl zusKAks$ygoV-a!90~g7bQ$wT0b#P8O4)|!PDEza5lT51JAyMH491_9x6xof6-2fHS zU~T+K2)7{}IIgeBX#8z`oW@_Osi=>ff`_DIhobp0WUFieb+V4>Dx4lN6`USvHJ$ETHpiUZafy02sw{9bk>X$k^N2ysmyn~yp zV65^>ksVw~7I|S@o*l-ifZ;%BYC||dA%L30l^QsL+TBL5Eux!iG`vL_O{7YWM{T4@ z%{;#hx*EYe7#h-Yc`G;=6+EWVo(lXGzaK1&BU@5>x0x9r{Bzlq zi8oOIur5Wq+oky{Rx6x(6sFxjJPN~GD6V<|=NO?nZ=DALj#w>SXgW$S-_^)J@Am^R z+^%tsS76#RF4u=MtI{B6;~P47(w?mV*Uo^e8Q~ZY*KVE`e_d*60^ZRmO7X8&Q$HHE zboS~ur0)D5VKTcNtckEK=wlf5rbhY8Jyx(M#L;U7H_Ae?tIQ{!o1x58E_9W78H}WB z1z&kNLz%zo=_vF4nwnLaYmiNq`N*S1nNPbO%6!)0(uQ|m<%o&>3{}JmX(WXN=jzZl zB^m+Ut3zn4hN!yH6aGQP#$zTsayBTRXnfEd;Z@qYIpBNPdf*jczgqeoTgy7&7SKrk zTqN|Z^Oqm6ztef7v+Xw7B5>KZ=j;r&X@A1Lq&7YYCemeF=%oy{tvKFc+f|yHm2F{U zQ?_kCQrPCl05#FB1M##TU#ZlcdyZ3?N7#%^h>*=jPO<6o)ORbish9-{p>$T!{L7F7 z6`4Zy3!7WP4e{S8I*}A^>AAAE=|qa znlB@pwq`*`Y0ZHcRwvHTVNTT*juNcf+CZ+2v1V%=bpXfqBi3XMi_o_ap-1E;8VS9q z>Aa3F`ry(A425{JcP?a*>;`vb2-jajbN6B&9+NFXmo;t9%3#g8V290`d9I-YYwi_e zmcp9Yu?}lyYHC*2EI~G9jdg^u=BNo^&9UvJQy>Xrk5LlBp@0&^NX(p#mL(}cGUQlY z#SES6FdY*sz)o}avuv`~|A)3O0gs|+{@w(dJ8U=>5JZB?EpjLd0uqj3kQ?Oi1|i&+ zkPWC1z+@rovKS8(&li0W@kT|0C>RcR5k(PDP*Ed??z*UWM@9I4Royc^vpb34`~CCe z+3D%7uCA`Gs_w4oBNb;vXM8UeYytB`6+ZUiwtocna1Ke7vsg~A~_^^cTA!t7s)tNlb@FFc1^xlMxKo( z??%T*mBV}|zRM~ZZfDJa{t2w{b1x>ltj(~2nl*c0O)zpN+nB6bFH;>^^D)4rCUnn%_psLk6gP1Y=ssgA7q55OdA zDxS-%X@&uA^y2z~5AgMM} zv|WO1EM(JQQ=4a+o3b%hraH<-9>An*M9yK^sG0@YsO@33x$(M0wdp70OttAE-|cF1 zp^W_hq&Bk$+FA2Op9I!4;toi%X7JUf?144o+2Gk&v%Hzfn!YmCku{S5CRww)0kh`& zabV5wb?j=hcrB|9jijgt(sM)=fdN^f+6<7HT+x>8imbH@uVD97WBP+Q4dkF*=d` zyJVcn{!Q}T&i3`AL?_R^1T+s#cE6!%T6Z^AJ zGtK^+MRV6W!3@gpTKs@#{R~JxQrqrNqMCe+)G;{9K|pcdj_1`uTKIi+^_5&#J#JK_-G~4wSXv) zDb!@@gBH7AZdxEP zQ#)3^lB64+T5P-)SL+Nt%naEymt_xab`um%Az3(uj3oDxEs~VVGM|+cY(5t!h7*NM z$}tY66Dj1={aC(QNO9-4rtwBVyrDC#Gc#q^G|S9S1{_FY-!IST**T8$ z*g+co5Uba9K#R=ob^4R8DLk%Zs$f;egnhEM9`yP1=L+A9&() zV9AWcyyLBTFIRczsJv70jMPpfwcWoa_19JAm=dHCot0Htr(xlv*cE56GLh8Rt$8n} zyze3p)p0xJt(vI)=?#?jKM83iDjh{$X~sJ^m)S6}%nrbp z@Ga)2!SN)!mlV^U&0Y}g!e}=V@PDC|k4Utv=1MDfQ=gChG?o+#kEY1zf6_`Ufh}8< zW;||+pj%6N_(bh6Ac9Nd;3EACC8jxrj*IgkKeYTTgP9YV6(K#&) zaNqgEmlP*%{c8{wM({{pyL-sK(U_Ud;ZQ)3zgNYnZya|#dPZ~A4H%Nmd!`;OdCTvB zjz*U;+AJfS?^}ez$dH?HFvAbQl96B75@#Mk+#UUaIx1f!%Zd`w&}Sa+=R6(~Ga5iiS)a ze;^~NEDWb9jrY0Z3SdeB`*0K;xsoIIT+R!d?0_qAvhsW6Yy}jq>h4NA%vMk{;Y$M- z98JOsLag~3w@n_`y>o(peFkl7jINU8*(-_487(jmWoV8P zU^RoG1sb%_Etyur7UeU8=s<5NLHIE1g4vD~q{8ybOFqPK7+;KVv6b|G);j2Cx{ONN z#fvUU6>XGJ$q){DRLEHb_*B4y=mJrhGYS_TIN+L2>!%i^Bn|*{!Bh3Bca|@AE|%w4 zYYQ+`)mMoRNRoztDy0{M4g=%;6^U6ae>6Z__+PdRNh;35zzt#!(&Px9z;hlAiLr=r z#fE{J(K3y#T2~J9LD0>S)Lkc;M&{sSe9Eg|G|9y7_j3yYRu5oY^%RB|mGHpT4F5&a zUoc4s-h|-cM--3sN6i{_O-b63nEFEi7UYR8+dl)2X0n7=k(i6X6Z8o%I%%eEX zMzjW1eo=T8tppVTJZ`LmKt2LD)Cq}&c)CJjK8V5iIENni3yD00k~HhDMoG0$1hkFV zWV8UUvBbf01vTW#pNf`txC|I{J7}IObK4~6dEneUlyDaCL9!S#(;IJHhH&EWeY&5? zit-4?y+Db4J_X6Vy#XbKM3-L%RZk9!OYo3YNJl8H3WK<~Gp@qVKjRV>QO zp=>etWjI|FOP*F{3_;63iQj;@5JKb^4z`BtBb3dz_6y1lG6PPI!Od5;CjSt;@9LeI>Y%xaR$f zmFAlFS-?$e-hafB5Rh|=dOa*(JFno>{9m|x7Hc@4JO3D7!LBI~PqiYRg3w)ap}@ve zy(0c0!d1l3l6wRU(WHl55w8%nS5Q_&GYv$7SHu&f0}{0&o>Eh@VTZ->I+d|~JgLBQ z1c7cHb8ZQVg9w3{D*cB~?CrV>+s>jp7LSGoL z7?@V}pFus``Qv~!B+`g(jhu#@l-tUrt4-u(qu!}Fp2|0Tt?EO5yl|wDrA9nKL)Id` ztQ^eibsx(luf$l26s+PmPEihs90pZ)D$@d`EE(}4cm1^17-s}@4vCZZGK1X^8B}8G z19$+qGk_bisXqVfQ~&WR$#_tJU%w7jLGM(XF4ENq0{ zy@zaTPpI5Kkbiy3Ka)QJ`^iIME>Ple7jZu%z9!KRi~Api9gze-)8F14x4O7F?nQL; zc#2h~Y1>P@*zK#Km3$MR%N9P`_M+OuNjdH^5G9?tatzP~7Kj?C83b4Gqgb1vm#fEb zdpZ4x-1ai6El(U2QMB!af<`56qn!7UC2rdb!D=(4a$(!cg^$KSgx=9VR>i7gyMQwXIFEO>BOsx>Tj27Ai#GZaA$}gTcC1{Jv zEV37V@dia=e+C|E*Fu4qL;MJcRTO7#SD?)a%XJJc z+MLjU2*EwBKpMRd(g$><4?Av7xCzm6b3zSCr_waFIpO@oVg_g;Dki43lc}^h;l96_ zi1ipUMr%s-UW+gcpDaU6LfI4OC>(l6hPya*5xq^wE5*%S45;D6Kz}$5j9(bb%-iQXn?LlD$0JleLWS4Fa0zEUg2SLgj zSxQN8dq{kVZV!8Ww~N^$KvYY&hdr6bqsr|;AlmIgZ;}QI8LcI~DKMk7V@p+E*>l6~ zK`9ou$HUFp?IA0|h97`-x5tC6+3i6sgUJOK{Eu#r_*$5iB)7+g7H7qCwz!>O3F0j7 z&BC;}^%GNjsZ>b*no>4);odNIP33o|1o~3#!oqG30@9Le=ds=GL6FMrA=$Ko3n5OD5~P2+#W<4C9%dq z^_SdFZVx8d;`Si@KwZe~K|v)xWw<@A2jk^jm0;0H5IvQxr` zOG+ZQ#}vd!x5rqs!@~Vn95&q^eRYy)WWItigkANEmX{lDk0t=)s@G$9;l@L`J*YQS zZjabq36kWgU`o>N#MIJcnF>j|;Ww6~1wA222k0weP&|7?x;-Wb=PS zVz@=j26zwM5bn25EmDv@|t44Z#ekO`N@-c{)snr9$j#T}7uU?Ntg6 zbld9$w6jqH&?*BoduvD>T0+CEl)_lG!ZIC78BOCIO7JJGg4|jCN%FG5Te`D?@i-aV z{?cF}iY}GIxYfC*U?I|$@2{RD&zragUz*UW?I?>e;qbOYj?J7yotyy?R!4Sx`#nu$ zzYLlP>PQ6NcQX-SenJTLJ0p085j?ID?4{#%0^$V=f=XUoDlEcKCJgHdSHv0Djf`uU z#qo(b5Ydg?63vjtX=`gqN2>6DSTg?HL>TGb@)!k<+^1|!a$g6UJfP8@ zb1%J><2ipu;z7Rt3X;3$^Fg15yq*DdGdwzr{@nd?$A7+#Hv638Fgx7oU(ybpe#1gV zA>0iYa7NJxkIvg>zaVLL=hCI?;f_-OF1*9Ibp12P5Bym`<`>^x%oZww2V1DG5FiV6 z2v6|x+C$vW497z=SVAo>+j*L+|` z)h*47)4M4JH)KeFg9ZRh`%U%H4R_h@-3Adc(k%!w{d})Qrn-GgA(qFM9BDv3I2T3b zT;TRy%YCOT9Eww3<~7KyiI2kkx*|U@LL7oE$)syWNt()CGvW66kk!ayp`1v%*xNgA zGa-{VRbJ7~v6a91+K`VF*dv8%CGIMrt4LfiFC?qIbIupcocrJpcO=574c%T!_{wRD zeI9NK_no-!9qt6ao5g;^<=AtubA*=#Ko167%9xh^PCsfqejbj;w_=T%uFw_)HJSn)h+r#xc@C#-_@ zE8&EooeNU#K?bYaEGvIMzRzH4V=y0Q*Pe)$I4;)Tf7|s1Jdu*ow zxbv5REeg!e+K=n-QgX6WnB1|s%BHnY6oPXV&MgXII!O;y;r)(7s@v~`oUn|2V5^ZH z8w{Dbh|jG{utv8XHMsX5tm+1)d|-lpk)*#)mX^*%j!izPsOUZMET!WAc za}bJ^U)TAjGjM7n#i$#3=tLAX?g^daDEl#t=%j6|1!}_Lz@7W6w*?he41UqG1(7JO zpa-2^WQYc@kvfEi#b~R9=GQ!0{0nN#qs3=1dX3Sbt0~J@0xM>ih2M_@1cBo#6Gsu_ zz!)(LIFNGKOnHn`Fs`Jt`jK+POvy9ybdV`W&6LRoMfGLMF*9W_r;K#_{>HEm*uFMX zIvLoG$dqr)lt!G=2V-8DLNjbx^CYCu={f6=0De_#uK7i+5=?1eo(arMkGN_{MWfV2 zMH_V3Xq;^5hL-Mbt-W;Q)Jn<)Gs|u>Z(WJ;rJvN5ztMD^htDZQ@$cyqeb=C5B2_S{ z2Cn4tRPE>5P_;qOlmAiGrly{qs*S_A)UIlO71&iRTF+6qYkp<$?^5oV#5us^sA|t@ zgo&zl1f$loQMK!xsaaHFP_qV77#7nOI;q;n7qF^*K#v4fyA_QFA=Ro@h%SRw4X4dZ zRomdK=M~JtTS*nrsy2XeK-K<)WwEJRM^1sNA+uf88W?#(GDWM}DOdxh=y{o@T2-U*1+D)u;HVbX>|y`DQ?^GK@K>*j&FQW>5|DNntA z_`+xq50n7o>;)JKhebDf;4dWlA%tlO48+e;$!ii1>O4w8^0ee)(1!(IG=k?vZgUWl{+*y_B!^9J?`WN5 zPW*n(Q4_x_ni}5T4gh1+Eg4=k#Y1^}>&YNZ{&rnR>K2Z)m~Kq|_Cx&eJrfB1;zSxx zabkGz6z3=cG{yN6PcZd{_j&R+5)aAcaR|k8c~+aV;BtK+aOQF=pwV1zL~rGA`GeiY z<^Qf-|jV@pP{nU@_|(a0k!&2r=;~hFPCct~u-LG{-vYi>E=(`WOM4hh}}N zW&kzK`W{384ffHk#;orMLI8sJzoSCNtdCZK)in-+EhL3XSOrF)nEBD--Nc#SO^7Ao z@XNBQg~c7J1ax7Pg(T@!F9g;(%g*Gf+38RJd&kS{aGmUyfKA!|bkwV77Ly@61 zXi_nTO9ac()ajXMsuc`nT%3Uk5dmRBL=WC)q|k&T1Bn!jQ@8Vkh|}%)F-yA=RF0TR z`;y4{)_>pmNSu#=wNB*AmJZn+fi|=A5&mne#SJKSq>C_> z)7&>z;pTSVNh3_~mB8&YgX7?s{PvB;J%Ayda$oT5ioUV%>}rcG!8W^kB$eu}XIIrL zqex>2ogn7d9yD0;QDYKwFq`R1g{Xi`f9L0B&W6W2~Mg!S>s zQdpZ;{TtV460abYcTIs*Mo*#_G#F>snC@;meV&Lp(2VQP&KGhZPt_SPV^eaAlN6Oa z%UaSQlHEh;;DRaNB`8=O7C8V)i{d!OCir=1nvggS(p}LpHrkwuQm5T!=juXOvZb%$ za^TXc5NlzQ{#gfyvX$!04ptS~$ftl%-+d zo9LwzoGN7U%2JJ45S@_tWFoNy2L+JlubH#ct2Pc2_=;i@wA}^29Kky404=6Y%f$8A3Ao92TZU$WJYuSpm0TiaDTLGbS3e^#Y!22-fIPr%PG( z`^JO!u}%Sg($WQzY|%=B23AlixhsMx^*Cx5NGwRsV`y4_m4p&8f~8fy95;W1#^gCN zo(sg3L+K_m>;W2N=)&EZd)bZfk)XWS2@=&k?AdGoo_(_3Vo^v}cJ~tlUkk#s}y?$uLLBlvtog zo6z0*F6?7T=%EwRbK6)FnwtrE5!!KV#~-`ih=3{m>lTv(V{$D<(sNiROju}|aO8N$ zOvsCjNkrsiPX-NpP#G#&$j!8(NP?WCjgP2W5#=MdwtgfGfx9cSumQw0- zy*Fv!CQ!!4kFwyZO87|4NPIuo&;KMwb7EtM3S0b z2Yy@l_!$r@GsPwcCl=HubHc-mE!|NAQpVM%PNK`VFGi->kzJG z2#Goi5E#OUOYxYjCtXVr4W2F^nkJBUPPIq>;v%Ha(oiUD-4(pbdJwJhXOOA z4Yir|Polc=KtqZxzaVsy>x_cHcFzRlB^!?lU5_ADr~)c14WbsZSl37m7inr0-Kd_{ z%x0&vYq3KE=YiC>wQ^T!8R;%Ri9<##aEC<_`W0Bf(|miit)?^dXO@MR-Fo^+10sv#myhi4jnm*`}OdPB& zW#Vl#gp`S$TB4|gr-7ircRiYE(PsK}akdZH^M*~OX104MTR^1AB3=P0MiJj7%OY+u zVY4LcFAYJC`E`&i@UzYiy_eoIEN~l{bCb@A&w`Y5r*lrPnUnTKfxbnSoE13d_s%)H znmLPj3l*~fYfJNa+T)76^f$FL4jpIRE8{ar_5h`u_KD8EKToPp9W-ahrw)36xFhGp z`(N+CVh*K*u@->X3J5i0uz$iBrUBtsC9R@Q7(dC+umR*URFcJXn+6r-gW+4fmkEc^x+O@!}gY;-#mVz2A5USHk4$ z&@Q7%M+3D*gW92%U4b;Pf(*X=;-YS=z-Kn>(7OxBaf`tDN>u?~L(^c|%K00iwMaXW zV$x@(xtHAqas!@pU_$$_9S^4DGNF3%_ zwjv8h9=R6Z4nTt|dY#-W)em^Ahk_5U!RR~cXxMuc!l!%F))3q2-V5vN)4k^)Y@Y6Y z#SPL-97gdD1~LXYwA-qx$nd}0DpJUqbsgLN=uV^E$JFF14z58B#78QbrwDhIadbcf z?_Fyn-|4)Kpm~aLJsH^_k@6H_SwR%t=XzP|H&H#mxDGa7j%|%Iv_IcVt=|jrbcXgf z{6U$<%SQTUq}%)o@7AHZ=+=DoH;ZV%2#+$V1aqB7GW=l>Dkkm(AuX_)M%w0qlIim9t$aXeuMOZ4B@O5!l^ zYzSp?qGCyW*GMhDo4b?*jsF(Y2`Tdvq;QX@me}$=Wt`da9pt;c<J+?WlBs{kIBYEdXjk{4XhvRSO z^izban}qfTp_X=?eGRvNMx3%Iw!ef!`}4O8aRuJF z{ZUT&?GHdp`$LQE?LYiX+n)s5-u}pX#_g|Q6q4|6sHI4yVblPOMmTBb-3p zs(L$HMwA$6kZmDfjVA}AX^caX)c6l5vJrz(w{!*1-yagQ5rGfd)98V}khl#YtTZ4T z6v68`Dxoy%q)x5j=W=*bYF*FK76^Ey0VQKS2R-C^j<;y=XP$oZvK$Jwq@B)Ar{5gI z&=z=5*`*4SR~p;|^cM1ZTB^I$7z`(Qv4)?i0~gGt94*lo@f!Y_rw3P$)iOrKl0tXx z1|vZI&yK3n{!H#~G{Q8V9=``;>lYn?0BaQ5;=yYanj=7K6q@1*7C!zwuijXRhvex~ z2*vaCm8xgK(`$jinWs~MM)UMWdNWsV1cI`K%H6$p>N#UUN1DpaY@Uk}Eo`<*)fgnv z=vGP9Vs2p)7Fx|;=hR>@s4;#6;y*C{e&InF%u2 z$F*3{;kc^e3evfRRTZP5aB<5i!oGtzNsAbt8TOT^l_3a5bnt`@mg=BOi9BGd=wPZ2 zHqgN|9c-zC?RBuT4yNlME#**@4bj2TI!Fzs01Wp!$RXFQiX}IW3NF&Y0v#;W!Ie6= zN(a~K;5r@LsDs5ixKjuB=-@#Wggto;b{h7C4q(oI1|1&-?rzwb0?F?D8fYB~++77R zSV)<_whKkz`_k{1(?(QL;Ur{$hIOkeu{|rn*cnb^NXPX+46&Fx3fl^z^NbJ|xCr^eh*KUB}~SI%^^5>8{4q zD27fy>!FiOYw{^BqJ1;tMD{j!vVqw~q4YRi;*w zsl}ioleUSn_GSh<(UA@)jy({OpN`7D7kW!1?94cInmH33n82B$w@uE>OiX=Prd9=K zPHkk)G^t3O848NPgzm_J$G6uoXWo;1YDtk{@i8KqGhbdtGW6ma*!uwU!7tX}1%Ayx z$PCuQZ%7m(Z*p`!KvDGyh>}da4S-aGbCxGC5qFToVJf~Uh2`x2r^~%$4l;vT&ki82 zx_wKyFPhh%7N)s$h@0_=Y}wtNSn-@5=3v@V%PMOliVk+Jo}s5eq++;6ZKG z&d(F;$-}!|8PupB3EhB%eHa=R&bzg?Y>+Ek_z{k{z>cr-r6 z;b>%?!eVScJn$D1n~)a~qg6ye3`58-GVvQ0BTcZYhOvmYf^Z;{PiDFVk%T4M?NUN@ z0lkKV08E8wD@1`mHvp2Psh~Z-4*YE}z2-NA8As}scxB68+r4xH2K6?tb*&28Yb_8q zyw*}G`RkuiJr%-LyaX_;HDNV{g{%wCfxX8Ids`e#*{5Kd1`sTNAF z?TQZKxvz=k>#xeia#hw0AWg(l#g1iF`B(^W{+mcjy3=FFLv0+Q-hb4A~RA{bRb zrAC#HXw>YPGbUc65#2T`%RrQ4M^y6+5Did>GT+FWF)@2mN;R0k(W%jk?3i|xl*=I| zDZ|7xW8BQ~lV?m!Axx-Z161)4&o)htXP*JSk-Cawr+Kr8SJZsEt=tSu?Un0{iGxR1{=VQ=E$m$Jkn$ z70xRk?d+^MGrfk0Wxg>kYs8GPIb$bhZkaarmT6h4Q6R((qW9VHwkaR)xS7+ZPtG>U z?K^hzw5;(dxLA2~YAC&di%+JvRQ~fX%B}o}8RKX6wQ!PW%i=XF;(xO)j>Q3dO9yD{*Y_rx-HR7SBGdA3UDfW4}HFj+7 zK}K^=N6UoL&!ziBV9ByGcr0?Bi9KO>RSg>fLt?ZvpnU+2w;uneh8IILifW`fyiJFS{9a#l48A>!0he_|9}A@df#=Z zA%++LTLUhk&)~6}q9gd1osLUD2Nu^eAvBbDPU3h4IA|5*+-d!Lo<`yaO88M zp1Tu9n?zR-QWK-+aiaP>P>mB@fQQ;4AkJfqZr?2G7y{yQdzo(ETYy4*6B^*!4tbdV z1I365^q~364-#-BM=v@^Zxqdefasy4d5MqL9rmrmh=hoUV%$Pyyn*o_95>J74V=Q1 zU^d#{yHi>78C=2E zW0VlP7O2O>qpn{z>XVOHQ8!OO{rsl}Y9OvG5mODiop$FRB?bXU)9KRfTvqz=99TV|**V2Q)W5h~;WE zbTh@O$uP)rSmT_lZr z@=7Wf_?}}3&pLwGAmLZKH$0mB8uO5o4I00D6(g^$U~`@Zu8Paq3zji7sG6e7kxJN9 zQALNG4zwm>m7}Pr5_igL3d~J1HPY*;GnE=zvyf7M*i+S#X2xcQFMD9aM#bc$DDEyI z<{Y8nqLn!h8`+$g^O}Zc=1d2$ojLdM@Y7^YK3CVj9sDBh8SHr6+(q|F;`Rno?f_t`UDm0kG$mg~NnyllP)+leFsqBmLBX_Sc_Uu+R5b?2 zFi%je9^eT8l_ykQ%0(_x{0O8}p(5!%cPvl3M9nW95HuqM6_dM@3og4x-exMHNA3z< zN|8`nDcZ>d#ySB4NcYwah)4SDrvqvI;$8%z-I}rjC8KiGnfRtAQ#~+rWim5AkP-(YAgE||0>tvLq6DKRIpXPouGs|0D{;pqry*I^tcv$)6V3_IZ_kyB z=m3&+Tjp_X@wJ31UD>_-E$CLB96VTS;$BYvU)4~gdpq`GU<4Pd7elJ&k(C-T4Rr~- zGPCAE1M^|)@VKxS4`wStd@&fUk2h|n53nl?ZSn&I72MEG5%k=4KV51Aqm-OY4$$3+ z5Tgu;if-QoEUt%}8e7&`q!7d&eFy7Bp0*_#0EVdBP?AHVc&bIoUm`F3ZbYMj*-RS6>3V3mrKiYzf7Rdgk6};e9Bj@ zjO~wDzi$W7L=S`VFbA1o*a|`n+j2#@Lfqp%EyRSy5LS{M7GelD5oyF%L3|QdAdln8 zGxYOOrrbi{aKwJjv3w=oUI{=~;?+aScKJ%*LAx-$*_TuOHT;t%d^T(mkySanZXSa| z?D*ZiJPn>RWXqATafOf3$VQmRxbVL6)lxVeuhw3}H#6aN;Z5^iAR9oHtt69mdG6q7 z$a!D|HL4-)!IVJ<>~o24-sd?D$$RD-*)#iOjcYq;GUn9b^ePi4Ww*u5vPOGX^zz!& zgnNLAnox^}78xy?3yzpvSMu_rl$Y^3!6Gk%WUNJArm`I*ZnC`GfY-duERbXe4I&^y zcXTdSgiaPZi_quKXgg>Xp|=qqSV8#74$@PL(%QqO5-8edfamwhSlwpc(E-i~334)L zE%33z1W2@tRgi476ztMPXc}daViP3?*j^H4WfTxvQ*HrIBUv|Iyx`I?kjh@7ZX3Re ztFe1|XSSOw$j*bzG5km=J#H7M2Ow{j2_*r^PNDG!7D=0$l{E|2wXKx2Ns}i|B1vo8 zK9pY56@3Sbf^|cOeTS4NXwseJPDp}D0hHYB!YBYWIbLE4q($yNma!JO8^(hMQ|@}> z)miQ;Tvo2!9x@KZdl*k+tFVf<$2Fu1u3s7`pp$R5`881w}&rv*52Fnz! zLT=x7N|EEJEeO(QtH^i%HRv=d*xORUWF`f>ge^TdODS@Gy{oLs$8IgB=JU-0WzAby zio36Dl;`Pc$E(*mQiXuH>5Dj4u=UTBv6>Cp7v*i{R?5a10_&)`koWxfyzb@a0&A>d zAx6(2FpY|M!>(J?X3jON_^mbmjb6R*xv4%%ufCUhb-zxq=vA(awdhrjU9TpVsaMZ+ zELX2C3OMUk3WU^2uYRQ_ELX3vF-=RqlV0UKVE}My_Y!3A_O*yY0TdZyM@Pw<#%Ydf zH>-TLJH5&%7Q&ZTTGOV@p0d%N6R&qaeikQeZr@j^0z~P6Owj@-=YmMttWvsFcIT5v z%2X0328}Q&wJ_)c3xg(x(TOG4o!D#>YogIfGI6TfTXnBK@HyMESUI}4OzPg@Pvh9Z zy7!)p)vR#Ty*2T9-OEd%mS?1U8LsHBSdo7AeOd=usHIQ)QtDmE@4=Wj2WqFci4qaMJN6(ayj z%d=F)+RruQGM%l>sqJM|vs`7n|51Yls*YA=d$w$xzXv)yEpFWCf0=MrzumROQC{uJZ zco*btrin#+ZySsCer79oZ`w6t89IIeOp1T9eB>kV1$O&HaQ27w!`Yp1E@4g}Q`Ki< zK1b>G(8<$LI-T2?-pn(oXsW1?AAyW%WeIUxNhMb9DL0cT#C2qfZU#e$ z``U!~=$3ya#20*F7vjyE%MjvUU?rV|xUctL3-QyR+sp1*R@w7V_CE@7>_aCZ{z%4Z z?l}taOYwQnLWuj);sGepRNzp~O6iU&7?KpFSpm`pGk$XewY-wvu+q9_fNUlyu?Tm4 z*jOag&awWMa*IANRKBy!)&JVc=@zM_o%4SO% zwCJ++xIxBR7~fbqn&PL7H^P-DS=iDMQ|$yy7wF02uOGyE;k2O~u5{nh17 zm<7HUP)&Slr3Zf%IIjYsEu^U**0A6iE5?E)AI&6ytrw9%hp`4^jC7nGeFOI8 zQj~|{k2jUy?H+{o;Ptv7eMxlZ7f5A#@}Nl#ABTlC1mgSMgp-zyiX#ZZldpH{OBY_J zsh?Py>SKI8iShvf;__DNW23hVazCXJJzNH&c2-0|AmS@Rrs<4Hnm~L)#iznRr@bxl z)$oL$mN_bNq6aPHTm>vfQsSDM61eOKA$^L$&hJS7_rQcj252;jj&jbb0cS%YEV&l7ZW$0mkHi&!# zMWY2fPp~|T4`$1{=hZ)TIvPYA+M_R8fj%d9l44n%2FqGWN}8Xkk~D1Lpd^h!n&rri zpFls($04HvA(DzyFl4A+f)ZT>2vq6VuE9?B4av$QNp%9M&aM>jVpY0Q zs<15l#n(_cPHqynUSL>p9Em#yFJ$O&$1_5_fMO^D0ns17v~nWwIWGvyZzMH%jBJe3 z`fOmmAbc`Xz#8t-)asi$_l0S}!6x~dGX4T+EwelF`g-Pcr^GxrBM&yf31FmSPw2v(G#>70|B9AJxM`G%3nM!hXEe$CRfuIFksS-SR zDebqZz%La2M*`_7eqg~@|0*Dt*sCw%leguq5};K9r_@Wi6Qc-LhqVZ>U>Ft&~}8 zKV@)Sg=tbM-fJE%MevS;JMXi;yce9$A(rW@%t#SN;FkjLdX&lkD%KEV_HJkG1|lF)g98HEdfs>L+4UY8#q(Hqh`a(Xtf?ocslX3WbJ6Bc1$1Ah?O zZH8WIBG;K_A40s;F!@3r1CU7{d1>3is zz{Pv?unc@hEi=qzB>EB$e5U}aFC#Tpd(qG>r9R=^$wN0bJi(O4Oq8~?epqI+YY0bf zcGD`ilJk`1IefkyZ+^B=aI=E8@_vqk39W2qohz_36!BQP`VJ2h6H#LC&R|#nYA_q8T1&$A_Z7HDT(jqQ$VGU?_0^oodw6+^OBd zZ?f>q#MEjsmG&dgn9nS{J51Y$*8`L|vk7LINq89nY*TK)Hhfz@h)PJbMUx~&XMu{4 zXflPjBNI3LqCQ?QUV4+ZBQM2oNF)O^IV5UP{^*s+0X|Mgisa~#$?zG1qj^IUIEuwm zn5~MTfR($F|2&T?T^9t>dhDS{4~S4r8to;!m%oPwKwVy8)M9%GUEl`sD+UL$_02uG zA9~C^xd$w%YESN~;HcV@i~7JR(D5BhXLoE3b#}wK$O=3vx_=TUN3JM2MVmuf*2j@4 zNnT9gL@PZ3*PiBwgC0iH&ewDmC-vF0!)(hDykQ!jGr$tC22)sYOzeERW}#j z&Na(;n_7MfKuMBjfo7JZi3o&5<$5eh^R8k^I^rftYTlTewhMAl)24CL#%gfW=3<9H z2?r~>eU*?B_N_t{(A=)*5&Q)Bm8_Jf(f1#_7ts=337IM}&p-YKFcTZX9c4B8w9@h<5 z%!|>$wXzGpx|dbO_z#S&_PX3cT`WDEe}PHFz3b)c@r|Sc=tHoh`a(q6mNmN}*2c2t z3MAr5d#*fP0@a)yqS_{y>QP>B`%5q%Ah$S!TuLBt9}vheXOLP1@{k1S;|%hBHb7|g zKd@Zx4Dv3443{7mIfJYvkoFSf0%s5(fuu-~`pzJ?5XiS=SAwFtGe{2t2}_X5&LHO! z2-aN@mWs|Gf6M{MVhQr++l~$JF+gHtf#OH!^bM5W6X_?M(;uL8d}I^fIH%`OI`3cI z3KPicx)A|vQ?1SF+7-f;6wN({^|Y{Bf{EC4r)eT)C#F6oQ>n8_%3%|6{#G&(R{_)& zZ7H#4j~@gJneB#TPo^N$-IYoo&S6`zFK&Z4ClPUPAeOtCyte|Pv?`o0$=(SlXKOKu zzp?W%2@74LRZEze@C=_ zP3FYWimY?_bc9Ag^sFL}$e^has0kx+PXszxZrQ6UP}y~H1gKGR%5;>B8&(Ta9m@vh z>A)<{zQ;lTMmEo7$VRoG*i8!Ic4JaOltE1S-R~*r^0v zA8|?e2u3u`FGe$5fuSgxVLdoPn>ibh!l9o)EGDXrIkD``oHwrL9&#ieYBOhl4$94( zs>kmvQ~LvLTbYW@oNga>>QG4yWt99B3MVr;TPw-9{@gOOYY1n4RbuZ%ce!(iWg;?` zxOpzxg+PqW6Yt*ca#h6!Knvho0L0n5u^yJV=QuM2YP&uAGGxaN!h_TbObvBgxe@_x zfCiIcLos#-m1AC|K@#uKz}rt49wzef5DiTOo{u=OY(9DjRY26lL-DZ!2W@;j@d~FB zACGa6HpQBJ+$*DOeB2`AtbFVNMMAG@<>RU`PJGO}ErE}70T|E6ahy4kkA09mfsdC- z1aQ04DyB@F3kCvFoq9~C`QdyGWKb{k3(Jj6Qd*9`Ogu=JwWLu-^g1c9`*ecrgn0wc zW*I9PKq?eH3Orhyq95Tkzy%oc6PQP)0f&=+2Z?LC2fTvVP)RIv**6=!B5X#UQOF~= zomxQq0hGAa)e_gqF?$1Kmm+JHQ$uD3Z~k1zHJ0DqDV@K&ACcJnW5V`zd^J`B8vxuEpUu5|8SH&@1E7$69g?k|Zqx<6 zy>+zSy><7R$}}++?%@4c)rPMJ=U|>%a1TXBl4uIO)Q51iC2Y0oRLT&8V=tLZ@pI!u zKayhbo=hP5u!zA18EX-PrYvH_A_#yh%3frf806R;Ly#vy40-`H zUJNdF%w7xG?BDvI{nasT;vxq|+mar!#ixgCrZ6;mAQlgfb3$&%Rv3;`^LmegUQa={%JQ7b@c-BFv;| z{YG09g3Vu|8J={x6cu65_RU|iEY5bh%Jy55%=SH=krfZe)Ay>%b5``_S_^7V#1*Pi z3h<0JfigPLca=38-G3ymRoRA8wg@FmWPY{HcMmY(>y~vXw2>Aew7lc`k*@q*0oFH5!GeZzM zJ>%3?O=PU4t^SoD99-*!e4C85Ah!s@Q}J2c%W-0}+}>OmJp{SKTwwsL3b`xR;FTOH z)CmMVvqxf55lp$M$nJERdLKDm%rhW*{zCV!ie3Q5A|Hfm$cYDRoayL`KuOi%d*8!G zq08n}#2OO8nqwE^#$5@#Ods1VW-~1)dzA2V_an zvA7g-(etU8W`2~0Nz#$Lc|7}4zD5$PK#>I8iMOzL7RXS4G{A#^ zC$2?dtGKC35P)|UJWYzefB`Ylwc3!lVZ)@v{nRBv;>cMBPh>G*r9*xiG6Qj5DT`nZ zf679I57Ek%$nN<09mT} z?W4^s(;amLoQO-UDN||iH+vkj@IDL^Lt-N_4G6b@W@goE2!zD$_Ux)2bb23swx$ju zDVmMJAt09`2N^NqjoG+>ER6WK7q6a2t=srFA17`$uv{%V?QUP)|08^hQ9q~*84{=Rt$+^ zfV!dwpt1qs{fVqFe9t@aYRXDD@_vj50RM%-lGeoRWEa99C=2Jaq$&$H_SZNIH;XH# zMj7|rm1yB0#%h`ISJ!hr_x`!h_^PV&O`T=T5c54OKdGU`_XM99mf>)%D)dk)n@ysDS^cl0SEbv?u z(L)wENfy{e0$z_4!hwmE0R%q{8w0?w!R>=U zl$^vUs?FnUKYXhs%();LRULq{GEc}#R7FgjWxr$!w?9=e2J~^M^<*me@IDfgum?gc z0WMU1;W^0hb?f9BptNR441hpX2#NiOz&Yg?eh=V~=uA?AdQYU$t$7NxUv&LrAF71dGV_kN_m^h+y(O9c5eGB<1NRhU9M247lwjdn`v5H*$!tRh2dy3%izgk+mQNoJqeIA`Na#xmy2D(z^%X~EZp0iByDaQ*k>rAmpW%vrbi7YRpF3$RjpiG(E{bR!ZfWaqF$@LI&9 z?%CCdEtm3wYRVf}wCo57S9Qc2oz>^fgfkFb; z<#gG$0PD`FREihi?m}4(k((ZHb;isW;z0r^T00zhbP2{9oYtDn zg_Yn)RH+7(kL9sKwvy=&0XQLVL1eIdX))*V9C?q$S#C=*#5u3H37pQfiYNdmEVFWb z3mYFu*^mfKdmLJ3qR?$g1*z_$5vX0t-DQJe872m$B+4N=arG&%5ju5KVg}lB0K7m6 zhQXphT|yuQZ!xzv7I6$8p1Jt=N{n0MZZLsiK6xA!K)W5yM}c{zV{$G<=TP9XZqS8sbbUgn;J}tdU>PLiAp5**A@rg{olhS&}ny_ygJ@6Ou zO{93#}K8el6jjcLyz3O(T~uu0Y>C!GKgGeTp<8-sZl!nIg$&?phHGAccKOa zh7}l9%4|!%g_7$ggF)>dwJ@l-%eEZiS|e+ug=@qA zYZ!@*B>0i3^DU$%==kdciE9rYF}Sw+IB{)FDh*DUB${(@z`_uVkYEk*Ie`__;8I3$ zHg+-YEGD^+)eWqmr_4yFJ<^-jjzpnW{aH==@>30lEzYz){iIQ|$OcpjodL}DFNe>{ zZ2t`zioRGO0rwz{`#KYM;o0FP`HT)r#Qp0NCf%p*FzD_K+|)jXE&PY>CWCPQ22&7u zgtXuvyUDI*&x%U}DBE~5+gE6XGE9Lx|31KiB+FRCVq$&C>0zI^2lPu@6Q(*hbsqts?BxmmIg8pBbYdgEU076#VXfG>g zACdXJxa)w1(ljKC)mB=f48(cA()I}+XnQZz4F>jBdeD)*0d8EsDEa~>l^O0AFHzX@ z6#a_-;U?HLY^ouq&{F#s-u!c`v?tVZyg7GjE&q=GHkVfo~b592iT`qe<=>U>3k^?kV1> zFyVZT`w`98jTR?;m^p4wfX8U;X_6(-tQaMjeRC};p++(=zN)ffer?I6cH!O*Fnop2 zV|3&?y!2Cc9d_Xe_p*x6fsj~BgOb=VB>x8?=~)bV?&L7-DdMXe^L3I*MH6T!f7zVi zhZFVOLSVQNVALmzYZzV(#G{)#=f6nmC4+S##lP|H(r{$>M}MD=(yBS!=K`Vhi>5$? zugvG-!FQZ`5TH9wQ}KlS1TVuU*RWWM2U?B%j^jR|CS8sQOOuipJ+4WY-S@vWX&Op! zZqkmx?9il*DEe%gbW10cz)f0mugvP$q%A-Qn$%Lgc7~aO9Xn4>j8Jp2>1jO>CwB2bXezD$|bW9W?j0Ote!3~s;05#A;JkdbM4?&c0 z|0N#q@&0xg>JAxoQ-v&k<-gEqXuGEm&;thPExgl;t0FwZ;u-v6l;VnRghvNp4+B}Z z3f_8fM=eJXF*A^nuKj#W0^BA6u+q~rT>=bbfZ3e^+Y3RA0^0^W*8*=qjKVM6l8wWn zCqmLJU5;F!`YIwf+D{_A5OJ8aO%HgQalS?}-;H76L5QR;EZk-&MTJ759fd+-*T>9( zL$EjitY!k1fX&orgv2Lbp|r4g0}-%&uIMg&F~Il6u1k!M&>ImE5T7BPHYGlbx3CD} zO_sgX3@uh6wDq33)H{SDe|`8jY_<3jtBD-^T;qFDXD*#1K`}t(2~!^2ja6uAD;l>; zA4y7k2GiZatFyQ};8bI_L#_4})h?2RBD9D`??fDMR|amYUG0_`s7Q0{MPyI&Hq*m} z0asuJM+7)NfGaL%@syk=!XNs7!g7vhv5yAzlrxA{J{8ptl5@3U zGOqgaBx>FJn9NBfbb(o3bZFjvkP6)9C8i-jocesZ!70@bBJLf;nTDnq>n6VRRL3O7 z6U7tB&mvg^KPrKhZ_k|{L`kOep@bOiIQyUCP?_!rjLLZXsMb>sl3>bcFExagipOS< zR7h`TFh~#WV5vdUvWaB`#MK)4EPploFmszuG=#(Oc))hE3U5YhPo+#F>drL4+Lju5DFR7hv30-H<&Y?XWWgeYKZgK@L=_lX zTyoB12jGt3%5VzP=mRR9lO6$6%I(;^X#spnKiz`Z|N?VHa@r|1*_SkN=6kP~|Vbv{` zq7s8?miniaXDJSJw`tQnkX8~fgkKK7Y-Zx0jYDv@MF47)TljS-T8yq^TTAGDAP?m2uE-{z60tA7(_xXSS)>tR+CRMPxJSNBl?4 z^zpER43UZNi5-eT%I9~P(hk?WJHIMAs*o78o8{yxdW17}Q1Se2A74_QM}|Pgj!aB^ z^OHYD0{qj)QknOtTcGwZN2@v4a*deS~ozWcPWh5OyYH>~Jr0 z)4UDiMM{w$FXT*hg8PSeesZ_oIU&=X3#vz;WBHiwopm8%Msef*heu*d%~`?wpnSR^oj)amV$cPgnB_j(bY}_@VEk4Vgf8P0ono}14PjF`WyxK z{!Dyb5H2zV_zPzg(<63nAVZ!-V00hve(2#V&+;;glNK*1=AqhWQah_1JAIm@s?;h~ z6Cvc5uaAq5r(p~eCsbkIakBdOi*ChFz|$9n1VlIdqEpLXLvf-b-q_AGdxva(4NT)b zo7Qpn@+uyIMXu*iZ@M(EA_4)C40w$8AKLn@CuvVJy8NmYhH=ODaE`@h4)Uo7Qf?(g za6V2h-Z$`;)Xc4sw5_F;{2y;U)uh#l$tNOcDoo%`_!n~-I0wcP`3*1nLun}`(z@P7aH7X{bHS#>0b~DXOvRWWVT2> zUYrP52+(^x$P&mnnY5=nedls7e;Ggl&*}G7tX%*wA&(-3#!7y`#o97D5(58-NWk+B z(t=kf`BRD!APXN%*$_e~X&3w_1<3)i7V+Ilm~un07Ph=2N-5*OQkiR!EmsZ|nNhj` zW1$ReO?9F7+YUY9!+S;|EjA+H8HA^-2BBZr8@$Db>tHWXmJtbvc1Xsg%b(I50p?_5 zE&^XCYU3j}X2;UYxHFK)jtIGSQPUK;wpVk-hDyE^nFi%-D>EtpQ5JF~~YjvG#3j2RPMEyyL|!yvk=TmB1i#pbM@Za@-=u)3j(mwC^Xm@8O2xxDi=-|vx?MQJ zy{sS9FF{K8L3A`*0-hpZz&%>{?Xt~VnT=VjZ@{yPqaWbt?2hnNA;h)GdsEg1D;lt- z4Y7$tjYq6|OU7v}#>27lBGYR4A{~mQ-JAm&3o?oTUX)jQYj#8YxbMCX{HETuH)J}m zbg0`$^OTTCc?X;bi6lH|DAjiVKAJ&RlZevB(ZNqyq?ypzwt2j2?P7XBe&kzwJVN5v zeHcN7#833V-Sd=znpX@%2>UPai>Bzx(P)ZG>D@2d;X!VcB|CXGj)7xMUchuU`v2&C zkl9Gr31lj0n^Q)S{R1>iA;D7uMC@nq9~EA-plF^K^Yg2y?Qy&b@VcTSfd~m>aEvoD zAv7!ZT>RdeTM55&b5rqqTXr@4-tP9@1qf6o43=Q^Q&C=IY=JlrbuwQLAqf1%s2>e^EvUceIoa}oe5kZDgTw=U*OFSZd(`wythlh*Af8L zN*5P7v%{`QS<`0Guwzp?$dMgGP~7yc9HxYB!RM7#@BpAq+PjxOAVXc;cP~RownPWG z+_(ra5RYz2Ip{BYAp}PBr$)!}ZhDJe$2mkRywJDBE$D_K-;6smnfgzbmZ^qtu)fWB zk4tv%r?+TDNm{$ysUWq>!Yo#}NPBn(>tiBYFtz;SyUsp?>q((hmi=&&^MeR?b&&OjE!u(mYhriwY(l4syMV1 z-vcr>CQ&NyZk&i@>IMdn0pGi9pS?3mjwlFUArN*;ar<^d>G1mM2V{BVsWEtc8n2YP zm;^S6F=Novb17k>6(7<%HNKffxnYo-%n-&T6$-B=sULho15ZhBbEen5p^qp=HPZAO zS_kAk^t+@xZ^6dKx%)AxflY+iBu8%qd64W?YnZ#KAj_@-m|hTdDQmGf(K>NhcoXVN zNr_~2wvg2zo{&^Uh`~U@5RTMBU5R@i8plxPzt5|Q`zYRA%%yAIB$ZwIrh|&3KpXuH z-`R4(?oNa***iy}JLYS<^b%iE73}k z3lKu-O8^JMP#`{CENZ}t1tA(q(BhehN9Qz-9=tA{1-`UVcI&*-M((?NplR|-Q{4Fh z;G)3YZ8@e&cDuaNYT36$X?# z0|QzSA<{)DC3En#DLcVlML7^z22MoN$ok+UrdfkY--Nt1%GlDtUxE@=^&Y~l8WN@0>cRS!!kyKjk>%q;u z(jM-mG|51flex-!5GwsEzVa!LouVi{kr(Z_wFG+@cqPo_V&))voZyf&%+%jQR$9Ll z98%RR3v;;xk#RThDaMZ_p!W2Vs8hRDojVR&7m7scOma;WV-6S;>ld@Bm)808=#!^8 z6s0LD2pz1jVQJIky{ajH=BE6A)V&LQl*RQozMJIXCUJujz={&DCE^7Y6$EXfJh-SR zTBH7~C|;mi#S3OZTM~lH)_uCHrfOPjtzs)mt5({22`PaDF&mK9pj4w`jg;!Ho7#vd zQPBLq-!t=Eb~mxq_V>R3m(PdnJTqs`oH=vm%$YN{p@T5f0i~M0c=1+5^FZx<6!7#- zZUNu+7VwZ=fLz%3(dYiblLGUHqoDT?6m9Z00y6hYpDmQ6&jh|J`@(mggKwlG2Z`i( z$T1D44cG`HxG;;NKVqou<$4`WOj zWg$CDf(7x=LVH+Cc3q4fWkrJQ_2EYT_yUVZQa3zj3`Mp{#yl?G-YPi~$wSa1Qbk~A zFf4iUAtI6&_x`v@#{ddQrvn?%{0Xf}=0M=(7WIC@mEza_M*ge=0>Ww4^bv#)#hoCy zTGm1Ye95=j=@m9C6A3ULQ^4F#v$Rq2sF-;1X}C9DCp_wAY>AY!YU%Glw=jfOJXy$k zCGcFF5mfZ!A}kNZPuxky_T!rXFjkwl8C>p<59aYABo{B(UN9Kz!WtEuQE=8Y648Kp z4?0zXy#f+sR@3?(nb4*4z~K;;V!;H2`;tnk1TV+MWmUprjdU~%^#<02jmJJr*Jv)dM&Z3>vZRd zcUA%8EcmT7E#fRe8)Gvz;lUIuaw%iNjr{RdUJ2Gb@=m6%a9&)%$Q>^p^DQtlrgEVJ zf*I#yWy_J{XD)HuU1=4tebToAk>}BG(^O+;|3G+`ybO@3sf8kjgS{wj^`OvQp>ly{ zzZ#4%JhdI;gQu|)W1Ci8iDW7Ag}a9?obHJ$Mx1ojO@Eb2sg9ockc7omnR5@uP$T{1 zmw=QW_W%N^*I}W;AW^E0P5%Ix~?WFN0`vA&1`gV{sH`|OO0fQwzwpAi)1LZsEx zSMA=1t|B4|R*Ak)o9R!h#0gO8OO8VA4Gx2Jlk}oo6i8wlzjlXe<9QX}&n(o$K@(Ra zm1Zc{wvrcsQ+Cf?ihc9swaxQ2T)!jGxw?&jd zfyfr2{}+Hc z%SOs%5EfH;7>J2ROmyU$M*j5)y=QBBKlnE2eFF|3mFSlnJ{GEiGbv`FtDyvxi+(L=Wc#bnP}=A(2&C~It!RXsr6kcae>fLa$XVe{B0!9 zPDG|qB7Lb*0$c&T7MbbVk5%UZmyU@S*Sc7?oa0mv3n0XSY4YYCFfGUUz0b{ctWv&W zr@EuiXtmG)VNlj?A~}ULa`&x{Qfja?bcNgM3RG(J97xY?^$*m(m*kHi-KjeOVz>GM zHWJhebZdk7K8jx4cu#U^<8LALj%{6QlifE7RdGChDnN7y3$!yD8%Q)JTV^0Yj zw%8Mp)!O$6+g1BxCL~yeYPmR_^;p--`1Rwn_hS57 z!kV$O{BMq5^I1r5I#ud3SVwy?e(@!QTuzs0OifTT zDcmXIaGK*+#pgDsGsds`U+;s@PXt9W4n{Vyri&2}C9>mY)t;BJl&Pdw>2*M1M+h}M z76~h6IlGKzPmsvKoh{hq0k82ZpTWuGOPA@PaHgOW?Xkkl(H@n&g=6z;dMIo~02h}4 zL4nwR#S0AkJs za@|w13L@84)M6Q8)j6z@yCv_4GvN$1ALkPNeQ#lRBAAv$TkD)lRzX1Ce$3#J%=NrDgYwN(}u* z?PpjnpT*a0CVP!5{zQcu2;YNPtOpFm+yk-aNTTb6b{Huhm{*QQmFP;hj7zSRyYp6H zbq`JUJN(iG@IV=5pM(3ujNzWqV`hH`-PhRB#!~x2eCuFoa`-^m7xBOFBJOhV&s@Ch{9J61dSiArp70N!)} zuwxbHKdx{_yuI32`x1J9OLJVK|2tw6#yiWgMheMJ7=@2ZZ`C?VeFUXUWwqM z5ndq5T{L=_;~U;c25J!wJTnB=7te<#Knu)yNgDjlki=sDjEKzQ+4yXU{DN6i6C_DK zyrbjC?>M95%o#E|1|nZ_)(|tM<6G|w=W2K$@)l~+B2H5LJVdPNn)zK(fYM2mf1L!Q^ad0=<6jl~=wDeZ zw<6|H^gATk#bVE=U0xRoEASR}D+<%8(1{Hck2RPo>U}C};gRhH`D?yBLC$@?$4g(& zF28mem!z=2ofOJSEF}X za5)z=IDEop->|baEbsSnXd944+XbL4&BwwO?Zy9?MKU<-sKz?J7uq?Vu4R`?E);LD zanddhu-Mh|bDXpsq$oW^$NdFyEs+Po8DDB8GSxIn=aP%wEGaCJ{2gF)Jus^xEQf+c z>y%#+t6`3T$zj-tZ|#NY7YHubSh@YwuVQ+OIGl}%*C?is?UjJ=I{2<~N)PDLohJBp zF6q7J{L5Rt&^`a!Okru7kl7%YOS;=2%aCq2mo3n4gM0|DC^$4#G9{9i{!AE4j*CiQ zKs5l4Is$INC#vDb07LK;Xy!kF@QRR z1!Gufu#1)rCKFK%JNOF_zElBvaZBW4WcQ_-P!E*H54D?Im8T=13;jZ1!2lRYi^G|~ zixqKeFzFKb_$^pqGnZNF^yQ;hN!L_b=!ugtS)ff|WMi4C+_zu;iprVGNc&mj z7;4s}ixVc0a4t=<6Dn-*LY;FfIifxx-!KYE+HTV>` z^Cnb2HCa*W4^6Yvdrrd2Bkt@lx2Lg(GMnJg;P9O7{&3ZH-@L-|sOF}8LVPf(R3`vZys{C+^IAe_Uj*0qII;qAh6oxWpzI}Lg6VDI1y-H!xIKs|9JIxpTow;i^tw<>?8t zOK^;iRdgW>3?Gq2B0`LkMSR$@*yXq3a0h4AOSl?S1gA4SDW|-W%HC-BMg|<}6rR%w z;p+6=v4+fH?QS{IYte(TB|Kupi!t>vqlCFfXofKDQRH^0dSe8-GCOX(xhr&77-x{O z6QE)DLmcQYHM`SeG}1-jH%y?)Z-5$oNs;S!56S{}@cd`p~XU;)w`hvJ$ zHjBoPQ>@kipm9NVTrQ0cu$M**J5q6!kN#&>;5-v$4V9frqN#I1BxG!d6NJkW+r*)}lSqV=`w254a1 z9Xq0404ht?9Exlh`ARPHjK@DeRy(rN)pqwf%g*>TGDgkaHC4M0tvnF2E5fIH9t4%b zw>z4b9-blA5Gx@veXNaUyej|KcKO}7YZ!zpd*DF3e3vWbmy};zUQvFLoX)bUp0q+M ztcph=j!V5JU@J^O9;AE$#VjQsjz5la^-RosCfu|yxgGw1CkSzdqHU`6TDjP065dkY z2u9#sYC{o!2~*$gS$Qr-q2J;zuTgBeO-`vYg@2%V{pQj%Kc!9@+Hn-c*)`2 z0c1$0VA?I()`M`cbc-8~yi!?ogv5rE1A_jJV0ZwkjGrd_;5b680tZHUEI}Ifl(Fmp z({RG&(O76j%zP5Hxdeu&0!btlI~H(?1A;>O}jr3sVk z;<&S*PRfW!o)YN7nm#MG z5*Il1nr9F%`eh1kZc+fS^b}IC>IAYGM)BQgUi6!TAZSHuSUm1S;19e6ZlgYb3|pv9 zVr+yW1`i=2y{}V<#-M&se4QxDjh$l@~bL;5-CCD*Lf=MWlph5uRP0xJ#I5%7xKUBXDWcjzCf2H=sp#1g>b_ z5f~DQk`~-th#z%(K?uUliw&Ci*)}_HY#r0SAK+&@K7YZ_%F>KH<;X+C8_<7I2oN8Q z_j*ZhdOySqb~nz`WW#M1fn~J-FL9)leQBcbZ{b^6K$v%SAQerY+nG}7%uaMEZZrWb zryq5~QxORmR2StY#OjETPAA-%$dElk3mLc#fXVnFLVx}FC}>QCWKNLu>N*GzE^|eM zukyP3=~>AkbZ0>?(m|kH0@T=jG)N^c*uwl#ivCOVCtTi#2*2P7KPBSO2a-Uf8-`VG ziK>EF5KtAg7tQg)u!g@z2=H59Y1j8hOhE^tplyoWH9Gar8!gEx`vI8s%EpL#_k^@^Iz!5~f~ zo3hi7_dLab^kv!UC-_qLdh*v~r=RFcVUr7oeZfC7JAIrl#nnbTy(~NZBwy+TPkKpq z`pN16Ry)5hJN*=&T-<4=cR+Kq8J+r%_oZF|BklC2?DPq!zbAcJc6vGL?@6!8PCvt! z4%x`B$xb}em%h|aoRXb5*_X!IKE<}u>_pQCx42FmoSis@kGPp`woMcMh?6V2p;BrIRo=Aymo`iPWMh>o(^3G+iBIW_q-8P2B)rhN!{ zU_oQ?w9iHFL-B^ehZuA462ymr=Vz!KkgBr}2NDc*zXRRg_!CroXpmUnsXu~nv9MFW zLkPrR0fe@RB1UdlOOEX z3fwsh(^YT9{zoO)72AeNsEV~Cq`XfXvMMI>v6qbAi;7*g7Zv+{pA~!H&^{_wqY`kt zg$UVTsa4uu|IScoo@qG@S@#YSh*4L}#|!T;Be#ynltnr#t^V2EMJinQTxO#WJt zO$5es!vqN|J{c8FNF3qQ6Jjb|#&rVPu2Kw0k})e`APrz9zyOwX_0k1%qGKF?i0T-> z5gU-C1bH*6jVLa3`@x}zs-=vVOPDDp6?PJ&YWtTU!HTpKO-z2&aH#Uae~xszz@(mh zdz`gKfi@PqDlq1IO&J*4FZ>i!aNjF`d<(hTL<4I-t0Gh$G~x6mW1Zwz6rKzhHMGxk zjC%FnhQs_$EtH~_eY`l^m%MBgr^%awakEX$f8&KuJJ)O_7qHs63@c`CT2pLcxYX11 z`_a;oraO*Ke&=8q7>G_@2t3?q8#h9dT?3wjbS22xNd>=N7&B?yMJxM!>a8LXbx3gL z`A;;0M+0|5<#oat0X@)TdvVGs*XrC5Mx?kgJ-;8VInnwPGk{SnK_2GvTHbQE{9i!mSza@3Fla%Ks1&~yc8sa47yGi|#bZY8T>>yDH z3*4l9B#lbF6=;S1d5#i=xa%$k^)?bV^s>9uK zB{0@eIBh&JX&CQT%RIb=1o!MQPGiQ4pFT+huL!$rJh2ZT7AN*o33$WM)NB;&!a`{( z94jl3#WzW?rWe@J(+8+Jaj&ON8xSj8pF;1o`@}ULvB8?R<;mX10`A2Sjb(Mo2E$VR z;QTQ4Y8i-tT9j`2fa>9s}Eva3$F=y6w|MU5lT`sjrBoPZHCW{d<99)b9#eC>;` zaCcAT)wrKn5-PtLGrl;n-(V}U8ci09h$z-EY&F07fz>8kz&?Zk#f&!rhJKF>ZJrFv zm@PX)6EldgS`q5OMUA2j5nGK{>+LY^Wd)bHq-xAX0Nq7(3oN6EAO@Z<%i~^N`wN@a zo67OT+-5K^ZhTW}-Xa@-lt8aO5esvTD^Q*fcg0CD@uA|TLKKbxVy8)@;~fN*zwF%W zNhFDhj}s^)ttx?Zsi&#zZjvs?_;PYa*XtGC+7WbKNCy=M3$UrJ6^giiXDYFc8;?$r zfmX(2m6i{}GnB>O(2WDnw`*mRNFFvExa&B|lv{1q8c zYjQwq0UC}Fqdz^YHobps?u{;C>4C8D*u=vFcVGOO+Q^t;$-RMEXIXNKI;Ueeu^Kl4 z9#(mi{M6Os$2)GqxJyLZ5y|lohAyEzO8%hFMLkEF7V3rQpNdFjgMIp$*5ZvsMLi}z z`u@tf!=_rFO|@DxG*PC^MfDl}42WXr(Ff%demNXXcZe3smR ziDuh|58i;1NFIHl=y+bcsq)Xp$N(+AMXczeo$^DeQ;DWJWig^oRoVauy_67c8m4xj#|tCaO`$u%XW#}D{Lsw$ z9*v3>!ix{S8Xom|1fRXp>P1XK0{TCHC5ys2z)j;W!s~zQ_rc!Enb8qu;PvdT>@i z4L+_Rcn&fA`5fuFvg~Ick>jVmU*4fF=@q=Fm_j(7XSMAUW7gyi{!T7ksw zUS)2@ZymPES0?1X35Kd6E`5%&;J~b01ZO!2La*1o>i$K*MrPN&QlrW? zk}b00!(F^94KLN90VpzTrVLYBptb@EwG?ZuZ>Z-0g$q(rn?(nT00yG#osZ#xd!84? z*Efb6_o|#Js+_MP_?rrmo+Q*Yp=OG+cr>H=t1^BF@j@M9g^_n?J_@Nzga3y4IB<;D ze6;iLz4^G|D9KOrF)xFJy*K%Oq)^15$0?1m;#Ggu=A%u{-s3vmA;;LiLz#pJiV-*v z2{Z|d3-4KStd3!iN%%U&!ALk68a)}PNpdp$TI7e7vP5ey zY82g#Sek@(IA&Z2&WTBQB?6AFqe-ZAt!)yjuS}D0(`m}G0#fB=P5!!66ecy`?9;B? zzY?94MTuD$S5qjjNjTw3su6+sDwDAN6bz4tDnL<=y`WmTuXed86R-aS>NS*&%l$kdF3UWYy4A8I`tNuQ0 zzZEDAwjY0v3*7xIZuQLZ;=PS3X4!t>&LXR754Y5KY`F`%L^J%Ng4C5}U)C^5)P zX10S>3hS4ZGQdp{mz?WBS$Q(x+I{2^(EKNx;pgTlKH`go9Etm?I9&4C4lH+l2ykQTtJkJ zzT(O&N=q6B@q~yK@%2dJ0RAK*Mfj1j5|I&Zu*40Hc7tQx;CMG!<_3dqaJn1hW^`4Z z|G7C-a@|$)W(6BcZmYcNj#<}|*qKNMvD`!-tgpQJ=8_w4zUjL`P&-im0pb<~al3+; zb>mI5Dod^kHhlN0>u)N#<;Gdq)Kr7LR?%SnRkzJLgtZj!B%*5(y%ZZ5m#G?>EA;P5 z{VRPN=}r2(RsXi>-*)~cj7Qu14dz%cE^GU0zlRY?&;RQKX+g0?y?v(mA0n)9huuK9 zc;PJq4$oF{-T;}vAOmJA`0KN$NPne1&%yL+r(mL)lLQSoBl}ID()J*FFz1=ZFhl|M zAAwr5l*kAsn(>pmA#skG^+bQ9V-ihb0lq+iXO>BW=}IXR29wpf#xxiqeFIl$WhPTEKfz>W4%Tw4GV)%B z8Br$<mCJ!YEpJ~(%8 zeuqMmxsJ4`vy783tFaYY*6M<$UXOrRS;F%GyMnQL=0l%BxRHNl*2Tc^>Ou9;7U~|7 zn0g`GGon?c)Wib2u@4G7Uq@UtQ1GL+%6x=IO??lonwxbxveF)(?vE*F1@2nJRI2$s z1D*UtBw9oFJ*@_{wkbHwMU!pd$BRFJSSVjP2Nh_3{H3PJEw?pk&xHaJ@-i3VH-L~1 z0DU5L|F!nzvUc%XhUMnCUFE>Y#&RK>bTsthJip(d#-h_C+{nMaJMi)+1F0z}LdS(h z=vINqJc+$$iiRTq5Ub;0Ycm)-5F$J9tu)vwXiqKzAY!(4MuDO+UQ55a&M@1Wj&9G= zEO9amEJfoh_&rs6oWpOMXw?V)Pp~>x_}FGn@7PN*VE!A^yF(9>>6u;~u=DTz^lsZo z$8OzdT`Ciizc5zvj4osMv zDETqtJyeF9N)3hT!G@Qi=xRz;nr-2#Hs9_2@OOCiNipM`?et4k9-@ID z+B-YYSrphELq&V1{){fHLhIR?v8?XVq$dIc7xSP=$8rT$baw}gf?(V%%6eXCHOSG= z3#IM=s)X52G6BiG>8@AL?0`$p9D$QzplhVk6N|pw4FzFtLk#xtG+AbQ%q+o90&EpP z1!iSY_0zxUepIo^9csO9s{N?Z%q?M@of8Mug%jA@X+~UjEJIvIKm0fuZ`BZ1Fe#_% zC!-L(j#-ga{wP(x>;3)_O*?G5f^*5`AIH#7wvkedp`jyfGiyrEZqmlXO}%7TZD+vw z7-Y(ELf!s_b^a=XWDKibrMM zd#zKcGE?h3waF=b@72V3UHAahF;@INpx|nxqGIo{>=>?fpKXR^=$b9)T<$cLJ5PAF z%nEJS$E0v@QtOYM;i{dYKX%f>5+$>pT{u?U`VuR*6P&%iN%jkHqX0H_U}Fay>{i?C z=43uP?)6PSz#O+ZSu}fd68*Ug+Y!60*5-~pe`|bjgb4lk$}e3v+rmLW$qb*oW$r-7 z@0vZ)++jb*bPFT0gnJ;BD9x#OumE|J4N4u!Al|WOHw+CDL!T2Dv*mTSQ4u_%tzUQB z-2B<7($?!+ISb_T+~_IDFk9~%%3x4Y%m||?u(}$;0|3UXVdC_P8kZxW*zzEdB#g@d zgpL3P8INy76X-<=n=h!^5j}W4NR=}^PZ3BLnSC#dy|Kcn8n!d3YQ;lEoWl)p>LuCW zdc*r>!}!1*G%Oytb8sh&KcR_0i#j2dU7dO)+SU1Kv98YD2zaY=4}f%a+BdK|YBlA* zSe*&G?PmIy)yeClI(Vi6sy=(PG+qM#S^I?XJ3A!iHsjJa#tQ$|iVER^7StosSI1(-H>pBn_)#;D zA8v=`Oti@$F2{};M}Srt+(#mCS`uvIlJqmTn=UK`p*U)LDKQQ$%{@@In+N{Ho zzcrjZFlr_OYbt1MU^pzS9BmuziYtHo6t%PW8aiYg0Wz=?xs6uFCK?lonBmch9V zb*%B~&tw#3UXN)KjHzSRYyh<@Cur@0v7ibY&oRED)pPk(ym;TY#MuB^y+%{_n=<@i zOCug((iNh`vF@85i(}y@yW!+)g_E-ti}(4M(ep6_Cu+zZBMG{z*r>ful9 zN#TGXtkimc=t5B1k%8Cih1&%w(Uf-Lz)ZFmZuen|(put$U#lneC5QsHTu!{14DguYDwF%3$!UQ`)K$F|x7BIGcFm zg`Wyhv~yIC3!_T{2{M0%+SEh#deWEizJuxuFliuuY(~RBrN~&6o%0H;Wr60SK=X$` zR<+*`$u`Zu)V05tXi0NAAIP%ju8YzAGjvi>i*XM$A>O1ui9bM?FpfhA!x=)Q2yt?j zFb;E44?>8oo-l?xaYGQAVK8nVC(dv}Jy27WkA(3VLJIT82&vNk;iSIrgx+;h?{l!k z5mI^YLP$}y$VvSHLW-)86L&L0imL0KxNDry41^R_mms7tU*M#kK{(r`%dUxgcMb8A*87Ki!GM(Jya^|p>pIqabEz7qG}gH3hpB(ltxHV^>>66=69UbH=NX0ozR~Uf|x=Q z6As*FC-f3R3d@TKDf-qrsjCoD^!>q!dkP^%-{Vf)BTne&2r2sN5K@@$aZ)WOHSC0{ zoYeVF+^sqey7;wG?DzDAtSVuMmdR|Gw2pR}^$%KA#zT@yxF0)kr@!lgJ59lTc!-Vf zdIxS8JO>WGV!+8pXP~4R6r)4{nP zSdx4n=TAkso815xRs=PLRMg4(%Xu4`xy#nr2MTHs%6o=+V@!VFhi5`Fi?xxVg?XL? z2Pksr*_lbtWs05_^GjdqXM()qOP;%U%`WjLh{Q|BAmU5nVgosK%fhvW~Rhzz+1!jBa;>E9T zMt$MK!0ZXd3_%8f55*2s|UHPfuuKMp>Dx>Tsnn>_6U*pQJV;KPml>$80`bKw#h3m`nKi1QFg z!Rid5a3vPV*H?PP3-=W~;+;7o4TD8M`BH<1uv)Cwl|3^K#W$4UkD7GEjaQ_L;eI=i z(5qSPN3j{gKh~<+3RAib*H=-)hpV>c2kzlRy$Iz6;@sYe5H23XUw>fnJ@`)Dg+D?1 z+Tz8H2UCg3;kzSJw_3G|T~x?d)Ae?X%GzEl@mghkGb;EUBQ&QXQ>qRaVb7D zm!Z`=lu9DixErV4>d*WqZl4xhXyRpdKXdU_6G zXQIJDf5P}@p5hP4R`j$&u{d@3BR-tsbBOx`@+OSs_$$TV4Pae-y{G-{;uFR~U6z-S z*QL3@wLPl%sZzY=+9YrBIkg`z#UE)GA8?DG>=wW4@2d8=l>ea!L^+kjA5G;L7p%<% zn-4I5s@Vk_;)4BJfdv+Cb>*Qy8^0){8r1`J!&g({w;p8M1!rS3l_T-ffGdUToqUVt z>`@E2(mVu6Hd9wXgHi(Ff((b|btw5+0QK}z3=V0B5{b3H)UE6`R09c^_v4J#m zPuL$e;DuYR5;#fm;^%O(4o8`k<~S3x%v1~O7B_z26mXxnfS<5{U)j}<7hfY_(pzHa zEm--5Utz1=trr0>eY@uOsV?YDU_rkN9jKEIcauz&R9UXY1h;i3k}FeWNY|pOE{aL@ z5eTqjEgXq+(#qMc^~hB$uwSjZL#_8gUEiI>5iSJg?xCGvpR62#s{_ytu{@&jaU9hL zDg)KqauM1a0CNYL(_WI1sbK^#INqOjR4yCIB7IL4PGVxjQFm6Ua2K*#jU(T|+OPF& zk^I!D{abJ_x>p^iXl zRhMTdi*WZDPo<0oUSUDxXoSY1NVuNhERT%EXD}Y&)--&Lm#;cP<)eDT(*bdP)ME2 zGq7f6E^C@#gV(P`nZD$iXi9vo1jAMm?|o<~rlLdE$I1ril_&L8KpW-ySFC6>8f^Zc z#J{fj^Ze%SQ7}f@O1u26miZ*^NXw?@UKHTc6Ep5z$@6|(f?0K4%`$N_&ctTCF9LoZ zk~rfqR?nydP%viP%^zqEKK}9X2(l`XoC}#yq_>jvm~lOT8i>ki?07H{EvZHNlKsq&T69@eUx^d&>QCgk+E8(cTLU%=Hz&U% zy1CLwo#Cd+Z9gF+b(|YT&R+*u+^awW6_y6hZ{TB#3}@4bwYnJfM}y%38}i7X>O?!+ z(6|ts(BE~TFV2AWrPcr%=dqYoPG_!04ty7Y+mlWUM4rNDOz5}FWi95Tz-BHZWz~=b zY=>)dNyCM>*mcHKX_h&-*2o6FKmo4<@a%9Se|(h}W9Jof%kbi5f6Y2!Ki;>`O~)pM z;;WI4G(iS0d%_4H0)mDcdtjpA3JD_v?vxMKf#`{>}D{dwD)-os1{dx#hDIYfK~%_a>J4+?`Cz;e6sUWYWc zn7tR8otehakm zIS{n zONo>DQk<2Py?4m3er>%zuEw)Y^kqRz4h zmDA9C?x2FnYX`Qox8nfy=h2EztX3v#syYYH*V{10q5Xm}*-3SD%tv39PB_p_7|R5> zL-wF)7`W?m2>?{wT5|K9+P3)~5`euB*deMt;w918#|ie(vH0XQ!;hWm1Ka`%pDqSNq=iolAYw;{8EX5waW$AW<0lmc8?d|+X#*q3=u-o`>O&6s~V;Zh0sEB6Hp1B*FNNpV)D!G+@v zOKwF1Yd%l2=qeWwT-BB5?z}x$+PjBO2Z);UxNGvE6|n3I@|u$)Ebi`Tj}~P^eA|X7 zQV?vMT&QDgr~wXCUM^IBLZJt!HqMXYuq;|TKD_{iVyw4aG&9i&>bHa1RE!Oe|Gv~B z{PDJQrRItjp;5$ySEHtU%o909c;ex7grd{)>Zz{NQ@qf5A?&xE)(%VPpF7xlio5t@ z;f~!4uzT0|K)%Y0>PIlA)4=%fW%Qsf^q{2bL3^TRw}?fC1e9eNPc7z4z7{iq|E>7H z0sl8*YPE@o(}!W*SNwyQqjW5u7h%G(58}d2c~SGF^q{c039I*;hF8B1+qx@6+uFqK zWybpmM$K0=np6jHAy<4lE^G+|*EM(Nvp3GAJl(_FGO!ql{^_qAm%2+qN||k#d9zGB z(8MA;`fCRZ??p}wgy<$xVGsBtUjg1q@YeJtc6CBu0lR^)8`5KJ*r{IuyOFRPaW%GL zL*VXVPz){RtI!i>0uLGBr!{K+1wR|2=4<%b7&TwV7}kbq!x}pKl?B|0`NSHo(5eOM z+u!eFPOxu#hPuq0c)F8N?4-r%g7$Z)e4lN@k5#vcf8(wAo7MV>NGBpuH2QO$WPxiE zG1}nT^BN7?qy|Yn4mg~WU^)*GGoDQqmmG5Umnv24jM~4@<0-&PakDE^)Tdv{jKx_p zhn?%2zB_yNY_&(tu>Onzv9!xtXSH$99R3tQ?`_15&xdeCVHR#}vxHcTxQK`rg#{z7 zFkxwaq06CeLWC>`+%>reSrvvB)>h%l+LQbw>g(xFm~~-e!ip@Op#htM&dh5As);XW z=5>JjmYEj^zc*f$^cCpqe28y^6pmn4$tPr&T;l9d=bq%gQ)W{ttb4aD!+7Pn~#iXJ{w(9>NV1TpFvu&FOo;%d&>EecoSVtLAR1(|;e& zco&aS;N7+Y|Mziq;vkx)NvV0_5;gzt<65S1aR?w935Eqxr zD&yx>*2aX`1No-q|Pl7mn&6+ zz8!C^F zm|CWuLI*7Rdbl2Rak;D-^7U}>Y+X(V#9g9aN68duTsEurkE-h*Gps$Xh{J2{Tp_f- z805yz8?p9V(TN$~S^aFMj~YCV+RTkrogCJk_51f8)CRJ#8u^gvkgQCfw82bJkEo;` zrj3BdEbzo(*4Un(JGSSku^lf~$Bdc8ZNE71>dT4@40E_Kq_;h|KmLQTQrqdESFQvN ztZ4(PVnt@m$gJCWAd{!+vCPwXr6hIo9I0!9yeaaR7<&* zUXoBEdBvY;N(d$JN(w>x0BUM3T|zOHguRS>wP6jK8jWQv*SVX}vK|oc=ES%L`9&rO z_jK4;IPs%7^ZiT^XI~)-xtsnQCZA|q$6c}f zw=yY!tDz|vuak8SrWWAMP54%s*$X|-f$qvpywph~Dz>R)1uEE7f=Zv#jLY$S>{uXW7+nVMH&~uB6RGr$KAD>QP^13HG$M#Y{X@gKav=Kd>vnwKqmw9I4-eS@QUG&RAGt3KS_ab7le!PZsAwKB z0;hA&C*f6XOmcK?R6dI)H!z0j|T^Y>0iK&Vsv5HN2A8A5cXdjgWHA?fP zsm#j5qwR~h#KbdI1yS#@GxNIgL+m zs~)%0rvWwQlbl;u@P(|VWC0$hVkADGVNno;k2PV;q2_KohC{0I&rLAf=VRiFR~BQ_ zk^qD_Nt2o_I2Pj}fwHI2V3(Z=2`@EzQUPa4Pc$#{x@f0qL1JrG$G|y(B`Z%n`1504uz zRD=s)+D_(GXgh$`+epd~f+tA^H|trkS*-v5W(JPD^o1oN;}G&}W*CppptG5Q=2cLS z)Akt3-J@J=)UR884?!?Pwn=y&@_G$5^GM(SdlmaJ6p8W;{v1`YF9yfXlMdAV|B)5~ zrM_efINbsDq22fG6FC{z*%K<2fkn=mcc}T~kJXFwYApLZuP&nGrl-Q3P>1FC2`pl^D?EoFGbD%N9N zH&MW=y*To>tBBap+E{2kj09Nutf*~*{8CzY6IS1H%K7IfButmn59Nf-^)S%ZPc&C9 zsH1sg!Q{`prs^4Xgv@KIWEBYya)-896>ZkEO^~^4n+s=RcgT}RJ9#mY`Kb?ntTrqG z;wpoRPf^f7etZfW7f1ef#Be@VIMm+Y%BG%n*^lyM&L&5JD9@nqZxMv0ND_p1xBoRk zXYDOPccZ(y1X^FMWdc zu@!H;)Q>D!i+=_T+jP{)2NSgg(^x~;rEc~MV@!bmP#oNKHP3y4ap(h6u&8-Vwsr8!k?)=ln zRth~fMs`2*hy)c4AIk-~D*LHs* znZJs5zswkH^Z!Q2g6AvUY6c{0&q??)Eg0ugG3ecqe(Uw*r(a;G#wpnwu6ZA*U2+C=*MAup2ToKjyONfpQ2MO^4rZst5EX)QwNeccy2f zcGkM)4@UXhHg~(Y)cgf$WC6EWHK#`TTOkakGTmr?^>YhNF5(4>gMp`^=KY*0<9-qG zxZ*VndG!SP-+4>?ezZzgrbOTl6;7A%n6++3hyb#n_57F$Z?EdF#+DoH-P)I8c<@p= z0PvV{S#0MvB{*$OsRC;wo#OuzGW>3Ukj|TN9SfELpNB&Ad_1N~wxR4+y#lrsPheN+tw%%98pxB zpy#2141_)`pJTunm>I8l+Bep-6;=vxW=6~m|;vPxdvXVQe4!|kFR#)6DCZFGdtW12lA z!HWc{nm@?T>`0}}L2Dyd@C!WbCANWowsweLrPq3?8vS<)-|WcA-j(Y#?#{rH-Pp_r znapim>L>VPu$#Cpf_7^->bY~3aq7(62HiC2B74>Y>xc)&Ay zjwfCztt5I*5~3Jba;)^6uVgOluk|j2c_a#K`f3K_l{fKhg{#&F0uMFu2&>s88c37QVBgpQ`I;f%u4W-ynP{`4d;dm2L22OYZgJsC1u-xIG|zXPq` zG12S{EICA4ztinnz1vAG=58)>bofH&+9uObckqEQ!+uca)>dc4nqcl(@D>ku*+ZB+ z?f^PP0|=?AC(#F;L@dhj>jF}ogE?jBF(_(&UQ_k?%xdh;Gd~X}FTr$==f`e#X=n?pqi>%EsRzF9l9Y~I&p>#$*Gut;@APcQ) zc?OnD0EazRfoppzexA}7KgYUA7HpSkwr!(;Pw6T<+vN_4!$D$)u1W{mA3^~ydb*I& z_*72ynyTFctFtE!ySeP>m=b7BB_)or`(Q>QiucqfbC~tcu=$9QZRX0%qs4rmvr9Nc zu%7%B&7dxNvcbDuQS(zfWinFWTa{07gG_;Bb@`L$KFxU|EHiXh+AFXSF(c{akzGtx zVeWu0x?cm3^NjcLa%ymC^djSvnyUAGm1D(C&S|Yz&@gb{X5tl;>McGuRf{b4{3}z?*MRQ`F;MufM0%r@bj}zbCi=;I!r{2osi?9FrIA zi5OP{uw=QOP&WVBa(2E`IHp5-?1F@ay9ZVGN0PrOeQGZdVk4fm43)1QBv6T+1L_XI!`+7MJM-Zl`3;aQPr7`@Fnvp}~eFFXhZ?v78_1;R&#tuGWW ze=D@tsp#y5Hi#}U3q%)*ShWbIGU9L9cl(P05@sq z0Xy|WgdOurOOY_|y%%KAZ+eL zmxbB4J+R~^RE?#2>Jjd|1sz}o#9*0K@nDud3)c61>-$9?UxxlQ!CW@~o8hVl0}Bs9 zfy23JL{MaJ8d@@*4(HM8Qm1@GzBm7C#pJI)fjJ zI#-fuR^xSSQ|no7XtL^feMuH?ViKv_Yt6fv?e+e04l-(?kxgRnt8rWOML@(N#7pmn zZQ5YGipOtZ$+3tcK-%#)F6(nWI#uuC{fw1vzj=0(Yd8!D?_do{ipr;s1huPYF_o%3i4W&+4E#^q_BgGJ!bZlsbHwwcx61!oWV%N+W3=-Kv)WI^4VT_JW`xrA~?DmU*SA^z> zjh#k;weUWup_s^7D2z?qO}G;Rg$0eB4C12ZPpb+!B%W$+4cuvuVNzbGALG+>5lN|! zKlZOnWe!ij(ic=~X-pSr4!YJ13Yt_>nK}Jq+`teI*9EHo>-fs6Z+l1385Wilug<{}V?{LAX@vnf~qYnBw@1xxi z7$0Q80QHBB0DlPFu$H+xT(x??d4q$ACP;Qq>X+aZVg}Bu#;(C|a-c=#uTXNt8B?p; zn@g4w$9Ep)sB1R4z_NQ0qAp|CxhMjoWJhMEBUL6&MRAcsn{VUKCL-9R3c=nhvpvnJ z@`}t{T@R_E1TvX11fuMaV zYs}7M{2vrQ+Jt(#kBPL{g!X)U!98>+XUWoaD97#uX2f^jZ#!3hVMz!ACCPygJB3CxoYXi^K zu|Cja;$QqlYVF1*T3# zlHI!*t63F0qb6Rxh+=;KTnPWGy3iaj*WeU@@o@3?d}>2axz)XMSJT6JaC=d;433cyBhSM58XJu$TTKhTZGqcR`=J7r=ypY=1Rv=_D*VGsw zriMn~bw97po)j$VY{KvfH&PJ$WwOiw_;whJej}^zYXGSCq;}i~%P4}ogRwo7fALt; z&oI0uA~W$(LxgZ7AsDnG*YPJ_#{{^M@ORCAa9G$|=K3$?k)S~2axP3tZp=P%cN`ex zrVzuvF9CbVb>b6|OM#sXOkqYlY!?=T82#Sta9gD?w!sxke1NOSmVo#y@C=`a_q<@i_C#C$YF+N5l3~&mz&TT6Q zOEuvOw|Rr%ZGyxFmh9ke0;#K&NS-YE*#nh5;1t(o3^;f}6HSvX81^M_bAk=m%(?AK zUI>S#mV3HzTLj8W$VG3*R^DFO64{P#p5NrHNNgU+hPu(Kc~M39TE6n{-%U z@lO$Le-6SuZM^(MXF;jFOGnhuiQjDVr~2lq@jIqGq<3_m^6STEMXroel*ta zOQY!|sez|Bk$Hie`7xFG8*b)(nYjmCwu}d^?l-s=Z6*~!>>G$hZ&=JlYESfjC@Jj+ zVCK=28xZXs!PnPhHB-#!#H({*>?hXS2988MW5(-%v>SKHTSB1gIyrKSjfG4+4VKI;PjEUT|jL+sK(JX^F8QPUMtlFiyhacR_Fs^ z*sTG(yP=>kn zTY4s(Gvcf1;`>&ZIJ5^FUf%WXzb*gy`jQ~Gi+vy?L3jUP^Jm|}E-^khu|M(~e-^sHPo(A=vgUd?*_*Iq+NuDFfO4@U%99Ap3AO zU?O>WoV^Ss^APL(vx9+~)|plZp4ql`$X1|AC^_^-8L*RUW7?I7Glr-w>Xo^v{K|WP zEWG}f@04Gj(Nj=m`}`k837e8+Rse}Hlo^8YXc3Up)LF{P2IF%f{}svDy;A1unNL;1agyBhBM^b(#lujgzu~+p5nc)& zE1L@M=BQFxZSJ)ClLAq4Hxqf)+(5C{t5%hX=IsHp(W8r7Ddb55O>POum7viNNnToU zgcy%7ZJuhi%F&7jIl*JKB!2{H*LT0)F)F#q0{fw@3qpCgtt@U#({;EXQ0bF&Ar5MD zCu#woKoBgWhR;jyr)y|9d^J=IuJzP)AHObe=Xtb25s`6^d|sB;nIrWFX@8_48-Yg-(I!ts z;mNy^5&18vMfi-n6%y-C>N<}^Q7r{QSt}O8nxL2Jy{$sM1fQ=c4Ewsm3zgbHf8?R~ z+VP4cdV^TQ6-15;{h&cP+Ws( zGyDrC$_B_U5@siAn36|qpc&_dP;opoiit`O)=_li%j7B!xTrl+e1|E;JI@gQyL@qVS zUYy8<{Yot1?n^39!=Hr{!`&qdkB&4|pMb#pV=N5I&NVXgUx4n^502b`Fvi}~dpg41 zWt9Wc`TF|zpmV}kRg!kNYV!*sa#k+qaPMc36<1A^SI|(fsyfgc+pUT%a)zwDk=#t5 zS-!eIe@~ct&0oN3x{e?RXzR(=yRUMCJ~jQ)fg z;yW-W<~x}9XOc=tl9~fLF(>9kRQzja9*2V`dzpDo@S0bpg7)eobinJ$Cx6J{e7nEh zdLf6hUMiXc<82?so?dF0lk1e6nA}|Ba$s`Ha_fY4q3#p|p&fOSnr58bQG%$BB(++h z^&AW3&879y|%a1K&NM8jHT|2LKe&2Qj*TX&V%e z)#it>@8|2_?Gw$Wz=KU>?zf+@SvT1kA~uGZlVTmZnznukI#AXNsU?~p+qvc zcy~|vYNYy7&*IP2YqqF%W9PsQ7ovYNei=Fiw^G)h8$WsoM0i(gPfvN&%!H=e#EL^M z^ac&>;c>kPcS(7C^5K4D;y{c}Ryi~WWKjBG4TRf6L;K~Vmz0Os`zKGBwLWl9IrZW- zFW^GSU)=fAZ>tL>3#>PrKOa@vc0=3oR(ok1Hl_B0A_r+vnuruXoSs zs)?DLH|eDFnCFdTHz%g%&@M{#_|2V*s&;n42QjbzqB%Q1LI9p;zuArVTfX z9L+oh3BbrmnachB6V zVXuM)ePveFrX0fBNElYw+xd(6afj#a+SvGD%;c|n9(4=haM5$Ahg9cnKsJ>9dZK`;NFE&1_1iimNkdqQZ9Sk`3&SE4ziyy zi@x(tZ>_AVJ!lupsJsBq6L$!(qp!-0_AIjEEj6T(&Rc76-oZEyUuB~}dE6MID^QOL zSjNFfklBEX9jxS2CRPaMjIm>Szron*qP-Z?unEK$8W1zyM>Jos1Z`Up#6fO}-lU_u zEu$I1nDIya1rZms6^-BEqs4d_fBjOVJG|m82gHig70`Es2Q9{Y#AH9^!6CQ{QjY(H z0}iGO;h=&1u?7UKO9upF#rg6zy(m`fN64B!g1{}l{Us0F>Mg#DW5$udY%j9Ve}F}n zSn&`!SwE6uBbv7&X#HI=9QQ`ec!8hb&;Z>AiR4zu0Q{A1Wyn9!siqXuFefmo z4kD?=)%>w=8sP$P@D6-fA{72D)z_TSlokIKNLh|lrvVkWN5op z(ZMCMb=c&@%rH#> zO%b3#)HqFjpNt<_o8HP5Prx042w}%S$o^n_r28YV4+5BjbW2Kqd3YDz1_S)1vf&Oe zHXH|Haf@!PVrTW9qr!tBbp2b6e8$&$_8I=g27{IO&DKGYHbeq5?A|R-s9lFzA}=!( zj7Pfg+km-~JNpO)h|nnJ z(uGLJ8wdi$zY1Bbju3XfxGJzY7>lrqdb0JZkVH6@2X^}Y=-c6r{HRoSy)dc zf0V>&H;w{GPq4FKwNvt{0%?NOwE?fy)Uw!M*^n^F&P8}H?$8*?N$I%j5!7-nZH zfEFv@y-Qjv5|yNFazbP(<60sKhR~iw5mc<{RqjszKIM+MGUaX_=8}Gi??diHqO=r= zTtVs-8ZAw&s%c&UA}c}?akV!7Dx`tu;wxFEYA(#*aS*HtOCHjM7Y-=LvjonE^&0Nz z76Kb7D?$J3Z$~qaJFnwpvkYAM&X(x(EM@)T0VLa zXd)7UW*|eLnL`Ac0gbyiffiD-1p3xb$u%~o5_nsn8RHRX_2~$-`pgyRL#EmSedRol zK<|raTcAlq%-9*+8-YF*NNkVfYtJYXspWRtBdIQn%eHlXf==L(cW1vxsLK-Hy*NFF z%!e@I6K_*YXuIw7G=_4yE(VFx&96eI32Fz)-$8@}JNGqM%F21vEt3LXpX3(DY4ivV zpBUwn=~I#$K&)(M%gYRKPgeICF48MRYFy5-{k9cgAXap5RmUTGI=eqGr9U?W^*?iWN&qgm#pWmR|}+ z(3Q;!no8iOasKZqoNOuG8glX#2Puu=Q)n@p9qAEB>mahb+ZC8yVAoDqDhKY zH|`P)G+!ls&1nP#RZrh0XkaSR>b?+^&mbfhQ-1DFEX+GLOnuH`Rfi|?8?50_p>@K?-+Csr9MezZpXyHL0l&Vz$QL2KVROy3! z303hC5T$C>DyUT}B4Bp2^Zw77xpVK`?55?z-}}D5AKPxu-h1YpIdf*_%$YND=i(N6 z)a5AJhlwo}je_#Hj?p!DBA03}q#i&EKCBZ`Z37a5#8T}WtXgufNwps0f<_I=9v}BU zTojP#f7$Z*xaoXB6Joy82YDyp7Nn^|?yuIdGzsjn8uv2&hAn^GFo~7o{C{-U;(P!X z`ON2RD-QX@xO;Gu1bckk*XS4bdb@Ms&@&%=xsQGCAfA%R@Fe9tbt;V9$LKJzqey`< z@#Cjnb1ylKaJbMqWSRqHjb#epBfzUB7*CL%u6vmt!NI$S0TA7Jn8bPcHbUKS3!@~d z#q;GsY22-pVNNNTpgpeV+GcU6d2YBIe4v*TzYRYQ87wZA+X*O3plcPHygbTY3cP3t zg~FSnZlQZ5IYQkS(dDa%zJX(SEm>spBS@}N5zoPx_0qqeK^E%(IdzU<) zN12KCw{!PygOvCa4wJ~`@Hr#Wp ztMa?2Hp`32<8-FHInyM$kB@IK5lT=NnS3F~P;`C39~_K?%Vv4Z%6P);i^MjS z%`!4kxQ>ScSrAp>fJKujkBKtISa7e`Yt(gg)~>H#ZVW_v{R91xc*3ZQgu_sXnTVJr zakI}K8ZcT{)va$^z1)dXw6x> z33#}emQ48=_nhZ6S2g8oDh_$$o5&_K{ouUkfG0$$o@ zYs8EtMoHYz#p?~k?B;{Qx2ke`&}zeGIFc|U(O}q8iDCjtI~tntMies;Oh9oR34g+D zY;Rp!48D2s%7*p^(=L?H^rKpF%>^`BEoMoed#%bEjE3UfH6`(4cMCM4Lp=kb zUNl&c_Xkn?Jt(NGI;poHbpdnGzol$-OHQ1Cp?_KNt)0tw;uaNNO$N z?-@XI>Z3v@g2*|*gvXO#WV4;uair%q0O3O6EBpf?na%N(D>xX3-nN=OLG-IgG#cc7 zXHq*JjG%A<|5l?p;#aLM9vO=D2Ce$nHOs9%7U-nXdg4Qa`p4?12i>A$sHbCV+_O0p zNc4L`@kZ#cJ+j%;+aK)R)QNiW48?=B8-wA52Tixlk3_O%bw)ad24&Mil~GmJ2m3;h zOg5}gydli`U22y4O3fARt*hJ2<(JqE&dzI85oF^*{mI@W%S8&`$bBe=Hjf@q5}CvzeQvuAL>NC4o}zdJc{G%t$N%+ugI(w2EaI zZT?ss_3n?Fvf*;exA~y;qH@bh;T(}Y>8%T zdwoN@>h2D%oS(x501XVU$4N>Tp#TrDLp}O;D2is{u?7ICITsZyPbl6$=78)~3VgG4 zGv6wmB7D>N&6I>>|DyihP5zB)6r(XT(c2GWu~iLO9yINEuRj(*Uo%|!z-)xb8j>Oh zgYh^q83=|qCi=@t0<*}Ls~Kr96Je9I<5(ennVMHw@?ySm+m_b9Ay{_MhEG(TsyZ%eF0W)4jDA(|F9XByP}IRU!x?h- zE=Ly{BOg}XD87-+;h{m2#?{h}n`0J!%3phH499L4xtoPgHH=Jo-a@I!88)b&q9cHu zoJh*oR2~bt^`VVJsCAyxd1ypb-OcowXii~tMCEWTvBWakF*!kx9vm7-gd{t(ZoeE? zbIO?6$I%|mnX*}rrKeoIhg5XD?Uh^Q9II8%r%71sik35vSQHFREeh`YFKl% zBXj8zWCXFwNiP0l`g}F~ztpU4sptCA*2r8uDs|PInt2QHAHIMtZ+xh?7bdz7p7&Ox zH;U|`gpzm#wAR}{7zvowbLa9+T%r$}a%M}ZaARXE>b$Wkas^r=W}Q60j-u}UXnwdN zw@WIp9{THSI95qVi*6TG@qyos2`w^=mGcCLrp;)$m{3`j$O-E+(p8$Sgs##PL1y}@ zW2CPbipMHA!cYO148Jy3P^AI7TM%v-euFBm#{Od(Mh1OPC|p4umzd?4nMXI1DuJ)> zX%6+&s0lK;P3xnv(3tac3|M3|FoUN~K;fnkMFm!Eg+ZS=lP5GX9s#o&j3qjPu~1|v zUOV8A4K_zMcGpz6dgQ~46WO!aLv+6GJ8Swx$UhqWdiuETH8q+ot(|5=S5rr4 z2eoe`;(loO&*#*m+7Y!w7`X%Lj)HlHX(}1zyg#SF8llrIHJcGY3c}GP zW-Spfd3>bo#hkVnx^$c{e{x{~MTvfo=>8y1`9`O<0kt_Z=P!@mmz5jjFUcylPx4?kk2 zu{yjdj4)JN{c1CTpa%KxGYtsa+P5myvnCYWY_+2n1ZsNwTYEl0Q8@G)dEKO9mNmxh z&nCr$=aQlbuo2&T@w*#eg0JBE3V&=p`WmS$;K8`v8$@jnga#2Qr#S=iL<=X;r~u^b zAdgk9DTj;5c;eNhIR9TsG5NKm=*91|0dK-J!6SfU@QbTCjGG|}df6LE@d&&DV|XCx6Ba89{Zgr(#bms=HYS?Q=BXL>$ z3_6uSYtQ6}qB6RaQAT>JuQ-x z$hUSV(I1Jao+!ohnsu$KR$+42c?reSYGlqCbSgiGxJtl`bW(potCLvzv-)>V{nd7~ zcq>g!$1@18R`zK9<*27)=401WjuK^*r?sg*TQBsQh`ZWK9xb07w2=Za2&yG&rv7k3 zH&h^`eRHfW?v8EzPV({QkYiy<-EJtzRNXI!pk-kKQh~!>X(3r zM|u!6l{J^61LMb8Yv;@#log0_ti`$q6F^8Zu1g@p7LSSk0P(DT6$uY)H5ZuCP!Qg` zYqB0y2ic)d0*n`CY4tL;(yu*b8G7MwsfPZjv!a{=cqOXsyBH>tYqlHoz z3MCDQqEZ(M#V(&kr7jd|Fw|oq_@}xJ=h3>&Kdsv^JS+#?YKEjmDnl$T@55n@!l)s8 z=u8#10*w@b>O?SB7N3Q6M_UDkF_G+5c}aX?8wJ5=pq@B!RnzivS{f{Cs;{Xu^;n4U zY)bKzV#)z7hx!p2N=zx{csA}3%G` z(@R0wB?c9(;vhp+yBT!E-b$X4PC3UN=npi3>ew3YJ+29D<@_pdgre38Y??0|nH`vB^!6LAEkIki=|i!);E23d4et#c@?|um`5XzQ-{Y zi#4)j>QJ=CfN@p~rEF%0A5&IZ;RI)O%OxztB0CCKiloAoTG0$4Fvr)trjGHAg+{c2 zS_y1cFotz6bp8E2FJ`a)o(3L^@IbZV6h9G9dr?(#ixtm+Iafttdoo9jdM$aOEf zX(B?#N3||D%`y2%pKVHU8wOQ)U$V|>Ow3gsjGBY~J|_x!w=Z1dTko5r+TWC7WiYsB zlXau$kO~-4%!nL13bn&Bf>D zQ3o~>B_w5T^!9O#*0RqvCP^;UP2&%WOM;V)rbRt6 zCPZo~HEFxr5TXeu;uI1AG%g>)dKjA$2*qO< z>Xll6K?9xw<^P(4e^p{V`~Pf(AI_s@YeUmm9qSg9V`4H4sswUiTRD67Y}wstNWcfzXRWQQ zUNm>5lo9FXE~=WhQmLLB4g2^QB7vK?sB$HiD$CI#`>-(3&t0L~x3VNqfzb%@&E)+l zG4bMD87Ow&|;!I8n8I8o7qz zQ>3W;x6(ALoY$*-${%*!tju<^D%;ID*>29wc5_~~o7LHF&d+vpLAILfud>=nN^UMCQlE*VabPY#S#ZcTCl2D|#6ixSI20f!4kgQpLy>dhpo{Fd^>Fbg z;$ylBhk<528AIjYx^Qx3R-;`wcxn;<06H*;vDrQwPEH(5cYf^Qtw+RFeysTff|7dE zD*0@dyQ9Y?H9vC>PjK|1iAr0Kkpf+pGg87sfFELb=3 zwaOx60uCk_^c)^>C1wX;RJKMdJ&k~b{CESnmRI@W-4uXP6Kq0}Qvzk1YmL_B7vL#{ z^3F@z8m!+<_1Fo3H5X%5YyIlxhH`z~w5qMOy|cq;XsJgDE%~$}gS;I8MN;V~;+hyO zpG7yi9xV5i9N$qYAH^saA1y|P_&LPU<;Wrrb^ub`X`a* zRDCvCa?z6?E&B%AK}NF=J(?1G9!rVD<0-N1iIkZ9WJ+Z4Q48QKzU7utFYd~gV^5Js$=I1yeM3iGds7=( z4P&j2@T`|1lkUv+aV-80Zs>tQM5`Try1k(hPy4jgH8}c@YIn!tOD0K^XW`7V2j%GV z1T{nNn!gOj5j(4SM=(L)h@?YOyMHVBV1Ml?lvLtqDX2;^@^#UTshsTf>7s{C&z|Y% zd?}zRd+u1R?2?ww+AhTKcxir4m4UsC4J#Vjjn=x(hE4;GrM;t%;BmunFo0Bb z5e%Wx#1KM~CO;4q&(xo;w_NR+i!fR%s}a12BO=1j)@7-eWAWAWqgk)2?JBRWt83`! zFklSI{k&~5ge@9|{j(gQh;m>YTxZGi^<#}y4=J^oGq#y)roeT_c)k3m{LvY(!9*yf}4<2hRMokxyBlb{QD7F8R?IPRt%4 zty6(xEjJowp*%iX?58jV{8aNQ3E-d%b@QTQIsbLsEcCI5wr_R!kU36o0hO>U368S&D zc>I4UF%EA6_|&s0@y+K_;)b82?`_5+Q&DwP*gVC0)wS7fxOVg#b?6kZk{!R{~ z`Pa2#V8pzjsim=1vVXJkJ2{Nz-`=pMse>G@QT3$zQI7FW+Dl0-`DU2QjQTnjzfmp; zIfCdTHsMM-@ld}&1Cy#cMt0)S494@}Z^H_4S2XkE9*pqV=lsW6XRw}S2Q(gJ?mLxlmfY?yYFvhks4k+m== zC(yK>POD|S8^C5}apQi(0bITR#Ze!il3_O4K%9l3_A!bM)gX({gKREZxQ1%w48PbN zMAP6WyaUEnx%gsXkA0P3I5LEdLWqT_wRvVhOTJuQe=O$T>MR^@E-I(ZMddy`M$4Ov zGB2^Y$bqD*2A!0y8jXb9TvTqStc~~bRbvi4sKUz?f5g-LgJ{v4Xa(0P-CAneuJ)r_ zvf6W?mML9Ccu0Zh9)q2o06Tj>>})q|YVaQ^(S_rl$NxPg{tMq%j1lpHf)O$CpD8f| z-{x0SV%F_09)#gOHGBS6j z$x$yk>_@hu$^~OcDW`^Llk_$%Qv+50rpw1zE};1_00KE5#{y_PG=R1tv_v1 zfy;p4gR)n0xNB-Nn=QU3HvMLCEI`ss=U35&H*6HKPO@rlt*dQb+1k-5vAnl}%im7> zNvW7lnQ2CU?9W@GROv>C{|d5WM52U-7mjRN zS}$fPRljgnGHv)!TQqqC2rX;r{Uug^tT7u$dwm|xhRE4v!Q)uiDo7_>~>zZ4?>EpiO6wbB=z^$q`f>q`Ry} z%S;z(Hf;v+z?WINss`)X>;susReGzgUgVP5t`Afpw?^Jv#7lpqGt-0JYIf`oHpfeP z(mQS~A<$}oliOBJ+RbwTw(Vdujx3d7sP4kgT%viw8KuxRjVgRgp}|G{$_5N<2Fm^! zo6a<5BSbEPo90S9MT4ERD1$K@WJ})R4_NYN8$GQvx)3#V#tTkB*^0`9ou=JWqZ4Jh zvrY3=JL@Xw;U7C;jhPsVh4BPV1vYn^NW;%C$sS8jX7mmW(HJ8SM&xId=#fCvbn^}J z+N)y1%-wt?-r|nwh_VTCtClTICSP=4?3QxkZ9Q!6$JCDsrJPIht!eidEK-(_Ew8dh z8EI;;{TMMh70Tw56YzkI60-)&bM2m0oo#bG9d&hWp3b`3Hbrmq&0wf6yK39oJgYkD zJZqZUJslm5o|OdYMq68lhaPY7tg2dF>*3v!p4!!Qo`$A&hklj365#O(*&J(7H$mQq zr|=d6Ll^h=cr@4>>I?N+)_0V=*ypHaw0~eHx_rI{R-McS)d2KLk5gJ39_ir-av^v# zJ#y#PWb1*gq0LbJI!?Y!>||{7-7<s<1jukAli6xcZIo@h-rFX6uPn}uCs6sKow4#EzX7a;nh0g7;HJi8eR%NpC zR?e9}2VCdaJm*NB^fbMcHIpwX#@|Edpzvsf_0bT_4u)pcuu%pa9zlaUrG#OneK$B> z6i*6KgOW^Pk!`*-&XLCz!*kv6jfpH8!Esb-SS@27@g>fC<(1Mi!PqNrYqk!)a#SWa zb-^smAN#FM!lk`|Qm=`z7(cKNycAPIYjcp?AuLN~>twFdNkvyz7d?LOt)S6cWoehg zu1ANzAg3|t)ua_rkvLnnY_TrwOy=oKyj|X|Y~``}<7o<-Kj8UZ_|#kto8chK2?+7` z;-7rZikq=|8XoP)&aT?3=L+QZ&gQ3-=*n)s%ud==E?hRfNwifaTi6AXy4<05M?K@v z2RS2PO<=Z9g=Sszqh?MOPzsyvLdEv2^VJ>JZr3a5IXwu3&Kpk1B?oJ}s})v80j;Nd zrL0ma+Fy=mcVc`L?`+FY%fgR`AUsxa9Q@AhQjc#MS@>j;%VI49b-ARR?d5(z0?+o6 zrXg$={uVQboYt+e`JamxX({5|Ei#7=Wag|&2U95~j7-247gq*YwhGh;Z-FNkp*W^@ z*q~vO5eciBLbISpETMh^vkfahOXB}feyAXmtJ=yhOQkrKMWz&ImV`&QAZ~TXRYt15 zC9GgBD(e^5EXG*ney8Q&YPJPYHLWDE^pQpXFm`y3LD%}**2lS|4y&W65F5rMtH$M_ zFw}5xqLbM>082|De|T`zhG5#MyOSnEWRA61Z?iG-43(OrnyOj`LCHtrWU9vVpA#f# zT9#zAeo$x*1dO2}w`A{RJ5o>Zzz$h$+R~T1SzDpgW9#i5l@3oI$v~^4ty_1bVY51( z((Bmr#YxxiVC%O;adZH6J{-xBX^Kows87W+<%G~foq^iDmzqD39J}?y&dR5)@cbx! z9QloE&+lk+oesUSo=Jy8i$^c10BZB3S7+^X330SFd|e*d<-m=hj~!8(dD~8( zO{_OynVF>0)nQ^ZkU%-_l>=)i7H6XHecETlKQil~j07DFVV#%#P8=43CiOX^S)YM9)4c-3^OGD#Qb=iOgDK?^UZoum#z3EPHLapVq;$ zc;3?4R2N!vF>d0$z?&N<-KOvOPAp6 zv(d9i6sCZWD0R#VQH!8!&2BS0$G){)Cft#(?i_j}zLvsFE)@r1%`G&+!=xr_8N156 zx`>}Wd$BtT*)mL9s2yY4LX#eeBcFAQ^wvD8lzx4OZ6K}P!M^zJ2D)s~@tUSP*_CtOrnQcV946SOvG z(%eDC+EDN}$4{$5>LM3kRt@jSpz`v{Ei%0b55h|4g?2O~g8dqUa`CLn>Z!E+LM4#P zTf{@zN!xH*MoQ@jek4B?PidK2E!WTx!h0vAx}Y7lOEi91k+#izG8>j+f_;7ToCd;T z78eMu)Z9hhIyFYF1gZx$0$FnChN>on*5D$e0?df%%`Qh%W6hX&gi6NekjftjkoYua zF*Mp}UdI9@`svgQ8R1aX%@MX-vrZ{#1BZ0&^*fwegfr=*v<(tm(G4s$l*DO0r%r_j zgECIeVRB}a8PCSbLfmS)R!k9gQiU}+bOmRU!&w~HqE!#aN5|K;Y1=Ka8GNN#SH-n- ztr~-ao&IU_RsGSzfG7mjdp2h$UqzL@bt)uJlWlUFuj+6Xiuh)9Z5iXDXn-{Vv6>weJ{A8y?y+b%1i5_KwwWkInhcpK%{j~X#DRF#QUZ-=4*7cV7Dqq=R4ZiA*RcLA$ zunjybbQK|+;I_P$H>?i)8VR-~b&D0af6=95^Y}k$Ch^;%l2k>G^QH9{2fUBh@nxGL3c8gIsxa zF>$3sMWAC^+Z+Ns*zgul+R{k|)?SbALbQBAWF>Qd?8yxh6NOl>b#_-7KuzXQ(n=bwF=@cVAJTsz z%fP%z6uUfG)3Ioj*pe55H1WYRtaYs)IjpG=Iw^#r^i~ibidmqR2ORlfso%L3p9eEi z1ZE2e>&pob>w)$wx-`#2Aht?Ly#j@gC0~tcmxFDu_M2pp?efxo3TxiMzAnU+96hKK z9t%9GZK#6G`j`IPX za#NjBQ`3!)8kE`!5(g3G1z^x$GnrKo2u=^s>}o*(GUsX+}yt zuS1(pQrK22NyYuB_N^Quq`B6Gu z6qbeGhC%%7L=Kym4Z#VsA%f(-d+p^O2TNDJ=t0zBbk0Ur{m7C282ag?SpoBNc1ool zNB%B7T8p0?AtK)iDzUX<5u@g8m00?f{*_C)NN4v?q|@UTDpvJ4>?muMhbB=Y&XwLd zsn+dFx|4DW3^v>+_>X~84gxqIw7hZwLP?GbRAnd{SNn2XX!?$whIrQk_NVdCB2Q~> zY9qT84dQ_{dFU|q#Nw>bEfeV_0Iu@L{SDGTrY&+1E%N~gOJ$7|Rl%o5@7(15SqU^c znjl)qWcQWn=m}vikI8-78f@e(>o22F3hUFsS_zUR;1A=002T!;_=8wO0ujZyGW{+ zIK~=1lDONYnsV@FKx@aJY~mKdvD4#VPg)y>A0r20saLxlSmTwp9hMp`k)=9Sg}CUB zgTyVLCXlv{i)713dXk%(t#oSNah(;DwN{_xfDAV=W9uvHBXKuTz48IrWBXNF?;1JzC$C897QQE_y>KIHWXGL-f z+;*msnP5*P6QCJ+sqNuq5b~GB7g$-p=+R2MhRl)atXGlPS;JJQzHg`F(Fvkja*!zG z*Qy6WXxMTHFHzEBXjZOrj9FNuwDxIoy}HjC<*6#Y>8)<`(Xg3x+>B^ZSIvEu&tsWy z8TxXv!cz}y5i;_J^UX#<8zXWq)E;`CBT46zMgeMFZjKyg;>Zq6x70cRmCh&Lb;Z6X z-Z+ep-HvU)JSgWOF3;RfhknKTnXRdi3JxesX{WRKv52J?chyyuQcNX`NBVhBHGc8_ z4YwRtzg4PpZU6x>*R*`Tk8`y11D$N;yt$1`3ng&j?coiJTv_mvp6rBWBS^y0`A~3( zyB$Uq448hN655NV6pOR?+v?YmU{VB4ZE!Fm!XGTH+K~oDWJ#ZG{~21Snj3j~19<%` z9{lo1uh)a7=RwfKGY}6YJU9YLf28+@wE{Yq1uuQ2rwlxDnD!vL;Gv+R?ys5(FSD@1 zdTQol?;xa-fP(j3Daveg${pABLRJAZWKPD+FQYnTY!20Z{P)hbXFPfGrrI+tkXVgcjiXR- zj)By&zwpQ`8y?4N1kk&=L9iWgSS=c4(90+RoKZXxLPq@lTSmk=w~dG+|1%=ay<(!Gf6x{UjKrY*ne9T71-5e+SDkpNp+q<>)hHJuJW-%6uhORM#3pU7_4JYUgc0ir*S<14HMZW@hB zn_BSFvZi`$#TD=)ZE3#b z7`&-#X2{Q@019tC(>i9^i9Tz6B=nk^{|Y?OLhn(^<_9C69QAPA>d%ya41RA)?Qeqb z@u}O^vuhr#8?N-IcxWcII`VI_!=HF~3n!8AqwnRcFpAEj`Xlw$5(-~$zihO z!o-aoFP@|lgG5AyhNVnay6n$kQNKUeq?BW(vy10Q7e$?6p-MVJzVe0SQu)jK2-KE0 zf+c^lwlgz$`4HZY%I|HkJV!{PJUDK0Hl6mTXq-lNvb-6|9daFae;aKlNFDz{JCTL` zTag=YJ*>|(6Qfw$^$B}xEv-o>OKpp>=DUH=My$NZ%CmZVhJ8>J^jZ|OFdcxhD}&eM zC3l|J+3iz~B#!AQ9!TXJRaR~}-RbO^D{?-L^mv7bE`Xb_I?F<>e#l(pEKR@K*O8f( z7d2qgo?9xJOJi+QGqrKTzj^K!bq@a477{BSmM}{j)bs9*rI=kH?$!%u7=_i0-l81x z6!%=^%p%9}=a0h*nwnJfESHwG_}RxJ3h-KSKxI%+PFpJ+mBJ2?jM3^-FOP`gKaYq{ z9l`f+_#Vag75G5^91+T{*kLxZ#|d4@R>%u?j+qVHH@lrNXH2>I!8CsAj#$TF>gW}g zYK5O9CZCPmQ#t)*F0THD=OyV~RCtEFKS<9?K{!mZ=*6-0C>Iz}Obm-%^p-nlMJ~@E zj!Ci1URnV#2_t{3ZfVB}g&laavV4=Pylvt6nZgEEWH8-Ccq;9&D4t99}L5 zaHvHs2-xMPB$m~8_WxG7vVo0oc%}zI;F!6YUQURlHf`APwo4bn{n|?x3Qwx&w`SV; zPAPVBRb5v`+}L#Ct*-jz1&9~nqg^I2k$0d;6xlF#<)ua5$cP|leOKW6M~{uRM6@GkAPMC6%! zuA3bHre)00cboYbqS5!QS5S_|tfBW>x^A~b>S$LpTDj{sy^;uLVB$Sr;eE3kkx{|M4D<4ig)fH{`;t*yct`IWwIt2nvnRp59tJ=jD`LR1h?cboh=1x@X2 zm#+L3y>)y~C03M)s61wrCya7D=w<6W3*Ag5J_%h@RbI(EBE~Fl=Cn-nM{{*d%w{%h z@zZO1YNR^+W_i#g{&s%_=|++kS~^UOluwE#0s;{8Ik3Z-Z`D|ZV{+eTE`Y8O^&lov!ADd%_!K0PDe0t zKw7U0%)_F>5@YQE?bCMUE3>t;gk?6B@K7i>Qh5r~D7rdjA60(T4Ap9j-29W74>DI9 z`)UyGXLpiH%i$8z6ET3$R&Jy6v+1>9*vYdtii5s;saTo$Q6rHmR85wh4z<~f)Um`^ zvNj7HCb^~H%7}w4!;f!*C6{XKiLo{X-WBlxOD!I%us2a04WyIJL~8uka_gN9xH-JExks*zlu>M zftB!1GuNpgFKi=A>xXxVQX{VJdiSF|Rtxv6>T1CDdQ9Z#Od-p7Qay06QlBT6l`lL- z3QqEFM>^?CGL^ljb)-GJ|Qe0Sr!AKydx z8uzA!iSIIeH{iP+-_PRvU3`Cz@2mJOL%NgpzV+{hw@JVKZPM?4oAmqNCjFteNpGMI z-j4pww@JV3ZPIUeoAle?COx(1x1&Gm3vY*>`qA5=r#=`=^!toHo-EK*I~3_n4A6vK zg)_-?8^-pFmN7JrzF$JaIN?Nf=njl5rN;p^{eyvo^9r2o%ithg8b&*vJBHUt$l(u^ zKJ2xm8Afo_-8MYSfdsT2qfTwuU?Yp%aBCyBg+*}`1{@BaW56MY^}@b6b~g-#g4M#^ zo~?9*eHjIk;5#dDwz(=X zpxI-~N2}SRO zdYQ$FFnI7MhRGS$(lLY7ObCO+WqNQ>-6nmrhYp~Sv>tknhgbIod+{Re^&h}NCORE! z1UuC_+iP1oXl%A#*(={zsb5y*9JWXQZle=ye3ivhxX$2J@w=X!>-L()=R-o%S7rL< zn7+BDZ=UI^HhuF=-vZOO(Dc=szU8K`&h*urz6R5Wr2xs2f)jX`Ua>iM;XGgY+=bP6 zTRDDLSL62roIfK|wc;S&J{);EMmjW0yj^2-dClW5uq6m1--S1 zMMRj3ghT{|C4-CR__POmgJ>qMXKo11t=y5$`pNz_IF0_aai^6L!R6dBWtuksrrsbH zE$QRFPi@Q6qf`@V4_d`02m*5?z`Nn;N@{r?-UUxr^Cegy!9oVrm`?#$ExA-nF4dAt zwd7JgPxZTOdOv=(n^Ny{#?X6pHS2vr<^PxUUM;m*Ewx!KwOK8-IbUjXzSQP?sm=LP zoAaeM=gT^oFS*Q@T;@wI^Cg!BlFNch_1@V^=>M|cAdZ3WHR`(qa2LKS8=Bix^%!)* z8b6gMxAO2$*`DZcjl`+tcGy6fip&o}%VcE2ktJa|Tn(n09v#HHSN%Pqfly+rSr%U6 zE3ZbaP!@QC(>j?Bu>^SoI~3x4L>1n>B>M&?ScrxvBneOJAOkY0G4Z%2ow!XMJ&2uu z^0Xz|)*|U!|6(d3}pF z3CYbMOxTN)UNLI}fqY(mrs9eTy?-zqm}%4*b(9%PXq`pqdiODnYF;DO153`!iGA41 z9GHpI^_hPH4}r(AI|Y+$zNVv6yVVSgkI^LO0gG-+XuAs=R-P-9+hvx?LKEFAFdPa* zjYMzMiZ5wul}wG(6kVm%^3{Td9JXbT%FbTCxyZEW>hOjunpT$hssc55cQU5F7*Pi4 zCC$DCU07D|RUrhw*?J$YQi&JtNT0XIzsWc^6s6yxjabbg$(Img59-ImPrLQ`dxOBx z%_Xbr+bTNi+HeUpbx8cuiIyy1-H2C)Rn#}N<28M>oUsJkgRr%h{MQWKN-PxUt)RRs zoI;`KoxvE6rGXEi3=5$#wgpznK8}6ziCBFIeIdbj0BH}^r#67ND#0}$)>2H5(1!!CVcY?Y zwM~$dng+dkiXaP)@gEK@Xz+UJVDA-d{$zS8mVpYzPOe0xXDjXXpi5dMkynZ@7eTIl za^sRy89vkkF0oUqUe?8z77OwJ_SbHc7=F+u>7(0QT%P;VgN>+aM}jqLz}R?>u_}&c z+c=nLj%?(!&^qcm@kolCUPx1CRL-yR&YO!j#rwQ-3_9?X23<^oTI!_EVAxEf0*dX$ zyRj>J2LogU@p|u#fgbcb)CM{c>niW8f<^1Nu`8;}gB02i&?5^nig)pa;Bn0Q7*5d=&J6$z7laJm(hB1AYc@ z#x$Idb1Ucp@BVMl1C9W00}S5|dcZdT_XGa%b4hUsuz7b<7^fP>OP@~)6Y#|^B*ij7 z@1CUC066i^q}Tzt6L1gUwf82)lYmq1ONy5P8}CnwqSFlHrw=4W8Q`-IB}Fq}@Ar~o z0Ps4%8v(!g{iL`D@R9vVaR6}FV@Yuou=w$$n0mTlR6dy$a{)V^N{UXvf~S)r0XX$1 zNwEuX4LT053WxB~pMB z&&B&T&IBJ%N-PFkQk4=L0KdF2C3XOQX(`^d3ix_$N<0eq-V0OWFyMiUQljuI!?^3> zlsFIY8$Btp63~BTO7sKXeRWD)57_kPx_`dUhO z0C#^K@B9G#_}-Kl0Q5YN5;p?=bbm_h1$+SSe0>J68}F5SmG0x6a?{>p7;}G-5_16` zdNCzB0SEDZkp$q2cwfkEfHzDS5&Hl?K5;}G1Uw3u0<1V;M9erF<(M`i76ZQgo)NJD z@RoB%#16pgN=L+K_rEfMq=+A^|w#<`Hol;NTY_ zH{HJras!_8z=$y5TyJ?{M4U%X_B71j08Olk4*>pfQCi#xShFN8?g9MQ>a=(Ua79;I z90iZ^N28;PCde zIOANyn0#$oEC77z`m|UFIB)~jBml4bIM&$#fBgxpwF6#r6V}@STX$m3{yg*_!1Dkf zxj8NB0blrJS_A-R>_WbP&9`7Z6L9+fAYZ`MpT*h+;7-74C6MC|;qupaK@YfX81(0({D9{H-j@VD;LlT_2fTCy^nf=3?g4x<4SGNUco^^n z0eTO{VM7QL@X95iV&470TMggZz6k;dfWq^AD?*)7Ya7VEauL7PkNr-7)v~$3@fOS)Z=ma!R6e0n5 z^;98t0bX^o5cdIo1n^nFU!DSbz`Lh`z5?Yr74(2tp9XrsVZa37=F>qB_{}pw4|wHt z&;y=xCg=gH&H}v;?G|t@;5TQ09`M}vfFAJofV%*{csA$(L+=GW;8iB*0sjOztrFws zOwa?q0@w*Sd=BUVzjZF?0SC?lJz!%A=mE=SfgbQffYYjAw*lt@uAB{ez(aruz|QkQ z5BN0TeSq)xfFAI5z*hmcmVfxV=np|-~zzUR147s_=)*KYym7?AjEBe&ny&TAK=a!Ar1oGzetD_;4=8%=gl*W zrAvia30S=h`2v0$a2Md3TI37pS&n=G>i}N`ycBR+HQF8ET)=5{kQ;C@U;^+#z}oi|CrxDD_xfV%-h&1kQH{|k5+FtG~l zb%9}=-G=rG7`g~@15Sgfrcd6L?MB{~sd;Bjo=~(iPu|BcX6*jnuz(yT%tx z&!ZG3ZoQ1}a}N)T&jD(D{w1+LoC|-8#@~bc_hR0$INwP> zC*R_K0QjeWGAzCewC11x4K4o>;DgT$iyyk^_cOf-lF7J#!q0}q#wiZ^4c8VFES;ix z_>krz%wd)mI?@!(E2IR(qYe1T;bHMdrw&$v$8)R()>8s$DqkKJH#^f5T(9-C3-~Ym zWmxQT;cw9R`+z^~@5AC-$j>h4-CD+Hfxip*rvWv-;1Moo8E(Cb`<<^0i!)Ag;6pbR ze4_B<<8B;(?Sz6qPSw0j$gr#+DQ=nINLz5@1gpHufWN;uDZV(_fv56*aU!S;eEFG4k#^z#rSXpfKWRo%d;-v>zfSAxFz#=C zZ&G~MMgI*=Ux>OqWoA-b4{}YP|3NMPdB9%<{3l)XAJg>p!2k7}B;Jwdr2mtq4*>u0 zxk>R87yfaL-vNC1yrdZC(oahB-vfNd`;y{AF8VE+{!!rX13u-F@1L6fFz`DuFMigA ze_G=U$HBZ|zI>&N|K*zhdBA@Tc(}*5e%3IW+jBkep9LPnvW*Yg_yF)<1-{FP&u`WI zcL4u;;3vD}E70=o0sbfFC&f2i_`5XzQQ-aMN%0XE|Eo3s!@xfQ{P$h-_iOq>*t1|o zQrdaTu65h;p9lOV;7@k)Z?f_Az;^@xJ!gL^xbGxNL3S+w{P41*IMbE?Njm=>z`t6X z6h0TeRO9ymUs#9vw+nxY#y<+YQIGm}%9sC7yZpc(1U^^(h3MPQHzdWMUG%@z^ydM; zyD=&Dy6|7o_)kKbLX!F#TcR&jx;r z6Q3W^^;b9%@jT#v>B9e1x!T1^#l_A-jD2 zdd%Db{8NZK{g;!z;o5@yZFU*%BpI$xiodyJ_=A?=N#N5TONu@hzFXs82EP7=r1&2f z{*xMCR16z^BVsmA8S?+4%TNaVr#_A{y67)pdJ{A&fq(oHN%5kyjnFvw6gLyDhXJIy z`jbiVQCA++b)9)hsuVB1!$#|NU@jl@Hc2`pTpHs#QZY;RAu;5`* z1j+aU(%k;_q`1N@~gh+_T4EQwv+KY0y|KWaUJj< z{Z>*;amraxsOxGQ@QDYK;;%0JVU52X_}YC*QSU6nRkj}Y0UrcDm)~&^`1y#Be&0!- ze?K#z@}+=(4*0LQ@SoH88L&6&5Leyjs;6)1dRh$p8xJSNk6rqCOzUSI@LzreaatFB zucqGy{3}05iaT8RTQ&Z6;4eoU_cJd1%^JTC_`f`!d)zt*{QXZP#qV9^`=u^l3ivIE z3t#He|3zB=GfqHU;6PH$q6wVU9}7%&j!A!ufqw|`->okBqFTOnz)wS5c$PE&4R-x) z1O7e0zl8D0=KpK$Ti*`+VZ@CuL0i@M72M97CV`EK+xwAb`aj@Xo$g3OHery2JcuNkPyW3cUwEQn`~mnIU?VlY;KLIsfr(q^0pE6VO56oMO5-Vy+r}{uO0yDa zo;y7yLe8?lh8L{m;z;|4G-tjyC4@`guW5bX2>ibh?{0V6(1IpC&fWw3`K2jQ=92Th zEGN~+0pREOQsQe)`&qC@&rgp4zrQ*qe&sAj!LwWlD#K*d^VN$}qR6RlD(CCPT30@# z@vlJ4+o|t@uduR7hBn~;aal?`W4y}Y_TiN9rpZr57In=ceCfa)b|unm7wCJ=JgBUB& zh;^3CG{3Ra>_nR9ibh1lStrEjGOiZpb05-}lSf1|{90XJIsPv!LaC__ynr+-v3B$` zR~vmw>+B8Slcxgj%ttwEM1KYXbzh%8A|7c~t0N;4lh+(K_z}{$=2o zy6ER=`YphZ$C}oYt~z~Kx2@YK|My~z%Vn$XU|U7;M$)8a0d?sx0DO#nad%(S@NrMG^qw_U)0i_W%3c|66< z&!Do@Bh9r~m%Yx(gVH3J4X5cxn!_8@V!AU8m3NX%L;dMSr1?cCEiQ5Cv`y>u9^g;j zg!NFQ)#c6qZ(Y^{z<(0>pSti*YWxx4>+pPPrwf0f#!tq6gU!Id*OmWiI)4xFR}7}b zX)gQ}#+QL-Gw=gptV25Ss~mApwFPN+M6lNFOj{shUM6_m2K=sQTKp(e@B5_Q zNniVrX2}&;H+Jf@z+MkH2>c~m(t^6P)>n*+YnZr2`zsQ_U+Sc%I%&4+#5@!2^vblj z*vTWmg_#hKWx)Ry_#ZpVL3RH# z@mEx-@hI@yfG=~(fcqxChk&~t&zN51^cDS(uhjO-X`jgb*P)L%^-wTD_W{~J@}-Za z#gR-NkJvnDZ^2a#@?+rN@5Emr>w@Z%_M-e1_-yM_Ch)XJWfSdD z$ZQX%*zJM#uWZ6Th0~pB3Qphzln3o=>G=%yW4LTVueJq~k?8B6ON*IKJr_gev3+qW=T`OBddbgL{DQ$G)L+UHs3~{F{N_^wYGs)Kq_8#C<|Cbi?o%CUw{s8c&{46bg;l$@Z!wG1dI0F0u;D6}E z<2SXvqM3-%KbxJF@MXYPJqKURNt=IA^QOISuLGaS`#hw_lOx8S=QG+>H^!jFtUBVz zGSL3GUt|B(Lv+LPd-K1^d6>9G`{uU3kQU#`bKq&b{;K3da?+l<6Ml&^Ves4LalPh2 zd+k1$15YHxW7;{;71ET_4NDHSo?_zGT;Tr+yx)n39Qhrb4fE(i8sCdJ3&fcwe?2Fl zJhlM81^5;hzCq(}1OCgvXS0PSXdVRq=fFSbq$e4kuw^)iG}j-@KBkfkDd5NdDlNX? z*EjVYywteZb!he5Z^4Le2jm@V`EceU?sor64Xp@SpfYTC8@_H*5MC zXuLo8Bc981(GO|;ECzli_V-=w!Y4F-9q`wTf!_xFi@@iySGNQI8ukt5@*DR7|G7V< z#htGF@6h=l1pa;4XE@bWz6rW~Dd120OFCy|eaxm4Cm^e;x2& z0e-&=|A5AC1AfI{bK`FZ{w3fachP@O)9(ZRZ(5U737zSOd#Y4Hgc{yI%h`&DlRzR0QHe4+8{fWPJ+uvaeny&As__|sp>jlUiE zy};)hkM;rofq&vmtO8_U*{OnG=<)C%@SfK(pLFFf9UgA~zz2c9!iAS>WL$n2z=wd( zW`hX782BT=-{zvfNtbUO@PRkdBH_Ys()ew_KM4G07hVo%#Q%2SPsD!LT=e^Z?*;xr z7rni%aS-?<@E>;Jx9a>;z;_Sh{FZzq(E2-F`^z)RfX9B?yPfr0@Oj;T76bp%NbdHr z4*1pBZ(HrmU#geKh;6`c0v^rK&VLiF*fu z|0M8FI^~z^M-NgVNXN!3#8|NR_k;A?(m}qQm=WFt{ubaLbK&=C9WDdDCLen{U3h!l zd;{<&6bSKY7k($xo4B_f_>TgAms3U>)BlIn%zB{x)046Pc)yE>ZAWNd^*z9sIC&Jz zU{oT+?Rd`Zz<&n#=Uw<8Y5IM@ zw@nrTAugN03{7zU2Z3KP20jJ+Qs7rO>E(6=rk`;>>;v#|CqDlJI{(GMKL|YOMVC*y zIEIN^>ww=6{5B`P7CwrK!H|x&Bh4Au`;DbJEOx6suX5`M%di{x3BaG}#7mc*@%w?# z1HPZ|TE|id;(rMECg8U@>#HEn6-9W%gV@FiLiD<9z@<9&L3`t0#$NQJF8oW3CvxIZ zk2LpTUwVXYXc_u+8xH_qfc@$LC!TyYwTI5c{p*pY4ryGz2BnEI8_wq*r1>n;bUFE` zeRRa*0PxQN|1Bq;czj9npfpF3CV)Njce~2-d0ifwCrm3x%oO|QUHg@ApUUb3ZaVhT z{}jLNvdS1E-Fo-)t_I%Kz`GiFR|D^A;9U*8tATel@c(ZOn6*;=L(3#2H<~`T7D{Mc ze>vlNuezQrlfiM6Kc=Yb-9MBGrt9l*{0mET{3%k9{eJwu^M?}8K0B^0{J+xD?cPf< z5PW1RJg-1|uJ9QzfpJLTi`8|$N;pYfliy1pY!h*P6q&LAX-PnCGk;XUrm4#b3i4bG zzmF=0)_vL!K_5%*+mzxa%G8yxE4Wj^-3sniaKD1jD0oQ0 zqYCoFun=MDTq%dCpijYN3brY@LBXhk+ZEiY;BE!?D!5<4XB0f7;86t)UQ9#&3YrS~ z6kMiYn}Qn@j4HTY!JP{3R&cL^`xSgf!9xljRnXwz9`aYvRM4m3G6mZd+@N4o!R-p} zRB*R~dllTT;4=yyQt+sP#(Y)(3YrS~6kMiYn}Qn@j4HTY!JP{3R&cL^`xSgf!9xlj zRnSkGQP~JWMzeUejmfKB3W|C|h*>U#$maFh?Fp=aesJA_Bg*wHyrm|Jx1a>A8yy+xJ7fN6 z`5MdEAf6XYEFT)!WF5Ri1#AfGEER5sz`j~zc zr91^I60V>W86SSDs!TA7E*yykaTt77y4nGM3@>-UA(ird_4LX!q^5V!#ON(DB(Z#_ zLw0)3S0=#gK5%#@4hQ5{LaDPSB?mv}G6n~kz#%#Di4OP^q&&$3@50Sd2AoCPAK6T= zWX3CoM=P986Ql!?1C?eOoh?Z}tGr(CEU1tPtz$9+L-f{gGae20((9XK%8-0ZPlmcj zU2-OIeZC~ApaRFqMJsT?Xa$aUtBA#;ID7UOpH?&t93?u43S%)jb2{%?9b1|3ZwiLd z7LUP(Ds#ye?-s8YhaE22vZVs2E#q)NK5!9NcoA^~2koiLV{>bSNI~oMA!rX&F3zIT zJI7n?t@O_IR?e9}hfe@SesoG(1^hq zcos6#WI|QtGMTbImW|3~AIWZMpEa}dAIG(?vTDxUdDZh5EUaB#SKrV$`K+}o@!p3E zEK+(01a9~)SZdvI!%!IAB@}SqbX=hamdjH&LpV6wflxnfTsb;NIg*F^wmOpG#ZrOt zNO-_`&w<8qgurj6bJv}B?ca=-Z>~1&yY?@<)C{z_bI7HCo5O$hSFZeNe6(=?NeQg^ zRjxef%-XR&5ni0noucg(IZy0Xa6rK;6}(=-TNT`+pvBSBLAL&3;i!Mmm#&Kn^75`M z$mid5ZMT0vj&clgVaUG#ia)2UIb{t_r}*i(jh9@B8;kKhiT|l?muHM8HXbnK`5XEp zPhqb$4FmrTz#?NsU0sb?wz_91oES1I$-?-`D~I^9@|vnDuW#-wb(@x}RDYH;#96ht zfzP+809igV{bg{GWcuIK$wZ0EvLwbWnf?-NOOok3z97@>Icco)J3efsfBjoB-3Qi= zmHy|SwbJ`fB=uk~)45}%pY}B?{en3%eYfTCWsphvx9+pj-@=<|u?}ek9xHGSi=R{HZVmg%SdAbSN!d0vJTQlE>?l-&&lNKLBd{0QJ~I7lS6k`-c9l$j>zMps`;e7> z#|LHlOG>hFx7yp)D4x{MujsH7d`=&;zOMP2mHyRl$n;+xQ~u~Ttn{CGK&Jm)j(~_P zZ#5oymhx}F z>6B)C(S(->6izq-aAwi?yrPW|YJC2Ldtltg=Zz2X)woXqoK-juhesQQ&q0cU*{9Vq z`M4TnS9k>y7kqL$-74(Dje=Xx89UwALwANLymOeAR`T@-vK(v9Nh!R3X*%IhIp-VWR- zoHK#A8+o(oqM8Yc@?M8*h4cAhYTnJrpl|_SoRODLn1y^{=3RyC3TybHEbn{ZT)2oY ze0lc}x5a$1Anzh%R=9*OmgOBKnq_>kGOvU%wS3W*M^CI4F6WD`yh6IDKkf5Kupw^= zaci9RWnA><`ALG6EOj)`q)eOmB9Zss#O;Dfw;}bGyl%Q!b@D~H*q(P39wgYAcMUOEd-`Jlx8?072J5E(1Q)yW zu0mX~u$#rXGtWomxoqM}(Cp3o14+HU*o%t?^WH}^8(6medHF=sQ$$Y(Jc>HTrkHUP zrjs&fJWUduf5OyhU^MP_;K$MJNmN@T)nwU3$L+%JsaFwtKmGbFn2&o3zc}Gx{NRMA z7~`mF-*XDkQ*S9m4M->L2ip;r@g){uH0d zI-Kw^sId4f*0fPL8$~KU`!qV8s;Fqvg8X6p$U6kmNi`?zC1!c_aOR{%Cv3;>LZfKv zr1$5a4^8L2hCh>Pi#fx*C=o2@i^9AI>7wo=%D0FJR^+cE0%qFeWO{*QDhV#M2+T>X z`Cril7dZ*q6~T)r^rQ~Xt|%`+@^zkq!P1zT_iy~2w3;u@puGJB)GYG;L}_}bP~$T4 zLL^^+FN%zlrcSzSJe^%J;X_d9q~HX~dIH6TCT%=nkkS{KlP<|W8_2wyh;Z#>$>pn* zynE_;N|8qoS5N9Mro5(7wgdUgiQo=sdQ$jQG9yM_4_!p0(Eks4Umhk!b-r7tPE~bv zclC7jO!v^UF%1kbtPYAeD$Ag#qoR(AItaq3fWxAUfPk_i#z{2F#F!sRP>IoqxZ#4L z5(PC8xqsbz=Xs|3yyrX1cfRwTrK;<^%`^+_ z`AoABd6EmGLMIR`iW#~qdx&+0~>vRIzs%RMS>CE2APAS9k#1&2@8 z#T!wn>SWFR;*?uzJd@T7aMU|&+du)n`W2Hk2nf`JEO|+sO${xlCq+wLmhL=?0)po7 zdZ?7~Q?>3q$YNh0d8&729K%oIlB$beiw~>pYFx#;wS=S(Txuox5>FwtE>-m^KGY*9 zJ=M=`LD*6+;F=m5a_ISLHDXf3M6*tngwCnq!EPj2YsEP^7u?_C+UrQM^bhcVcTAhu(ruS=-7?0h-?2C@t%DwJR)W{Lj&Kw25I8< zD5Oc)Lr_7|{wBhKeGx5a--v68&3C!d_9#e0y9cfr`*5gTYLk$$%&te8f7{~`|B<~1 zWqxe`9kqO7^Gl-t*f*iHPwl%Q{mgy`DL=Q{kn0P34AOjQzl!+%eV#xXOIf7>a#UBa zt#Q5bcL4Y+^%>dAL~e*8>we7)y^HfN#S zD{QA`Fm*T-DET2v_#u-HMIya{p-s40E_q%+>TJ+{ZOT>!%jWLWXx&x8;48w zXz$mInTf*FR(U(phjlu&w-{%o=vKi$nInd+wDG@yp>kX-m+n?ViA(n>$sm-fL|wtN z%+kPwyjbobsG&cKwQ_yDV-b_KvVVk4Gka9Pl;<)fcH`JFo`mRJZ${3RbmiwEqP(y2 zmNU&|GCS%d=$kUD!WVJx`g=a z_kByCYMI$VmYE%7Pky6OW_FilX0KUhHkDNRHHPantHkfg4Fm1EJEc0c9 ziH0L;UByy-#JQ2Qzh5O`ZW!$il?)H}Z~$bIY#A$ER_OYcKqiugs)N6#s{6A|&hK~pDD`a^_!9!DW};qEIvnh^oZyeS{D zqY0?#N+c zWlIuY05iubvga|?Z(-k9WwwLivi?xKXX!3f;m}&W_abzJ^AB9(%isv{`YL*JBfpkeIDr6&qlpt)U7o|L>2sTXT**ORA|vZq#RZr78ircVP{t|wv@12Y z>&es80X{l4x9iD?sq2wot>$(;IjKiEB&eL#tZswmc0GBXsIyUXyPlj9r=>S* zZr77j6K6xkt(x2QWSi)=U2_gjUf}md0ncD04M2y+D%f{Naj%pdR8q<9y7K`qj22&{ zR#A65Z$nba?YfgeY$dnrP8C9u@bF^7GAq6Y&XXFR=PT_FySevR2#;QHvDH`-^WQ~S zFZ5AtJnDDS@|Pq8IQr8507(J9J`ZEABoGkjr+WjW1cZ8RAAk}8SzS{ANDIhorxqX- zP_5s9-<4zp6!fwo0NG$E>{PEG&jIAp9IFkc1s@k%kT#f$rVP>j+H&Zj0mmQrXeKsF zHWU$Jp)n@g=ptTW@M+x{YOUaAR5!Jl0GPvlZV~Ud`ah3};TbPIDSQ%<<#>{Br6(s? zf~DW8!&-G-{2M4?rGEMZfGGl2>G7DS(&%!eT3voIeqkxy7H9r7R>0J|5EPBacvhSh zq|dimXZ@EjLB|=&N?&*}oJJoH%crMHnYeL>ebX}%)Ys7g=EL+warT_A*P*x4?UF2C zzVQ5cR(fW@{MGr7F?*(GiDVjz&9|T@(z69mC;lPqm%doaY$v`3Q)&7V!E=DEfSN8t zQDV+vR-6i^JM`;_&b?HLDLFka+)Y)_Vo3|qW6@$uUk@iqUnaoOU6`2D3uE6walYP! zJn2OO68eO}0E=U^NMOZTT>5hTO_b(HBU!G)${m?yXJK6k`wjYMowSC-SsMv166z zZ*RcJs<0o&SgEu<CZjS0mOEh>P^l^S6|%S5+%|(`Wu4}}iO$Sa7+Je}2HX~?mMQ1BJYx?u zgs8)PJ_S^%WWrhCevBq(s#K;2J{P;cpdqSNhW@qEon8-AqkMYUDtAc$)YG8V?i!+6 zmHY%vztSy3A7u&#t#Q9iSucaGa=%B^Tglwt=}zqh)W_(#*5z^IOr5FkyY4Ma+1KQ| z(cMVY&!F$Qzo1?EE590g{*U)VdQZLbhY;D`Jv8F2HSGz$8tv|lNS@2=}?*3 zY!o77{JK`<7I=}vh>@orH^IsbRQfPvu6q&ANONTlQQkaA?ZaVT%N_=QQdS-B%0!BL zvg2T~|9kJr645=G(~Rcjevi({msW%;&?dbTCMc~eW7yKC97#|?;Ooba1*nn^#ZCH2 zh>M?w$)U7bGo0%Khi)#b4+oStS=@X*9ofr< z2nfsZ%Y|0i(2&bsUVn(OQg(}>@8(uaMpvmgFmJOf+6e z$%iME-iA-HOL%fM!`La#$ILc9;J(J!Ct^|yPZ0nk%|(Lvon?qR)nzzWHxSB&Ev17n z8uj)j2u_!x%*DIlYc&30*KZkaO6QszzK9=R5C7__mh8Lb)%J$Uj!(f>3 z907y%cbTj;_$PE~u$()oMkVIAaH6|~YJ9I326}i=>AA=wy%4r1x1bc<9>ehAOaZ>0 zhw&ZG5)kTVF$luh0`le4F0jHm5-w=|c2sz=fckQNZx~)8ph0u~3+I;6$r|;;SX#mk z0Zn=oW~y+WDBG-$B$zK?yuKUDWVk>;izXFLc$t6+dOH^FaG`)!y@pL+Bw(`sh^<{L zpiN(e+QKUYOw$W!`y~R}^#T^KRKOhlOIEt9ile+kb0!IwC+|Sk#a5hTv*8MNB>E_R zI^^N1Qr>^WNoX0amYFyA2IBMK&7}|0f*dB{EmaI#GEBk^=@|gNvA~a{(Qt?5h>Jf= zqu%ODc-~NiZ|kuO@y=FUa!U`v93TFqbQlyeCEbys)Y1c(bfc)~>m%y{?#whm!w~eR zxNgc{02Q0{eJuShX=96N*4>h))rx!UfP36uqqy23FyB}j>OQ{@Rx^7tE|#5vw=26D zh1>S;8&Ij;A06P>eXuUO_B9ybo;?Z1iP>}D48A>lFxq4DNl3yDAWhm=B0jJu!pl?k zH7K*hJ_#*K+X{Pw&^``TXYAg{Rcb!~W0u)TIAYemAHJWn|AD*Ja(g^tde}M4^m+UH zsJFsC8cnLS?=5ikUyd%Uwts+@)YzqHeNTHS=Brx!P?S)x*A2phIr|R8_qKn68vEF@ zkgLx2F_`<>uR_m$_NAz$zuh0T*W159X#)~FpzYiqiPcEd(IdepBCS=4`6y&!RpLzy znsciXZ(*L9RFyafNhVh%-hr9Ut4i#JZ%wI6T#JvXRf%ONy{#(oU5woGs}e7xPcEoR zxG4IBVbXIfR_9vFRkRiZaEm{FB@rJrS8RF#+ro3vLYeh9R3%z~F0M*c!w#1qA5zY(O7wtA9aV`Rpp;9i5}zXFJd^^bo?n&dL@5iZth(4? zQ7>D{Pa%cf7t5Yy=Mhx4gQnT`v6x%6eJG6O*#AITuKjy-xo01OrpD~W@N(b&7P>HQ zKRATl{5_Z_X+MgTfju3$Quabvqs0C@IyG&3kcRdvuwBOf1v;{{vO-@zI= zdn!y*ZoiFsd)TMJT6y~ns9RzCsJGH?hHKt- zk!mPGllv0P8IDpt{|8z&yW=>mjW$KLxPRt4GFs)Cveo?$j0Du5sLdV88DO+JoT%M> zfohI1`8wPsOxa}6Vs{yA7>+e)rF%jF=oo`K-COH{jx}hlJBzxEGiaTAVGigx)7TB} zzu-jS@hZjL;zrpmh9?+wr#p>}JwcUIw#l8ye9cC7m+U!#@|4{zdrqL2~*MtGv?F$(kLX7_ctXn2y*Wve@%?K|0&x!qk(yNowzhx;7!ovM4m8Hu$bX&+%u% zz*`Vda*@5o9f-0VULF2;q$FW|icyL^675T#L}ZqAi^Ou?K(I2#qCY@rz&9{7K5@dc zRq5pz4Aqz5CED;Dl{f*OWO?&2GD5IuvCNIOC(bs}*kiNpiMLHO-nP~De%Xk`6OFrV zw>|N>W?6kd&7<`ZpCfsFvgXv@w)kwnKw)Y{1b$G5Rd5=99-g&MmcdzaJh4!1I z`cc1qwkIpnWL3Hx@DtlRjNWselC{gy-cd|EMak;bsJ&853*l4)o3!^nt7$W^S$li? z0iJKXt3`X4vokI*uvL392ro2)uuXe1?xq=OyY`O5Fb}62*rC1q*q#|C@nY@Gz$6o1 zWZ+WmeTaE7Y&USF_Bsav&NOh1_8!NKAI>tcQ+wMuh-a%B&O2+hciI%dIjRRI+)l@< zWdkoZes`_o@pdY_#K3Pm-pOpjTvd7{jB}mi@%AdbRF%=Wf9!a?qYCG#taPX2@sDHg^YWn62Y)!W-M&lW4j*I({l@=y1af z(8W421!%E5lX_mF6U%{Cx~J0Sb9Ledpw8;^J7!|Tt1H(5t#w=2zDrFF>)fBSzIi(P zFk~C7p6gJdLxVZ&`N~_-3g`EL1Fz442TXm8f#36O;J$C7_Rb|Ld=&M%HzISmRQ2G_ z&vM0umzi5^-yOrDvP{)*eF|I|gUeOOF&MhMkqcL-Gz-bQ4O|pfsx-Hm1y_dWDwXEe zvc7uW+(p>&suVY~ZSH*LzS5v}_ev-gu2H4D6Yg-2qSs%gl24$_#nsd2;x6DD<|cln z%adl|)hffbt-_5LTgTQ6yb}J05fC z8U9q2b5iwP-a&>>7!;zspnNrND8uar72NgovK^+BdiPy4D16GG!PdYNVS}gD zOVB-j6V|2d@SYb!kN#J)cXakve>_}A55$a^y{(#-vGg}_&E8(a<~Hi=jXHlK|t7-1N`Yw1(_5lHZ z(OWPavkz523cuc$;xn1-!*cWNs}!HKWFPT=22r3=eA1HLDi2yxI&~k+lYLCeDATDo z3P6ub1M@m{HT*iet(rr>pi@VnKeA6q%0`{y`k38b!x^bbr~bqGcGUa^H8ktg2v{!r zlr*_Tr}(>**{2J%bE{632SCr%@cCMsPCd>R{7h0}^ge+lA^UUr7NG+&n&(+*!(yEp zPuWg+La|b(e#;u3EB_4jb?Ve()a4hsUNF>JogyJn_IW8~ownk)5RNEs#fNhqF8&-` z_^&R-#d4lTQO-GViQ4s;HrQv`M(=5e>^97mmR*gCmHl@pW82SQIoN5(F#eviUmj*z zzp$IoxaaM6QN|1QgBbWP+RbRvOIGch08&_62|dJK3LPzbHSB~Y+7fo>N zEr@sRUm*>imUp3+>`YA^M)}!!dLX)J$g{{ZKTER>nTd=GWS42>T)0g~c6K-f#mF6L z_Tn;*TD%;`j=iLe^S-Yio(?d#jJ*|VKBCKBDw2HpWmfhwH-WSTJ&`#UCQd+6_4+1Q zB#ReO02*`!9pQ2T7!fd2c4?^@5${6r>@oou5$uQM0$R*iSs@$jR;@8EvMU8l)}Isr zR#ou!yiKoQPp&SdLr>F3ptkIl0;X%8JsM&B>jdC!kNY^%uGfoDfUKY#5b~hXvhjs1ZFO_VmB)D( z7uhG$g~bz%X7OLq9=C)s__7mlyVX8xM@!8FsNK8rzF}dZ; zW^MfXbimU-zt9W+Z2LAG*j4b;@GZNL0kGULXl?kmUD+4NcmIj`Cw#}w9SIb=3pvNX zYge8Dly`p&j|=zORWpDJ?svGK_={b61yH@a2BRT-&y>>O4q=(^+m+Wr*66+pMZ&+@ zxm$sn+(sBQ{J_p|6VU7qhegA`*@a&KwYVR!zQ5bKKLfS8YvAqSK9jG_?ThIn{Lr9w zH(;6nF!?%M7e)#HY3f_-hUnPvUv}lkC}pMlY60lq26eh`A};*Mu1aDgtaUHs^6{~e zt#hBn1}6N(F6|512KP=()!~2a%xIvE?l!KApW3POfHu3|WGSE7xg|hb-5s>c=XUOT zpzZG4hX8$HXSM+%dd$Qo5AesJ(6@ z`^eT(`#$$fuF=|{PrNJHK1XN9A*H3f8!+fYSBrUlIFP_Y>v~boR%PHYtxj8m0_v zR^H760ZX)4wncfpDNP$`tMXo9&xTq&qD^`IFsFqXT|ox8cIC~*M_6iLhw`S;FlD;p zHAF8~UMcI%>WaSsu2h~wSIZgLsk~YAr*Z?=D(_*MxQEUJ*fp$E-bD6IUYAw_Zcttc zyRkx-^4b4J<$Z}E7gp+?Cjo9&-alDUl`dQexK(+#W7LM#y2m2G?aEukyfwP!8o-^( z+skcXPc5Tim-3#VL)Pl5J0abzydCtOg06Z2aF6n~uz|gFdrD%YN{-bz-oJc;4nj^5d-NI0Jp{eaR*quX8;Zt-TB4_&7o5xr@nb?-T0W zY+ylqH&d$$!=uGiixOnj2A7z5a#y*KC#CmYzPy*_l&@w#U#q)pn}833N5d(HuD z*4_~;`BYuH3a~|cBRTn=rVBR$wrcNFI$?`}ZQA=$3E=4lwrlTIBnrhG;pQ%?&l~wOJ^QLrcSgd26(oaWY%iS=i;3%E?7b@fN^xRxpkgap{WU zZeZL@NV$MTad$9|igOu@;vQ!l^KvnhI7MVRFH^u99j;GNVm<@$n<3@86vcgxxNM<_ z6+_s$pi7+)K~aHglPQ|zVedl$YvD3w1pFdEwgy%B3D%;R>(|hes!8Px{B{Ai(8%&5cv7EP%Ez5;5QmYC< zQHx99LB*KVgNjnFc}7|tV=*Td1zhfofHk4%MFAH+BWM=E5(>5;$Td#{XeQ(6oLsz2 zVq^V{MFH2X0|IFXnqHK08H7R6lcz9zPuos{ym60UY4wVZbtHx^aJu|OzZ zEQj|%&ZiXcW|hlZl(-B*(Ti)GxqmpQTlyEJT=Js(+~bOIT=rJ0Cfh=&5;^DEqLeG(LDD-=h~?Z{lyX5lP^IO(P!w=2j4FD&7{?{gB&IPA zcBTI?2_w1CMcJwmlzEh^T@=^AIQl==I8&4v4Wu{~0av>y@p%Ylx!jqAW;|WWgbZ@w zixPf=adZVPSthZVoPJ_CKPXE1$kX&UU(Yh?Gl|Um;vJT=m5KR?j!!*JV!1hG+wlCX zSQMXv8Yu;eqgBbxy`v$KUg4ur#XD(?1jbQ6KFl=w@irId%7C+crWrNlOkzIOJg97G z2`}*M3n}MwP9tZm2N4H`yn8)X~xXu`A1+B*52iTnccq9K{IqWYm%yFOq6~KXxFwQv?+Bt7ib5CZJC9 zw~liy0_w|WP8(+BP8Tp3;7}`fhJXhBRy~rPC1ALAnCEN(jrw!!6LRMW7^xkMv|Ouz zCVdVXkvmtwIDO$I0FwkX>%X9Ha+3v&*C%7Un>#PYhPLGSK4fl6$l=q1_M5jLUx!GZ zpr_62N@*)j1LdaLkHc8~_rL~s@5r4WhS*5zmngYV%C_`3Xr5^T9C-^fH$#9g?`P&N z^7(#dpx?vIS#G9CuGM{U7m%AJV6FahFM!zszN^b{JD8gj>wsSC^gl6-a+io?tL~zG z=L*=SPi1d)2-vQxX}C)z&olZq_R0JhUo(9xl`H@(h*9ac3aP1RW9~A^^j2GHHj7vk z;|r^M+fu)zg)WzD_2;L`XuK;VU;V1o8`ux$mPo$(9jQ^+59XFhzQH?Ex3Pxhg68Zn zk5c-hw&)M68&pN^GATx@gn;iLp61o64^(T9oQ-Hon^sm{?q^F`eJzP^}U3YY5KPIevLG&EQSnj9IY9kYNrZ@UM-&5pMyXCCXO3#O7 z{VP@G87Q}qG6t;lL`JVtnO#8NW;6pajT#l%v5TAmsm zXP0r!{@sCSc|?hqs>h;4a=%HhS()m7=&PE5S(ArHv0?+Oi6_^}adM64noNtwjzi{} zqrG8_F-vx452{H$Af`Qm(Z(B38w$^vVLWb1cmB-hP_}%gBwkP~!^%90DWT^AiM_rU z8};Y!>tK&*O1kGR${wRZ*bz7z&=+;gS9o6rUx5_sFcuSIrMZhr4KQB)XC^SZO~d+^ zvQ-HYe@e>qt10sfj+996>JgA_VSQ0kcVIHF93`DIk}~NW&QhjxhVlt&FZ&dVG6fA=E{8ZCepjXw6%m z++5mS?a4XQFR|YCWFfJ;ro~E5umF=xZFjZe^KGx(fXT7DVEA{u*e29&cePm#*Y=9Z zX#De@$KwXa-hy2CEA3YA>7shid-DB1iY%R7&J4ZY!f3`pyqb&8Uko^e`R%Up$@!OE zV7=(c=>@y%LecIe&p#Wb+FdiC&P!g(fN8N0P|(ZW4Y3BD2~FTD{e2w7D@> z)N15W=uc|3(CtO7oUYy5mY43vUT2{@j6$bt*S6)c{+JCGyRzway8eZTcXEu#v6pF# z<*^>H=H+hOM65+bhmT?4`eUVxb%c+UF zA_7@vVxzLuEsr9eSRR`;04Hk>l(8blhc_!+*(0;xm&e-BDJ$LJc&T>fPnW}|R=MK- zPS;@ z48)^o9P>nu7Z#apc`VZWQ|pJplw!{|r^?uK-4+S=}ifV<*jaqE6ZfJrBd`b#XD`ZbbYY z2EL>iu^ACJV!5B|q`1DpRkkcoa#rkc0e!Ftl8e{qtgNB3=6ZXGh| zYUwTO@8-iKInzxXNMbqMtq%GE77ZMAnMwD2_muM(%9TD0oEr8a#^wqc+a->SZOnr) zj-j*@u+K4@ieHANgE1{j_hwA@VwObvOHJ!A!NWyM9dS`im{!ASc|6h8r!Fu$JQ%60 z)+a}yZSP|8|Bp_}d9SX0uU!%2ZSSXAZhK)DM7%T$r|orQ+t**a!m4OPqaM}bzmIj8 z;z;(vKehf!lq&xFsIG|SgV(N*`QTAKAes+QD(ijx;Ceaiw&}=!_aeoci1=x--nUTi zpftR3vL0};sj92H$~THtPS!Q7l8Xq9H(3uc#%mGd;dkyisA%UIu$9#VQ2n&cM1$jHtG#K8Vtn~J%FMV6 z>mMtvD^|)CmSeDQvC^$b!QDo`VzpdzxzhBv#kfw_c0{o8^>*YpJ5k0=Yd|r>cOmB@ zJ;;tNgNE-E5C5?hhEs{ojpk${3ms^B3{7prxIM)0GZs-4Al!r8F*kEQHCo^A>q z*=>vY#j5nQUG$%}IpC$D8Hn!I));`ivf-=I@?J}eNf?`+gULsw4p%SM?*Di_iecWlL5xVPzC9!)j z)lBb}FS9Dnj^kFxsBq88rfQO^@K3F8I5twDT$S^YKUVJFE|2jyy7DTTf%Z(2eI-s| zrjP)2PK_;0DkV!S5}Xs82}@S1*a=7g+#0))%a4*RKK5(BUCym7 z4qc9gnXp|Wo@v#ZMmSwB0ME1vMYtX1-wz}8E=D|qh&{bAw2Kitf4kfq5odko@ly1Z z%se)0MYKe$P}Z@S(=9dKdu^Op!1^T?L;k7tuOn5j+u_<5$syyozAbw2(Tj6HdvTfU z#hHF)ah2@F>0nkg&$kc5t{`%!@xx|Wv!gY!rB^uy+MI4j8%KTOUMWBU#G-2&xSg>W@b?zKq5HnYWr$MG8m00_Yz^ESEN9ABPx9kF=rjzy~S2(uN`= zZ74$0h8-jg6QWboh8BdT!Q<+RW_S4SbIwhq(JO^EVq$#%g|Xk~=$!XM_pfZ4)bL+N3$vG}mu zfdnJs)Y^B+cHti(AQS={zfnM5h|~Nd1r%JeUHC@{sCUVB;U6ua!M&Tsj1khZT zN>3E9z$M#-e^T;tq+aZj?ZQ8$^gMu-?ml#ae`utF7Jq>UK zi7=8e|KA9^B*I9>MQ6(;5k@j0z;Q3df|N`O@Lhg$o(u#8E{QObDFLBNB8+5-fUH|n z07whSyClL$h61Wx5@94W0tzmPFp}AT1F7C65k@kXre+QJu67Vw*k7J6`Q$wa>Z|{N zWIlNhf+JF65w0fh!88O?M|dM)%m2cAP)*(gNiy22g(3bQP1)8wf`2`ID-UB|LTIrDYAQdgbs~jHGNnr`*;9KpiAp-9KN5+*7c@I(r zgVs1arIP~h0cBS?JfxEX?*V6lPG@Q_An+bgm$lA*niISStna%H&+nxAntV4pJie0x z?*U8sp2N5CQ#i}m6M7ongA{lV4k0qU2PyC#j04>I1oxI!cH{JB?m%DWf{Yk%fsCzl@$cO9GxktlFr5ZxMwns90(=V63z$* zLb^UY9PU|j2?%HgO3#}!Ea^cR8qgeJNe`BJ&75FK4-pX7@W@JfC|;(+aC6ClkUm5T zD7fT6NH>V2-X#Y@dYDKWTyh|!4;3)nB?m(Ku(A_Tf1^tdg!J&T3jms|s_#SD7!{yU zF<|MV5R^EkQLI)jmOd5OCkI0MaLtVRB1B|_10gu6^d11QOK@^E!`MH}hvSVG8Y15% z2SRX)02pa8iy{X?aH`92rVjgy#-OEiIL4y8y$OQTC2YCmKnTtd;JbXGEI3m@=#m2= zm>@;wU2-4=V4UR%J4VHcYRX6G*0emtc1QXpS zsEjZn1Q(Ug#8e=siGudzT`0?P$%GKh6yUpLLI`FF2;FA~0L&JUuffsBV2*?fE}0O5 ziv`rzkO?8UM1Wy}3FgWGY;?(l5OfG=a>;}c%oCNHT{0mA^977|$%GIr5YXb12_d*l zzyy~}2*E-Dc=w$KSR`PwOD2S1v4A%BDl{XwLclb40efJHfOeNm2*FYTb6heZ1k0*8 z36lvSxUI(@5wD-cB_m7-!B0w?pn@ssjtr&X zZe-GpqN4AT2_d*MGX~0qE}0O5O?hq$n&r$}aF?{P#Wd?~$O^i1luESm=NOkVtlk##SIfe+%O@;4HH8A983+9tK#p#g6CDm z4HH7#Fd@VZ6GEKtc%EMsH%tg|-c(#z6*o)>@q1wO=~Z#Vgb+7O2yw%N5I0N+@xBEz zA;b+6LfkMR#0?Wd+%O@;`L5vHs<>f7h#Mw^xM4zw8zzK!CrSYmLV-*O(#yDQtj1jO z|11+iflLU}QtTe4v87MK1lIpH6GE>d6T*+M>2t`05P%7R1%rZ*69$+Nh#c990SzPa z9Uj6Cz=R+wIAlTql8GX8TzE?WCIl|Hd54G7127@n1ypc&HXSHKRPT@p0jLL2gS_hr z)QhMw&j}Yy2n0>eOW0opU_$r_v}|_Bgb;uUfwC5dOb9@EqE?4Y2tfUb+8i<=03A-$ z?vM!~022aHheIZWpvj=c4w(=FFdoWKp?-!5 z0aQq(op8uJnGganA)JVH%rGGYU_xM-INl-71||fSj^iETZD2wW^B5+C089vk+YJ)} zU@akzcaRAIa4;c`caRAIa3mp)caRAo022b?9=qN!ArRnj2bmB8Fd;Oy% z-v-3t4j#1*z=XiH3t#&34a@*c2wc5z1cOWn0hka7n+y{|&}JZxVDJ<`044-_7mi?D zJ`4~{2!uF-A%hT12poiMh6y1669T0;f6G8wc1a316jtoyQA#ixs=lMlg z044-(X4@PxAp~GTAZmBWgb;uU;Z&byArnGyl}f&dG8gB`gaEEnxvgL6kO?6G69U_| z%F^81YPP1oVM1__rB{&&VG`N{jY2*89u z6gnTmKLRiz5asi{tqj0~KvZzZgb;uUfu+ zBMlQmc&p!xZg$Cp5Z+cT6PHUSgz)wnHn-6w6GHftYECUpa{m$DA)wi?IBcx`6!}{W zAH|(D?1WZBT(PN|3beUoLJ02?FwG?sLU?!e*^somWI_n^&c$%GI-AmA@9nGnKE2wUa3OG+p2gMU0G`O9?jjRL+em$v0~k|YS*syXNjI!O+MCnQ;;PI6(~ zUc=d?NhisGu%qTx6y2kUJ3y1 zflu0la76h8B-ayhiM8Xxe|0e~mVOm|s%N18t4Vvn4hkE+Cn5SjqCKc4?ST~5Rzi39 z-=ID4NqYd+7V2=64+52bn2`n;+5_5afT2CO3z}LPp*;v^hXY^-x%~_;F5?ijT+$wd zmy~gm_g&H+fTWOJ6bdtGc&SM8HJ5>V(DhJ5!6ofMxG-@nimG>SLR7dYaRESsOWK3* zashCEm;%LTNUfw4kX%~qGR2jNNqlig1W0IMo^FW%;o_8?qc zO7ETKlJ+3HQowYVM}ERJ0%o|RJqWK7aFL;;`i8Wo-6}Z}Dk`~*M#$3K8;Q*{jZ$(R z#gr(HL`7(6+EF(n=#%y!yjs#{mSF+Ohu;i2U|bX6d=nbhk-nzv}}9{MqAw+a+%S8#zi)TbYSsBqnS_IgYcG6 z!)rAixr9z_c8zqWC>3cB!VTF0Of?jj7`vIXhDj+QCb#rOtc~BJ^?Mp_u}%k|J@^t@ zI(%I?0PR5vvyA1C_8k!Vs&`0x5Ps8|sMR6uK>*qV=4*3Edk}#3fT-Oe?Lh$A1Lo^+_)c*E+5^_N*a^Ac0PVp) zfmS-N7Jxu|K-B4w_8m2>&LQnV0NR6IkZo{Cdk}#3;3%Mt4rvbp z&>l<#+U$__AOP*bBA~6#4&)9%dvFcVc89bF0ca1l0_}9xu}sh&u!da@X%7O>9`J4A z-41CF0?;0C&$P$kOS=JR54bPd>ol^DKzqR2_c^3J2ta#4WM~fp&>l1)rDbRj0?;1N zFutKZ2ta#4X=rE<0?;1tXWR0I_8JqSR1K-g?(4+790(6TLt_8jS!J=h9q zyP-V@Kzl&gVQ3Em&>s8-aIv912ta%A9^gttdk}#3fUwih9t5C0AY5x`4+790_%QA| zLwgW__8C4edby+Jl{ddkpPC0NR6B0rwi(g8;M#w8lO|dk}#3 zfKKv>p*;vdd$13Q@%k)j4+790@JX+4Xb%F=9uS6x_8*r=X8_v`?Lh$AgEs*?4DCSx+5_5Zv7tQ(Kzr~J zq$>^WK>*r=G=@&6p*;vddqB9>&>jS!J)q9(Y@s~}Kzq;!(hY|8AOP*bSip^j_80cZ~h+YIeN0NMk>c0+p* zfcAiDbQs!$0JI0RB<{IMdk}#3fDK$}Xb%F=9z2A^ord-x0PO)M8PFcYxVUmr@4qE6VcrB#YOI*Vod7(MJd-jBdu^)%yC5lmpdb1O=x;iz=h8UOi_y{;C`FS zmrpjf&FIQC1pGS@I8AhPtK6s$s!tCT(X_YSmxTIlq;N3{Vt?ExYss8(whd>FETOP$t6wL2o%3)lZ&N)%XIV` z{qJHrE?=h5vtuk^Ka;R_ork11RnWZ=ip`JX2X2_ybiv?a99OAm0%&3!rh02tF`beS zvzlfdfZsq8?5la9x_SchGQ@T5KnGzgtu0Ep#2t_nhuWs1m`mQ*#Fl=JQodTkB~PT5 zewT5yRsz$c;swpdepr7-0qvJp&SGhPttV1GE$u)ey~2l~inr62?$0>t$H$jOKi=zF`e@)1KE;e0 zGJ%-SF%K$RTEYuFdm80@vT5Xuwe%Wb%~QoO7RslYrV1H4^bbqljL34H2~NBdP>)xc zh_B&UiBE7hlfao^M*oe`6A-PA6dBJ1CvYa1vh*NCADBkQqdu#g$5=C+Wql#zzv3fY zJkUXA{X5EeiZL@j{UXB0QO*l|43`AYJq9@U$g?bQ058 z37*?6#kpN}*$qXRmEc*{0B2d*2b&lzo0Ea&%JLheT^?NV0vz*l6(LfuXx6RU}n#UQbx4;oTtaz0ng zX(jf+3T3;@!&l)1p?22M`(5}M&h!40DUI1rVcVvewk7dMKnh2*u4YgDSV>p)X1pXH zc@v_``=&TsCwOE$izDNd99PV0mGd}o;sJ@B#8~5qJPurjW3@~?ue-c*9tY0Ol-SM# zMesOqZh^%9xELFmiaVTA90$G&vWiiPGnQXm(F3Ow&Qm`70jCqbxI!wMVk*NSASA%S+o@Qh zCBbfB9=vT+u|G=*o4>pQ`rr%)^>Mm(esP6)B1oxxfrj6!+XB@-0v^NhvwsXU>^Tmh zqt)m47^Oe&R{EQmBt+?>Ri#mS-4iRa)Nxc%$Bj>{5EVwN7*pf4@RKXTOJIaC#a8Wl zVnz5z^m0>C>#c~O4acfjGit<9C6uwiI;N;KP7fO`e}DqzIp!_3R?okoh#_i8q~j{1 zDm>v?B&wWSMqw|8*}0l7F^CimN_=nOT_(9}n@_cVI_@bYmr|8XjPAH^dF2dtyc%qp zx)~7@Bx0%Mnt)&+r_v!(~vN*EW#7#Zz){tiaFZvRy6uDO>NI|;m zSIbhI0nUms9}WgBOTC4>XD3*x?%KV~^hy$OGEVkeefqNBq*ID#U#{bPh(ERdZKRXq zQ?W`e1afpK#iL8{7~d;K`IG86FcTqD0!~fw;8HUD2vE)~rFd>Bh^0^o#OI`VY$+A1 zF|akoQ%fa9H~a1KIt;mVaaJG%|GhL!jx5#9v@#LGiKP@zER{tV2bNMiu#}CkoL4#< zZJ;8?|L~KRjG!jc^jZ@gz1>WWBzlF_M86dw4l`M&VTIyRp|@exzH(IP1(@e|`2YAp zq{H8=N#^q%tPz1Z0_3X0;k1Qnc2QuC1G!yCBC1#U1V)*oL4i3-6qpl2fjJ@6&zvj@ z%*i4w zFcnl(u(59RtG#TcI|wGjul7=}!2D`&U|yIuzmppq=KmfOm0AON?64SFEl+rdU6;BSuPEB6`uv(qP(oXaFtJqhnQWkJ}x&&HvDxMsQ zO-y|Y3Dzo}9Ewfq!LvT=)CLwXxuQ3~2E~&@vGYWojfy9SVpHPxBF|>UlS8qoiH`ub zs(#GVCc14`{GHs`1%7{|eg+POiNlXoOh8ix@Z?ZzP)T(bB9F(JJVqzBpbTo2G*0fl z3rRIk4tZsWt>(!guLdDWctkN_ndPx-doyAnj|9bI{u>A@9tn!aqrT>mpm;)nqj)4J zo)q9K9tnyE0s_S&LGhG;Q1M7myhK1&)f52I0`iJSg5sfoYQ-Z#@r;0i;*p?uHsDyP zS3D9F&!wqNgXL{QTyKU&|Bn%nhNdl#?pS`^5x9DZ;nQIpwG1F}co|*WQtx8ENQ}ts zK-f_~CpaQYiLWM)0B96Rpw?lGC63Iouu$!wWTZ&4>T%{7m1D`}R-zoXUWlL!xWBlT z%bF9THGf4}gx`TsRI@FQi4#L{xuY0aYn7W{*G*3P7vl2#aox#@|3T1FZ`C2^d2wc1 zsh&OoV2XfMYJ3lXsfn3LwK~t=)@_S3_Zm~9i>?)Q@YA|3OHZC}v%*3AjN-Dv~v`HTQ`Z{)L#e=z4#Z~46|G+m+a6PM46w}P0kDB z7!Ha*tD9VqW*=GVdiYoJG69a_&*~-@#(Kj*zS@MvExAZQLh)yHlZ#_CU0}KVS>5F2 z`Y{w;{zLShYD)fK6pOwSAh}+WS!x5pO)(J|ubO}~qF$|-6X$7MW>4O1=OA(agq}{` z8qPu3yA+o`YjMGSEG`ma&)Zbaz7Yb;W5;`JlFKPQ`Qz{>2zz(oQb{*^4uSuc+j9Q{ z_e(9&ca%8VPsQOtM@E`82m zCb^gvu)o}+sLh?>g-q3sixj`~t0{96P*ijBuJ8-Q=i$?L$Ju&I-QI}I_axh(JXQ&U zdy_u^2-OR${JtcukXIg7yX5_8wy~fV53+mN1%=1w49DoKjo{}wPtfW!>ngu*8 zpvm&6kV`F+kJt?7u14CXC}%!J}$sfBba5I0AJlf@KXVSTEWVm z5D=k$TkT>2uLua#7)oA^FNY*w^Ee9lr3AAzA0zxL3D?(5M)=nf9%*J879;~i z8BCerxS8g@Tf}1|w#;&=Tk<#dC(yHGClx5+90NMS=sfx0sc47_LXM(X9W0TOU|bJ) z(a`V3NPt!nMGlN26ZEIgij`ex#pq_~viA`a*GIp5nSbicH;z$e<~p zB5f$h=Ib)%@(~-8`Um_uvE8M7A>~{Kts!5c=2VOK9mdck<{}eJY8DKYcuI0??9P$p zW5ocE6rsbA@K(K=;dNV{<5#V znI&iWn63nm>6q(kMw_CmUWGx%s+$-i_K;G0z5_kRs7+E}&!uGaV*(B-`r>nCRKn&8Z|UXRIQZ+Fdh7M?%HdL!nG z>)=6NT^+jV!I+GJ-6>P}2=jr$=N1cpFji#>Z;!Kp2V?zA0n@BQZh)oKx|sOTm(fGS z*Sghv871f%G;m$4>|piQ#R}ZK;yH=aF?YW8gIM&~uHD~`*8U(?`XY+plg7+zFlc8i z#?0S{ieKDa{1Du{>!HZe87mb_cg^uLsO?)Z95CfjZyLbK0IO~l+IdY(?(HxEM6qW2 zZbHfi-Y)Ea87tHC{!+uT|rOp2LQGMEzFFjya|Lr=smFF8TIKf{HD}`R#z~lW7%HfAzK&|kw z)SnHbm3j%;8g;c<9=EBP1;|qGN_)!Ql4e+C*n9F%tsj+vj$>ytMbw_1b4CApcYx7< z`&@^c^ntD~X}i{TNP7mkaV`&d^fOmlFv!gr{F}L=)nHe&!qbvCZR{l`e zKT6W?o@@Mpsb%L2caWQnDTs*H_fpcnYB9;qH^max$=$#uawy04E{=qXB<>wI37Cobgt&igumI{Eq;!r z@rJFZQ)N7Be4O`kJ)MEZm6|knu05Sb?p*2en2mZlkyB1}I)+)jofP*bcu4Pb912uw zP&@W4@aGS--fb#f(_QK4vZ&GzbmhU7exL^wE9Kt#13iL!=cv+sT5i$oE~)fGeQ>28 z>I0Sj2rb>FSN!Jdl|ERkberyZaHZSykYc6Wy>HW_xqFW)ec~&XKKYeOpFF72<1ntT z(VzY5>y_4Lqn2Lt)s|j!pryQjxJHlQ{XpiiOhApOr*zFui*E^6r@-Q!^M4$}RK z=H=#gkRHxGZ&c}!uT(npE0qpCsM6n}Ps{ZuyG*5@nGcMv@vQU_JSiyGwJa7BA>1>s zqs4Nrb?8ILsgl}jj`D8q&bt(OeG+Y@bc|u$wPA&sKCT6l*)yV9Rtd~S2YV9kZDd+cZ^UBsdE zCp#z_I`b}S-ehVX_mZiyvU>!rEY`fq&K+FyCcEz7nm5^p9bEG!``80D-~E-E?>VUE ziRh4x6rH~#QtKLJyIShbhU~Jmf0-_ z6j|{VMOGeAr1YVqE$bB7Lk)hxC{W#Pfz?GlPO&3@Gqyj)j{L1f^f<*HcCa3&*rOsn zVEfa)QgO>c6%WBgP$w0C{tHuaLwChhc^KePNf6DLll8qA6m@nqkF>~qT4x^}RV*%1 zXP;CY1~gBdeOC7tf=|fm?DGxY%=xw7R}=$NVbLl67h7KfCslF$|9b9ubI;D~&fYh> z3y2&GEW3*=mm;Fz4N(*oITaBQ*c)%W*(iqSqQs!$jfjehh{gj2ufzk7Bt#Q6{ydNv z#Ut|neyjUUAfNwyJ}j@Qud3?m>aOa3{gS){d!ORO@X^bfu>b1BO(cw_e4jc*BKy=K z64|G+5@E~x)DfCaYU8)+U~T-j$~HXYArP%D^Hp!rtv-#3l0Vfu6fr74r^GArI3ot# zD;!6%4Mna@G4ulDJI3?l<$5bq3?>ELdu#R5&d;UHRcWqd;3JxqT@KeqSI5a}(48_! zKUX=|Bq_PP#V1VGwl3o#Jz?>q0Dys}8$z=2_Rt!VycfF1d^Jx`a;K(v`Es zx;{>S1$$Lpa;M=9NiHQZ)pz;N!dhXKsky`Om2=JcBhY#(ZCtI`TE z$10r;2BsbUn9j2;tMachs|A&xme!+Zk_hUw1OvOigHf4$O zx6Z*Hx&+*Lr8sYx?Jr{E{gaQP=EDMX@3`G+jli0pTWXiWnJJMiwR=Dxx75xu{@A;f znzRQX#(>^Z3+QdMfZjR_=&iGW-Z~5Dt+P_Sb>@8=TMw?jxy`5}ptsS=0>M^7W?PKU zvcu(mGjFWqk{vE&<~4pECO?FKKBnOVAe-@Dh3t5FQkek&WXH>spATW^9WPHwhONnt zm!~;870&^^;}y_5Ufy>>leZvsCUfP~pzf07zwjJC@>DeFD-HBP!)kRS63Sx-kbrEw zxX)i(I2b9FytuE4v~hLJe?l89m0a8xKx7{gAYR-@GOQe4+{Y(RP8Hm>MR*G2@Zvr` z#Vs#ybqm&K*k*7AvytQ9Ikm<#%)Sj%0teh0@tl)kl;xoY{n3H_mWLD5M-H5$)A<9-wfbT6AVc*JUpSBXX2p7io>2^Mz^)81! zU24(09QGLk=v@x`O#67`x+Fpe%AOHq`O7p7zr~{v6dYi+ZC61)t=CEf6d%&;W=CJ2TwoHWE9QItihk<>LwBF|+pWNq2>wOM_+~-K^ zeGbZz`y6S#&p}Z3IXonDEUFQ4nSBm>q5Dpt8uk3u7_wXcdNF+kP7{HXdG$!00u`D0%z zfRa5X`#J$!k+};k`}zP$_vk*lA;3N|ZLSKiCsxX?i`^r@)s~m-*f+WEMVk`22$Gi| z8IDWD-F_k-!qg=Zcl$}nVkt)4?WY9L5qEp506OAsKP`ZcxZB$V&=Gh083A;}-QF&M zj=0;;37{kH_8$b$5qJA}0d&OOen9{oakpO*Ku6r|9RlcxyZy2NI^u4>B7ly#+dBm? z5qEo+>oCYyhC~gxls;BgkftUz4Xdtz3RNv2`|N>Gwf{XNSn6uXEYwGY?okTaLNx+- z71z4xUNRFR0rD4 z@q`A}W8POWCJd5n2)Gj%EP&FRBSZWg^e$D+lzP9I5Ve_v5A)}tvZ&^wQOd*>ul)-( zOG-lVUX0LaKg|k4{%kcg#~V1_u29FW0$jch^AaGVB}D>l@LUybZx z#AIU{fj3j$!;v@%Y9JK&E%#6qji;M|L4CHV?>sb;h;uw+Pb6xPJP4PJb6f`9&l{wN zqv}?tx-+dj*-FT{2AI6dQFAKqVb)9*Ws=zCWDOXJxF@34bo?>qa_=#uOV)iriCCU+ zTkd<2D=+>x$+hB5&0rpPZVrpnY=(ZWMCQ3+PMo#acyL_{q!pTpQmU_DClFf#-d#(O z;v#F6=Wljb$j`rJb+k@Q^diA1p{LTCjuXt_QJR$_yE zZ2L}PX=q&XMDybs3eXC22FW~&9(Y0xJ)FFP3&@{8)%zKWCBBx#eD(#RgYD6+XX8Qx z6=WLL-R)XqegLFLhq5x<#JEx2+h13A4F&;!s`pfMq*QmKD%92O>P+zN@EcXNh_7cy zr&PaM1vzw3eP@(+M&GQWEGsA5g4E?qIfz=RF6^h9;P--b6E8YVtaO^Vwmb2^qPvhT&q$s0b5|`_8|rEm;2?GPtm?MvxS6ABlrE1evS z>L{gCr^K${Gd58+Ri|W3x_V|uPe2#+RkkP@*2G2afWIcI-E_waZ|XK_ zK04hEAnco=w@b}?JFKF8sOxW}{=?EKON%AmS56w zuSM3U^EBsgEOq}I^gUf^1hLFY_5!|ZlyTut)Rcjw{0K;582YXPtsA(_pBoK#)p8}{ z?s$odYxjJIHBwKm%`) z)9#oCz#2L2&ehjNd9MsOU zaDy|b^HHbAoI#ama|TtO&j$gnJ4*Rn5{Tb{|J)Da587A=$`gF{$X9XfBxRX+k_a9$ z^=KD7%7cY*Zy>p1kr1#F@8Ul&@R9r{{<@obTwv3MVGCX*%#2^0ik40ge zk`>20Xl(^5nRUFAS;sp`$D3jZB31g93DH)MdcgLu80zl|x`y@E(?s zbFcPr0ra_7yFmbb?$sV4fIjzXHwvK7z1mFz=yR`jvjF`_i7)RItze4_i9fNsu!v<@Pq5}C{KOv)t(q)j6t7!wU14* z2Uf_rSNpiwL;(8St35d|3$^KUulDh=r2zD~S9@Bd3)%F!SNpWQ6-d$NUhUKKuLhvc zz1q`-9DVK;u0G|f&%MIc-w8mUd$nf>ZTj4+eRkjmRPa2MxDIP8e?I%Jg6Cds=f?a~ zk?tniONAv>rn|)();H$!w6VT1|8hJ@#@n5Yh*D5#bjebi^dKO#mG+i9I8Lj+n%@3!oz=vF8NP5tG;- z1ke$a*z*GDh)L`P0d&M9_L2ZPViMaSfR32NUKT({Ok%GHpd%)+odPsl9kn2X#CT@$%0dswjq#-7N_-ju#r8x| zV3YXRvrx)Kdu@gIl6CkK!FFV^VZLM?#!J>5u4{-sg!MwC z5wzS~J%oAIEsV2nY~}rI4XnlrnYXZc(8GMNapNOlPbixjK3ep40Zh4dC=L z?eQr>*FYx8pP_id1qb{?3m&Rurm>RgWM=vm|Exzc?uWpiIFaFLgP=3`Jo71_b}2LP z0SDAkR$ZQ=@OXosOKcm(po0{+WSzjnOiCh;{=A{Rj3R-lk6Ae+-_qH<>JG^6*IcQ7s=U7IWth$R!X1EY#@U5n3hsJwJ=Z} zO*F%pR*DBU2C11uuyt*-pO+*aAQ`N>4^5(dMhLQ>#aH2<#Pe#V^N-~wSg;qWw{O8n z)P-M-Oa6lsP>=O^gig%9QW7YiqRsK~jo5$t*9ZdN$+KrIw7v^aEAVRR)7?J4IQo5% z)q40HS~@-ZZLTxqGqmFM{NVpem)_P5C;P_;bw)ly>wBpR=a^01d-1uunwjjqfB5!` z@k76A(m>mK&=$BBssAXF9_^VBID=4~hFTCq#ixRYuy6SxVR%TNO4!KNbGnTa5}(;J z(e=Q)A8dUV)xaF9;1fvVsy+=`5`P4h{NWu|ET#kWQm;x=;_jYnJ7kC8s!EoGch?c% zcKlU`v2}OP{&s2pss_%X?w*w$0q$2{brfe)96xLK9RpIY4RMiy&DsuM0ebDaBpbo$ zkq&#wQtSF86&ubmpf>A<94=IF5U@kUyGoWX?w;Nb-;Jnfm2uf`>hO&M*dyj7=zhbP zAK$y+si&Bd2)f^LkUr$R(a-e=0t}r#y4g30;1MF~gtTrJX~9wLsHJwOcU`OiOGG#A zWZ?=FpGk~=n3h#(R%=dy@{6oy=4x4e*d?->S*>ODMwiHH=0Gj09bEyQADG#!!R=kb z;;i^s;s3KP-z{irc94@LMAzjz1>hV5ZtS)SmjE73O8!}|DJjwaq1Sdgl#CWi(Dg#d zXd#3rBiU!8g$^955i&*#88}npV-RnwajIwf7_u7|VTFtV;U+4?#NxoIaxdF{$+TU8 zXZ}=gKX|($g>uvOdD3>dX?upWU2fW*8sOoU@+Mhwq5i%+5Up~3j$?d7mL;2!lT45c zOP&z$6@iBQAeWKc^|!1SV2QXx{Tg~IU!3gkkd;pM>QTCq?a(s*7LVh!9GH!wu7h6s z^l69NryXvecDQ}o;r3~VyFfeKF5_@dKxIDdaJ!arY4>aSNSy0AkmkBkKTk#5uA2*( z)pZS9yd{4opAUK&)MZ`Vg2TEJxGVg&t z$Y=8ksFc+XH|XOAd7u)1id_de+^&OO0d*ONTc|V+H>vSyhufzeZkKVm=d&elhzClN z^qB%50O28x>@7bV$5Htk!N$N~QGmlkoq7a@U`dGd;w3J0WUy3Tw)BK%6DSK^jf8;e zLYZK>q=Z!m%T!28TrtQUtPJ0bY$-K|*{X6!1IVaf2viGDpkgf3C%pqHWvZM&jR3Wl z>rCXc`xP=N@&uk2hBAStNZVfkgo@LmX=*ru5_~I|6OR`aglgm3%+@b*2Wp<8UP0f7`U`LpP6z`yEJ_hfRYRC3Fy0&Dz&0|=RJJd4B$c>J>k=Bg=f9< z9-ba#DZTR^K0^S#^Bz9ao{n6Xgt)O5o)Khu?7TDgg?JPqu=DO>{o%7*Y_i1Jc@Lix z4|&i6cizM2N~M;(U>KfdlPkUR9-bZS2B3G|!*e8CCd8e0Y$&mOQB3c=vrX>2$MnuS zLGHZA^v*jgnz23amrhpWgtfsTlC8D1o3g~hoHFNsm_E!lYw zUnGFuc@Ho3b2Xx!%kVM*v~w9=E}mxCa$Is_;ys-2oh)n9-U zzavuZpMa{hR}<+YwP~*=QX_!&Y9h6M7Qv1%S?Ah8SUO<2SYxEl#YQ6H)kONmD==pra7Q?D zqyQ>Jzb0~2kh!#96PXb23m}!&JHm~4o@uA`jUDKLt{|A*-G)DL_zGB8hwGGgCN%IUCSHkF-8^vyTa1}L z+AsPdo@XzIRotN_7W zZcdI-+u0ofd}DCm&+@JY#UBM3i#k&b*duCpz<823MrlKQ7 zK>R$M7LbrF0!r~UxN`NINn{Uq!pmQ1c<-N(+2%Qla+OQov14I>3aOQ=S`E&zxkpj1 zhSRe1#-7y4ASSBrA!9Gd@T+2{Y-S>oA6jyxZuU!$E~|PUL(%YD>)`;o_4Iu4ep{Hn#-`wOfj@b_ z&C5-;O%V;_Yw=<313nTGo5=6ld-+}Z%`#9tJ@~x5mH8To^JkCIP4VtO{#0){M31H} z_@Aa0{!dd2|EH-7|EH-%L8`rOs(b;OQpflnAFUhXsY(7+Z#S2Y38Wqyr;_5mNoP>e zr8~AnBjXNo$tgT$Nf`v)Wd>*3ngT~>4wQF?7F7a=$c-2dOoR<@GdeRF3>ZQe!-504f;f4ma^$yO3Rf6V8? zfcw@kwOgG5(#$i|=pvwA!@mG2QkG}PXr>n24ambqFTR+};za?^-7SE&lrW!X@hCiR z)z2e{-(JLAUhX!=!uVsB!Z}39u9U}4zRw)R%)z&vyr%&Str(513~wgzDKM%MwR#KU zAOpal7663;1k|+zij$uqA+D~54f2)}4wivX`wafre%;TWJN5y=;Z*pf{ax*$RQ|Wh*xT$X>QWCDofw zxNK!Mfb3-}48CVCTe%)U_Og{*ku7`K${M8TO($Hoat8pt>4eKxNKW>$l}}J6d)dkW z0NKk{NSoet!euLWqs;SG=)@LCEHEVS3AnG6~CT*v3a+!=T_{u+kzM@(7V0&5+MaV&U} z$YsZ6q=)*Uu7#mM;8Q4ydIOn4!DN_2Rs9wzAv=c&0kw)iC?^A;Os!_NumH7cK2stB z3{(Ns9Eu9ippGRF6QD)?ie=&gOi+JjNikt~xN;ZlksSGN% zWTQBepD%)=-x?{&%pjhAYos|!Ss&`R%0_XtAk~2sFS{=`9nF;NMBBJMC&AluycYoD z<cLx8(?QYDPR++sK7T;>IN7drL74f4}C>Fl}rCsq0z?&!j z7SaQ{;en`G8Xl$L76A|bNiqVug-VSou%gfAP%iUd&V-4+mC z66l8%mwF9lVxuvx}ZAF+bUAglJM8`0UZ zDoOFGpO{iDKu|TaOdkOv>Iv3dBS1n`Gh3|yX*HM?)CrKUzGSw(Qgv|z$Gl?wqHMp! z@{_5-coYd>K~M5x{arT#9l9MYEyNdeuOq1(v#~)zKI<_X8!W(Jb$}^Dq@|f^JArxu z=BOQPcBlZ*QqDJPou&p^9#$V4<~jl>Kk-jEX}?(R@t{7Ea}O|B)|-Wa`#jVgjZ;1d zOm>@dooAEJG+BVZ;2^2qi3Bw$=w7!%=afi%9Fcgcb>9Gbi3%(i7^Lv==EI?8lPiY- z?`7mR%Q8xz5=2X*F{OdBTULtf;SRSDp@LZy~ZTY$1XluUdGmgYuQ#yludkEpcuCqxdS+>IOqSg2mmo$4gGbEUSX|AoLxST#tx>@-qFi{kl6{oE5 zN9f4-%Pyg6E)&_jYb8rc)oHHOr(DVuN<{zRK(c}~uerri^0!RqAIn<>ixJ!tMXj48 zX|q$Q-h#=4S9Clo+DSAYv?r9A6srJ1elhrGp07FjPBNT2jf$m5sGUan>WBD%@?N)#T< z!rT#Xt6~zVv(AZf3BN1AM7#y$jvi%MyM#NOwTjNQcBOR6>F)cgaVQcVE=?aDwW> zb+G$0l-v|8l#-uySzh*=mm@B-VKmM^UxBy}f9GY}o5!r777W)A1;`+=RB~IAii~&T zbrZK|o3Jtozq`EJ{M3Ym1m~sE+POOmzQP7S+*xtTK>G z`#=$MoR0b!F;RSZHpl7Y*+ldytzm)4x06tMSL{7N(U0+`noppE$L#8eh#VB#kC@p0 zGsK(NJ|$J>2jdYF;OF8ePmbUD0)a_L@bdVbFB%q^dU^cL7fU>XTmkSPOG!T)ItN(; zER1~|!iydFaI(sc0zqHxp#2)AsgYucDszAjk8mTwuivbTa3jI5?~;sgLFO;XP<8_@ z8Zy}O56^KEH7fc-sJ`0`&L-vTreuZLSx9E4sfd3=Ikr*tJp3VCO)x_=1 zfn})E`@neQf6UAJE$P5_TIRa2$%-QcXnOf5u^%7(P32E&%V9Cm`F*AX6>xsiy%r*Op@5!yv}+ zEb+GD-dd0lo-IJin|maHIg%}7<%yRW85H;e>b>E)H45p$)dcP~mtj*CHJ)+OGPS=;0Qw}UVB@AI| z@=DLhX?b->S>vT0ikzN51plq`@=DLhbRlPhmsfg5&Is;AnT_6mkm@sSZUt}g@=DLh z3?X#8msfg5&JHvH_q-LM;~(|svr`-CltlVP`_L(gT1bx)EqY0+L@$Bdk8FMDltin5 z?L&Vg%AmSroZw{4v7+qSY9gYagQn^e_=I6(HR)jnA7wjGMcPLx(mqO&_ECzok5Z(4 zlp^h;6lou&Nc$)S;-eIZk5V8$N`dxK@+!w;qK;hUzkv$IF3h9dvAny^1h7be zfOo(&0E@-1i>K!i6(D6D9>3&p)S9^%6+sB#JDKGI^zK#3$&gd#Z^v8K)%x)g5OR%qoQTs1`f(;ElI!&2+tYC~ zeE4isobiH>8+;rTnd6`^tMp?HhF(vMlFLlQp#HT`kvS6e-l!j=V{xb;{3?oBd3i8Z zwXv=M-wyFsAR%^nkYcgCV+pJdl5iaS`xq$R+?b%8u*oN$tYGtjm7a&Qw+`A==fHle zn3s-PzIc87Mj*Ys?=(I%hZfZG^1jpfu=Lk>_IP>UX?%E!DFH9F;O4!T$PU9oe zG%)px3X>$53&F#s=>Gt3N3FmQ>#PlFpUE$>siNqNKTrA<`#F;j`=8`mbc@i^% zV^HQYO#vT;f>KSviGYP%h&aLq6KA|fijcs>Lid?K=gE#`Vp04wq;G ziKYJgL3hB*J5dwM1hBol6E(41R41%AKohO*FlvjE$tdL**<@m*c zyRBjm#^M+5lL4IXXM#sp)PP6nWZWki@uFmMfs2*por8fF zPc96!vXbpkqvRrK*^=+VCKrozT;A(3n3GEaq%mL>{}J=@@?dgV;31Z}9_xl=t0~2I z<&tfFCaC0DSZ=hZx8pg0DVt-L&wA`))ie&k8%#V2DY;hPV<*FSxRsUcx*2YY_uL_< zYK6azV)XLW-{i%9CIq~^{2_UXpHqYF?E~|eyi}Sm@xF8nfXf6Z_1*z8la~un=A8^n zn7l$bsP#TI6~L7N_Rv6Y`8WV8C8fc;i6Xd4Qd+#Hv$m_#ccIY<$;1>`L=o`HkCTT3 zxK@B`KThVNg6sT`A=j#pHJdCUTq(;>$udpgJl!3yIDUw(fm! zpoJ?);8l2^#!@Bu>pVVNRe6wU^2U62sC6Gkl%I9+yU0@i;Z}r&lQ+5F13K@9NtQJu zd24(ktC<8#np}%pswvOMDbL%2T*S6mkyXf-yxm=aY{jQw5_o<<@^|sSv5<7a?{%T{ zq?4`WdR-6SETO+F&Tjw?OkNNclx^aw?d+7#5d z04aJ*D7p;m<@Zr>@^NNN6{)5tU{xz#jsGTuwuCKZfJA3NGg zKBFyQnuKhZJadGQXKmJVUUCH#;W@#dS4OJ-AXF_Z6RMsUsuos}su!fvja6DA1t_d# zQEEl*qyc!*-3>DHPCFU_oa8I<)3Q|VGE{OtNxmuuw#D0wL703^-Z7bgg&PVbUw8LG znc|Nyay|tNMGlv&_4N zOu65iWYxO`c)&|$lkX)t5FhkDLK5B=V59eTO8Nr|g@ipSc_l{3-=(rWK|LN> z;$Zb+Mu87let!6Y{|p?Z93vmon*75xoANmW&offVPvfCDL^1<p@KG&7VoA)>tabuGI zj$edy@1A-jd>@n<%v!&(j z=A7_LfF0(sBKK1>4!ABxwu<2xrlXaL{~3Ut2f(dtX0z-u0Bj`+uB?&G{UDB9m0~MX?B~FBo=$ngz8MT;H1MWff+-?jrEWpC-Ijkf{^LK9G2Shr{Gw#8 zD!UGnu2M3dU<)Z% z;-wuEa)=}i9JES~LkoSB>poAfY6anxy-&6Q`j&KTyD?DBt2XMS6C%gsIEb|E<yEblfJS_j&vpte!Ef+=<0Oy!Qul(Bxjs*{gtHcoPwi;JC0PL6b{6*2PdeQEX(cnpk|^S!l*tcPwa-vRIY2S%#C#e+M zysGjeD96bvRSp0PBq5p4S_|cG)bf*wK@N5lIu3n&s&cgfUHjbe7&&Fr)ncUE0T`__ zRe{!#705M16)-_nZb7!QRDoEnGTqKqPK^f~(TqgDpRHUYkx=_DDEG#SnJShxy*5kb zQ>iSw085V9s*qKc*-Ow-b99Tf_LCT_b5#M0)K%^V&+~N3J+8`cAddN}pc+Z{x++^R zLeDc$vN8l&pRaS?TcK%VKA}pl7T^oAGn*W2w?px_pmKq7tp>#v{{-_D3ss!gGul5u z0T(I1rg#cSS**m0mD&5CKua`GZVecB^a)l@chO3e>9h1C%W{7)8og6+2Vh)HVnV-B zF2V}`K&eOQ9bwDL9Ap!+b~$7Ptio%++4R&_DZcUGOy4+}Y^(6PlhIA7ze%R;2WKkE zHEjC~gN2;q&Pws>NNk>&tcBNuxpPu)lw*xuXAUzIp89UY#FLRLF(E5Cnv+Q@K z_&Y$JXOL9}>E|T#i^Jyu%l#3QWQ7jOAYCJdJXbeFnO6l{>?#7fGxS)AU|@DMKfUNa&$x1 zT2p)|NWU_N<_Ma0n?VjiohuU>sT}0X(6p;ePM3r1fi$l+NVkJbgQIIqagT$1_!#(c zCa2dyHlu^DGj#eKWC3zsZ;*b2lm*s}`DWSmFJ-xt;O2(JB|zcWn^W|xQh0`@<jZ6o(4Ffb{||QmMp+2s(4B)k3Y~V7$ywka7h;N8ZIDF{askA4 zvq6?P$d?A;-VB2*bC7#c=Wp_L>lF_2D|Ff#Ggzt|DeQL!ImJOPMV)sTeIV8|3K@asfEH z(;#O!$W`FzE~7^?9po7F(cK1lu0hI*@9RQi%SKu5BbDk14t0 zcSg4kfWvzY@?r;h^oek@4e}BPnZ%^_fI(jBAO~S`e9#~-bCByWrZ(m<02FkubdVon zOg(H=bCrW!3QM}lAb;&3dttU7G02-7!}207gz{{ZAu4sxwQ zev9H;9ps-Kv?(rWbA>jqiwARhonZy02SgDisT zznRc6KHKbTHBLihz@HBCwmhr{#%+0 za)|XfLjrGq`bhkbpnHOYyaIOO;}nAmLH7&?c>q2Ci8y$u^Bpg_vfMYI&QDWxhEV6b z2Du4B{Vb%X?(Gh;4kZ24X=tixJqYCI5^WEiBD5Hn<4t68@C+c8_I@k^{9CNV49PB?pZ`{EScd#FTw}gXj zaImk#t|pc2PzK%24mJ$E!R2xD}iaa*I{rT%GMplZ{cY-yNLoC-7RL3RmfD$NpXG8|~4KY_>cr zcr~=LR24j~vvuy(%C!c}m#chkUBCtD^x}U!or#t!REF_?sBo9Tesm1nK9ym#9~Slj zgM9!ar%L5AGL9M^HQ4#+mOeVBf&*jkYph%jdwR7Is?Q2e!DL>i{F8t}jk~oS3*L;@ z2RMrPuv3=dg*8sum=!z?v(@1$y;90rmHu36XmRp#e(ir~UQ9hh(G^2fIu{9;m|ili*=Vgk z+uADz+ZVQJsDmwcuvNegbFdW-wh#(4+`(2l*zGV34Ju8+pqCu%XD}=yoV`n||e9w#lE2#FDrrzxsz(+XsS|-{N zEJkZ%9ISG%m!sYjl(D>V2Ri{ApP=9Pf(|&??~(UJmCzHDwj!MWz#J z#U8+dp`gn%0MCCT_PrqfJTI;9#nLR%S4oNgFirN&FGL0_haWFW)atbSx(_fq-x?I1< zVHH(@%l{Mc^t%LaXyv`ag>!|2L|>C+#dy_kYLyT;h**-POR)hfmYRUxTqC89`fsT+ z*vC}A=uYIAO)MWgw~#koir4d`R!gmy98#+_$egXe9_Z-l;5OC@Jx%pW3lBOiXnta? z7z?S}CF!+8l5{iuD=>)`mHw4U()%&KSz26?#UnSp<-XbxzK@m=AvNiiO7J-{UX!D%>v{pCg4DW&~^T?bhIp|)84`9eeaffAFlvP3|77qvPI;?3JW#zXW(j~~7@ zTycbO{}9uELLuo}t+P3kF#I$4Rw8rnVuoYcJsg|h{tgVg$|m9dn{4IMg8ZQ*tr*`b zPK^`_5{IGePPQQFT2oh{Z>su812s%%k~I=bc&iXE5j18|Isd5uDdvTdQ;C+IqPmn> zgGV2Q{46>fDIjeR#z#iK%)l>hYZI8WeJrpk-Pt!~(J@}co%&Arc!*e0L7^ju_jjjo ze>dCOnN4E`D~B&|Wbgt9)4pJu7ztsGQqr$#XYi`FpkOPF*5vSYhzwqbpj|E_UThuz zSh04jVRBYWkzq{YA6#mX#tLIC$gHl8@F-pEIT)dwDPRti-I?Bhc-lB02TMKN6a&6E--Ft)^pn3Bh`s+tW*@IU zijJ)2Ge2eMT6FG(I8PVj(L}tJp&CG3Vx-i~*D|aqM`7wanBx7-cjoCDUqgHRsovFx zqeeHT*Zs}8BoH;W`zC^h{mpWo9Iqv``!*a)xL&8PX;;x>;1o4GO|+|1Fv0)WEP)){ zn$zx@3#f>az?I1Dst2h*HT&5Tu10EioihiZX>12x8=xh+3yFHItgItG8w1MrHT#Y; z)WQtPPxbzb)Vij@xol368r&V^yC1UL*IdOhi8n}m=VDmwYaY%n!K)@#_)#n~UTXHO z1IOQ{H21%vS;9~Cjvff7hp)K2)GX!^w-)*SlwyGr7I5{911~Q(>myy@V@MGsv$a{a z?4K~T!REN0++_qjo! zh;QP=nkA}=7sY1@zp>^L-J5UB5{6^VHLMJ8)64?LiDr2t18-Z*Qgb1{gwwZwpQSDo zSo9n(zsyokLHx<)7|$=EcW0{?1THo31?oJom6J_hrucoZRCA0QOzxf)vt0}EmX*B2 zfLA?cspBz*a-G({n5D`lVvW@tkOVf&w=2UKn6HZ$OLrRqJFHItS z+$grpw;istK5Y=e1S+xgueET#t9|0T%l?QGEaN&oJ zMr^T3%txP~CX4SH@~3(y!-n~KA>!AY%EW% zbA*@Gy7y@qPDSmj9oDA$S|O;_O-C3~tnlPX*lX3bf8^7(zo{!n?Khd)=QZW(+NVnG z^P0*`d8uw*(?AVQpp84vk=tzH^L&TTIT&E)H_31mwz{XG2X(_^OvCH44gX>q9`)ab zN%*L2!)$5vp)HL$xTP@%we-rp#cA2@Y8$Er_-&&R-~`_v(RtrC%JAXD z@>}Thca34q;v8Y>`$p4wr%UI3-N&|Z&w8lQDBx7rd;k&M#OXMOJ`Ve$jlN@Weu}@# zvu#YoGRrl0uC=mJKBVLBd9lkiZyvxfrcjLhm%7xiVb`x}G$a3wE_ED~DUux7C?Q;T&vl((YhF~Y+b=rSuj6?5kuBV_hF?ps|VuEhh{_Y60(zhi{4kt@4>3=P~dqK>@` z``j%xt{)MSQ%?92r`X8#BjkVzm4Zuy^-lIR-RffyaOVgK7`l6Y(+%qH9Fft~ukKb~ zk7cTynsN8s+-=4GfH6Iy!Pm4$)0UGGX@a&}8oAqsiWqG0tVXI32HS~F(Vra7$`s|btrOvL_>kD zZ(|ooAJt$;eYgW%HmadWGqR~e*c{a$D(dcev_t&~Lu*t+Kb`(ahji(vhGq?K?ofAQ z7HnxKpjYAUd8|V{g4n_6207USed@5nUt;R=HAqLD!tcD}_m6DXhDYeJ>1(K<`QbNC zeD6Wh$sWm#<;6kzS{oI3CkhLxEPwJy4_%preuDzPsMi zt!;!@_*1=e&>EPJ4L2{*Vu`tMA%>UzF_PUqcXz9XX;>3D$@h1wX&4O2;Sm<(=O-+g zCzk_~d9v7QnG55peiByM~$9mCr-^m=4Qud;AiZvH8P%(_YnuPsnP4h4q8F8P@;&VYV6IYUeb9 z`8d!9&bM&5Ef{8&3>&dzfKn|OCgzeKLAT;Fp)_6fzS}nIx}VB8T=<(&cL!$s74>l% zR4f!1spBEm74^9q-h(q+2bp92KRWa5nm(<623JmFs!P=$u zW?A~#A`Hh%>t(XRWk-u(F)yo+aV3qRu}Ijyyx!Q;cNeLW(=jpBrGh(XhdrWYb78jAu0T#7UmluXpU>gNg*|P_^!gg@bm(Q%^!h=JB5(rh zTg%L&INGu5QP*MeII~{P>{7MEk3)MBy0y#X#%LT!$o4WXjFQ$8hqjhDw6(;4Ta#Cr z>RWWWy15Q`$~BZJ(n~gcV5FSFjPPc9btq#HT?`DhK&zUZXiLt9G=a^9X1K zUtFpl~i_!VRse7lx{Kka0)u zZ&iD+tf(6#Td+{!R`hdUC-+UQ<>PMDM4gh>L`@_~)cOYo>2H=4VCZ}d)i3);STp9j zHbv^b>K`!zX_LYCb$?kWz+$(ljTj<(v-NdKr+w2uqGuBbjI+x({mn9Dt?tBqPWo?K z)dk?~Uk-drtLyB!O90FMzq{wwR>f1s-}aB_`R}$?8Iu3*?+nRSRS8q_UH_cGXwv&x zYx&-jw2*i!2Y;_4mZF|OBfmPVuBMEc_P1K)&&<@h=9|%TQ44a>iAL4phoxYTe@$LbMkL&RWnb<5##~#(iwE8RqaRZul`Q5FGN8^thFhRo~ zwkn>EKW@MY8s5{YctHNR0n;`7_f{)+(QHlStUPi83b{yIF~F$CiZ-G6Vuu1~8!5in zp%^2Ak%CJcinnTtFLm;7*A!psQ2e~s=1U!lcR^dl;8C_RAD38B9&--=0>&2f6{B~> z08Qd4<%Y!GTyW)EjOk)Q-+XP7w{$=U7wWwd2!<=7g?)`deyal}cwt`?0osk6c(q|+ zUwQizQ%Q&T^%wRv`nj`1eTteF^)>pit3%dii~EMPe!SKp`mv<1(T~qM)E$_bF6tXG zQG-qy;1~5R$&NNILoezpek)c09cnQ2ZE0V5Ex_ILT?eM3Wqo5GgE@E4%N?!@0VOo_ z3f5lpVgIJri6E{m(}MUh;t1kx3WCi~uQP&J$pF`xb!Mop0R(2xtdnhPIQs3v+>AQI z+)eGm%vp7YnGNki{MmKk?BJz7oLwg`;m}%v*mLUQTIlQAg_U#a~EyW`QREDXbFtQ@y!kVd>{uZ`X>S#ESw&{obh!Yg@1fzRZ49a8r$M zML-umKIs&;uoRK@Zmy9-D`>w{?Ku%=9&2Prk)j5*Yidk14;{sD(3+YI%^uwYMuXPW z^x-Wo3`V-}McCigq**WO>QX15+is~z^OzFCKOL^~ty^p45QDqtJ*r!8jqGQ-d)}wI z_15HR1^JNb)>|V7FWo(V>2NI>wAfm!O9tIb%z3cU+pxe_*VL-7x!1s-#PRs3()hG|U+Q{5)L*x;zK2#o&>i^1vBR^7Irft=(4w;7{)m0kaL3u^1jlAG=(1^yW z)5eHWe(`D}zs;0iyxPd`G0HDqZR7`6io-EpU8tq|WQSOwcy*12w`zALUOhm=+d9Nz z#jEQz4A+eFXS}*e!_UDr`xW6a8h)`u@qLYiL(B6Ra#ImS+*2jzh+21Rv2))>i#>() zk+rwN^@lCEhRb$N}$H(`-_Ea6O=cldRir&yiRY{$Dh69ppN=`7ldd|d0BCtB^Q}x15O~vN0L&dY8LLw7=s!Vt8?~tKeTVCZ|OQ8GwP@ILoA!B;yQ`|4|D^3oJXpndI7zzQ@wz} z`bbr^GcwhA(8SGEa^%_F1LxmL@f%KqD^GY%SG*YO8!fVKm@pxBaHVmW_jjs~VFc?d z^$SXH%Vgy?w9>5a;V_?zUKv)ILn-0A1YKgMhF9il&EC)@BfX*0X!g1;H4s7{QJL1- zcT<;ZGG3`{tW0Z%8l(9hbZS$jA@}+&wFC2YQ>7fy0r@aAx4_WlRQe`t*W}y!KMb^8 zAYWXYbY(KjJ;}>;$lFbSJg-u^&E4~EmleJl-pNxHV)hno)iu522)cJC%KAz{?^6|K zQtEB@ZNbd^R7JVAtgG5Xr2nakCNAP}zmndlc)G%@WcRcyM%tdPFad$>?do&D+bWFP z3CsKe_}f-tCb{)kguxO#QxVcG`j+-w_cl$|l}59{!C#&18`?1-|5}mJ%Y^&eF(Ch1 zA+b&xc?qBWwZbe=H@BJr|&mHGg>G_B&5$8-}LvIhT8AX0(@(<lSVS+lKoQ~mX6^>)5n>)>s)K)!Xon8^w!3A)B17tn@Aj!Nmns7$XV0$`q4{Xt7 z#PxrcdK99$xS~Wa)poR(2cFa^w`+y97^YTlfvRg9foy44<$$lPsN}nWm~04-JOVxaW4Rn)bZyp+>~N^)T?n!HcH_^F<)vhXmgF9c_aDoL zQVTFc`9^Xtt9+d9hppYdYOIuhEI&mng&8zImpdUx+5Y&s+{CC)mm%|?auF0m)&-aw zekqp`gdnIDz7uoJPEFkNn>1BN7-dksHd^+*4#TyxyxI^ae&x>c7VTHI`1lgw&hm+e zn7LQW4c&K9LUN4tdCS5(##lpW)E~^F@LEK`8cJD0r z(L%cnWzRWM?!BCp(WKs4Ual#dDwN$>K8S-Kaaaj2-C5qOrKmT}?kqn_yT?;N$=&6$ z{=xTdg~|X9;iFIWcAptS#$UNxl8d= zA|1K`O#fYCIXcV3JR^=N8MfhAG%>PVHYk_fubVJ&Bs4J}>t5gE(5aE-6{ZOtp&eE3 zjQvh&vZdUN_1!u~+fr`4R(O=$25Tud1NN;>7kA`Z%B!>*eb{Lowi;>{*CedJ*N~9q z@QbCJL_NZY#^^ zdFqWWbtUxfwz57Z@PqImAQ@0FqmaG}-E(%CbnriK)5KqpwafvSlF;0Ri;*L9NC(d> zGw#7(yF@fI%goB=gD#Qw%rX;x#S->qEX-z>RqJs9g=j@@%q%-x!%zsWsLw46GfGB< z;Ii}FvI65hbX%!6QU1r$AAYNe+v{;8dl`x2Zp4qJ#hSR?s0^0&=TZ{@`L;`j(tjNI z3q5WAQfij>`@3X~aG*5ow1%Fr%1r6KT~_KN2yc1mq}96Z2eNG!!(>X^%S+7^zJUvh z_EHn(+TJN%c1Nk1V7GOOm)%inyz*x{)%g&7XQ`P%p``br%C0Qjg?{QT&2d!Tg%H+? zQZqX~-)W^db8IRZc&#R^DCh{~F^8~CB}OPh*rO#zp&r(RJ?6lhG+~dGu!Yckb8%Go#+nncH)QuCvaW%jnL1T5za4_gTTA?%ZbuS$7VL)k1h=u>$Fx zHB)qL`mRUz&YPgn_cdm&m_q`VKAg!CSqeF=Ckvd7FL+d=k^FhSZ|JeQvU42LdZRFF zQuvE}6KLAQ+2qT76Sl$UF!9<9qR$(B72Wkpnv=NnP2>=NJgiF~sI4rh_R z>y!D;SsAPm#u6@fyf=IR6NpV2;kD45X1Xil^v35}dm(GuFnw*#Bz5ZcHU#lDXXMZp0>*6;ciNoEb7mC9myI@OoFz(!Xwl}3 zvpL)$OPI}>F=h$VDMn*+W{M8i?}e`it$Z|NrrIq!M*C>S>|{UDrg)jmqZzYgda_OZ z3Z3_8rcRHFr`jZf@>oXRHbda6P4$Pk9?O^w;B9RZp?ExFeD57?>I--ZTO9a}Hn9{> zWO6j`yW3QT;?2lgc5Yk^?7~r(r!qO()!fsjZiOmt%_Q|8+uMfA_GaJ(l#Fj^gYH~@ zYJfl0I{{l6GG;q6X3XMvLp#P?XU0Sdu*v@^22p3GgzG0p@#xlcW%8EBXx7$XAMs;o z$b)&lRReVGauil-zZQdEWWO;l#+yfQj7sb9#=K%@1S4oN*xH!aPp{6lGv2u|&pBM! ziGJOfH(dAf#!f`IHs&>Ih^r1}Z8p)wPI1sT=8ZASJj736Djv>@X?R5!g|sOzu7$LY z>iaIMy!qvkylUOQ2;I;!Kaw|C z!`F8zUgWYl&&&(I?#w-=UW=wu#11jeU0|J*$>&*2ch60o@D1V^effF5Z)$YL+q27> zifNGH^U%NIyljwGZNU^;l4s`R4`~NV9q2Dy-k0SW3;u2w=A^Pbv-^p#$@zecBk*3A z=wZ2&_x&yguqyJxAA?GF&j(n$x1ycza%I$d`e@3&L_hL}!=j+f_cnCpyWC2xnLE0C zRF3a*M{DKS-lf)oul>1lw;9*ovf%n5*DR>s>QWmqs(;K)>HNFVD>^}3(U)=uAM7N*lxxmfm{{P;xraE(ujI-ctexbYxgsjZN#2<& zI^j6UyK?{QB!382*5*oV;h&Y7vOkF^D2%nFjHfKt=1NG3=iBJ7ug&dGt$>p(gs#nP z)`U**@uHfwxkrl6-7`f|khkYLu>&i7GE}H5H$lP7Fs)scZS6~^wXR%qd``RMUAZHS zOD>~yMV3)3ycjC{d0MDHt58#a082jpRPW*FH6KsNe4aLo`ZXQCuhGcoX%i+|)ghnk z{5(DUB9!14T7A5!>+|$6y6abTNUY@Z^cgxSl%cx3+Q21rq z1Q-z<=kda?(lI@}5k}^{c3-89pScc7J`-SFc6c{JQNB*g?UD$Rb*N{cNnfXPwb8?- z5100P(`KXN{th(*y|FiK;&V8J69PHkqzg@au0!n9zI1^zWy#Uhf2B>lZv`~73bt}< zTn59lzvxl0u1Ew33H~2u0G>G98kf_Pn1z=4u8{(RHN#jb$3VfhxH%2=!!k7sR^u55 z{&AVI!O?aH{%M&y8UlINfq!16#)0DJ9QZ%W)T5~X4-WjxGWB<;%<~R>U>U5!3l6km zIjq8q4s`KyH4^l`6c3SXchAn{svl;Y9r6F}+rJL@<#Ima7M$TCc}LydTTmvu(M!U2iz) zmn~OEW0Cr%17EUSROOFxqblo`OKk8@@r;fQZdfjnz_;RgIuf{Xxda^Fj+<5In&p;k zdHw`m#RtI=k0B8KQ!(kw=)ZMeJ`!~LGKPUJWBI9=Sr~6*GkuFg@KolfVy17` zw2SgT6`QD)f0cugHw*_hl&;_i8}U3|jlVo9xgyW4YL{7!Q@M>DD8P5+FU zXu>W8Ps5+Vfu0o;3-Q7?I``4pg#z|QM89XnO7)1@p#AnaSspb{a~+-#px_9cm*uHb zc$gPUvMP7aTb*JM=Eodgq0^H4K!1l+=_QvH?h7F|Mx>Y0?`w)S<~hAI=q%GqjS*+V zv6a2l7%|7<_OwbbHAV&+DYQy2HAW`rUV{71^>lOO&|VrDIkcCKh?rhl*(SX-Dq?!+ z+g9nNQ4!Ni`&)&>Q4!NiKkM+qsEFw$?CsO$v_y=}S=S~uXLQ7|Ic;hN=ou4{^IY)c z+oTuAMq-+N9NeHq85c3Vx~5H?i!K`I_tg*nKN@mT#AwK6ZP1V&OcPCE>5s_kI(H!C^v6ACoBn7D zn^CiJ9{ZyyY(~wBdD0(EVKZv>&z1gY3Y$^0cdqou$gt^;H|EQzIU?*>rSrwgj0&6n z*fLMFz9lSIV&F*IJn%Q#fqLhu&#(#~6E+;)I!~lOHf*H7W1dKVT-Zqejd{|$7DKK%0q7+D$y$-At`i0*hqEb zJS+D%e4PQmb@CTExNhAaE_lf1FnQww$bBT{?&Tqo`@olV?mv5Vb{wEOM~}?qp}g!| zM!jweIeM)}W_!r7HXX{3j_e2-PO+0r>(dc3r?@cnPJ|wHgdA(5=hBXlIW@CGPvxB< zGjcI?S7Yw&3K_3{&;MiYyTjxtj=sBRW_M=u?(ObnT~NAHL^+^z3V?(W2oP`}36u~z zl#xV`kWM5cOb|y90v{j~Otei#1cL|$*?^5P2J_n3fQ@aUF<=8W;rsonXEsRo`+U#$ z*SF7eb6wrl)m7Ei)nR(N@kaMw7#sXODjc8lq~Z7ng&{5P%arNf-=ngKgN8*>c#k*Ltbgt5)FY-~-sAba&XVnh_j|HtVs#xN8-?%pWS!XRnyJ48u?K?G zZ|OGla1RD~57kq!xV6iRk}a$22&1(h1CYKUq|#^M)zFDv`12c$Ah(4A(fcof0?x$% z<0MaR+_1ZzWCbnt{DqQTtE8w7Pj*GZZLHF_H=?8RqRffu`6~St-0U(hT4;eXeApkU zLE$y9huv;?#Wkkz3k%kA@JV17PVY(AfARaq3Y7hn>zBP}1&re<*Ef~tS737Xlj~gYE*kH4w`Q~oJ{}bk)YC(cN5BB;`*WVZLn-!|k`<_YmJ&(Z{ z1<|DJ{r&^weVJ`)$=qmUAt4;P@rh;IccK}nq1-i;@@wZ&dy5rTZyrYAy z>TR&=tBq#3Oq*_jLt7sT&pX@DYA=iewqZb{AA@f=E#yyY@8|Bw(?W8jF?QFRPX6>z z%6I~F`eBSP&Iqs{#FkSCyde|}L(XVE_S>eAOZ;{?k3~FlAj~mTW8PW7{k#qn*%k8F zC3l}8TgD#>`3~k$?DM;W6BYb^=8MhMiqAs+*J!)W(6fib%ZIYTfEr5x|C$UZ>V%!s zOvYmiJ*(XTqrxXDTO8?&^pV!GWdLLZ}_-$9|p?LN9S3BHel_~QtuHja9U&J!8%hdKQ_fak@ylXz!#n6Py3h&y!= zO?N*8KEgF+4Pb zy4Lc&6#Cne3T${!0=ax7S}_*(Qx%aw4~94KYB2in*X`WHZJE z)t1_Zs9v`>;Lu4X_Bz`SIlX$vaOxwXyk2d7D6J|S_kBc-@@kploXg@CRYPHFw7J#G z8351bG*&%|sEU#clAWgdUogtt7gk{|2dglbgE_n$%xM(_xf$8%UrA;v%&lO~sgTyW ztcFp}ldxpxaua5?INNI_9%;(iQS&AL@#Zk+>N*Kuh)&VDrsg)r^A<5@XRXBlgW>Nr zNM7D3=G@RI@w`#Y`M$wFu^!r*d#u*CfDWbcezC{|V2_atT_d^bN0Cr95ixSB zYow;;7vzSQh(#Kz$#I3bIIO~49Om%iuxL&0PsDl^*`l?%j~IRsa>bhS9660OmxwWQ zYjya~KuXIcVrjWVEG?IarGJLj>ZIiov2;6ZF`Sl5#Oi}f#47zu#2j8C7Oxiz$jT*R zvHLu3-L-g$SnPoi=__j&uwoBJ8=0W0K1Q5J)$a#bY&)U$cO7yRd(P(emh^KA(dyFQ zS_1s^%_owV1fE{{P4s8!^iHHUrTZ^dsx3Wu5w@UL&V_tRS1v%ZvMTRJigGF^5b`SD z1{IaAJPHID2KP5B^oOD zCOa#)oh2H*e}P?#x1A-LQ)Xw5^Y&Cg8!OfmZ2-dQ#6P_04$z)E2nnD0I66JWa4hbfZmOHQk_@Nd3__NbBv=3D?vEnZKS zoGx6iwwhSz3<1_zSCQJmu@)elZp|Ywvx3II#p3m3$wO1G065!1cc+qvd2vuX$Kr_t z$-`5;JZh`;=Vk!MCWeE+r50btC+Af4Mam9qCkf2083JIZ#p}tE^MsvSEnZKSJU&7f zd6&iO$&x2Tx%jlp;`L<7`NG?7i`SDS7kVRs@HD(uKfLI4YZjvLanF&10m;@J2t~d^ zo(QAG*vXae$RqziN-M7?i!>v)^;#khKu8dIp|Bw0C`ndrEhGBz2G**sB*WPqC!*n} zdwUN8ur5M!*DnbImio23Z! z6JWY^7SRSICIM}h^|SE+1`06S>L%KtB*kyHh7)aY6&aXs9YA0|0hSuQ-2q;z*-PQ> zu?BNT+K6lfEb)f4{Kzbwv9fqWT7FcXb1cVthQR0?Q#^||q~*s*O5ECk9x*>QPv4Wa zo?yy&Ny%BfAuT^4Ps)|bV@K8-K`9uf?XckdM4Qa?zZVAT+~uevmynJ7mLg@gP*K(= z1dbBGvW{2);OIQD9OaQ5k0=rwcvd;2l0U{Cf~fvioX0s{FCNl9BfnCE0k$tj1l^ULgCqnw7n9SD;ewr(;ShII-BJ~hU$vfe^Z zlRqs=P0q43Q%?7oGTW+I2;d9>ZnEwptqlTvnz|b)8znqVrw#=-X9{qIPAvlio1#3F z_D?$XOQdXe1qh{n3(}n?C6f9Gz?SGjq9sy;Alq5dwE*78q;3RowgH+`Pe4)UB+g~Z z(9}kdJ~v9>^P#DUsFm{)R{%&4OL6i0+i~h9H!L+9-s}7bf$CwYvyrk@fcjy|V-BFKkC{M$B$%@Pep$`~9=6%thjzA1ohvN$a!51(eQPqJ`kw(CS-NGXy6v}stX?$PJM#>y!DCSocjeg%=5JZ8 z25&*y-5G+5w`>L1Y;f-dRI8LjO8I;2?;)z;CWIIN^}YcZqFUcj2M<&*tWwPo?ZFCa zzs*W5fIPb@$l3f6%42I92c$p?HS%Hd^zl{cm9fe>lN zL(nJv2Xq#zBGNZ=kUSeGqL@x&;3on$2Ht4udwqZam>JFs;H0XlMw@Ptjx}O$@xLa^ zI;hSj-7h^l1(lw<5DX8Hp_Q@{Xu*15gn~HMuW|qerG*h|3~Emg79e6ZWdQ6aK-3zI zO4dUpPuvO<7#gLf($?qm0SuFrob?R~)x!m-wt9dqJyHnNTWiR{sLU@=XoGS>#2am0 z10g&zcqIOOyQra08JnJpn25d8m!@V0irl|~=7Y#4bAWokRm(tSd?f|xw}(7UkZ^Pj zs85t2PW6ninPH9;>%fs0eq`?;@^a*AtDF-i*&#vXdGm4DMb$gPz;r({!j>S;>g#~j zn2JsWt5YgJ6wLYl5wg)3BBxfe-Qw8qAo62~Kg} zor=s11=Z$jkkv|(v`5cw++1CnX3zgWRFplc2 z+3y02e|je#Dk9_PzXLVK(@3F#h#3IRE6h!-W@(_B5`gKC~mc5erVyVZ_Fo`|SB)U5-A@R+> z0H`9{@MyYV0atFtgZ&YhVU^*jmQ^^_Qglsk$qJV`3aePM7yQ|3No!&nk+g)^GHT5xO~N$p6#fYL85P~t98&GfzX9Xk=G-tZkkzyH6WbqB5YG-a^}4rW4E(sbsChcrtDM>7tH)h!HKBhmnJ4 z%{GlRPJroL1X7KBU)ZbFox>PuArc~46`|AZF$o3f--$V%A_evMA9zFkVv;!LnwUN? zS^aat*)B1$CKyf408#1#B)uKTMk-+@GXXRbokpq`h#*qM+NtXsMR{K`Ry0CeDbaPY z5+?@7uBNJdT$MR&Fy?-~RrD=H$8wOO&j?Y@K|!pc&LW__^_aT$9VQ4Tl_L;Tk*Eh{ zO96L3+u4Ki= zVf(^)Xhs3Nd$Sp+@!Bov%e6dHD)9i+Y}QWtE;nq9Ab-NfI$(!Rf}jaEOGdHlQ@BdG zo&lGu-e;rsJ{2bSUt;pVZ+dHp@f7nvJcbB0G$_2A6mp-2dz<`=UnO>f zop*)Y8z&la^uPS+?qM}Pxp%|WhFrUldpF$6cVEm5>ej9Xg2>}^?RmU2#I0#R z4fkT(aJqIs-dV@9EPomvM4p|lM-j0I;3xy`dc4zJxPFOxE}Y9J`5e|)nQoyu)7}V zv?ne^w-mq+cG?!S`rQED)oCBM0Iw9oGXJr=9_q9QcHos_06z?R$K#b^ILc`ScF3#V z{XnlvD!s~Qs9D&ejw;cQ%I))AVRj%&c|#qjqOR~rj+n5II5Y|- z)D@n}0Rvx#C$0eXY9XNmnD7an4$PY?0H zsN=#Dm=V0&XF&A1;h;GTJs)My4QHsi+=YH={+n%;q;0P$8efF-yxw<1SFOU`ua7s} zEhuo;T<^=?TFzZ-Id`o^?(Q8yYU4>6s<6pU|FBHPxTPikI5c%rNUHvGuIJ`wvb*lt)VylR5_LyNTC-gNLGBFs?sCs241il>-U&AA6?M*20 z{E)07v+dh!!QIwSy67s_0jvyMh05=QbSq2=zdqWOz|~*=bT{UuN+_%fWjHj#`La!9 zslgWG`a2j1t0e353_}7HmfwS{CmHZjpCVkC{B-wFP)t(jjzWgSmGd!85_9N0%5X5D zz`<3(4}Ibip_(<~bY1jVXWfz&>k!eO!!D<5%VV8kcfo3PR499`VC;CzxTB*(apR8e zdaP3=)sScwW<1u@!; z;RJosl#t&Dm)alp#6&nG9*~_t-Y*pWqx_QOXH-bq9JHnq$D^Vil|CUe%M|w;^AG%u zY4VGE)R74@_KegmTCo`Ty-gR?=ALrmTJ@OYm%dnx^f5<_9?r>KxeAF=XKavt(I6iW zaF^Pzpn*Idq%OCq?cI(nWk9SxZATh5UNwBHPat}djZFhw`gx0uJ>z z*tA0knEQ#3^WPMZzibKGnIj6XIn0##xld1bUk!>j6@G`|8^<7>CN236N2bj*puqZ~W}ozu0%`keu(C9uwNglT1mLRN z(LRl!sVB+#DpNzWmHhc=hOXOu$X9kFU+KKF(h0D*xyCSXD6GJ~G+R;|nkTboXnhr_Yi zK)AKL9>kz*HNb%5+*^JLe=`N_&8-^tD>S&Ttgrk}*B>h|vZlAF?HkMQRi9sLbKj~m z-9p6v(qF=ozC+tN_8sWR*V_MXhpz03-VwrYtZibOud=1#Oa#ra%DvZSq<+Zfsfh!{ zdZUpAf|4xhfy7u(9*zA)7VTrOe40M^~lB1`B?80%lHJ}lMhQubu5k-lrCnS`O4 z{VKfSdzP8F+MoNJtH@7*o%nbJ4rUY5CrmVa6-oE(9%8V%rA)Pg-%VF`+HlPeRxy zE%S!2YoQ4Hl$E+sNG(+navI@#j6?>NyFs{kX^i2*pL#)U2lWLPtgH=IZ(la?wr5(> zVc`%S`#oeo(~8{&HKSdi|5*pnpP)^%*PqDLDwBGMJ%0h-x0$?bRPI`QOS#$d8`Z3V zPtM1cQ796t!)rqzh@Z#T-HelwQbtvgrNom+eK#7wha++^Pj_`?FcSq=LW6#QHL#UNAKb)rJr|8A6K z{|@ZDu2ZZ?VVVu#_c}qFAk%%heqxqS!suLLp#735`(d9R7INi>J?fz6cBq#PuQE>h z0Qf%>VaNLDXBE(!TYX`Fru~7-a@F=0EL49>>zREFx9__F^&9&E{o~14gwPFq+2C|- z{bX|}+rfwdRHxH*?kAg@J37=%!=RYmp<3$8>AK>R%~C;!X<5j}#1#=7?#~J^Zu(@i znC2{9XUN@!2-fl8I?uwLt{1=AEN$ipT}cPwbnOBLTf&h#PXz)45j6hU0nu9#!7$Vd3$yr@CvWf*w~oS zUyrF`V&b^@cu2)g=w)iEa5z}^nf*~yoCzh2NNCk-L$s@e?qlrguC*aHj)Wd%8po}s zaiz43u-Vw8YEruSHn4;PbJsTG#B$w-Q1i(MwJ;?0nbx)JehWQFM%S_`Xv^icJLNoB zy56eauQU7}Ua+ir1JO=tSzCR>`uyX~Ei|mHzFmC^n5}Z_C>HBDCPT(Z(FdO zp7dH57ELQkXK|6A4)yn>sa@pT01P)u!@9U=SJ9WDkBeJ5!*{yQM>_R$NhQ@IW)`KH zZ7W(?lq2y=eS3gS^?)rG3V zWy`cR64U3N9wrk_lE3kY?n@(kRC*DR%6;5mP>vD=B$v4+yc)a{jOkMoPy1VmTVc2S z>F!-1b^uSH*QZL;#sEHgI~>jFGD?P{g0@cgXJbpHq3l79h`qY3!(p7XfrzRi#RCVR ziuCgE&3<{9`^XPHW2lqHYGre~vej6%KZu3RcIB|yqHK3zRB1I=Vw$4DX4iAr zY@808&C6l4dD-UXWvjJ*GVt2D)7t|#M}(ev@F)JNgjL+`<}S-%aOe);2<0h#*^Uz0Z6N*)x#(d5W@Gvh~*cB6kV|H(PJLFSE?zsThsx z1_VWSuBsl3LOd_6y`Lg7l|{)}&3r0#JHnL`c9eSq3;${w-T*`v*4rrK{3FoB7DpJb ztYc6SkrSgN;aP*`0$AdniG;M(dJuq<1jt#H2Lf0sXw}Ny52d($L9537A*uH|0KHap z)j6bo6|zOwh)KaxPXKU=0G>7YSO9CQCzE=*>9gbV%P!RQoB zaPgt=_a^x3d2sb{s1X}IAi}mVC3g;mN-j0Q7O1K#HIQ5!j9R)(xNr^x-OEidITh|Z zz8%?=S9LTNSfiVd1w&R(#7EDIP$SBkO5n-}`NpRY#|{PVSvvC?lITi845$je>x?S%3+96bOg5-mmEcB$#HC4A?yF2=Ak@OVZzH4<2f{R> zPfGg7OsBIDB$a&{Nh4V58*7k)-|_N9GwYrZLiKYy&WIcl;5{SH5Na||yL5`9qJNjP zlT?<|ebHdxEXR>?{B(B;E>uW`)6C3uiMq85ln(c!adLGu@+&YB9!**K9wo96pj%BD z_?9K|6~R7VN!}|urQ}GAC37xa&)!}~J(BM6A@rnUIhNQkli`N&L|?SVcYH7YJ0S8G z9S?+bp6!bZ4pCNSCQIYOJPHN=90{gg&?%^1z?DwH^-QNQ@f4%755XmW9s6q)D(Ms~ z(EGs@e8J1EP40PqM$r zo9(#a5ox}hw7DU7WR_N=Z0^S$m46UH$9@Lk(K*I@Hh1HWk@&dH&A4OpB$T$f7k9kG z=WK4poscKVN)=%xEM<^JjGee4mKmOCe+sZF*ohlHGR+T0Z0^OKEmV}vt++=?*s{43 z_h|X1#DS{<=0o@sKk=*zkx2L$dmW;xx&25dQ+I%P&F(fRVSttR6B6`h#HiX47_oUR zu0n-tdAy2PO$n4sMx}{ex&62S;C0Wuj zOq4uzSI$T92!~lZ5F1qqz8D`sEFNPfjOkwjGWe+sSUlyEb;jf{{E(mS{uH=f6tq(aCzXPlqy9Fq$U z;k(EtT+hiGPTRrtoJJF#C0x(xN3MCuaEF@bQcW1Kk^1pbLw%Vt+YN^6zap`Et8%y+|$5QjYggfnIh+o*UByV$S)s! z8h7Wie0+=dEdIIvw|ERY@8Mw^Cs-q4;{Za)0&?rjgc^J9!LCG2{-ADFxmYj+^T;JqT?hy zMBfPt<0U*s^UI_O5^mG{FsV(#(>1?Knk?a2`g+ixBH?z;uac%!vj3T{CxFg@xmyrk zs`<)yy70MLH=(Q<5?-gTLh8Y>p9AxB%@2}hR@{N`7X1;b_|Vin2%oKw!t*eX2Q{Cg zE0Fi_)T0P*)qifr5=MgNcd6ctm^oF?;JHKZMBceIFCx5C^Gl?8!o#haA0qkRA?dfl z=LyjexZ0)p8Pa^=XSe28NDDnqS)N99^+TPxHN3R4jvpa~2P9Mc2+6q?=?!KybEGbYoR2{^ZKJ3PZn}-` z1{kq-_&Yi)xcN3=;=28~>>S`d#{D%G6D;NpsmSLU7{fLz&bX79$V)t|cTt3@KXw?> z{wztG7|Vk3eN|7y!tpc5HH`i<0s%R0PK#i38ufNJ6IqOkoDatlxlt#Hx`)xb5l|6s zJoK>fkkC72q%4BUVJq#yo0H>x68vP(A!Y;jIYn{3G^^TB%6=ch-9L~p3zSHc(s&6{ z^csE91|;HF+<9^bBBBQ(bxm?N5@cUVl&|a8^e`|smW27Pcg=9p#Igopyy;!jM&58; z>f@bFvq*ex+TcI`c&Eojl647^mQ^*s`T@$Pu-`PQ*m=mZ;HfhVH$O$e{ORt`5Fw>4 zsAOr}-W2js+M?VJq+__a8T)RLb=L1sH(B47jLgb!TqWzQs`Y z)D=P2wtQLEDJ5CgBkPdyr|r$~twGiyR26<}39jG|7&l7FHRTaqMuv zqxf*6kw<1*$b2ha`tRkkjaTYAphrI|wv)TX~7 z=9KZkvIcjq^J^r|%2Fv-*Fs#=vjCkQnOL|F6F&)<7?&+& zVqDKsCdLgeWnx@g8585aRmQ}G0uxyXJh8~c2jHoNsJESIG{M0Zf4GVO1}>Ut5hgf| zj4eCy4As)x41aNU1$EIf$drWhBq)8${s!#sbRGrRFGVsoMx74T*gsXqR{tskKH7;y z-M`U5_jNi^5FU^=vd>aE#%~6l{8R*NT#TVAxnW+XHLW6OZ;v3%pYGOYV7!^mFdIgg zB1F2;rzSF_hnT@|yPVmT9&0cU(LV>v>8S>q?u5WaMS?}Z8wgL?grPDYqk$@zE!zL_ zt>{Li{ZB>vKN5fEb{bV4+Xp%E``tvXB4)@IF+;Wt8(G9SfruF$MvN1Pm{DAVaRL?o z>g8mjn-N{37v-21=&Ru~G7MMv&3?LINmB
3%pqp5}FmPaOfyCsD`X&*AE}2hEp&$2j?-=mm%6`v+IyZY(ISkqT*XI5l}jQ%mDne;`ik7&xwy7f`4B8 zmTLS<$GHJmHO23$#J{%qBq&>L$<4?iTW%F{Te($mNKWo$q@Kv3F-U3E{xj89-WmKkg7wRdVnX!Qh9`$});rlUjul zxp#jp<+|iQWbXOGeo*USy{nnI&LLG2PAeAS-6(RWaKyO^u7_+9j{4nQKnW^ za&YBha7Ec=5NLSjj(vB6C@F*nXp}?-eI;Bm4aIH{mg|@2>4*~|Fy|)I7|uqR zKi%B{JbepHGU7B+rx#ARY1~3Dr(pHCxIbj1}SLK6K@G*kz-gu*-w2Nf$)7>wU z5?@7qVb?MYO8Var`wM$Na*sVVLih`NqM>yN2>;uT`Gk4A@RxRsCWHIqRg^8morvu3 z*rE3k-p?u>{kJZ zgWdiJ_%S>5CWue-3oDB9bx_!2<)S=RCd%%B+zJup3EL$#s|(jCT#mwTGNRo1JtN8v z%7Guc4!9;!)J^50++;Ty0<(qr?-$5ZvReXZrMxe`H2_zs{J{|AYCAl~FNnhu{&Y77 zib)>+bG4l_I$Nr#v#afTqqD`T&xznvZ?(g3Q^EM1Do^Ha4C8qb{Lt384y!wwz>^c_253}~*kdZ@b4j*|-3IIPvf0A&ocR7Kevh0j3Q=h$JI)` z2#d^0?*|c^?P{aK>0&I+c3zu zolORS@Pf6V^N^k}yj1zTJR}@Z{hI<_5&-0>=wh?ERA>Y0EZguqOVE?tSlA9 zr2v)jud}H1zg`HM&^Vzb)UaO*P}rA?veN`!wgv>Uv(8^GmHm}Kb_m-WS$|@P&-96JG_*myD(VaS z6RV2Cq5}}_pDiKq9;iQT2>jtH!yRJer@N012s~_61_U~=gyZWThoWMwq?PieVsv z)Fm*n8!e7X04%mYsDwwiVusLC<*o+X+YBeJ&&e|)2Gu+v=Bs&|)ex8%&3T(OI8ZY= z*=CI?npjs+Om`sac(WmX(3M8a-38*;1jIL6zGF0PWwYh`Wh3Thi>I`Tm>oDosGvi) z8^o6x;^$wnH}TI%oUAS@5~sZ^v-*~DzO0n^$|CXbzmav3AztYdUsK@xxVTSzkyS}* zYz;bvHKs*Yld*SPXu)>A$dbVhPOk5?XQT8Jttj)-2^z<8G9cf{xi_FsI>a=?suaN>Jn>rbrG-Si&JzlhMv>X^w{m&5>8}9Tv#5*xnzb?O6o_QQ_B+b&3&h`(>uA z;(%*L!msryR+AAArv_5IDb^q(9uHH5_NSP7$6lz-BHpw>JbXykiV_Y8V2B&`Ab)>T z1(6TuvVz-I;(G? zvZ;+aOPqS4vU`+B@4f;C@v4#;D*Ymgm3wbcgcV5NF5+5N-_pu;N-H-M2yZGkT&!HT z7R+o3h%)kv*pyeKAqi3%c0C z$;gilwKp#|f)uI!jMUhqf2{p(-%$Ip?o*`pc#&FoFmUfN)E4>F$TxqwyCvvExio~N2fJ(Rm{BAcTBrh`j9#!z_dsqTVZr9>8xaP!q*sgm9 zCQe_vT@NJtG;zBF$vc8V+U>^#%o^$DijnWoJq$QsM$=bozYjRZI(5Nvb&W3Ae4d{r zpQYW27aG1^q}cf38jcK}oKKylYXXDdZ0jsNq*U^=YT4F!f>u^07|(>pC;Bn6B>uQ~kBy@TO^7@{eIE$0d4{ zBu_P3Z_`5sJls^-eVw)qc%Tk{hT^$5{~TDvAni|b+wG-D9UOo-L>Jqs{Iprv8ns{0 z%x1Sd37*~nb2u4g9VS2cwT{|qxc`=bO8pSYb_n!`8H>Z%Rn=YKBOTx)3Bt&rki}Rn zIS(nMEWR(IGE_l$HpoPblFt3MDP~?lNf%{(B}H^?sgfc=Lo-T>=+R|Lis&i6l0+%7 za;3xrp5}{E5&^gvN=XJlJCu?PlrmRUoeZtKEhE-j&NW=VUf?o?#i9_a^6h}hP!v+V z-P=?}TZr}gwhSfMwqmTPzXbIZV?F)VuZp=bR?|B^wAjOe#C~|bs=5m$JR>Z$o?}?( zEU<8Kz``>=3+*8`@Ml^~vzjF=JQMg;(A^Wz^-flM0vGEoQ+tv|bBklwp}3#=SWB@V z1K{0K`nS(ErQhIJwC?_frPEsPE|lJj=z%vB<=icG1lJRyjCcEHJPW+s8W3$OkpOwTIF4bm402V8d0L z$hvi`X`_#JqUi7VMbCz?-|>ZQk6nsVFASJc_3wk?h9|cesf&vdGckY;?E&hBM$;PF zLtBVB#FREmO4~5b)Zif~>`b5Ja#epIDrEUOpX8wh0d@u?m-i?ox!f1PkX$YTphE`9 zl?9U3FMyNw7*!Sb=`JnMeV23}0CVlNMwfGu_qdP=uZ-0pWsbj!wMtcO0j0@8=?;Hs zdqIKHj4C)qtfcA5HOA>466=HNn3`e&oRt5DICeKkPV-65@z$yXT%(7%X3%vku*LDD z)qpHe^_T?71xx8Ih4MmAA$3fR;S@^y3O!4E&S9AQF08BTBzz%Cx2~x{5z6Kn$kxtUiRZb;)(wpew|HqvXP;P) zs3%P}f6MaU5%2sPk2FJInC}33Fe2EuEQMc;SbIU{hm7Yj$M$k_f9*dHL3nNUZN~GR z0d_47jYFQd3{q&m@eL*84hLHF3GGLMMNbYn_T-Rb?`Jc>n78L>aP752wy-CM9QO|nIZl2L2oOcK zT}SHcS);COyY}w$P6kcQLyo-%LZq+sE|BmZjIIJ;sUB1CFGgi|A`qwM5^BJAn8xZf z`>>-86~6?tuI$5(HhOm>S#u+Hv^hmopm9HQbYsO&h&BM>bo3wIH$>xE!qLzCqHQo5 z{XE6|mgbk5(Jyk_0XUjx2}i%oG7B~|(@ayg&yTAd8ip%7m17INMM%)xsvKJ!VFJeY zaGJ3bqs-yyL305tk-cDP&8^BYd`}CkoaR>L*iu2ORs-)}t5kJtn)a?nw(1V7A|I#? zz3TG;9Hb4s>Yd0uT^oAJp}Nw{;l2V-`J4DquRlyn_6)^`3zE|PQCfVI&@#J*;-dvH z+lJy}1Tg!C;$sD9l8r<0{RJ>PhvMS|Fk6S>;{`B#hvE|iFq?qQ^Dta*+3LOFgG25*+CSaE?lqHO^_!(LjbdfD1LBkJ0vlih~hIVXjWzy zQT))m5ZUCCuNfe(`MJKgGwi3nX)~o?w_7cVC z2|H#pQT+G_{ls0en<#!lbTkagY$uA(7v9W%qWD7ZR1kO?eyATT)~&e_RWgVhisA#3 zHL{^-BGMg3i*=JLv2H|;LbygY6fI;(HWV#KND%p9wjg3d5vw-M2*&~&=}QqB>^f|$ z$pJRM1M!YH1(ol;4pXwcUU)j*2$+lKoq=cC`#n;dyjFzUyyXaQNiJT4%sTl2Ium6j z(}bL43;%h^DX==6%lID1sHWryLT$;XiMd6&vXMTy%IiR>nmg%}YsAgr46qXboFagy zxsyJ*wwhIyZjhbyY)TakvXh>{tmZz&s68hx)m|;&%Gv1r=-sA?~M7e#eBlp+0$`ABJrtFEZi9ha!Bj33E?<@)8-&g}A9c zxlMLUhPbOfd8r9=TYa)CCEwU^Uw!g2;V8t7^~uXkm^yuYTC`MXkz2v>2wUppas5g1POB!e0T@r*2O})UQ|=!SIW2Xe_c!7_3%u0Dc`8Ne`+%3aM1Zt@nZP!o(4^~7&8bTz zrMDizl&&b%Jwok=@4R#AW#0MdA^$4cdC%BP8>rn(w&9Rm( z9RsEGX#zOk*FO-To=!Qf++Twi zFLR~$BQT~v0+6{X&YnQ&<6xed9RlD>l6#QkWNwPTO1u}rL+1Nwb_F=7kH9SgSjv4B zkdwJH{tfYd1Jlm@(8s%ics~m8W`VksxhFm%0=y)Px-TVrIJ6D^GWQFh^;69BfS)Pr zWOmx$MuyNpX1GBtJaitJzEOk=k;}}jE`V11&C>dCIPcg7zHd{Fy5} zZfE(wa7jLNDv7*U!`csRX84yvFvNSwGB2f>SH&oPPlS9Y=B7ccKJ#5~4dV1zQoA;8 zR5X>qbpmJ|B5-}2m0{@(WMEf_T6Oe?Wb#)bG7Q$eiux-^sUGrIG{_YuNnW3qdy}sR)COp zNNsfH6%fMt+$v6y8RClTr>xC(dsu>tymhRsRX$@ByGbN-n{T z*!TIfhwvq!G^)=|P>9$nW{yCOaDRVxK=LJ!tBs@57_iO&j>WD}rT8^a4qpR-xH^Cc z43sWTP@J?FIkdpDYJbCv8wK7qC6zPFm4j9#3s@61F9;u035~^ z=^9FS9i!O=stET_WG4uZk1Yq&bX^v@ZhFH>SD0_v?VV^)gaK zD8v1AP@H9RTH}!YG!aKEMH8y&Z71pw?-$PF6mvU-*1?RGatjJFpd^SA9FBh@Ji4%Y zWb*GIej@YGy{QzBp{&6%l%%jJD4Yf!Gcn>Sa^7O{K(*^g4AXYN?cEjUeYjFH4d09(@f08Lt9;a_A#e-aH zaF8oG+D3#c5s-&U@leFP|LMy2nZ|r7!q3g>`%9Tm2C)`IQBWdJ49zW(w6_XrQk>+i z?}-+=K{Gt!ZVcP-+bvJHg6?bzc~{Rk5(qsR#?qp4o`wz9e}Hy0RdQYUBa`bk)ChmN z`>G(^&~c5?)}Su27(7@x+N~?@(erlhA-KUytBrq#8L0F!tys zzW#y9{i(@}-20_{k#m8_?O1x%l>uvu^G}19N}V>G&aYz|(^Z;nOjTZov@e-5)+hXv z0^#K#TtQua>2uW{rp#aaA}?2?FF;29LE_;%4NskgtoH|5Kj>`)Y7gJJ21g(;Y%%XJ?qb;7=-63W&QBKSP#h@@${1?C>D)_iT=B z7N6=RPFc53?Md7NNZz!9V!VL|$awa6X@JbYa>1{?mvKk=;98`h5ZLc%EnL${h zXy?KKEW_%W7Cr}ZUhM0=J+XHE3U!GO%}t!9wk1ri`Qf)fMw+r)3VGYXd&WjSS3Am+GIdr-*#d-%(GB{YI#y$WB^qBBh-!}!^j>7oU-BYtD z;Gjl)PUA9YJyO6oHic)Pym3{32RbTrQ)0<#HQuB5LfvmNB@tCh${Bc3 z0Dq(Q-v9@sGvc6vMYSe&3;5~ozX7pV-67o=;m z0I1EPUxiud(`Iom>xEVr6fU`i8J3TvEVG0L3U4vl|00wdZf&#SHhekab66R(&DPrR zO~f-RVcP%NiXV|Vt#v;~ihM-&DgtqG#J>c42{bzSdMu>4sn+AyV>0jY`1P1fdpv$U zwgiZt$FIj2!mNZJjfF>4KM5#=N>ov>+(GB z*&ru5&(p2e7b>OtCAoZzQ#YP3m2pPKR17`{VUohn{wEB~$c~kv{?L!~_AjnOeSi<8oZY z{+tUc_|?T8FucqZ5J`ONwkl+D90HwRkAyg=NJgp2mT{A_IpriJvccbpXcNX8(ROu4x{z&>Y?y}td`Z;i3oskw z%gIt8-e9Zx=YgjOyUbVPGjO3Vh3>wI4De0H;5w;D?84%kjKKq$0A1MIk$doH!_PG6 zZ;0&c*Yli{)sR4y%hV9r-mi~Tp&x;CkEdB=DjYP+K7|UjA4N*4g0_gBYqR|af~_<} zyX(@;F=xSQTvJ8E$MzV!6?hUZfGz%yLqJqo{G*;}@z*?PRQVP#_*-#|R^>;D{BOsH zg#6<}xLDwCzz>xy^M`{C_#uB~o-5QifP@aA`XYow{@EdHHz9xBeG9`SYwhJHfh2!{ zD&*RpP|W!+rMy1ABhb1m!UJ%e@goWE`!;&COOSvOC~y19Fw_ao4B zxo+-05F&l$a^2j0FnS*VOI4qbe;yU|Gy*XsVck5$LrWqJ6_toe$zpk=(R&Yo%f<3Y zbBeg=Sj-w?q@R5gr2GH*)RNp;C({~o{;4G)uJT7VRzxYEtnx?x;e8AlT(0s*KJyjD zRsP85DGFz~T;-2^k$VwY9QOt0|1!%gxG|8XVcEX+T&(W_PW@>;e0;PbJp&2uoKxY2 zbMkS$az8>!H1D#%cic0XQYnDv9?g_00pcojHK7{qf5p;J{hMOwHf#Ghh&zXOF0 zLAiA}zylf1j-4z>yZy40(t!!hK(^ zBBZd2u##w|WKK_GOC<9p`({=xGWea*OiDYEj`DbqLIn3H(D)x@76w%7PpH*K!^TCA zJBU*1BiJ{8IKlwqvCI&lH0lP1(NS;AaI=1+9%u%xH*L(EBkAKz`i_m6e*$jO4KIQM z`i70s4&e91EL8Hpu`#+5>AiHqANX#J{uXfW0Dg31zXgkx?i0YfH%2!jy{}HtoNyA# z#^_GKEkXLz8>4KZt-AUyaE&wDHbyf@@24y8mh$#&R7vKP2EnNQ)c-eHB^N;00WShq z|0U6nAG_nXs37^t(7AmVQvcEz2yRys^ylI?ZL}%pU-ma_?cC^4%y$Y>I+XHVU&!4X z9SZrL4?evy0vX@;p*BZU(gd^_f#~>!huf-se9_!(eN3r~RYfg`U6*C<0e^{89l=w=4^49@=TLbaAvC3huG$la}F>Z~l#J3((eW=Yj4QbPIY%dsIiWwdt zW(dm}SmI#7dc`Fuc4(YbYyDz(BFvxeK8C)NM?w$v?V(+c?;YCwXC%WW*%(F?4DFXF zZ=?^+SA!xTtgD1_Fp%6rviRxl1ael@7}@8_l(wp;F}Ya@P8zBP7{S^j@P0Kx5s|gS zRILvzjjU94zQ7ol|I5ZW4Wrn%hQo2oDE1dH7tUMHe9~w$4A;ru7R-gq=dH1ki2mOu zuc@-hYua-$Kj-|GV^zKdQyG6u3X1~|rIXhR%vD2XuDaJWl~Xl$JRVu|6{o$Qu7x*n z%vYR_`HIsqUvWC-D^ACJ#p#%@I34p9r(?e2^yDi}Prl;xR-xh?&wRxhy%QC&z)o_K z8nK)Fu}Jh)#4faB9MeYZ*5D-o@7uEeDY!i4!@e8IHn$e3_#csBs+J^rEtAA_mD}Bh z!5U_;+ZfLgvx;zX~UhW>4c`8$N1#uEO`iYOWd^tNMu0Vuq;U15NBu+_(w)dbA)!WN3o8Okp_Ws2hzkw4v?p}lh+ zp0oR~63|~Dccq;)z)}@%ozL%b_%(n!%+F4(@u#~v3Khm)wrWk`(?efEl9#Q%v}bq} z;qw)XD;$`-gZ8Ud)L^!Q=T|LXCA08V-XWM;TcZ5;{I<53rQoN#9}f7O5EKMHp@B(O zAZOJc>hvoe4jSqzlNXs2{1&m&l)5yrNHv?_{Lo9t@|A9-`QVFm?3{#p*!qt_OE#yV z{lRbjXZsaZ@0&y837EsOwPL9WQzNtzS*&u*(pAPwu?ah7S<5lYT8>%Ba>^F695a1I zuL{%LQA4GLxiihanu~YJ{w^MoE3T|4^=esJ6mt! zhj4J*5BXfJo1o|!F2libKXhZkaX&{RyhVQmaSu(gZi3@}Mu1Lm+|M+GgX4bA15R+< z&!LDndvxa3v?FY`=*$xyg5!QzH)ey*2~p1Bg5!S3&u;&?A09mPH0lB_B;?lIf|MM0 z=QsnBQNAOy`ykzBbc{7ZZsN29MD{>9%H28k42HNn$37AvL0o}=AZC@#+KVv4z5)3n zry&G$kX?Mn_vd%FDV(lpC2l~HMXpsSSc)UB4>OwCT$LD#R_->XxH2NEBmcuRBB7V( z<6t}zEkvq|Gx}dlmxny$8ND3=;lw(H2$g(I>)|!+X-t&DLwt1?#;ZG0xSY{vk~=&yfSMfEmt{h8J&jJDGhjL+5_X)qS2Q`M@FXf4-ZXP3yJ+&>wZ`_;uSnMEaNrrfg>HmD-OUfQYMUfA zYluC+N{$JtU<#JkS9!cSBK|QW@N|2pn_IJ)FWVr)Ql|br?LbA%1fzOv&V#RZ@i$N7_(7jZYdF{BdcRELsJ7W z(pLyYv)WGj@y#9+Vp`A0G7xVD#(pR>F<4Kk@%d?vx75tYj;|p?aG&WYGnjfsBwC2pX(Aeg*Nq{+(V;c^t3X!p~ z&7pv=>X2V%^M2GH3$4lMKFMs%Zmes}=n6Mog_?uTAY7fVFb{Q5R4VF18277SQVm6G zs4D6zMg=rN!(LELaI<;U0<>laXcJ>G6kSwz&$37e%>2EiR?$p)mlsBk`xHbI?VPW{ z0`v4O#KSmR{K%HlNQ2kvt5GCqf&3M2TlJY>uU{!{5KYSc!9+nCvM`{OM1YC5QA&W- zQ%q9Ym}k*kOKp&b>=Z0Dkn2x!F(Y)4SYkw@Dx))^^Q7VSP7s4^x}z~Bm* z;(1(8JAfgz;>2BaNMsv!%R0;=dgK&=RDu25{Y*b=b~#+ZD*q_v3! zRDz{~&Z(a&VF|odmobZxLXBUr5v^43ti0Nw{ndd-RqvA(W=OUN*z?#73+y$R_TMOW z+3d!eolUa5y4k5t;0R5^y+<&Jq`Y2&8u>ER~%lKF1W zc#^h4Bq+7i6g<)7LVSrQniA7TRgt%;rKzPVnpRqH(Xb%xKF*`yD;%jIUlbZv;5>B|ZSeIZ?xT6H=EOb_9lTp;^G$nE1&5^C?5m(T9<=$ML7VSYr0)w^YA@^?#dQfk z)Mg*!ZTbpDx(dID7O7_`!1#eyk;If}ntDIOtzWn3^MazuRk5j;JCM-c&KCC)?Bz`d z1#~#j*;_?}_jLjL6 za3IEy823@)T=y^c3FCYzM584weSB$?4SdCfLL}55R2VjeMI6xF#wM#_EmZFYT&&922XyH+;4eno47OW3L7)j0yK&!8O*3FOUYs2pQ>rdC>b>2^UX2qvsO4~>E|9W$s~t>v>jO^% z5oFR{Y85?-g&=t!SJSX>(`hU=ohH+Cf=0;})Qc^Mp15~WyR0fR(l2Q{eaos0{I`@h zCK^<$7=pA9GkY&iS)sjBF@o;9%z6~(ZF5{evLDmGJhGDmWHuW!RiuwTb(gOGiEe4 zkup{mFM78$%`6j`QTdXe85m^?ES6b)!8FZGx?KIf7ftx(z(4~pYKHiQ(MPZf*qo)^ zhK*~58x34*`4s&>Ed>@Wug+Lry=hQAXn+l(k`fbH89 zCKRQHAC)>2cV=AQe;+09VNi+MVzM6F_&qXmaC!W7h>!HN7Q3lsADEy`!1~P<3-$kZ7858B^Y{9<0UFMIXB~^SWqbi zJ_1uRle6OZ-Be%*Orhq9CoK5%t)iIU1(aKw=8BA7d@{Oh((#=h@m!U26ch<1c&avK4^SBr16zZ*p0z8`&td&KmaZX)I?w0 zY#5Sm(r>>e4`cjQ+Ms5jgx;bS-|LLQaJ8_)f>9m2y%r##EeBa(`DR%*Wa9jFS<_}Y ze@ezm7i@#o6yH4>gD-uHP;At}JSv#3m)7E7*h4|>I3QZqE=0A>A<8wRI93_@pV}Q} zPUgi@z4(z}DJ_^e?QMi+LN;RGamvVIZ!yaFgVF3J#>l$YUax(|N=-te9Q>niqVC& z*)mIk9TZ$ip;7PM4ejGU!n9DX(@5`7$ma!arF=$MoF1`d{I4@YuoJA+NM-IjuSo_b zATGkJdHchee6a}?JE-!y2rQQ2ScZtGFM<6 zDQ@|q`zuWG3JNn`0wxno=KKb1+Lsx%pn*~_(?Ekom;XcEyFll4RrkLB_STg4r?>R! zY5Ae2-a!vxj(bd`R?TCabygL#7wE(A+&2pXMkqM zG8w_q<3$W$zM4D9)8lZ{%?GC2-1%N9ao)6+hB$++rgi@^0tqt`g0f6vZr#Fax$Szi z<@U8ycDgEyiID+o(Md_0#vEQgN>%5sdrDmCh^-1#Gf z=0@t)Jx)G|=UI#W-fVY3isY@bS-oZD%a$n}ph_idHCRKcmVqP4d!G`{N{4Z{l)M0x zD=cRv4q_*=La>jLkPUeyX_5tC<(b!yq{xw6N)vhz)1pWyT;-*va*wm>W>dzW@*x(k z=brN=_Nth{CUh#1ZQMF*a-Q>CDpa)=EvuLDuEvw5+OFQly(issm%a;9(t zK*{0RD}pKzpJS%P42UUhPH1PA+bk2>(67^cKU?w^Ah522_iFp2dv`))gir;`6S`)y z(h2)16no0bs#$WhCK{$Gttly8mOm5bvT7C*X*D|wxpPpyb`C0*=b+My7nxWY5}17i zL5@UNlkg5Nd*-OAb#9C+=w=c_utE|`%sB4Oge@fIoA`0h6)-7g1A%fDq;Oyb4_Zwt zHzgChf&+Q>oA96b?a5mHS(bUM`!?lFdg3BlMvR<*5=|UY+n#Y{C$3=SvX?u^aklIY z%NlS@=KWx^=9BD=iSTjVnOyb}drVzsjLT6b2}et;b{+{Mhe!8kJZsCbo+zSgrTN4= zR!Wjdy50)bXhq(<&&R1Enx9&aN_ES~#j4eP>$9twaq7;7Wq6^9teo+LvTR&Qnf**A zj-D8~vRs8pXQ9UPn~VI7xd^KD*_7b&vNlYo63XvUV$G_*4oY~q=2*4t`oqXy9;!f* zLmvDb+A_6CkR&_z%ZMtV-H2$cUEU?jGa!u?LRRJ{qFl?nV)bk+lXeFQkDA^S7%xo$ zt|}p3)eeH3NlazeT~-MUo#>+HU&lm{y(cjcBoAkoMScuiKoc*Z+(|CD!BsC6US~Bf zFYUrCxmHluO5R$Wu*^i_&kodss5GGi+5VR$Fe-O20`Q5|d?glSID|mt`MC$Si9oSZ zqEE2Wk7F6!F$jDwvX)7Qi>t|Ej;F^>Zh}(2$$BsMd%l_w&}2P&G=va%Q2Qq~uEn-Z z%hzp>?X<$UKb5Vz`GQz8e~aRsejol$}t33_h(9)@}6KVd$Sj#T-M2iA31t!Q;882U}>Uw?aCq$U=!ciy^M>*9j;xK9Xzl?hwF4LGLCsS<=c^CWF;HCZzLqXK^LdU#;LRqr!?@ z2hHEIHPPX2?t;%M>RHOS9QC!byNS4a9p`*jG%3q2Y0yGTS_*qighX=Gnd?TFWCfbl zC?5+TvGAD)Aeiap5Oq`@f*H4bBe_FJS?4i5nMx0W)h|Q&yG}>^!P?1*Gem!13W&gH>r4rOv& zLGX4YRCblXks!1l%Jpc#TSR7YX8_$bD`OQIOEA=pLF6?F2ylR4;xSDnC>1lUH;}or z*!hM6ik9?>ynrH)HCfkOkO=i2mf5Ay^iSDHqtdlBDv5@MMwNRSRk6(JM4BpBlB~?y zsZL@8Vt(ddpCkumK`JQMtn_UpLU;UNGDQNqUz)LKua%h)pDe)gmTAhe(imfi@4{-O zQA;gHjnT@~9HzbaUYJNl*OC9OPi(R=Y=}H@TZx9a7S0tOxVbE0H9Zn@h;a}Sl6_~+ z`dCFovV36~kd6uZ;jds832cS_37v_jCijw$KzA2BaMoCtpeUZdJJ)&#IKS=$7C~DV zt@}MqTq^bdl$L0t>d0B@8KtZn4f}Co%^_c zp3%8q(w?dZMxWznol?rvs##WefuF$m4t22oFcR!m?<{3ZJ&1-}1h=XyIuqn6Z2g1{bYp#=?FxPUoGO;ax330BrlgUxEI+ zbo9EQFV+wQc7a-;*E9(HUuU420)ai50)5Zefxq!0d+XefAn(Edcbp3~8+n2^gpLbk z{N%gZ_#4^tiTiGb1n+`voC^ipXdioNO+>m&d-v++o%(U$*K8DMata>fT;a$0Df%Ek z1)9HtkFe+Fs&HKA9?*}Qp+CQiSMo3X8fIwVUK|~;BH&y$YI!3T4l-pIPg|NZCCg{J zEjVE%Kyk=6Xxe(LT$>>a2Q0X1>1j(1>@oYVRz78UQ&xSfQsoHcwkLZQ+Qe^=5jI9<=i4vigu8{@J>z@C#4%gQA6xSow&RaPx>&9Jivg zR!JvkteW3Zen)k=+WppyTFGzgzRKsV^qi$ftaj3x&RX#Z$bQ)hhpc4WYDcVm+FC}e zXv*rwt@NzbjZ9lraC^0tal@pV=Z1~$hD>~eRZLs!h!sx>v}G(39w`ZKue;988M--b zo7~M+@y%8_ZEXx<%GUQ;ISY)(%YyxN?5I}_eOAYk`wv#T)AC=iW(UtRPc>S`L(Tzk z${KY3m#o;IOoiWGw{S4%sI=m+bis9%Qz{swK5s zCwyZ4^X9^!t%@C{Drl>r4bZ#KiWh9X+73r1l1Ia^JZijX>AwV{E&NCDGj;kz)MLS4 zT7J-4?Rp>1(A=Jk!)}@nr>!#BR%JC{RhMn+w_Q_~?y_Lq(u*uPdNiEBkbffBR%yYv zqk-r&_Zh!NMw{AgOP8gB?V0G2=sc@2y8ynTwnWW-PiYOli_k`fZCg^j@1TOM`Eh zAceD*Hwuj$WZp6&2KP)R?Ux;=#Y!6(k58Pi49jo?YGgG$<|e-*JNc{yOP6DaBFzhGPAbnl-0~y^{ll{+lE=In1$^2+XjfByS)CQRl2hqFX<*uwn9+2 zsmt=_L9bJ5?z?!M``Sd)lZS5NV8^^|oaOO$+nUo{Ywm4@3@#s>_7k;Tn|V*Cx=ffK zjM>fF%-b$)paXqobhXQDo}r$yf(6Sz3E}yMmAu;urmS(?8s@CxqUF!o7RXt}y!I-t z>9>gE{3(0;pxqv{R9b<4s#rU1b0RFjRx2+6bqf3|x4OdykGC)s4pVbh`4zR5jvluf z8V=vF#Oy<@bZ^)`?{GZ`dlx(<=c(|vsL_I#gg>A;vlGrR+q}HS3{2guR;N4!;@h_2>$S!LhLlI}5?mR&yWA%o7Da7^qw=tDO}bc3SI{ZAOBGo=8Zjo3rx2@~HZ!l5&DM zPB#f(KQU;J2>2lg9BdOEL#9M9n4uFVEw5AODx#+xU`sz|8yBpk$85}sd#z!?HuYHN zNubkG$*{_KplQwwn4NS&i002t#=M)ordU?_z=D^p;PHMM(_zi|B7GDuH1_Oj(&v2ienrB@Li3A$1___%*Q=ER2)7u3@cWU_Pwr4Mgy zjGncI=%D3~SUs<-Vl&F`sFjUamHSPPS_2PESt*1V@)LHz4GY3|^h09XEj?}sK6#+j zBgj+geAGwh+pQ20$h`-C{SMvJIBi7;Y`mnDZX(bP#t#(tiK??|(|rI3z6N>IlVwv@ z7>**3&=bTa$*qNm9}lf*3?a}rS@C1G>8!-R3~xbZgV*z0cw90gl(VMKGG{ICEP_Ex zMkBUfX5s zf>Bl`$k2JsU@x%HVAe{Y#T*nxub55vRXyT``w442XDtiX7*%N#ve`Olo2P8+f;BVt zi)$a~77CBper+b~ootYuAJB%zURcps%^No6Iy?`+S#3Ck=>A6i0O?ce|&Zr}3 z>eCXbtItaGDvpk60ul2OxA%gCT?P*T-zsTa?;! zN&Q>ElrF35v-DZy*p@o0d#6DRb1zDEK!!W$-+!MrQ?^5!Ro2%EDGPv5eVePknrwyFW~ifsUH1+R*>=C^6X)GeRbV}q()T603Fi86W~<{e@Zp& z3GM~NVetZj{~1x^-2YgUNXAjKIJVRYG&v_>!oLyj8KKxu1=Po)N37_1+jz$IOo^mr zx-@!J$e&}TevM&050lI5vg3~V7X=-e(`GS)>alt?J%>r14Fs=@b%g%O3LS?S=X0~! zCH>|_f8c_k6(7e6X?RUBskp7}^ASbvLwWxo$J}pro?;G^- z?ab4qpfzI;!#fVnOOjxe)mqtwle$-OD%?y`D;!F|M0M8ugkHW!Gm*N^$$Yob4_rsm zOBj73Vf;=bMqY;AR;pDg2(&7pf>xzLBjd%bx^|{@D(KAIprO34sLusJCZClRJuT6v z^#w^!y8&i;9)upVf<7?jVT8ZJu%jPz;Ksh-2y+lVz{&FP7Sy)zemWj@_xtmAa=rwl z(}fqGnzB2>KVl!S@9D9P^Ad6M(9>9MHS;jrM(+CUrx;LS_>Fb#mUr4Kc(Afdj!}vo zsNH;Ll*pS2J_r|Gv;t5FS%+h;aU7n$N_S!6SQR{2L>$D@wP83C2tyB+)DAaUMokfr{r)v{aAB|^Rl*(pDoaP%gKUgOb#SE)smSut=mmTeQw z^t=G8z@L{I@cI0)%}| z8zu;jc$*9o`QvD{@MT0`qzLU7v7i1~H(PuiG*L&MAXuG zp4bc8f`aH~i2n$qEkM;DgV2Vi4^N+j$f6K)H~q>RbWnZ6tLZZ`>!He{4hPIt|CFG5 zAEu5eyKP9)c00fe)Q3A~EclFd_UX440fG&K*E$aXM^Nw56Q&Z{~@uXY326+2gL zr@H4)Vx7sttsUy(AhZqM_*tvLa`D;Va20Qp<|F$KB%%;iiiLoDT8+qwXfR6GF-Hlq z+fhG0Yqj0{>Ny8Gp3Bp7WzipHZBD|MF9xHPTJTUqnTIrM1NJsIYlq#eVUv$ly(_`) zOtcu>fmw$Cy02R5Dq^?Ro}^DGR8_DAat`* zWh2^1BM3ImG`Qr5F_uAR+d?DK3woUh7XFRZVM|+byovk8zEa#VZdJ#uaKfTLv|^Ov zZi5OJ9<#DBt2tohvswmKK(}z>+;dJ`3c|-neD8Z)?^&$*;dTqn zJak5m0bE`Gsx7x7kh0x|AB`#(Z6ktY*bj0$J1+7B>iro*=?OcKu(??CYqkwBA^N<9 zd;FR7zqPuc3!3$-U|y&6YG-y0Sd^*7=>4*>79Y1lm>EqUlX)|RJ?jwodkBAs)7xG& z<8og#jYJr}1koOyvNi;tQ22sH0WQAkmUQ@G?A5`|*u}z<3D(0+EbW85yWR5N>RKD0 zzHq^6U$T5m+xSX?76d_riawn#`ii9=XViOFKjf|!&RE?E!-|lP*#5Dcr||Q@T?Y0B z-IZ4G3hcI{2E_yMTUJpFCU`b5k>lgRR9bWzmGu#4Nni{Z)EBMpv=z-lQ_zco?IK~o z>48OE34u>+`yQ0}(+okEmii=9N!XKf56MRM`7ukKI3z-4(KbjR*T0!Vt?mo9V>U-D z7QG6#VlIYEiAG)JE#XMJG_%I&7lPvuI-Xx9a}PK&cVHEn`)2ZdOyQt1ueyh@8(m`_ zcVrliypd7&L3bva)>g`MifO|LaZNk|xk8ga1E+2Xekv6{-oCge`(LM}TM}~czprO; zK@O%^R@Ws5h5G);5`U}RjepO%gAkLS<4@$lk%r1Y;cUwNIOpy%RS=~xxft{1@by%| z5d=AC3!FPqi$DEuXf6`DNQ)q(KgVGxT99@W;O~CN5rB2!j+6{=d9v>w!%T~?jJjIt z9fF)FlqDTS_#D$!3a)IQGXg0JDfeVD; z6D+~7rZGBd)z=IMb!zmWRf86z2k{er7ySee9inbA8sL%@j~m_)_*NSB3R+7yK&zF$ zjNa$etDp@l<+!cK(=cM&rx5+Iz|f0fD~6@gAC`1Ay+by~5R}&e=WRMJgOcgVf&nX{ zzb7nz(66#*osW~I805|mI6D!TpVkWpy@LmKucKjSMoH1KI~>tD4(g8z)(yilrq$tn z!dV1#n5*NM=BiP&5Si3k5bUaUGsX%O0|tg_Cr~?q7Df6InOsT{H8E9jGSzEM1I|tr zG_#_0hC#i_n=0uvo}fo0^}KPDZ*)_y-LBUk%^mqgorx}n@9n=UEb6*TvQcBK4y5J5 zU<&cDVlA7OzYGzqGq|~0npGQScf=JbAVtXA*qY>uM(-K0PBzH%+`;cAUJyk8%n>BV zT}FUeAAYpoHjUc)2`hB-$2Cx)xCl-#%dh!HIs6GL(_{-88#$_&CIjrig9Rw z6~YJljSCPH%(3rdIx8+*e;(I=@eKwgD*~iQ<{ikXQ@F#Qm`HTYe5`GS;bv#@EQK;m z3m+>6BuN)zM!76gCsxW5nI?ttsfNvCS9}#^h#%B9w#6 z;MN9=zhiP2wh?szHRjg01v{$+t9!sDOfLL_A41`hVQGX_=mY#h`*`sXLOU-LB^55o zSa0R0Z1Z#0fWdhyCRl`<)$uf=@(%A;L znDR#HdU5!rj|c53ffegfD*Q^&i2M`5_6%dN6`Ykp2S0o*)&yWMqecu16fT1NF=Jvh z8E~+&9(9j+hxE5}0b>xRDpp3M&OGU9Xo zywoNJ;xU$TxPA`sNu_*qvlYMP+I3#?dh_*O%~#{{e64xmjR$nSSH0nQP(N`=1cx%y z(^wDi01-{{ev4j{5LD(J8LWDsRL1gSfx=D8yu=_AaS%Q^1-g$FIwx(8~`dhXLbH6T4kpizYvvC^$mD*K$RfINAjlNInDIDgoTG>I^d79Y?L z_S%vk@UgQ<2@mYP$wq_rtZA!POA<#5`V{dATO*) zIShzha!xcvcu6Q42ike%gk*dIWsvb{6B(a~nGG;q1eqr+FKEX-f*m=IC7YI}E-0a9 zy)l#s#rR(YN(k#Kp)?pnspf}=(y{A8=}Dl}_#MUfYz^{* zXmy7Ze2`}}<>5bjDvojUS&{jSv|4UP+Aj*4tAwqE>PD~0MUncf74})nXRY!95#F+> zmA+TvklJF=-&)}nOx0FQ-1NNF_YtXqi1`rw14#=D@iobqcpDf+xjbrkgwOdq72%Eei+O1*g zg=ShpHQ1xz7bcSU%z_DGzIis4KcyDpsnmWR7G*XjPe6X~kekQ__M>3T&*Ogi-Dz#+ zU$V8b@E7qD;|s_S|9%}JIRXos1@@r{Y&X39`|W2sKcJsdh_I-lB33;uuZNC_$8Z}= zrW{of9(KL+>2Et^m9xa(m~3XQe?Fj(!5MzSd;yC&@ykITiTvOfQ+_?@CewPyx`G7>lLq9bC1xZJ|C^sEe*Me+>xGxZ<_OO0?GHVIFATpX_qnG>%Yn(z_%6zY5F z1PzqKOq2~$aHp(W3YJs@ibaIJ6C+cHrRtl8UweJ82+;Z^YrbN)PuZb4+dE|Ux7+%D zD`0LhNBp7O;xPbamIKZX;a0!0fL9{^GK!X7#Y#dT3SP9r2Y!fNu1|Wop;w`%8BAdn4$t!9Dyp)km;TC|(R*&cPlJ)kOzf&?AO= z`7tZT9)sa|NbVU;4WS=jOfG}+ep38%1mu=s^JZcyPb!SI2nhhmmAF!PRsk72>*2I4 z?G7tpnsN3LQBSf6t39)X0lgDZhW?zhay-n}pZs2XGY;X@*bb7&eX>E1#6L6rrVX z48SJGIr|QhwoByPVCh_M53$V#(M5exv}KkmisEnmXixhS#tX1wR2;YzrbF~{Wv$4 zoL4>{QTcI!^5fthoO5n&d8_i}!77mRszBbVd}X^ua%km$jIMd-)sL6a4FAYIB#3x1 z7!NY;@2^rw(82GfYVbHM66TEu7!PrD0Z*SX^m-W<@#irkhsJw8u~^W!|tc`ToO+yU}n=YBdlcc{C`M?}Ibxfs64EwkW&?x(9ok+yGiw&6# zd9PT(HR8huS?vVYp(zkdi)Y(MmJ%!IV&iDmMIyo%c#IGvv9*vjs0|qw+C+byM7M|E zG6U(u6Yv5&!~cygl{XSrOTS;0H>`=KsC6_Wko-EMaGuIepLfG3B>#p#$S6`_(fR0c=OnsnEl`=D zze*G0#?s^Gg#p^r;w_}C`st~W>#`gP{c*+4JPa$H#i`V;&BH+p!AaS}22{1+-%Gs- zzF`l|+k+U&qOM?1l|?SSrb97u%;_c=FQ)(Z;n#G>4{*$R<*Zd+mAtP32S^jz=mABE z26)2UF%Cx=$}txr;^S#8)Xpku5`a(uP$TJSXzUCpM1<(CH+*{@#A z`&Gvx3Q2O1^AXnC4C+MPda9L9lmv%>HxD>0_Nh22|3H%-FdSU5dmv;j=&@cN+Xk#2 zV;vJ#xP|y(dYNsg+rRlHZG1z!)X=5{+kq>WG37LQuUlTx90JRV&K&S<>|1VQcihI# zHEq0QWgC^jp=xZQ#6-l=6tWMzV1)#a;00fhPy~$!uk&Cs$Bf9Au-o#Ug*i2gl%cv2 zI+h1va_hO@n~K2jklbht+i9*q+wkibDy?SK0WJ)QjynIN+9i4{d7Ixwe#FG-d;0qO zL|yQx?%4|}?O6m%e*?E*D*V>EMj;z?t~B@qSOLDg(r*0*rWb8s2oD8v?XrHZa;Ii$58ztK3 zyF`1JEbqc&Tx5(6^POBFA;ilSx84-X6*b5e>BZm#>TU2d7y=Xmq7X0UE47F;k=9Pw z(7zYI#!CuXvS%d&mXTG2%uYhXkhj?3bw@o@N+~{fnF2{}$0nv=U?lU=<6626>=MOa z7#+Ym`^es47o7eozMpRB0feYHxT#uZXvJqkB+A+ z?SutP(La}6L6(>zz@4=*EE>Vgru@vx;7?c{rGI9M*TTX3v^Q`PmiCO(72Ojq}WWZ&~1oO$Gs0vTMX_ce}ptQ@_z7lK^xmW zOVyWoms=!RiEtdXoF;tUHEQ0A2sBp5j=NiLB~Kg5CTk6idFN%lG-CP|z3 z`Y!kQ_YorX=mS2Mw-5o0`3HLx%i9AA65PBh$Zc&b?<>K2*4$xgwP^+Z){RzR(dz}H zY2_usXxW+<)&Hnf=zeY(kd~F{3;4v;x%zi}(-DV79@`Cp4FBo9m*lDV}ZMoF74S0y2AH%S}Za>(Bz%Q@HFEwK}! zJvow$#sktM!vC2dHogR2=e!M%xaCS)Zb6{4yR&5C>w)F73RYnZt~Ek3bc8(Ro*~~> zhva^&e8inSxB9G;?yn_-leolNT<;{J%9p{hyNT)15pyP|7h#}GX1p+K!!oD7B7+jO z!f$jD9dAdp-U@JijktI#VhjtO(Db%mvKpun+ElmVWbmkO8M8*mAWJ|4l1oWqCCsl% z^4d1AfK*rVPBRNe061WBDotlh8yuwo@6@BwSULHGU&aJ5{yloZ{~}Xd_^ezq1y5@P z&|i>Uxri+ovu71C3E}0p@nvD*4ydF;T8=6GwIVuUbr+O}NbC$NMK~FRKZWCj9h8KE zux9CBJMxrY2YCvkIsptpG(!P^XMZ@9aeSoHV-AQVWPvIiS7Vz6(b?-OF9&U5Rx*Ed=}t&Q|2$zmC=^Tuuai*{R&-PB`u!YO(L z?3Q7{vmS*Qzz@e)@9MIR*!JC-y;uj_oo&O`!AWi&G4}87u>(D}ugebf+m8{i&?B$3!w?Z~ZgD5#ioFid> z#9zH=?dR}mcgY+;U&HVx#;EEA2A4HPk1kl@x52?htH7>|aJ=9nb9-(3fV_vHBAvHT zzi5_S5`HSqA_QX)4nG<+r_ek4z447qKu>OhUodi%9{1W?8ngxRG4c|ZAsrf{8ZW4M zS_r%imPg?ymQoQfhv<>HbWxQWwzOM&4^vEN`Jzf!6`qG7&@<$#-tb8nxYlQ|At7+- zu!3I5ri7FL+{lf>z)B_qJ}#H5r0{HYJ)gn?NTp;Oea(u9k|0eA9dp*`e4iLakt zFvt1CKKmN`Fz$7G`AclIPRH8%Wv-;$&-J7`DO#?qS-unTj`DagtRF3`f)BD6Ehi&9 z$)T?nrv+H_aSn@rQMYJ~M$fYs>e=wK`~+IOkrrk2?>KaY=c3=yopOKK7crt$hUV1d(#yh!_01&nAY1{(AIy+~Ct9%l`rmQh;iRrSgi|leSr=!OG*N znpd}}UsK++1(*IeR!>q6bh+e8bn#L4AWY9m3oIjxP-x5}EV!fyBZTklzMYiZbnT)uFIxY64hHHYa*0{VX&Q;&sT zUk9ye27vvLKUGP=Jxl444B=W=WUY2mbf=f1gVu7Nt&NEIoGz-qP3Q#WU}yG{Jul$Z zl6(Qkdr2kf5a-n%ftYT`F4?FE&JYv~a#hW;MtOD>Mu`7~ZP;nTYR*vq4Cm12pbu!} zwUA*NEF@cnAPLN-Q8!}hMbU}xa(|!h$pm-QFz*C;g+FtiQBrFJ^__xNg)V4z%5EV8 z0aG*9Mpr9@DU}?ClHknl!L1eEBL=W0rKzY|9(g6Y2eb1n+5~+S-t|1<4fqpoC7_=A z7Kjd$;WZd{QanzCN{54z3M9Y>yj&YPAfgq7$AcE=G`q-xPVexMBra>)!s0QRx024^ ztj-fX-o?{y=k{dhmUxG^B;!&q(4C#kAKX#tyN4$sjska`dCrx*Anjb8X!M;BI;oO_ zHhLM6#&n`O+lj;KMB8cz0wf2k;O$xH$g+_I%f3pxgX1h%;99a03l1JEoY3%dPsE4s z(3Wb1%W#shgq8(0$NwxWqKg@8yJ|<4sJ?}x6dpBfKQ?Fg!jC9{u?u`&0u5VHYcfle z!-=Y&op{ozWT67UAFVN^cQdnHY!A(XaVjEEe9EbdS?mJH5Rn z`u*fu^K%kLO3z#U1=lp)Cwda20?9!orxZ$7b_&xS2V46~+wb+~>>)Ai!m7coH~Y;kezRMf z3*t;=@^&%iLA#aJE>q!pB>lU{iBNJXz?AzY9JIG+6Fbv_yYYSG9^aX9^p@)$8SgFi zP8=U>7<@IM6g43djqA`wZOWM(y<1In_zZ0Nprc?%rOTua@9=RKs34psuNspbI}nLV zh3S(@Qa>$giVa0g3=)$(8EAytynTNjG_nj!@s|ZQ6`k`wP}RWnCBTFvu`x z?W3=ExOLPv_uE4nNv9Ly0kk`s@-S`p)~X98PLH+7G2uB^N-6x1V@(tyk@={k#c^4hTB+GV0y?(xNn1Z}hX(9H z^e!sfs4PjBtsk&^HQFh!_%I8{tp%m1-?2JC>2!rLlXEh`%ZpB~qt6a+@C@l1B_6fu z_h9~>UkOAdJc{F}-)c^HXinLdOTvb`F5A8_L=+rRXN3+ob=gC6b`*L!Yx^i#L$K9= z-4B9M<46Grw@%yPDZ7U_XdP`vTIzSkddPvBNQy}6?L%HBxWj>wiIg8U2;YO8%?@yC z3>i5u73&m&X)|JP*IhkcXdJP}Il?KTIx_?m{BJ3?dHwcLZO+@Q4zb~W#%<5rA8Sj- z`-^Vtl3S=fO1;SK2sm?A`?zR}BMK!lDV=NJSSXRFYSW z5ZTJDK+(}-!liW7VceNTaMaI+{yWR z3YL!8?IU)V4tmZ;9bB$HZkeO%0z49inc>n+Ppje0i0s6B);#W+)12LMNm;s8G}|OW zrv^1ds}m(^>t)`yp!zEfIU51tN}`nAr6bxF6-jk_#xvsBuFg7-nbs_JH}~7&-SYI$ zUBa4k)ZU2{@V*hdlYSi@v&~StNxNgj1rmLv+nxbQALG(bj9C-e@7QN3l1$T0@i_Ma zY8-mj9)6@hd2E08@?Fyo8r)SIzMB^bF_1^&oLMF~youUdlO%+z+%*MVK$YlebQ-^V z6}Ze<>CeHXRXKxlFXh83Bm{Uc6du0_N=e4o?WKLlf$;&Zx&_-z^63S4iP!OMh8w*Ko%T_qf% zp1xrhtE5_liaJ$A1Orqbb$xH?Q`(w;cjL>}ep$&q$Y*GCJkju_7hTurU^4gvIfGvY zL$VhwUtYV5{XoUG0Txn$p71AXu4bED`wY=vf)$Axqc2O*u6fDbe1p^5xEmDK-BypX zjt;x>NrEDo!T5!51uz$_=F0Nx?}~SUm%oYjXd~&c?+f|hl=jT&G)0M66f|5dd>FIl zKEa)vbkJ}_-DW-;sG_(2rB&d3C3*KIX2d_>pRVN<9^_n!!NnVDuO_E!*23!lU-;IB z73bs5y$SGn1Q5)k`qgkcYQ;oqJ|{K3obZzpx1wA{q2ma`M47*))O5%imcUku9L-ue z-tgmAe%>su%8TP$3x_<}6_Cagr?9RvR_VX%Bpt8QD?N)+qXNNM-_-bIB`*%(h^GjZQk{kY>wWGAX~M7rZ2mpB8OX_j_Xm)kHC@ zZ`D$+l^0M|bla|2{eml7K|UVY)WJ=aiC8EpKBZ$xl0mQIQA7j!LoZuUn%P-3qW|F; z;>iCYlH#S2pT=?NV#MKkVHJg`C#`;B81nEOjDk-WVAsabE(>pcKd0SDk2`@-h5P)# zAw+t2cyxK->2MndlmJy)?!RuhN+!yIs|4g&Qevha&`|>3U(13Q-S*yiHp8E$?#cHL zVQFPq2n!9?fH)Oyi5jtF^pn%H7<~;XyFoR^5mUB4qxe!8|0!sXUfIjMEhx^9U)7v! ztFhWS`3g!1k@X7z!-dQPgLWHI4(`u~lz@(HV%)Kp#z|{|6R|R>_TM<{4ph*dnEvKx z?3M|;!(VD1b_emLIs)=Rq*E9=-6EsV06r3mL{qw)BGHu#beO31&M|usJmsbD9aG)_ zVZ+?;$VvO?hz)c0mssQ-6m{Ts{B{J5c0g?j9TR}U_Xe%0c(H{|1d>qF0Z(<8Z3Qd)c5*bP(R9gS3wn*jd{U+E>9>5_nx4!^T5*pniL?Xyo2&V&w0 z53uq&p^&iA0nr6qEu^1{vmaGmjq>1dwU+Je)6#@kbhqN@Ld+sMw{_TdQ-pYaMjL!* zNO0)&~}8O!-QDqG$|At zQM*VMImF3_B3K82rCS>*V+JT z)tIUy4tLpOdWPa?d?{ngsJ(l{-Z^H2Q}$SwZIOpB_e8U*ubw^_U=Td!d+ecc=$o$>KQK|0cZ>du#X?|u9L8>(Gkp4bLWBZ-#*oK0E+v{ zI-K2tjiOvtDy_z;3I^8+|6*M<6rO&nKdfOTR);@{F9vfP^3||*8akn^L#j6^(-DIQ zVkN|URP0bqZzPhEi!=?iH2RQQM6(b;34NtKehS`mnX} z814=niWEFi?baddn6`a$M(KDYE)rU)eolnY=69(j92uLs~C($87byJWUN z7HA#holc)-2|IK}wbt&MleGjip`@O&21E%|IBd+yo9=Msj3y-0Q2w*R!*9R;j&v2Wsr6{Z-3A360GN&c!=>`XCXAXbE=)yL=w zsU_y(bGleTgeKnF*kOfXAv_-OMI~;jL;ncB^c0I*4&6&6aTn(#LQunrrBy0NFFmyd;|IzwF=LTe!R8eMrHB96tMa~5#8-jg2tC3zT(CUciHv|QVcYB+IGF-)P!x*)_K~tvVgx}t?%YhzGCuC#1iTdU^`X!I-TVu z#0(~Bg5@DOnlt{V*>lWz|XUvaqb2{(-dnM>uQXJXnun7m>{?x%|HSm{R`p*ih*9n8Y!$t~ym?M~Y;YWr)HYKlrk3 zWOBKy_KdA}+AT($TB>Wfv9qHVO0O`TU@z0&F{6(ZHS#$FB>GLPa))a0ft%MjLC+IB@5hrGHIKUwW;QO@UP$tmeezzz=Y)w3-XD!jx zg4JS;ZL(^t7VxBJ!7hsGu!kA5LzQ-J)?GbriO{h=HPqux^GIAe>h-PvpZ?uQ&(8za zr=?6iK(!mZ>7c_F!Zr6GwYQ=8flJO4S}o5yroQSktm++D6wbu+P#peog3|v9lukzn zqs315zmZ6_jNMhU3L_{Dp;>TI-a-mJwDC=0HdaP>aV4nD2FXrnejO|ycUWGx7RxE< z_{La%0xQYB7|Z`Jhvi^mjOAOv@>d;}-zEU}dpLviJIHQ*72Fx~Q;OkO*Ewt-wANRx zg}uFlw(V87vIyMR^(r6k8ME65t@BmtlJnT0?R(X3Vo$h6%WsbxxD$``s{~Gs*}a3- z^(vb2nDq?Wp;zr7dk+lS-7jONAG0C<*!$wg-p(q#XPS>gvQ$Fyux_{xI|`T|*3FaR1rUk%!uB=H-0NZzpGvgGH?PLXf`t)PkReTg6rMBvv}=A{(FB zOi0a|elAm)gv3aJTuoydPRGM+Kxe1L&8H=i!T~oQjd$?Ehz2&r#0WWiKUvl2JQwZ2 zWh13=-$i{;?UswSd){upY@K`-;4-?sy@i?qXi~Va5a%fqdRE5wO=uNU-jmtsJ(-`WbIc7-80^;5csYfUNYYi2p@MwjGELXK{Bc!rG%`Zl%E zE_O!Ko!qmblS}abbTe6KNNMO$lwH*~Jwb(5Dm%?u+a!t{C5?&h z8&|Eb`QViO55CR-#r=%{BN7F{K82l*&8s+K+57?Imdz}iQIt;L|=82k@6WK(DTff9p?$c zClm(dgDt5;1vt5w4(sPu6X`4yBvdCBKz{RQV*%t(@pPwyx3C}v6N;_nx`JpsA+b`a zLSM^L>eXUm2?@35kegu?gUAcy&9TyAkvWzxYOgr7Ur(H*)I$tTlM)pu3cZ;@*Fl?` zq3Z~NGjcw{Fmd-b(wD7>&=hGNv|EC9z9NEjcg1$T1OvjPUGXIrFlO}d9R%-zDIw-R z%JdRmSgDK?RNa-kYh*3BQT1Q05tNLmUuk*MvgvDJa2kw{uqmfW#F2C;CT<~+;p>*k zc`rBI7JGD`ch3V6gs$tbqcx3j352R4aM7aT=$pvsdYeS}qjFVa$!4tQjIm^o$Q1NO7ouk>Ec6wk4-0AUwKv zQ%dH9)gxuIwicxH5RtcmvO?p#fd(@kOA3<;QsRSSmh~laU2y^O+2pC2(rlbu?LeZs2 z9EnmI-vx_)g>|?DBX9HuE56LCGx10pS&m$2BSdj5!kn zK8TDC*jCEj%z=c6P8lB_!5|{&u zqT@inq10QRQ}9XC-wC@A#%d=$g8G246wI6+)$_#q(<-6}@*$$Z2LwjoBJu1N0k_{j z#;XM#OfWo&=+R z@GDy=<%gE4myO}byo8wRL^p!AT0oH|Ivj^zITeAJml@S7!ZXl@2?9Sqx5M9RMvf84 zwrCH{&_I{9i&s^_^67dFSk@~rxAR%tFWBQC5b|F?E1M!oOkB->bWhfP94#<_k351)Q!44bT>V8Tca29c>tA z0;2w^1Nwt;2<5O(@!1HFZSJYtFauBu3#Rgz&;qBPTY6*aE{#IP)`J2Y2o;rHxwZF2 zy&ROmNk$i1BN#Za$k_!aX`Gv~JFFbw(~OFZ`RFL%bJbrY|MEH)PQw}bPZ8iYB9VO0 zl}+O~c&jrv$)f9&>Jgn|9NJ*b(#Ge)1Q)drxP7$HNF4dKWCxXMi}B&W1w|%zUyx6( z>w&}A%w(BLQgFZB1yI-<>l7~0^y5Iui`msS?(FOgwW^bKGX;9J1le~U2 zpvLdGndD0dj1L01&l%)1q%j`+O0QH zijA0*odO>i;Z}7`_y->+mI_m3SVA0?+6sRwV3z5XK3I*T0shxOd=1!%iJV^U(@n9h zgF{7VW9;bGhQmkL5`pM+4GuM{a7UTX=&}r*blDxj9baJGz|#p(10$F%RuG&RnVgWG zrs$y6J?H2XzRK<7J}F`dD$R#E!V-K&<#@=E5l`8jayVe)DaGuJcWWc_q#`66kU$u9 zIkdggae)n|jSsUzc}v1if2>ilAtm8o=J6>XbAbxkn)MAhj}K`=6oMl0I6rJp*+B zviibCddByH>I5oJn^p}z8Z84#_{-(dx@>Pnhe8jgO5EMF6a?+1-W(QN(pb`kUm)f4@HkYP zBv#U=h^!@GkD^w^FYm(Rm*gi!c)Mo$5_wrShThfv}<-Rj2w@m1ll}uea&zpnQRG z#y&)T%e*~GU4vOF!>M>BxtWCQ628z0#$VPaT%##jp%m8{gdfeOo+er=m7mXJHbou* z^jJ8GVRu>q&KCYLdjBe^_JA(J%Q$cqR{Ro+?AQR`i7b1T#T2P6YlX zzpN9|O_y~Ko)kWz(JUpBhzpQ|a6hchtX#Y^^~fVGpqAyTXe}ZoBvfH@`J%q+O~p2< z8W&-Z^1N3#7Xtz}SF6S3SSvEx?>{gB`UU;qgYhnNR*w{DqK44DdDF>(5GPs6KADOxj%-z30@q{2smQJU;||h*c^iM9YP|Z&`?_0HO(}Kp;ja z9&bJ+?zWK{(T>U2;n(wKbXJ|Hamd@nE6FKz&Zs-QooUIc2xsK&XfS*wY1D2C{|lb2 z#0KSja^zt1AQK&P?E3I)_`E7;kXqI284i{+H}k?0_{OblfD)7IM#v?q!T3u~%J(^e zw8v*q2%3T96JbCfnC+tQpFYt}wD9+oGf8YfbQCu59kD74zq)QD@!KTS8dDQ6EOfk# zRHi~Qj)Y$L3s<|&Gy>d-m`&hExZGni3LmI}%ak00{Nj2>DClIlAh_x7`@H>U$**4$ zgERzK(g~|-X4OOOFvekrD4VoGLJ&G(PlVw4C#!WYq028=8*Uyj63zvJ$ls@$UDWL$ zj$9!wY57a^nOR<5uXquT!0Xq4e@(NRAuwKqr)&zH0@-xIi0x{JJX3)P)fcJ5_lO8f zR#)ZsT-#KMDSh0^THGiBgN6XeWWr&^xpZ8A5@$6eF7y;2Cj*K-kN7Iuv$fj9N>O>;f%J>vFP& z{jy)CpeQG0$K0)LmwPh;h~6A>)?qh-J%@xqiGeC=O82rj6bBGI;DdceysR?qt|3l3 zqUJx_6DVrP;mE8W0J3@~QRp#|L)%k^S#kJzeZ3j0n1z4N8Xzo`O00C-W6z_wqZR9P z80|#ca!oFU$;Tb}?QxkRDV-xO3ZYM341%3yo~$l;i0ZOKqMvhY8*x{wj+h38(K+Av zlIQ0tOkiPpESsfE>4)dfTgA6!tRrfrNIf85LZ2+IM?__jde1H^bU#hX^M$FzS&~sI zs@UnfY)>Kz>cMwn5Z6|Pbny%AK5P9WHl)sN?ou-Morqs!ME+0uK@xaH0f7=+TO{6; z@E}%v_+kf=(ZGoDIZDz~yX*;;d>5fA^;{~Wg8aaXLb>#xx{^~QeR@v~Y+Bvp8Et4G z70pEN)^OLqVwInE$;t{N&)TPer6l6O z9pU$P>l>aVE0PSab3kGcvk_zpA^8-{z{qd;*#AwNuDkFe3vzGZQMSJ zr-K2@^&&AjF1HjHIgOwGO!D;R=M*-!9aP-~AKG-*@pbhVMx>2Y`8~b#3yq!|aIQ8_ z-Amh3e`h2U{wSauG*GMsN=)7 z7ZVrKK8BBZB}77O_je%a$2n8?`*LhcKJIbEtw1s>v}Q3CQqiidNs*Hn{Wf9l#LA!^ zVAXiWZhr)M52Fc?L_Et-{HFS!FjwPh*mFj9!Upj47ACAVdXKbz*=*kD=A!0|atB~< zs8|~qZ-aM_F#8S?lnRjUX)$(LlStY*MPJL72OSyM_$R`fjWg?NGlb_VupteCjhElxIX);S^B93?%n}1|!8@!=KLBasblIty zaIi@+VT86?sYp(PBTj%@Qlu(NeOt6G)EZV$+AKzmcB{Dt*!lE&ILg9893hci?+_pX zl4un`az{ADbcC139sWx4O2thOhs`ze+Yf4ke54JK6Awi6(Sy)&X`6Y!;$wt7`e5;O z6X1*bi4nA8Zb6A_CKnyI(j@b@889>TPX6ogD=gSjk+edp2!8hrU+_ZD>l94O!t>a! z#pA*c!?cic5@?&RT^^si+7-ftS3HNi^fj!k40-nd)k7 zm}Bt-Je(!ev}+c;R4ZHG5M;L)o(IV+=|gQ=lr=WbARp6O(y5EZ*Wh%;;;T%a@Ds(7_xdblRZm2f9B79KKI`U~#r^?u&WJ=c3~`P{2-{1W2Tu2RWqNVbaaLbNHhe_5*^!lX10 z)`iS~tP718BH)%&9OsG#bHXysECg!LxB~n&qnB+9j)3b3eI-a;a97=uP~| zMx$5Z!|w9-*6gdw^v2v*;pHbUxPWvI#6PSUtU*4{z;jYCk%^pWCuxZ9$>oh_u9Q zVl9$Qq52E12qOMzy2Wwf4Aw>h6I?hHHmq&fot8xG>prBN+6S$bk1L>FsHS)W#D%i4 zV+x=u0I?)FLk`ux%reE7oG)A@$uJa8szyjrg!qb~1U^I0h;-5DT@Db0qV$3)LfJ-z#>=9L}=Ah@G|Zytgv?bo%gDd{oDhm0lGBR&*dM z!0J^$s0_J8jT0H@R1VPa1uJTalOBaxIM{fJmK-mUii%*P2SVFt}lO(^aa^FGm22QpwHj} zRNRs>iy+;h^+u!pL z;c{X01We$NJ%*`nUNtP=mVGG-m%JmT6ZR8QR5YYY4XNgoX7CBjg(Gsl zI1391)XG}Nx_S?2_ftwP;7b%;j3NksqR~@!niugPq^vq@Sx`NTnqKruJWUuwo;5yU zT{0=lokH3tz0!(;=+C_mhjvQ7i&ls4%Q>9h-K%UcYE|)j5Pu$#{$>U&nsGLWf>$((l~gHTh4wDZ<7uJu8bvLjN2s|)%ujr)C1|9NTi8Ce>M zD69A~rFF}@AXJ}FcGcYCbC)+`D<44sQFVFhqVx`%3tcSJvwT`^Y$+aka{*>kz_kdT_3mkc#pkr*7}fByMldC3G(=zkF+5fj}xI-LWr2yXpzBI zcFA{=%u&XJ1xDW1A!LpzyN{2Dity00%75}k_6?r+$DazI%{%1qyL;aDy5Rux*ymc; z$tt*PgtOd6*V7Y}lXF)3H4WH*rCHgQY~R zcUp3m&>@U+L)@VUDq+ZuFDsEyNQx(C6=VLQm9@E|EqI=J7S+cY(PFC| zXJW*4hUOmcY2d7^Uo=kawxn!9gb;Z-Q>fq|kJ7_PZxN**xzH5uM$rXK4saU@Z%46E zls)bNzL?DB;IQ?L*irW032-*G+fL+Q{9flU+@6LhRg!1IXfGu_EP2|tU$yl(2e7Ka z31}Pb`aO_w2d)ypgw4dVnR?2-f50OF6Rne^W9FF%2DP!hhf zt}Cq8|CVZto^`mH#s@uof>D zq~OYG{NZJ!7^<3wn?Hv&1h8ph;XN_h5R#_`k$bg?kqEQjr*kL!oy(KGG3?~qi%dwR zJGT=3A7*xYh5kb^`jboD7<~aE!wfe;OcC&iSb!!Ye4@%SgwinGFX};3l%|UIiQO zK|4Ye>f$Y>{PEpODH88_);=&|KRs{VJ$CT|R!FFe5Q1Xi z4uDZZoItTy=NAxRc!={zM36byKOy~P*Q^4=1|f9FZRBs$xxGu)xnP?p>lfTg${{Ms zOn!9m^R%gA(MuWB9J+AiX|qq-~g=8KFUF$P(R``tQp(=53;F;*=lpAN_} z37M)YWvX(PqS)X;H(i8MT&u+g3MwM3msnqlAp{7turESl@d6TZfYUZ9U?=HqI|w_OJ827;B-16rX>R76c7&burkw^m>21%<4Yt!eZO<9N zcGKx1NITOz%l&+R&;Nb(ip5EqOlQtL^)dRt|Lyrd%kTN^3(vsYWxy@s+zxBbjzDYA zj#6r$B3WGvnZE+Uk-I$;f6f!8=rf3#?1o{t@hvKR*>mG629G|X@J&=Q2o$(bYQFXx zBNId)BcRFVug2SQ!c?U)TbOP>+MpdDz&P4dSdDcIUI6`=wuh`Sf8>^rtBwH4I0|uo zLNu9uTV5*pt$2KNVb)ehN&;l4{DoR)bax_vp@z_4W5VTq*%hMsCu5*lcd6ZKimbdk zD&4UEZlD(Y3oQo<86;13W?8I6#%8c~5fl!ji1Y3=(CMc!3J>7&RLH+iMWRcJ-ABVS zai>vf^rV--!wPMnkqLGz)nO3&7uP}(!+q8`W?hpctB#qzpVMr zLz3^7wT$PWwmH1IN-dGCL!Y3<{L|E4mPNmsQvN&&a znb@q5Fg<{584$c=zIUK!k`%n82y8mI5T83DMcUnJ=qMUs@A(I7hgy8Q+kx;lc9-WL zSeN=d%pa+4P>A62R&ZJwcOaTxLOYRk`{Se6T;z;=6EjJ`gGvHLQx+jrC;-rZLI*L+ z)}ebqq+|I_o%cjS_a=FXjvI4{@%N<6^J`Gw;?~&iimCd7Cd+&laX!@#%1J>t_cMJY zU%BE65mlfSXGQ*tM%=s}xp~x(SC)^>;$wmtu=ILAf09`ESm@<7=Y*@Pa_h-=gOZ*+ zJumxwWx?|(RQ&U{Dd3S*>y^)vRHVD95mwI2kIUu6-uugOiG2{b@@I93b!w5Ck1%C_UOpO>2M)bsr{v2S8w!}heOq;)yRVV?zbXvR_9o1 zTGFDUp;FC9TZS;QiN~{odE;){eqpK?)b2|6v;K2o654wAj4m?}V-u(bW2gTiFWNP|4$wV0xVW(&Y{rndP?0Gi7RN+@Wm3%4>RGETto;wp!VhFEG{470C+Un!%E zdgXx2xPdN@pJX_J$mgS};#-iobvzC-68=Qs4mDJE#tUZO#G4)hG5LnD2yfUzPPnWu z3w^i=tqrgSUKisFktD1IYu$CXs9iQI{J65PL!g7n+-|H4wAc7rEFGk9Vyf^ z2i$VvLE))bIGkfp(_u!S^gHHB*u3+u48efbWFpH6iuN+5`~%>?39qF07M}>GVw^D1 zXn#aGJ;IR?;k`P*-J*KMb(&yh&RH-`19K}w&IQ+i#X+p@cK0*}H*(Mtu!O5IF;LVN z#Hr`Ht8I6cXsd@qTzN9d0f_(7t}pu&hYzX*pQ6`eZyp3WQ5=a}-mfbNrV=LF^o#U; z1uj;ikm~Ca(x^U z_^fowd8YB2j;2(m(Xw&3tVcbE?ui;OWTQV!^I0z)hUOc3j5M!=agl zdpxas%+PK)d{~_8ZXS_p=KO<)6}jW{wc}<7`DA4yz!`hnb=Q8=9l|h;jhr;V3VBch zfw#pNfa*9UhMye~d>{Xg{NVq=33);AZSue2bp_XNJ8G}@!U0U0UFmz`bie>Oij!gw zXL|gL;iz~#yBiw}V$mx|I;FI!lGKpDpRlhB?z`THg^jv_l|?}_)yIV|C-1OWrgSb; z2IRXuR6hKgmU;3ClnM8?F!hP4XL^2?|6=O94{mkJQz>7YdObVHSFk>R%G?5ZeiWM5 z2m71shgo;KWNDuKe~K8%A2P%z;s-r4!End|h%tKX)f($BZQ*D56 zVryheL&}(3hRA!dgHR_ZSCX+b_DqarGNdHISUy&3A~^h24jy(S(tA~a+F=T1Ik9_A z@?@w*l2aNk$V9p1)PR8v$0ohpjWzLHKZr(b3{)ojld7s-ogzhj!h4Ufd$K=&_q|Y~ zt6leo%dApP=GFffsxq10?&x7-rBJlly!bOHhE33R&pG{KvUwx1Veb&%HWwun&+vW^&PRM%B|{rXpscC1n<7FgcWxTe;sojC-W`N2ZYW?)OmBe)kkrm?$yALkNjwFSs?- zpSx>b!xj;#GC);W9nP5)$W|~OE{r?l6Jk`PGBMeHd2)HH{!Ug!;@fzUU|<>9q^_%! z8&KZ)QH9=0ILaS)YlhthLWLQ@CKLfMEI7_QWG*N(MnsdhLvm$Ont@4MI%#(CTkdHD z+L-j1@*!7Em0`CT6B3Oy!gkRJVa`PdUbJIJ;Dx>gfjtHYHWE0Na8JDWn6 z=bd-UtO}o4Lebaq|Lj&&>tj#(=S;zQ-Rd+%gX6@ohtGxAXOlj=LXHNl=W�X}VsSK-og^JT~TE3YaU*R43 zQzsYt|DQ8zV9Oq5b|6J&mieal@?+xW+|g7?v;9x=@K5t_4?Lio{K;(V9|Z{iaX%XT zDshf;gFlW`gvg&%6D2=+3O4U5ks8xQ#iZ(kigoKSX0a9=K5e>#?QTH3^t$`JPD!D2 z)sAECmGJocI-&_(7Mu#>p4h`H0?0RHFBDr3`-V-F8*?w}4cM7J9j?2J*3dN+Pn@TZ zp?mVjZ|F$FPwTM&liU`5h^QKGgu+Yp4(gs!0Bz;CSl*c@`VL}hBLkX?3t#(%O z?oX79n9aJ7o^@F;;?+wDUSh$6c!_7v-OWoB2Gvxte_95Sx&uGNB&{X>jNw#b73}$+ zI~J74ckxAq0n1yqTw^Hd(%iXXVw`0R@Rm^eB4WY ze1F;(WQIgZ1RJYJM^}W49ZrpCmfki83bZlec<|%Z5MkZK9GNCY$LrogQ}6wqylY6{ zFA~>M*6S)@?##kx>NB5X6rJu`b%R8OI@Ft$m&6vxXv&6!W(s8xdC)768ml>w_ycnu zb_qD**lW@+%_L4-pWklEJld1)EKn!wTc)s%1Wb{#6%O6{Fr)bnSgM<0qh6^*st918 z^YBg7+hOpbm{>`iDl{vEOG!7We#vE6;B7a0`?8|Nrg`6G%8-P*u?at`kiY*1Cjg_m?V>6bcdS5X;^2a_bs;#p16@ zVqeoTMJ#EMSdv9%V@#4n91^XGh8O2gWJ~;?Fgl0wQ8HN5Y2zU}NDb=5kTWIkm+!%scYsrg@a zWkmiGw&@2-Jy59auv`!GVfryqsw^mZ7lP9t!=Gx4%i4+p{;$(3VlPYUATQ<**E$qX zavBFC&B1AJcuVZKMT&1Hl`prVpGdA+{^zyosrSObduFik4TXb{^mp2Xn@MdhY-eN{ zva~kn70sc2rJ)FbLEs(4)+d>Ba{J{|68*!QE_l~AGs+FDKI+@@WWRDguXOhdaI=jr zD>ff9d0%9)2Z#(Y*Z@M7;4p^Cp7`8-=HQ}oxH!3#?vQH;3As^5v0KcWHktp^&giJw zHF;i%?Dmm`mOP^T!}kh@xy5*bTy$$8h&B4lVDS+9AsfS6#P?5Vz>1jqE@mGTa8&;o z>LB!^^e{X2w`%Brv^vP^eQMu!z z5nAD1@JEp`AJW+SPvlLus(&JH_a|?&K1h%rb}}pr-ne1*%$1%U2}zj`J%igYR5fPi zu|R>-=0^dbwKB<3^tU=(cLH@-HS^Q)KIKUKc9F`*x>w_UOhl(dxuav=qUgWIn`OEf zTaskcX2$v^$XMW@Yl1vQG_W_Qh-lj5yuWic~eEA=-hHh-F>dr z0=0>C!|XkImk0~=!>Dm_gji05O}Q`${>WVGmTDK%FwQO{It4xA7;6$<=mQe^7F=)# zXq1#cvgfh(!l=;;?x#5rx_wNCuuSd+cfmxzbM6=IIOMEWEm68(H&Jk}`?4K}+?VWl z!Tp(z8GGFy*>T8y+m4{-DAzOhy1&smbNnCec)?xPbu4Y??KtFq(T;NM#R7#1=Zgtw zg3IwWj9F=kn{?6Eoza^cMeI8Xx5e$}@5jf9*CO~p+0g>^CN(Y@*)hX=cPoAxSj|S#L%nW}|9ETQ_$SA0O1D!=SB5Bt2B%*^ zKZ)xrxxES-29=ogk;}$M%B5RafV|)jaOutqN(t$~yJ0?_BY;l%R7ZY3#2k=T*W9$J zgM(+pN<2__a`tb^J|Yi$`F9qCxm8rf6uiMJmE0jm-wdoKn5i%8iDI|%mM|5%)AleI?x;+1q+kk)bm|OfYIS(maE48P{m{|C0=0vzfGxe&^|LQqq_>UtR*f}$IvS-EN zuxCwi!=@ePlpXO=9WJ+H>S@=RTYE`*ytGe#18DIrq76(|$JGw4HdajWIq&VNw?Z2$U5MBqli% zo=uyYSUI2*NiSUNyx3V{tngHy&dbau5)Elw$~DiLO*KV+9-b(6%Wk3*7ELCY&e(4IUu)J>>nGt>;F4{8cYc`*15}^I0x3n>LN!v4Pq24pZm+ zG!A)82#V6EnN2^7peQ@P;C@#}X4B8&P>2dIxEs38Z2DOo3Q-|zWwW_AoW-FK6|!13 zdwZRqMOG`E&5jm;gYgL_;Z!NVmy~aREKG>g6l-sokV<>PgyfSnOt`q*dxA{3g0G4Y zYQ1pG`dB2f*;SJuW3 z{{yk!#1D(~?uYHbMfBKWk4VB8CX}FD)OLoVq}s2uD=~l)1%(3-?ub1~$w~Dj0*iQJ z!Pj&;ogpH>tBwe1kIYnGYj`=B@adLfbG@AJ{q-RN(i#zNvfuzs;b6#j-bj3>lKc~f zXk%x7$6#NW1PprC_fuZtK~~ti*%tWjd-j-`?6R+OASw^%f8WWuUz1lW;Uo$NPzG2G z&b2%p)OxAdn+*dxDc%ugOI$CVv@_Jw>Lgx%ASP;2vssGSn6XOQnf@6=GnO#J6@v3A z>C-JXL*)sXHB<{op7>LlHZYOzU~g!qCp=D_@aY4|s#@hgZh8i)FcMNq6VjRC)9y3l z(X~R#sFHEzhMR_r?KL%6kTJ{gEN;dUr_kdI?MAs$sAHG{__VQma;cD>lh2A~pv>>m zfvekftoKF)?4w3mGPwS6u4mM{*R+Rl!86-HCfCo{1$++SH^5M=e{mFOCQPuLyDP~y zNtPGfoKz*6;sl0;z5X=96(bDwcRyYHBRnmdf)OG~=(DlZ@5NJ)aM5x&2ah75J(WC% zjR7Djiczm~2H{<-sT{2+hl8h@E}|T;Bcz;g9!$L?brcB_CsGi66xtlf*&E+k9295b zREO>fGNzOu)TlG1kxgoi?L-L~+62mv&*r5?3NN5nTFo`MS1qZWH0(4?cj2=(2mkt> z_feyvv%vIV2YcIP>_2Sf zLQQeFS-D5&t5H7ktK@Y>O{^7ADx_hK^`54y&MO#)^v-4S++d_=Yrt1?Ny?@P4H3Pj zjAqNf?@F0aY3$#0i^NTnH1;99qA+rh@V7=WYd_W%%S$ z{}D!S;=<<*NkkFGw5eEv`IJ;)T>sSf9|7!s;`0ux@k0ag53!6tvF7sD2qBgP*MA0q zEqD!=00^-mqcAWTJPBV3zpib9mzEB|mWZ*ocWnMoij#k^PGfp`LOqcA&l4(*%RjbC z1J!tsMAO)G;&9bDR&kKQ8Y%7Dzp^O#-JejXOvVfjBYGd-Y&?@ zj2)s3C_`{YzxQ;5Ce{11GPlWRp&t)0E!Iw&7SZ;gHJb-t3x#dQVe!2wev7!czN3{Q z6(^PhevodPF3zAd5osDIe8OulM_Sw|SV96M2_SxiEEYKMB|RVS*8&Brp=i5g7F$k* z3kVv?F-ClFA%xjlr7j-~>-?7#{a^N?(sQ7s$%mYX77>hS`Y)em5~1HvFM$Dl24|J# z%1CgL^q#>5yY^wcMazn(bORJX(ikw501N-6YqHldwYiHPQW zSP2P~wFpN;Z0p>!>bJ9PCaYh>GxDJlsICqJzEmA1t95fYG zWU%Q{@DZLgcn)tMMKgLxyn^W^OyTYXmE){0zy7EOk=xM56{U!GPUPuuF^0@S3lG5HdsqoSh0e2TGN zbUULfkR#y>=AqkceqHILmcL~-$|uIDF`}yHk5df+vt*5XVpI_rhxyP!URa3#?2z)v zbY5{oTzh1k*uNq-H10l9V}Pu)_Hi`LuY72GowOxq+=X3<_C`Ony;;P?vQ}oy3$rq_ zjXuWcNDBTD9XS1rL<~d}Q#zxwxT16Tj$g7PsI*1iu`EAXZs*g_GD^#myX(By^@MRL z6rw+`Ao@+b%aU6#B#ze2t{UD4N932~e7uNE`hZ!NTmPDS8i!OG+jbh0A1e0kx>Jqg z@)@OXt-)cP;<&Z$N%Y4@cIjNf$YtEuvG&IkRl z%DMwHssr_ao|TDX`Dc_dU@8k)m?#MfQZJ1YI&1cu^Mls4jL! z_>RyH5X_I=Yj)35Z~5L)5d#nR7Ps?;+p}E@|L8^c6kzOo{_wfG@6`jVmy%;1_pbfd z-P+d~X@lCr8EX9vx2;?G?WZ(a``|{`6UGzlNzO!LP-9@w>!$3K47Lyi4z?+7Y59@9#}R3ELw*Vx9dh? z5vI)7)TV8|s4W^oPGhk0!{)2$-uZgS&)1!w)O>ktVA~)G5>LIJ3SlEt=4L8{-8Hy< zZuO<9@Ohu<_keo;IkKgx7fk&SbL6+(gXc&v6=Df8_WeWAgkj66^YidoSARYPtF6O8 z(}7{HBRQ)~fDcp1=Dcblb(6bga%3a_ zKm_=|W?YTGBS@3Awafp|x_|H*ysS<$#bQ2NRw zy>6s%%XMFG$zq(7~S1&4-5dwFO~U`E)5MU%op9PX7J=| z$ZC%*k6Ims)V{CGhpQ+p4{2b!yA&F|ifq)2y0G2tcT2|H&tpd6Fl>KuDOoZm=wB53 zJ-6jqw*vl{@vMNq3r^f{j|6#pRqtp0i&I9nN+aV7+mOdl4Z#Gq(-rcfcIq(Xj_N?S zTXn2AW+gz@81#2v2=9t&6R5btPOtgee82AH4Zg@#P5o0}7q`CSqT71KJ$y&872D3c zRaf*)YrWP8VSvDyXh*Jb!K1zb0-rzQHuChCYeTO`92rW$mP_HP)ZfwAAaC<=Ry^z4 zhRAXOdspwC1rqvj0^$3gA{6{t5||54*Py{?rJmh)znhDK?Wnj{2lW+VorxWUSy&x> z>SH%3p7sf6d9-J}sMJI&iRmW}9r<7#iAJ_kUkW&S;sS2AFG-$Np6XTHs7J}ljg1%F zaSkfo^UyW-kqdNj!hM_oKvb8}DlF`Gq$rjJ2cA<}Pypg_4%9P}+8yh-HUrZvlLl^4 zWx+4JfK4X&TZaxG`;mzNVP=ZA6@Mr?6hBI?ys#%b&3@$exfxI^7~S!rdE86q9bc0_^T80=l}1-(-#E4kL@QC{9&3>dYmJQ znh5HPsA#5>VC&DKrCw1(z-A75Z~_KxbXdw5BdU_=%9unpCd6fv;Su=CDZFEn{Ufmt z?$VVIC5j^oik?zwSi0QOGfp1iGlKjs&ffv1hDlJzja4nw%AwFS=8$T)JUF@68|)^q z$}M*D;*u*LdGfBtE3k}=D1jB7(|`l!zbbeETU?4B2HnQ}RWan?MO0k)S>%DY-BG@c z!UVw`y#qOm+U0dD>Ax8T4bWw&9;)8q**B8UD!p8N?ESmcEAvtKkmd&yh3Pj)A2RP* z^&VRlS_V1klaE7oE&v=k6*W7=dOe#3uYM-7nJrsR3h3Kz2boDQ8Q59SWR(w|h7Q0%gido~1?InL$jS4re zV_Q+Jpz7-%(vX?7lMOA2El`M7(^+@K@6QoDdB_Yh;xMnP%1vFPf(d-H|F(*lGw%zsc`|&O`IrClh*W40J1m9Q+JwO9+(JdTv<>%bPq{YD9@{C&!(}EQLC|oiLvaZPIqI z^9E`(*SK!3aM}RTflhWX_Yi(tXw(>I-NV7jFoQ8kVZY}dt=2aV`llLo@S-?D*yE;7 z0dm93%gBj{dMlw>t5n_~7@NgJ*`OpDbCskdL4|YO)t{k6^gB|HkY?mzy0ex{Y^UAf zW>ir%jJ(1pFt$*DDWgo!%waymCO$GXwk6#tqQ0#o^%f2PjM~5M{f98TnU@yr zUJBd&w_&?odMxO_=5-W9R_B*Vs|pkY65a+^@12#`+@gz~#k=O$WZdh5 zZ@4d?0d0o&zv0>@R8DT~Ue|m_r+X%(t>kpYJN~Kd&2GyL*E*qV+ha&RH{5PJ zS@7;#rIspf_tH=+h*k1(_Tj!>fJOW)#Gl-)2^~= z{|`4Wjc>XQOax(rJ^xci@cg|az^leaAdC+iz2L0q^_vllZ1T0Occap?EkJFL1LQ5Y z^0p>zL2&Nl`Qkk#Awx3BeU~}$O?Y$XCNHGe}No9JHQq+LB`#cN-Tpvo_@l(KloQA?L$EEQ<-@e zog@cP=@;a=I{mf`2`~U6^{Hl%e@0h_>1j!5qqsj2B`cRV5{QTz3sCrTvR&Xlfa>jG zHhU>~qgqgI-)79BnN3DB{co8$Jt5!9ThO#<*(>{8+yog5YR`tcbsBQh@-1T zSphYsl#KB4z48+cd7XvoG)45V$I#;oZcDec62;_&xb0R%A1alwKp7#J=tU&oIW5Mk zm_&|x>ks(c+-OzAtqMB#x*0SwA^#58y;UzxIi2^STgzSCE?Qg-nd8W%+n`8p$x^_# zxDdJ^?t=pvhUZ+i$2@-m>ta;F2W0vOVBu&DHMNqrGTEqKXYz{*I(b#K!BdQ$wxU5@ zMQyOTegh7P8%WpLUdK$l>t|x7O+^2PO$13unI-0h7`M5vDQ|cIjBwjoHy6zSN_$Q= z;EJ`xYAbHqZ>o+`*{~!ITxDnZiJ0vt!p3o_2&abrgG#Kln< z2>!_rFLX1Ji8jIwb2;K0y@XRscCv2IQ(B%vBvvKrDY}hko8J@KBe2POCy4!iq8Bq> zaSQO7!mW!>!c5}=H(Sp0l02CiLu-6V(kVL;;b9@8q3jhgnoIYwt%(I@NnVl+_#7;? z{H7+K5Hk}Ej)u7beR>e}dr8=uYD$y_xugtz3z|T;7vVOKt*izU7SX?mCdSE;yGJi@ z>b>KN+;hzD)K5XOEAJ#`YgRMrMNBfCd;_z|(0{vPE^bh!4JPYi5ZeNx@qx=X6s$g)dpM`6Mt{1x}Wj zk(@_m!r-eAz3{ZHS|xE_Q$#pIO=6vF<&&;C<_3ll;ErJ>3WA@0Q~$^$t=tHT&124Y@_Y zvz!ep764axETSBd(;Z5pGBy+Lab`56l017JQqR^fp>JiPxR42Kd`qY%h^{J34DD&n z;(4E#(Q82QYL#L%+GYATxM$f^iCmM+OOfX3K2fUAj?1%#yJA1>F$p9z7FRw)YRpQX zP}5=z5=AUZmOK1IOr=Bw^H+shl$w;3fz?;7Wc#SfSN(%W!3gL*J*U_7nBH1X>7_zL z%`e$zV5KROh{#V)fb~Ck0gS@J~IN69iR!K3yGJ)1mpNsz((={wBaHOT;vx#fP@T+LC?SkY#Z7X zrH${w!2yDUx0O1mWOTOJvENPPgtZL-*v$GrL;X!I`V!O}beoLZDC6*@1nX#BAz*Vk zFooss%3*Th8!u}~A(OR47173um)u;G!RE6|l88dwNC@QisCPMuB50?qMcQKzQh%D* z*oEJK7lFKWxem%Bn9`NMTVRVh6skrD2p7LG9;j-@y>^6<72-K8z$+UkRLwR{<~raj zHr@Ae1|Cp6PXH7%j-PetnsVCXb7CD|lvp?8cZS_#l&IC@iIa!<5n6*t2>YO$?zdKl zeF{_DCUkm1e>9g(cJucOf(sY(Og2EUKwfdMEf(B#W%zOFu;( z#Nc1Cw<5viNQG*d<9eKV-If2X2Ol6{?`9OUX9bsOPAy4w0LE20 z+Tv?NL``HQ*6Rw06k~aByG1Zk6ie-fDI=crjsxg339D#u8Dn0B=0kA7*DabH^2zEz zAj?^|3Z9Q#JJ3eV1B*elD^&b)ktK&ih$QPVDG2lNY-KQd34THcQ$_=eGjV1oi|mLu zGgWv($A;E3OuZ3H((~ywj6opFgg>JqK@Md!+8-i(=FbU&L0e3G3%Y%yoVaQ)sBvXi zg+t}<4C*PjMu~_A-!g5uRig<%r)t+CuhEmnf)kV_wkUedp9Mo%{T|)5e)Q z5Ewex0`?loFUAF6%rDuT@hd4|DtpMhxr!jO59EmHVDOc86tqNG4jtk(b~NH4$z&n- z{8$CSC4t^m2SLsYNDb>KC>i^*MXC`cM6_8hsaAT_L{@+dUKl*H*JBbNXaFG+j}vs+ zCUYQo&N9e+PYp1lTL4x#0+4XGV$5%@rhIDbwKaMBFhyi$2X`v4Aoy3A)a2uPoBUb)$0{WJ`;1PyABmmZ~`jtPg)tOy8+mdS7F`^rID7aOHg$vEm5iZCin z26GW0RiK$*<5OV(z8t>40IylXorqsGm1meB)k8MSgz*$Uy#UOF+~lA~ARS@?p1kOW zFW^UqoE}|FVx!nXsOvR1>oCi6(`|Sa`vw#)cEV1pPsxtR#wq<Hq?CO>G2xbd;L1-5)N@+ktHfJDo3Wn390AwmCv*##$3R8L7ebHGlksaoi*{=X z#oPAzhzp-ch^=Yd6FUxQ6@i$C1GqBB7Ym_OV@Q$qi7VCMJ|=Auj>9T5K?xXKRnNcy z6NAD)CCbeLcIMKddAf!bMN^VYHe+YtT{Aeal*02t>^oj5GvU^p$FYvus!Gv{$rQ;E zjozcY&BfJt9dPmC8kpJdfIx7{z7*tm@3)7hMcKJSvt?m=<#f+{s zZ3U+GVw>J#veQ|Wc1?4h%Hyqw6z${%3};jT6e7=E60#B4MR z(3``DARv1vP6fgP0&0@W|RFF&Z$Ajgb{sV5mYEaI9d2Y&!;a7=?f~5MTlszvp~fIpRbd+ha%iRzj%~0 z;_g=86zZ*@*W%~+b~QU<(YtOwJJpJ?EM)W|6|9y`#)MB|$kj!?ZgCZ_;xfT{BeyT2 zyUS3{g2cJF7`*`EMJ<<$yyUXYGusnMXPZU6RbnRR-|*^3@*UdP*jB7I0C|vd1MFuy zw}%NnbU_|Gb*y%^R(k;h;hAS}2EM>p#__{`%;y!Bjk=P_sk9s_wVXX@2n&00X|&!N zxFrJ3sFO$sa70+~HaE#p%%_;81EV58^I7jY+HPPweC4L)V2TExg-;OL5c6m_fNI3S zU!`FL^B}?AM7@pVgO`78@CJzj;Y#3Rj_4hq+0rsLZO}PVaq#;jNCzRqqu|9fhfl&k z(IFf_O#YAkrDrR_t=|(<{W3$$d*9`parlW71&Ih}g4#Ck>+dUtu%q+gzKPr>_Y)2Y zB$y`;2AU7pLVE@M$Mnz1D_@UQ>#-aZNjDuigYzM{MQC^7I^o+|;Cs=C3n@|B3UMtD z0i;E?8pV&nW)=tY&hZRsFDM=ZnS*}7+)smiq2xm-hHa`vq(QbNevmN(U6KLebBo?p z57AOg0~Jvamy8!9I)(K?1zJcZneAR;I&H}e7?Vl!(S_uyfU=Fby`oj?QKo<_19qMNT*IX zL@UgqC0DeZB~MEYR>V0%Z#xI?*Z8*BU)yR&CcJ>m7F0{r z|Md+D5&*K#Mo1laod9M^;?U$w$kb;e(G?{s5R$l9#>HZKyi)Qs5ABC#QRc+iCdX4i zcdpJ5tqwHf8OP6gNc#R}8QTvt06ZF~kz!x$AY3g7*tJ)MA*7haNJkxLI6?((U^}y$ zlsZ5FAgYD9OoL%r|>v@MR+8IVborSpomirPH zp(-Q{kHNjE)fHgJ)u#e7#OL#arMHfuTF}{e;v!|9&nb-p>p`QwkLp|ky-fBIDd4HS z@c(Nn0`wg*U>D5;h|66hBNp2G82_;S<)4reh3R29B|%<|=3Kf;Sp4}qFoDe&pa(FU zs3TPJ35rOKL)Ak_A6HlsoBc6AP@j{M(Q7pH@KGI>dqYT=^NLh3&nWHLbbSrKHp52S z{f?fnS&KG%+v{QjZa}fr$kkvPZ^kwVedJ)Ivz5X|kWYRS3fqtm!qQZh z5G>Z<3Rbz?lh`Bs&bevmKbT(FVyt!5F490PaoV8;vIiRF%Ao@&99UB<+Gqzb(c;>N z&5ewlt6V9C%4vd+c9S^Z7`PurBxETl9N$2+=17o*Iz^W_82I1;tFvXs zhp>c#LEg&yw4333_ok*U2TE18BasM(juK)gpp8Pbb%0g!@7Ycox8lfVJ5V(g(zWCx zZ=s%JJn+O+Q5+W^RQ95)yyj+ZkaB{}I}ZFo1Pgd0vcFEERUQCGf$Wk7Z50>&r3h6e z5H%w=qw{B|q?mh8nMXLA?u+T1p`_N$Sg&v}6dGr+%rClpD;5WfF%6E=Xh3KjoVlI?5J}xjA)FGw3ZRnXq?g&eN-g{ zNYPPv3Jb9FS){OpmKjyNZE2)lp=T7qyQBnD(@F07o(wdimmNs{fVSTSzng{#&n&-8#vCAkV6oW6 z{Xgjcy4c0!|Ftes{g}&tSKCxbSJPB$*eUq!1ZK{CiJe#H(xD(E{y|%Z|58SD8Kwgd z2Du#I7xb>shz=mp6UwlbwcR;jydC8l%%Xppf-HL3?6*nNiVzh5X51V>mz+UtB#c7; zwsF8kOd=5e(I58F%+E}I5io(&(b@2OrpQfxPtpkAv;BSDBnQ5?)_+gJI^UBR%lB;8 zZu1laH6IrlWJuUjz6YCm0=+KTNr6Qn3PRikdrXDxbV4k3hU1+Mq4nLnIYeq)Ocx^JEJ0PB*RIkxaB(zRoe`qKFg9L^&ef)o>X!e`)0joWtzO&+Sjp_noEnNl}FMz zi~PU&c{*^C<}b|4dp{#BZ6ZiZYvfuV|0=jK$}v4NE$xq@X=xicp5othu78E&O|C^F z^P`yuGrxo)j`W>DK^e6rAc+TD7rRYrkTEd@fOa$b1}!S&!_WeI=|dkxEmv@TUypIf3ly|pW{52{m*$M>lbu-R;M3}rKRPl z`SeqqX8bgNa`kZfzo+HwU*|@~PwU~E>YtiV{~o_$Z>cX#TUK=aEH3h2@W*KpmkItn z;V?Cli%gZbp`jVEPM6bT8wyrX_CCNOJIDf(*tSS@Sfe5rw?G7hc0rMbSST_mH~1JT z%PHqF(}fputfXaF`!bP(=U*rGfWutyg=js7_aKYl1>54%qFb^$Oh_~L(=!YMF9Hj< zT>iJ*j8T^hvV@I7;b*_gfAH^@fFq3g#WX@@!4`=@1^elGBaAb3WeHe8$x2>Q^2i_* z6K^lR3x@xSoAstErvlo==)z*2Uk>7wuYy5#i`TmX;2E}iNEZW10$J1RH*qe0%{>*} zQsmmAk5QdE`p+WDQn-AEBQ^m|RwjSX>Mu$Q<~W~xJxIaA<}d3Ujy3lxBd>6IuV~wb zJZ1r*KJPg<;O1>`?l)W>e}CDye`YY2yF*aW}*to9Tmq) z#1vfb@>^0`VB*8G8WUR{szZGhb9BKKZ(l=_p&l^3#Q1^$24`@>Ey4csUg zN@H%OfEMIz)GgBTV=%-~0am>f<$}aGf-mMr7Z<}&kmnx}gSnZ3x;y%4k(>ER76Rxh zcusM}by^cbt{8#V!TkIv*FjB2U0bia%uA6Y7;XIoP*Yv(4hnSk3v@~Vof)D*Rj@5) zlIAZKUb>G4W!hENgk)te>j_jPz@L)hW&c2^nI@LDiBj9-a9 zTnub+wmSG#;3hvn>{=7xDYh)2NP@$uZHtR-Hu@e7zLE+wx6nGxiCuPt*q6tyf*UIM zm(4#p-(|lp9wCeMg+~xv2eIGwq;R{7Jh$$10Ewrj^Kbb^pmK!1*B%=S8jCWboTr@vbnP*wK9p5ES)%&bx#NUFDGeJ z#+OlAO~WiZXmt1yqL(x%(*(&=rm;17V^TZ2N_-Zu7S5@fv5OuCF-`Jnuae0_i@!P@y zkR28qqv0;c9>aK&OPy-qQnVIUpYSYHp9nGVw+-@0Wn<v}Lh6dSqRE>I1^syqhE7~B8{!*l5a?wu#Ei1*ZW?V5%0Q`zc-Gr&JtY9PVg57eW z4*@S^pHZLCsf{?2Zn)U5uudD@LYVe?hyOxo0Fw0x6kbYm{i@EgW_*IoaKe-o<+G zCKgno&URQO*?W2SIVBk?X;EXb33i6vhS>3?jOOs^S2^A59%)e=amEE6q+$#ioNzho zQOQugAHFCiPmtEYdPFi#DQPIt3N-|sTnzss;felpOMob)$O!+#K~?`AG(fa>2O~nr3D%c0#k_$4; z4Tz1T%wiTSYxuX;%!AP?uTvo(j~2yiuW?9h(-|l{&~e;Oux05O^o3eZm7|6&knhi9 zA1G@1vD5BR+~;|VPm2lW^Agh(7WcT04Srku8pjmBU8jpgliM?+-ljZepHv-Ou}VR7 zex7}n{hswj`&PksT@-#H+BQ?1I0_{GmedJ~r`d1*X5*~QZ?u6``jH2)VE90^!$=I` zS29$8URbNESt!ez>rjx~0u8T#Zr^YjIJ^+N41K}WJ?hfW#a<)6BM0o8kfJikR3Aem z9|`_*T68|Czk;8`hLj^n>tVVTK#I0b?kv?H>WfoPa&*Th{f53t6Dc!oF(JLD9ovk* znO8iCp@!?Xybc|&pl>Os4=w{$P{QuX-__lQEcP)l8ez_P;)=_}UayAf$6F707Rx3+ za{g=ge>Oc>plopm$=yoZ*o4!AN_i1=q+EdM&r$G#M&yS;=dC$J4>(1b1z1fIWaDSg z9jW3_OtZ6%uo05M{O}C^+_l(0(_cyewSiAt%1D8S6Gw5U3VYQdU0sCYMsn|MCPeFOl0bU4e zH)+88k8m0tD&lm$pdur7Yc#qP7AE$hP}L`$14$XB7?)h9ysOAQpybM{E}w{sE=JWJ zyL1UeaM7$JfLDl7KX8R;8sWf6(RD{GGZbnSm>XUrw;ho&wqJqJB@&k4ts#I}7-Jmy zgh7LJisDEz6-k4L6GwsfEJLfT}(Vvx(>rqm}cK|G1%|2zOM!{;BlyQg&qZJ zgX=AQKr@X_mZbe_#!XSU8pk)58VJq9okNY1-JV1Ay#7f1h5q42D6QnUI;y3LGC3TA z*Yt;>=In=K1p$E9q2L&S@?K|x?3YoMukl<&&%L3hWEe2ZUG-Xi*9 z={PYcc=}42U5jQHCZt9#i0zeNeFFT%d#MG*XH+Bt#OBAnbtT-~6H z_6nt>APni>OlOTg29ks0p881P_={S&oY?nW1}vPe!NS3P15U_j?6(~zinU3fHjRab zYVGp?Ps&*8UqvyUg3_c@{>4W-ve=I$mTw;XAgowq7t{N(PC1i7o1JRukd{ zd^JW0%66aeKf#T8#4)eD>nvuE*^Q_4Gx^wuou$0Ad&)~6c9!ze&M7Z_*jdU;PfvO2 z!_E>f<*XETl;C8BUWB%bFn77pwMY$^nh4wwzr5IM%~@dWz9>BPQ#y+C6k!0(n8h*n zS4qO~2OjB)FMSQH8(mjoD3{F`y_Dp+Le5KeJD|d_?lUIL1W*(0ui(G?MU4G|5yt?N znXYoz*7m>YB)X#1sA3SDf^jfCB9gl@zGc(C8aACHp=GUf;TP@MXtX9j<3OB&m2Ou$-8*PlO`n_p_b5Xn_D2fbsFbx)DR8|$ zS9;Z`)V5KnZQXHcQ%~|I(-f|s;a9qJvKb)4tmqeyr}LS#H2En&X)z5W8RdNzg^5Fk zgFp%J+FPFJweRYj{2D9}f35Jz9?5$ryM=96r?%v)+D z61!tF@K@3yGXsNs@`s;+YmEGp^i#87Gmw*q0y$!TYz8I=FYUFdp);gy&Xg+IX|$PA zNN3uRHw^e82h$_0*>f)cjLZJC^n0vu0d6L*ifvd3i|W?9Dy&u*mB0uYe<43>hycG! ziJz4EXEiwIIhV)#M0<_tdBl2D5{5zEb0w!;_E)8^m#^O*I70n(W1PIjBV-qt81-H)+`)83N365^2`L#3*ZI#GHPh41^l+$dGoZ~ z_UA4GhM6s7m`ImlB3+AY%k8xK*ee0^-_s_rgL$bttnu@U?7`y$eiqZo`L%8?Qb zM);~siKOWBGBN12hrbdy`#oy=X6aB7QqH9vGH7p!wUG# zLhX+-yxVl0(T>DCkpjAl$?kI*xG7*^L~T>cJP|D;$&;u_HU5YvMHgIdAJ47@!0NQq z4ND-H^9Wpw1it{UB^_WYby)7-LyP^=Q;C;Mza2Upo%T40$WQ;SVTt>_I}?W&3b{pl zK(@H?AnPQ3?MxQ|?5hO?P#tjc&;eV%4&jq4eV1^P(ZvwoA%@=X1?&8>MCUU;>9VgO zzF>n-VK9EK4stVUQsXzvUSiY>&9OF_NJX6 z)|f!&S$>vd@QbiGq?Te~Q2-Jc1=t(cfisET#0^UaVBFf&ANG*H6AsLJ89E^B^79AirYTW^m21CtUgG ziOk})NXB-(jCM7Lqf#!55yT9pvE#KbfJ<+%Nk*ZNhfWcf2)Yc2=&Pu!Y&j>qn#%ib z1qx%fyWv702HGiTQc4bHc9B2WRXuGJ4g%5;g4nOxIixr18)5H9@qorf2@U4nHzeIA zI?|(#WFpKkvAoJF*jLd4%uq;Z86Hkv?O{`=f#J!d9^7}%)CYZYa?ajN{i;>biDblT zc+6rdSdlO6DL3-$hRv0A5fu|j0w|=O!=?~UrNg1OlJy(g+CKV?xmNuK z6(m;kgjO@zvplV4-Pz470lw|vb3i@hH^NPBSYy3SH)An!k24?I2b_*DNn!G|$-@2% zLBM_o=#>Ke*HDymB@uu|jv(d_ciowc6t)$3Rnxr+KgW3el^{Smt9mDA57 z*!n3X#%O#EeOwiGQI}y_B!Pj$Y&)&@ePg|7|C&0MW3n5nNX(69u|y%H=J=Ej=vY7x zpqp-;O+m{VdOH500v_s^$lR2UBdiWftxMqD{7>mKOrA(LvAOIx#=pa5ng1D~bh+3? z8t60LRS3{hVBip!i_<14NzjVH4XTbH5(Z{3@C3-7eIJ}6BVCXsgcQj*?G|U;(Zb>{ z#kA($=5r>L_Ud#6&oBoe{t#=KK$G6bI*9#;He=*z91}^KfCgf~0 zqn+3ueqmGL$6nim(a@om{z9D*>XNVFvsRjTm}o%#Rud0=F*`=$?-HQLz=P<0+#i{M zc|9^O5J7|waaoNkXmJY?R~Fcn;#S=)V_v8yfV+deMfpX&g;b6o5()ECPW8N9=Xq_0 zXmA)^gyxdv2r6(GwAM5WemI#g$%W3(1&URCCFxc%raA)fP|D#ZKa(iy{5`Ku?{GQkALGOBEe+y=Q2i6mVjt3dWg=P(dS=I@chi(;{FdGMW zLD!0aF^wIA_T2k8L%EES5Y^6C@dmT?W>$2@(&~Uif)4nj>HuVg+ru7Rnw*DE85GIL z;@*ezeAxIoJfvYo0WQ{hfr$i7< zwz<;Ugd3;LVv2)$U^W20x6SMaw#i1BGm_}%hqRg4O$w+DVR3q(W&uG}49sa2&d5go zgZqbK9&bh+h_dck>3l$!vjcLWvCYEI=X`HOJ zgz2(|)Xikxh-ODC(+u(?;}YpZSGws(v`F4XJQ`Np184QhJj2rGO4&xLq1)dV%tKzgC|xh4);}9qThY0V;G= zcm|QT=n4}4c^PHpn?4Jbc)=K!kmul=5$x4Qi;VsNX96VW8t_-)V2@E7jp~H5tzsM? zu@&G?sQC2u#6@0@wud-pWP4(ra|2IbQ`*GC>h5=mhqVUh-Sr{gX1J5?X_K9lPp}dq z7OR7<{|pu!bB8NJV+-*^nL%$2SG60xkAe||CvfBzMu;v+_7d#Q1=(0LPDD53C_=5yVsQkD`bqWnK=q^(->DbwW3Ac2b%>B&-i)4JE~wcH!N zGsT#Li{5b4MwL8wE1LlHYFcwz>rrDiXB#}o$N?%6t(#s4cmAB#!Prqa59XB;y9;%= zk~lNg)H~L|yqN59$Zz9tk*~YRGf$~}DzI7rQa~S#nrdbE!$I@W=d^Ez2d{*n;&{iN z9v+b}NIg30zbv7WEt81MGbXKF#&!FMP$a?_-ey|;;013UmQB~olxxsz;SVHBzZhcv z(x7pFEByf2x7zT~8Dl-j`J^+v?{vVELx(2MDAMS86Ft!byB&_Qv0(>8aZ*4{ogv%R z^i*d)Radalv!BFr>!J@A3ObUlPU$Mc_FYB5{L#A_^0dCI4W7Hy#=!2AW3;anA7j{9 z;~Bxr;1Pef1Se!N*1%!=m>VY6+$qO>4DMck1|LESxdbcw!XzvEjU7nEb$;`q9*2sk zS%eN&kiRgk;uYE0l4YVFH8F}$WFh^vN26$j{s5JNv>Si&AdOH?s&+#fHEG$TVN2C= zNVS}F7oPiRX*=wXX*={MkfJSps()~Fs-ihlissm)ldx3IS+CGk*01m<^RoV!x3AQ( zF})ke$2TUONlZ$*nB0J~r9Fws7dSYpYf@JS^81al$FidT{tJwk|AIo z7!A-c2SG1;F%pzj$Tz6y18D&;f#ICS4|(LEXRE#A2%^Gkm539=RNaQD%HTJE<#vZt zmw2rf`L{*7>s;~%2qMzGmTu+U>>lRnUROkf3Vwe0^ftKZPdNOe2nbyc(8HG_hrjA7 zK~RXx?fRSBpp6e_m;HCHO%m-l@s(dp?d1U9^b-go(5a*NRgoR*ulynFHv$jxsZE=;rrZPZuVSHZhNq)8HW z&@KNBQKABT$ztCW>L@xU*IfgGb|w;U0^*0UuQMYiWkYW9grqT5SelQJ1kxukj{G$a z4y71!Jbgqi*t3af7?a5%bWotu@H8}wmp0PjyzgnwkdlgDl~*cuin7>8dUU&Sr2HiSD6Sft9$K1j{a1VXkxu3;5cnyxj%*t89ZSv4u z!wujkfkPd^jR#%9Rb>*yn6BiH%oU%$s>Jh%41fuvPhNrTk5oqk5Za%x^@Y%mvdiyl zA#w?XCPX&HDwO+w2yxjTvkOQ=8(6S|Sq+3)(q#||q?|PySh|$6fiRHQ(BAnN1uo+-=Olzq!V}xZG7xS*a-I1K4}y4aD)j}gd}5NucCr7P2pbe^npL8 zE{3%2w7(b%Z)9H4z2$zZ`{=Uh(;gCVfjOp0hwYb?+I)hAKJVZn2{X*TKaI)xV z8p0p58Wg$8MRW*7H7?(ngVYCRCLSQ(`A2#H<%Pr(BJu9}Wb)fT<`0bQc*5d_jW>Oy z`FU^wE@Pwuyl&o>#LXkU?NIJ+;!%BagN>iwRwsRAMkJsBdwhLX(ZZ2Ew3C4{>Dk z5gLfZte?Dynu!OPn^FV=g3QRdKx>dzLf`OTngPZ~Www{X2nt*CiU&PGhOwkSPKkUn zV==@r&@9;n*!LSWKk~A-B}x6E6*!*`kZ#jFMRu$751T`hlxTk{o-c!&0hh#@~s4_yd{aZbId*Po1(A$-VHn0;yoR`iVC7M(^WB1bFatD@(&iY$_D zZqXV3cHdS>7tZFqNWp26ev-rI#gwlaijpSu5q(;Q;Dn+yyn{(oci6)^K$FC4q&L*b zZ7%PY{BPX}OxmCk=)@zw>*_UZkrGvpqA{o|_wB%S^>=oQTwTe+6yU9mP)*1CM>kT~7U-F9m30L!3w~$OrV2B>n0VG1X z>gJM66$M}7Z&{C!;Pd9IL0$R>wq?O z?kUfQCW0S-3EU%;xa&bEF-i307my(QW}D6Yj!>Ze5kiZ~=IWhc%s?yJ?nQ^6`bLP* z{%atNW^v@~PIz_FT^Eoma}IViyd2S1>~WF#!8+owi9#Ui6_@5*%&BO4ARn<(>?AyE#tQAH+*Y1jLl0*l37{D!>8tN$NX7&fXmRm1 zAfW|T2s*wrVHC;vnBq{3&<3kuU+%ap4D@HDd(HYb5m#@x0;qT_z&f^4E^ZIi56I?x5GeNG%PRaT8*v|>!O3@Z!0FR(`R%i zv{%_3*ng!(ASxVf99c}Dqtc;7PJ0bH=mNi$F-63n{4aUs3eRCc7;&XnT=iw~#)vxQ zBlh<>{hjw^H9>|zcx?1|^Qnis!I8(GTrp&EgZ$(M+mQ`|8L(&psiCJWaD`}Sgy2oc zz71FkJi8tQo*4;>EznGLVKETRz9|s3KgO4uKz*0f%HQyacUln?dw-SF-wYwPAcB*k z`v9LaGJu-Th^14F;fjP$Fuv^hgr-4Cw@WU;PB7<&tK@|<(MNHhh+HP)`FpUd2*IAm z*HmLe&{_sewE-}`Yeu{AH~y|8M}j^A* zb~o*4+!=qmY3J@en_AN1O>Oak&Wraah_Vf=79UAUR+tI%3sh0Te_9q+TyPI0uQ_r8?v~$b0O*_*DJK|kOJGuu` z?=`jVUbQCmLQ7lg6V?M7jUVb5>`aTt2Yb7FI{JA!E>N#um#6a&*r*C)oSjXV=Y4MJM!#!z(okPRN z<3~C=kM;NY4~}#k=+4weXy5XdWN1JKH7iy zd38%i`^MlYjaPefRccqZ?`msJJ>S~4XLC!V#~`--;=Fjc<0u2~J9gaf$du8wH?ryb z`|daItmtu;BDL|>#*f(4#?@d58-u;JB6Kb}g9dG!CC0$d$D8QX@ZizT&f}>K+6=NH zL(C7TC&VCWg0~Q+2ZxRTpv+-+=dt5Mrv!qwnbW$C_IH3>M&hg?6XqX}pXliYRiq41 zxXR-zfheytsY%oW#vDjs)+cwiJr1S;-s6X~TLh^BSs_ouQ8vC_(8!UFp$;voJ$rQU z5YN(d$KfINc5(SlBX>{BqX;BS@YptrB9Ur=$p zgIzQd7yPCUHUX=v05)wNftsPmBmKkRs?I$LW^4s{F-11Gw$mV>%zpH1C{!+o3`VXz&1co1yL zHc6Q_&4l6fDVyN#{kgemcj`+5+YlKsvaTa(;J$%=fU0w75Wwpg=mvrksN`txpe8_D zQJ5g4yE_}fWW0O`8mAXVQrj1Ng~(tE95T3+u0PS(wxeLzrY@&~8gTu$RKvUR&tYFFvd64rYCb5D{lI<>= z!tiS>P`v-pb1)d4C)17(AEL2DJD{t+?oRFcfwawSZ7peA+IGaZut2*T<6AdFiv7H& zK#&K&ooydcw-_6oNgBMO2;s1ptzE~5`wok8-7~_*ojcohdWxHv73(DgdZ;t4w-2B) z-azYZ(Ca~LFm2cF9lPV3cJJO9e{yHz=BC!I@h3O!+_YntL57F({u6`N^{qSGo>a#N z;Oqwa-~bIj96s9H**9dQZgOo|@Ex?bYgd{W7I6Own8I%Ub#~Z*j0VwAw?|NRopo>O zqtU*@ov91a)j1??Qg9kSKGNHNztKPWG^oy?%@592iG4V5DghLSdpbp+g~DtLYbk8# zbP`@hFZA|x$NLA2tKg@$S?}Nxc5-62wJUbF?1}?5yMW!)J{|+_g5EzOG^{5AK$X+$xWM^TEJk9yTX~IYjN@UI@(_I=r&#pO%&dZ*Cl?e zO8i)z_^~GOV{PKcLuto5208$Dc>C}J#{8s?WPp_#>J58VngM9%7Ru)*~^gV!}4Hw6uK$%<|->EzPV2 zlzmHl8;s8G&1{u;Thmr`Cfoyw_Y$9Y{K+JshMyAt3^#1z9h0N*^g~5)T=xH9XkSognhI(jE?)o=o;becnS4(o&`_ex$#zGi`A2X#6lp&!)!jCYxjE z;}e|-lyH2slQQ|eeTE~sFD@#6thW!zD*2%lXx!YsyK$G15hmqmKhol{L&rK!>S>d6 z2L}#Y6C!>`dK2&sx`h8YJShGSY|2*BJ+bfx81W&I%|nuT2h`HBQ}IDKWeCtfr$iDM zT@wmSWT2zWC6x8pF_G_-LD)1H5GOW>uvb%S)9&4kTf+yR@Ac3-)Oie%NC4~6Z0E_L zPGndX=r{yb8^PFO+my@(&mCn|QrmsJarc&O@vUvGjcN3`d#ERbrvw=Q_0x`R{Nw#h zZ`c7(Id~{BfXPkK%0Aw_=kdp(jV+C>Pwd{7<{@FQ_k~V4KNd}plI(+V3Qz56gxu}| zL!|E6c-!NT3vq>$!<@$r-=*2tlWcAG(f&gwq=a}iBruInBALcT3gf$X?rGh!Nvwn6 z_+8uf?B3e;5q|=uY=KnmK_vGtiaw+r>FkR8`3S!*F%P^kn8uh52)m9B5B9`|`#c8h zJmOo1$T#iU-Lz#_veS|q<3|pq(4Z}wL#8PFVCtq7*Vwjaw>4&1JF%VB_sKbCztF~x zHi+ybRQnC||8@2zaB@~v+W2MDfLlNX5*UdHh$2}!fVijA-APJ%qpJhKQHtv7>h3bt zRYg~IIswtR3^3y|xUb_xTv(JD+!2?_IOyPxBP#B}(Qz5^L&Zds`)+w zrSO4uSGBHR%n*A#pFxHSki8hd2rTt)he%TjcGg-^)7Pdqlo)_``#l{{F%#sFBuQZM zW1UgmU9BvF4PbhDV9`;6^i^sYs*Fo!8;g~wU@{cZN{r%Kwr&(8i1HPJ`qX0k$R(IS(rv?8B7DIwWw@}=NsbN{u0s7gT zXS%*f=COg&e_(XE-kK}ZySt2b6isL>B01t7wxcFXm>p~yV?xVDw(yo0J5B0!ME;hb zX-zM7m4tliQrFa^C1zJk&=0 zRrt5j(v*Buz*mLm4d;E5IbU_1Ml^L10yYRt%3xWH5$lUy7wsciWkf<)tWxRQz_<^p zP49hyLa~Va`5v=R^kEVGKy4%Nq?8Z#!z886RK^uGbLQg;l3cCrf`iBOAMHwZG;YN} zbBzvN(L%1vEKaF|oG>U$#jx%}c}lTR+&ztCRCM~;K8E-3X$xEET3E0?K>N}i0CLaZ zs8t#>rP+n%V#{(}9>B%oTtFr1UC<0IFrH!oU7*QAr97&&y2I#=Bd(~1!=D~|-u zuD`4UyrV&>eR*=)7XUlv4MkRQ{_>eUz#g$03~YCmT=` zsw)|gF22w_^mOUlPeLCjc@S_tK9Iz(=A@?mT#V$oCT0U1m9iA(Tb3v<>7vXEbajjfutJ(3XCfFwZYL8(al4 zw15imF#vxCWG?hI5v|ZnLiN{RmN4ECr7hGMelW2@x5t8c{NNKL2qrM8zP|=Dj=_59;||Z%!!cZ-W6asFwZc*T$B2X7mW^JCeFOj5;7#Ma=X1me=tV;IX%d6 zhP=du{YY;{zq%w2fR%6=ZCa#+?smqa^@yJqDi|uvCROG?jFHgj8}om10O+7!U#6Td>>e` z@of|R#Ua?x7D&>_H)ZKHk}k!>9P_XwQxGWhrTIn}zikZUs1?}1K#`<5Ok+Bo?yeiP zb6~Y$Nt7h`UYbX`uLd#X4AW9=8Y)5NJf)4O=mrYo+Ym%Aw#>PvtE8SnfQ|ucyf}Y5 zdMP>!%qB8YhEOuOmmUk!UQDHcr}O0&Lffv5=|UsoguTiE#WX`# zc&TtoV@&>!O(3E{t^|HkwSkN@)!0lcPDUUphisSYRCXp!xKU;do=wUb-NQ%-inJvQmvfAxriLOo$+e2EPymn+|vCqJ6MH z(ng~vmfG+kP%*}96H?CEEsLL$Ccuy*-HgmN1_$KKJI>Q$`fT9>y+*IdY`WQUGoYM) zp|6zWY=FdikZ_$Z9BN42l?h zP3`Ga2P{-48}J0&2U-#cY}nPdP-3RbZgW}S219V#*#HzPQidk_F+X(yh$!#w_Chjv z>3i0u`?9R&6kqgr7OHhxB$wpG`C)8|z!cG`nIGyRD3-(?Lxrb%-{b+5*;vOUOHsdi zjBij4hA0!Mc$a~mhYik=a;KS|F59}D?tZst(>bl}6GbR+AICAl?5SQU(Gq+@@O8nn zM>bV4$vj|-wkHvhuKq=IF*!CcW*$7JBKZ6=#WL=fy!>%2Hz*90&KtTYm_1?w%(K%A zW(MQfHD6!=h9db>je3?#W@3qAt9DVxk`bRpD82uz^=Ik#SNc(0W)ep@kGJj4X46 zmqVVi#uRc4@VVw9Rsz6(hwsi9+_Uzr0cfWIRFu+)>PwsKDF!VTLYkK%WJ&d;LQWs5 zsUGie9YfSSn$z&f4v(WGp&pSsi|n~{L`PBdj)fidpqY&|kcdXuGP_W2#q}@jt5Hm- z!(vgvD767REpm#em)O8!>%me%L5I_Bhj%Hr`U6HXM|r@XCO?0ggu1i-uBZ9X$8H zWs6Oo+03H{7hLVYAY)^yUt#6?hnZR78l|r3y>Oy{lz+@SL_xIyFtBZCq~H1-_9ETU zpb6|_HdZcD%JM?V?zo8akb_($zWWfd#p9m&hp@i!7L*YI2ATRES1K^ zXs+)~Cm0UoiigKw#yQu7apCLjj3t%>LzFPpL>|XT=bYc>?ZfAFb2pysLI!MYqR6hdeoaNJ2l(&UfIOcRf%t!Q2|B8ippucX7gH zxi*-g%PMx{-po5-HjK`!f=-P8X-xTI(%xGE&5oa!joRdHxk?Px`KjvkG@5J1ImP7e zY!TgVn{8JP3u-(QQ+ktJdf;`$`CkFBVkFbg5Xc6ExWzQiLUb9ZFfx*qGy`TMn+L#9 zo{4tEM9U){Ek{l@z(p=eKlv|aq7ZFYz&mJt2Tm^{p*>xlTAXz*sCD_+lnQTXWb@D< zXAQcN##Ld%7$SveijpXgEL^TzZABEFhDa^+cN8>hQXKS}J;EYh2DByQ1h5Q%)O(1j z$B`bUt?+Md#nWluw8ubU#o)FH0Iq%uO35iS{sAo43vF| z0kj~Kz>#Jpu#D?PK)Fs36pl@bWhN8TQ#mJ}QIB2xJoDgmRk6 z8CAwW**ZfuTs{%Ai@t`#pEU2?XStLvLl&+)RjXqiB1X)Nt)NH|w0#@_?of%dep)!v zwIgPkCx$KkCG2q#S0ukXj!M3~$Ci`OhqJ5`{ODb&wS(sTY4(DCbrBLonU2Pki!i9j zlm|*imCwXb^0UjgKryE>kk0ea*)zZ}x-b&%j{6#Xo2rMuS43aT?_tk`UNabMT?}&ua3ap5NN^8#!La|~YUEFa%H?jts0MBiTD;V3e#f8c^Cy%&OXne6V z;_Ftp9L2XQ1!U>X(SwfUW&ZLlUBlPa?? zkzT!Vk88Az1#YD1-=TqAe%mn;`8$wVkY{DVYAL~mHuCHEnXR_6ptjuRth8knn_SY0 z{7I`z2*@@*S%r{plvBI$3mcCA=oMo+!`v1b1!X1gu01yoQk>itGGkyD6j^a}WSnE9 zTp#tGi%3N_@mhs*Q|J&nW9`{tTiGVC?FdUqA;o-zt#eBe96Ot6)C;eD##Rf{rBj%U z_U9-pTdRq%0F4#o&&Dl;rAYClXk=ycH4OPClrmY0Hlw95+$MKuXG-=^7*YwbMemy^ z#KlzRc&oD5>l_+LO%UM>Wyd>|=qW#_(*QL3kfBBUhLA1kGcSfM6ie(eNf1p|c?3M-EKvG@>?f>p?p^u#@SHjoLOwHih35wRQ#p5S#R1ISR9 z_z1a$nI27-upLG}=w@!D2!KhC;j&+>9#)H;1ZH%h2$PHE1)cF+ z**982tYyIxnkc|d#@tkB)HyBKx{w(N7-6(cBudLQEcBU1q!3z#23z1ixWTdMSt2DC zWce}PY%xI{VGrU4K`4;OtR6u9qu!R!@1~y;`J7IHW+C~6s1~;sA zps!027Ex;3+~$wV*#dPj3y0*5j2ry+csO@*17f6 zYr!r?q<4K>b!F9t86Rs`XWN$<0+UKx4Pm`u+C`tJ`k`E5h1=CjQ=^SFKuE9+jyZI% z58Vn$gQ2LDuw4wJ5tTIXIQEXex(ir`>^31DWuHdUc`F}T3uuso#iAP6_sWuH0+5H3XOk_Kxi z5@6O@UjXI}=;TZ^RFx`a(e)3Fr@ab0Q3 zoB+0h!xe3SD+cUr!AAObz(b#$PZ}?{VSg7FFMv(#{e;1`+FYIH)!9mJ)PYCY71TqH zjI~YGcRJ6EIo5qG+e4`qk`qWFS?kC-$pITv0{T*HBv6@hVyg_5NrCmTeVxO(0@m9l zu!Go|GsHoSqF$m{qTNJbB53_Yh33S%SHQAnjj(IpXz~RBY!}L5;I-S>ZbGS=Ay;Rx z^M(_dlxCK}USkYymNaLO-GVPh0NGXKnbeM!B4aYu@=?L6IK>O z+1bVjvkR)0iXM4KNCsvIAcYX9(wrufVBr(|;0zh-tA)EoJ9Ie~tD2DOZ&zxy$>zjV zg>eu*2gm~!n=VdqtM(##+*V{v!R$=I7c*xFu6y(boJ4T59k4gc6b_8%La5CwEcy)g z43@IMfI|HMR>FUvz+?&C0rQG*XayEE*BMx;0EUY{V{GHZb!l*508;_vk}+ZielF+D zg4U)P%Mti<{{}h2G3M={m*Oq3X0b=O$!K9Gx`|c-3FETpO@Ktw3?PNw_uD z7rCh$P&K;19XRsA`&QC{fY7ADePyr}l4xNjOf=6bV4~Ngu?;5`E9IjEMm29T2GKWB z^N|dxhy=l*N#Q0>YvMGM;_@GF+c!PD8TCB!3R zgWItQ?0xVtHE|&SQ(6;e(V4 zq=M^6G4(V!M0+5)1eKXto2f4??XL8tllLQq%_R*)8-r8? zl9NPGYYndOGKI)KhG@BiY1;_y9Jg$k&bd&_%wWftfoW8;G{Y-zRH3oNM zKygEv(O#sgF4OIxeP}6QvQBZ4o7Qi+dYWTV+(10)} zWG%or@fJ{2XtE-Q%tD(IY1eVKO5}6aJi4{S-Veut^}&evu>)W?CI_cWyK2>?z-Y;; z^FHn{onYJ?jVt3i<(;K$bPw^a3`GbmbXKHIU^8+nR8Vn5s^6a#9KGjBB_i8c4GMhvDqDteFo<`rsD* zKu5Up1zt-cKo6QaihWz^gB36bgZdBNai>X>51$xWT@6x$SPhDd_v1b@>aPc=1{q8L| zDW=0s9b!2J@>THpY`}OsxvmuvI9cU=8l~I?D1`!wN94z>0kj%?PxLOleUl)12M3RO zt^_J}7ABj+X6LOW$v|ursjeZ#v(RZf*-^;kK6w8ioza0!<_LD0EVjj0rZH?Jx#wpj zMBl;;G^R<-k4uXHndoRNLEuR_@RGya%^O{4NgS4}x6q3+&SrIRG!BO`phY~zNE?|} zgdFHq;icj?MZqp2)rm~Hx9$6r_+xp7xf>b@ubFO`6~?$!YiO3-U$Gxz^P(>g17_Vy zTCt|PG&wZPB|Wwv6;pNnp=&WM?1*yUQgLA!d5J;hyXdpo zIzF612AzlzOpR$GZllmg_}mhC-W62nVdpmzQNA&%1P9bYcZ5Tr)J{!69)dHyE_!Bl z2kfj4XBljQbI4{VYHbNHHtu>$nR2%bB-o9;WxiX+Yn4Yv2H{835$IL3M-H@mQAMLP!^p@Bj6dY$eS~cA zH=I_+uwtXXos|+eW}V?GBlD8VjoK6As|&Gx=gfe{h*2HgztachN#zPlO}g}1}tYE?N5dj_m9W@*qw5P z%e6{#2wSno##1Q@+l&vg4=xzpI7%L)=MhrEPZ4m|nI3SpWkZPbRfqv%h((7ARsgEn zRD=ltMmqZ;Dq_SpXs|cd+KGiuCNicP+0jfmfq-7n{ z#w4UP(XwAyeF8Q;>Ke#OFr^aG{HEK&4VtDkkQArIV!zqe8sh|01zqW|hMFcZpTLwL z%G+3vUgQQ1E;Ep3-l4GE|7ReFI6~dQqieXxn4yhaMmvWB^_!dP1JJ{hm~wQnBvC%z zhR&BHn1IsRQwGQ#Q@M;-$eq@fX8n>;6Unhr zi+zg-)S|@taB&@POHx5F_|&is035rfRZa6-#}r|RCgK!wS5E008q2LD1QotStilF` zO%pgf%_>*s>`a&_#@-sseJ<5Ft7M8P?YY3>&Lg~P+s~$(Wxz~yGP?p!eBg4Z==va1q=B;)Vj-IaEZxp!Mc-Gf}4%5c!)as(yrlezS9 zu#=Y>3X>;n+qp&zjEN zWLO%2p0Ux69f4d^$(1GzoGa&~3$(5~F+6G7PZh@8kL~Ss(?>gqlbxABt=AB6aPgS=!G5o8SBd`6@&O-%D%Fz%5v7Ig3@+iKfulXr8eC~=%*4fkRr{ z+_Pt$VK#X}JK_jftE+-k9H4>9F7{JcXn$R4a_~D|Q{S9#)Ra}!v5*zc&nW(Y=JD@m z(IdpNQ&&lxN}@;9oy`S1sClsj&&wN|0F?K~2AGwyR&b>Nm9dJZ)6l6-WZS4wE#W!h zY5xIwWTk>lwXomep0`PcC7G;YMWpK%YV!lgKv~+Ey1vURYVP=zNhQu?PxvW7rAf?z zq5+$c`M`< zwjHk&Dy2%r&=o<^INkOtGtE@a_*Fpi^ahYO=aIQ{|q&WV4txipS=9?NLhDdLCGg&+Hi1C#Kb+?Z`2954E= zKGU{+m@pY%>_YjGw1j-EHhYPj#(LJGWdc{Fk8nZud!mv z02LtHxZdd<@5k|IPH*h43i5qzGdK8z@nrh~VT+-G!73!#%>Gf;L1bZvv5UXP4bmLG zv8ItC5|cdN5w22)=E>=z=jGXQ-xXWLf>#zD!}0hMOJ_IMw?KI4$ixNT*ykozvJ26D z^bYtu+1@|eJr;yS7G2`7^^4!EiXj|Qj3?!O`6HYV;)d$N4pZ@v8>aoJq_lq0oG7w> zJy=gO+-Y{l0u&~(L;7$=k!Z7Z`Qzp|V*x*uC=BW(7KLF&BDBsp5`vupWJ8cf$GV*U zdfmRDTN*RdPztEtgp@299V-^Lj^ZqFE;wa)%+3SDBXSnpKql0!iEzcKjQE))Z69}n z3kQi#+F3wTTc`lAjByUMmu)1Wqtl&ZQZ;A`e{C#tHMuXe!!j9IRV+(`IHS$hf^k%5 zO|aFxSWyMSpEZPS7-QoXxu|jtCY>Svf>VrwPCqm{$WZfJ=}C~w8zkTt@?MV-s1OKo zY%dXP>Bm_#II|r3!sw(nz@X<(11@d$(f-KGqzG+`i)E<Hv=U zf}%okp397-kr>s~lt|p+(gI9xx$d7=dHE&g7NCxfnL|B|%>}>vM&9@vO z%r*HpQN*#UY~f^u3Jxa$!$Iea1Z{&fCVK+C+Q#y8EKeLjn7u&GK%3VpT(`IA`AQBT zGh)zNrd;N?H;}x*!PuyW!vjao^Tgfw6`u6M&&Mk4ZDSK|VaxKDu%7IWF#qp9?tY0Zy#@ z*Vyw&;}L&@U&7xqFl^ILejnP}#W^ybuA#6s)xIH|?hHI23sw(D@iUVWtH5y}a-HZH zVe$p$)pm!)0^@~|q;O&Uf^(8D{o6pAxymMCl-3FCA*2-OGnTt*gm;jk!bWxkY0Ms( zcA9KL`!Y79>V~z(2&750Pd1&-7>8<*>d`iU^Mh$q1L0SDhd9|gwodV4DHLhq1KP-q zlu+2%l7!~z#o$WO?)y=_*0y5Rl@NXe ziblJM<8Pt8ajZLz)bl`u=sim|&&D+dYqOhSaE75OTK#s2E5^TX|3!yj4j($32QySR z4-AGD*>ZtSfi_N!6br?{(XjoTvz%v$zlf@oePQ$64EFnGUZKH)7w)cXh9fkIV?D5% zn#%@Qh1ot(20ZY*CMPdShXH`sI&IrFV05-Ego3WaK^D8&kHm{@HGRa?A{OB7^QXeL z>h8%V0-Z&Q0hJO1p9w4q_Pq!w>6N2FX0y>APS5({6wdE5gk>q#$D9MQR*3glm54#S zibNUioWhI@Hh|d{2WKoczv4jw~pj!JuTz5H1o?UF48HTAa(;8bgRMDH1H} zsIg|9O=YXlRNUu4#-U%Z!kMQ4&2a5^1I_0XcoWK!eIJ;cY?6Mt9if3bSkB0al{*c6 zPB<||ahx`upk{O;Lar!=tiDToX#&zX+pumNuFhbT8L?W5U=j{_1qB5r%1jba1v`N< z#5Q|1DcbcT39Z*BY>k3F=M>^em(eMBbg0blXXxX$WtSY{9IS%v)}v(RD3j8i1?xg| zm9KL0-%Up6+qlRBk>M7e05V}d(#XI_(IQ+xx0D7i!nr$z0q6@~G6UOR+QsB4Y!%{G zUZt?X3c?w&eff|WY>7dg^lKnJ=fam5ha3+e%f{gbCDY;Vl-hI+!I(XYFl>~Y=ULzI z*x0xo&R4)BMsZ;mH&EDQS8aywQOqWp30b0h1;2_$%g&@K;6ffEv2bzBgGR$+&KA@Z z^bhhLOr&z94URm-?NS)S7AlfR^M-2RE;rTGAY=6!PIs_C56*+uULHSxGM2Um7-Du-l^AUYVD;IkmZ*QF8cXLbOy@zqdS2Gc&-zBRVN zT(2T9H43e5(JjF(lDJpo?$e!?#Mr1WvXSI`8++5^H z{NyuI7zts8){o$-k+{fT87?4r-o}XnG!FWjJ<5L85^l2BH{h_Q(i~(Fd$ypIP+7|v zNzb@FS992|Fq4c(V2VrW57FsSIl6DnFYAf>|010 z7ii%4Yi4{gmgpKTLRUD+Tanem!txo5n6WiP^CgXOu-sw?D#U5*)ul-wb=GAgZRpl5 z^U!It0sluRJzMwzZWPVV=2~O2i3dWXpR1HxC>k0ATxD|MjsaX*HVIdWT1>_SZ$2SU8>K`o@!V=}1Sdl=-(G1i}@IS0Z;^c%l8amRqy+43A z16Xh4DEfzRf)|g?2rbf;Dr+t_o&!}Tg`*V~u#Zb4eT$|(xT+7$p2Pu8U?v0A#eVGM z-a>zMiBFQE(Mta`3^`C$JwrNLK@SlHYGVPkl-G(PHv{rwL(?rROm0uN82qxquwL; zi1LaZhy@->K4H(>{8SUSc&uA&FRVlSU#_pizL|BbdYI_&3!4~}H? zI_`hPY8LKTL86o2xXfm4MM!E>>t-vJb+`t$bk134A~m(R`%GLBvTnnMb+tyNzKFRJ zt4&`HE{F`72>Odf){(*Ouy*abM$77WugPR1wiDo)c?;Vy3PL!?NeSL-FOCK*bcRp`vkel(+-2jHza0s z<7f9Lx+QSP0dPjeVt|!8ECw%-u9!Y!t%(Euc29gJ0=&h8pO6t_fzEWTiFYjdz()g= z4MS%d8+h>@Oxl8o4xGam3L49xd-0|Q;S-D#@{!2%F0ckGB~gq500W7Yt(|Na!P;O= z0LXHpK}w@@CY{IzvGWgTf_}q?r}D6e&Y88w(<7@oB;OAC;k)0hWuN@~PdmXX^_}Nj z;VYUmIOUB2%Q4ge13%&VSH0PUwER`vEi+cU%Kv|8mJ`Vw9xi9`lO513xD=VjnY2Ue4kd4p%V7d?@#NDz$;yZ2efs$9RpK}&I zBKE|QmZsV84Ha@&;Zsf`tQ$QKtD#50V87UEYV!W;ZxiAcO-!POirQ=LrXctMUupMVBQe0@Q337@B+yq#{cQjgP8gkt8~tt8O6vhRU~Vwlxt-7 zoKudXJ7=2=2povESY;|Lf!ItQpR$!4>Bli(G9_dGEYE7^9kLcos(==jcF~PpMTqG` zjKvwOlX6{;q6h~VZQzsB&4Nx*_q)U)>I4>nR3)wG)&^yXyUjGVjt?Om5mw-D2#5c4 z&-X4n{0Eo)?DE5Zary5r4-ZfO_NwDQcIx5(a_W~(wW7=YIfN*}FaDhW?MMI)!7nd6 z%zs&<0z|)D`9}eMXjmCqn^aJ5Yw%9^zD)w?ZKL1^a_|D+hlJH(+c%D|lBAEX?f8F4 zI5u4W8HXDXf1Zc`#J{FLLj3(|yd4rA8TRGMUkCVd^nb|8uMT@v?;3pP>wWl7diLeu z9|wFnJh!R*JEkA@Abdm_e|_6NAI#?;^??5zaMt^{FF2mahu;YP_#B)a$nu*6U!#6I z5)Tr7$sLZzg(ifD2|g!y#D9X|wH*AhfTR*OJaQJ(bAN-;NRy&&TCc!WMlEZ(h^6wI!@Hod4+k2DXD{}A;2)LRbg845b1n`!B>YhIr>i$e3Rhejt3g1(*R#? z-1VvaCBHr1`U@o3>!}fb> z(s|36)5HGb>kTS@y~;UR1E|;d`h@VjCx_?rg5R8je^c-e z!Hd-z+%&7`~1ce81qX3_>_b z@B@M$u+kwE9^rC$$wQ8Ouz^&;kd=o${VTyY`2*`C{5e_p<0JeZvhZg__;<4K?GgT0 zM_Iif!(Nvdd{sE`b=MD@1h1=nN9Dz~umJdSe0!eCuQ~ETh96(;^-{r4$-&agAKkayhikBxP;>bf1TiwpQi}Vy*d0F0jJ#Fwi*QBb-EsSnw38W zhl1h*UPsyA5QbI$@M$kUrSi`ae5UH~%T&HDJbQ&F%K7DjUn6+zm%lUk>Tq9<&Q}Y5 ze-8c@!T*qhzXR~)OEKRXWr=W>jfVa z{Fj2$KjUjm@LS*GfKM8)H;B~;4YggpM{kxnGuCzkf)ua52 z0q3|_srE*>x=QuF>BCOXUe)^w!B^kn@O^^6TJT#1|C-?cX!uu!{o?b9g1=kk_ucAv z7{BrLVZl%QsKX!T;BdR(X9$iSve#Y0e?a)7p8SE}_X{4!`>zELisPJ12%}+N*uOUk z|MS#eNB6KhCjd^qtr6cM{!;}%U2vfZ8+zdB6-PhK@H`@X{+}a-YB1iG>-Y0eJ|O6y zUdoog*zg<|ZqCKOvj#st?EhT0{1t#7jds0nq-drw>chVU{21`(o#%OrekpQZE%VoxHmf?9}x*x2|mmK0WYbE@LJ)&x{}R5yj}2p>fbot zZxVcs#s$9GYd=0L*DrS(d}a8=N1UFmD*r9Pue;viuMqsd1b@Vc!|xIN*FEsBfWt=q zoUMM0{5e+eH92{B6yWT~XE5Nx>t-pw4T7(GyVu)My-yaN!{3_a|A@-}gb5A29;J#e zGPoX2y**duZ=gek*GE)-SC8^<2Au7B%?(*U|2!zV<@kJ^%5PHnan=1%)qCn~Uhn$_ z|GeNYd4a3@-Wq z`S&^?`YjI;{5K--ed5mvf`9fy-e1>C4V^0ZTQ77xvl^#;fRk^hyv_L*>3@dGe{`cm z=(q88zREu^*T2tF`Ri`pOza8o>w)J}245N8^EPkq8&t^`1>e5U0e=#ryM%xL5i4v& zT(aMP|8JGQ`zps1%l}&CH;uaf$MCe*VbG@R-$R)|!0VItH-tw3z7l@a5z-q1hZC%P z{MLP6D?Cp<%Ih5zolggx{M@9xP2|IHEWhOCKO2a`<{7stNxk zYS)h;$9(Np`GW zT-^pZ+q*ZXpT8{li*k11fZ$Ka>BHX${yLTSTHu?Yx7lA;y~g>l-)axx!Gf>WHAR||iXhtp7=@B`Om<$0a(95>~79<6$xs`9t|^gK`;G-(mS zh~V3DdTEF7yz@B6!#pNmQz{=m@Qr@*ljxzyH$T!sUWL^H@hPBRp3M{*gyG z{->z?%LQL6K1BVnPw<-`?B%~8zTGJJ>xUh2%+GufaPnv0zx%k`tB(1&%K!LQT6p@Ee~9p}3qGFX+kXmvcrIT4snx5>Qg46k0Y4ggm-L?^z2ww} zunKU>)wccKprh2Tiys}r8t8$bJZG%phmz0te)9;_M4#DTrwh-KA9Bcq#>Ep2u0pA| z;U4f3;75a^aEDVE>1+u9v$_5f{`M-zaJ%aLs^D+^fH(A`oV&y82NA!<*It9d{;K@1p6_^GDfsUN$CeCx zy;bxd3Hf2a9INqusmdQM_e+wG~|Lq$c!M%cS z2Ap!TQt}z?;HZ@s($rg7uDXN3R1Kj{sfRvYdV{QELQtHuAjd*JyM;3ucrA3r{{hrjpe9`GmjfIqVb zykzi|Vfv*mZ);BVnlJ59{%-(hKVFj4Cx0(I-`(we_@Nr`MwQ=pZ8rXThv0jahm@Fv z4++oX`W?aD!gKPOUhlOz`}I*PuR^J}FAD$3Ie+P{9_4?cdhg%iltg>?8{xS|es!et z2naC8(cSO#N^e#Fo*?+GgI@AZ$=l-v|K9mtp7Tt6ohA4UAN226`dip!aD7R=oewzm z*xTmZu&CNlHaPqQCdBx<`bd-Cn&6vr{=ja-kNo*s@AnHH?T=ll@@M7x_ZpQyLjC&< zFCN}taD7R=eW(Zgv%>$(9quvztF$i62M&!MZrikzJqRQac@c0A7&o(aJ}^*Qg@5117T z;n@aPq10Pb<-fdIdS2c3!XD*ct@59gAA7!V?GwDJxMQv0HwZrZYNs>Wm-h;O`d7T( zmb}fFt?6aQ#H^6aT>hj}@X{3jVTxaeD3*{Er4t5u%Sr zBSA_2oSxGgCj!p?ef9gi;0~3)6L?tu(K$LFD?BUZmtvUPYn||X@5?T?T>rsWzshfV zzWa^0X#k9<{5mew!7Iio7YhCi8DvdohN|#{&%DC)W|XVC;FlPM|fVK1olfr z&&vdV$BoXguL!;`;*tDZ?PP`bs{HzwdHE9+Z+?>SLyyLKq*$XraJ!Y)!>PCL_JIFh z_;0z^@hs_?!;t`Izua`514f*!VI|<~m;IV=jeK~N%0KjFjz`nI;WWWdJJ%cfA0l_p z$;5x~YrXJ?e{g>w>W8Na&;4(AJU2)mjvM@7JX1a3OTzzvTt4STf^U`|B5@Aa2!25A z1xxJp7Q>HuI^{8*u6}%v;J@m4Lu0)EF~OfA_=`pI?SfA{#}PbE_`d=;`TS$8XNY|M zhTz}N<PKR|xX1;B|+} zf29Zh`&E9|yS?BMqVou}kK>{ve{58ERto+CF3iA7;uua6{AVXP{CwH{b%KBO0*5QD z9G)upd6Fo(DPaO|w(H(p{%2P3HOd>uez^s4<#Kwst@5wR>67OR{>tmK`TVN{-zNPT z_0{VEUk?9`Dt|!w&08132d(_d@Y^#T67yRB8q2>qYZtyG_?k~=^Ct&{=il}?9);QA zCxYMeVegRB{4E@UJPP}3^8>v6KEWR>_#K)ri*doRfFF%K)s9>|a+;Ob!>PBe!t;u) zj{i#8uSvm+*LvYsXq-+P{?*|f(i>4PwFSRKeqH4Aiv-`V`MABR`=!Ev$zxnF|5os~ z3BLPQr{{FRuQ#~9q~4|;?flua$$^n?pAeph{@N*gzx& zu5fy^3^Du>aLV&!PA{!Mif}o(dX&LehIfC-85!--dcp60x#Pb=ZF{oduX~llZxMW0 z@W;(N;Fao^iv%B(ztmCrDZw8u1d+B~f`9LC9lsd?Jo6^N*{*4|OY8~PtNdSU0`PS4 z^TUFVs>1iH-rI!dwYhn~FA2U$`b}yneBbcs;ndr&h5yDUI3+LD14m$i1nE32hi5h5 z94{Ar!5K55@=p+ar`ETesya3a{$%OBA;HfV{QDYrF`jz1;0LsR=~*gY6Z~x9KS%II zz)5Gg!sn@vANL=wQ27Tc{`$1azg+NNe$xTb&w0JURVelL&pqIu7M_pxd;dN|9eJ1F zhc7wcB6a-Tf`7T}3~R{W`?=shnRGnotL{Gu{&vkfNBKMo>#W({y~w=9B%0rr>*X z{?&^N&&u$Bp6`4(RPysG!T+l1eEX5?;M;^}O)fwDZoxy&pTE`c98Blud%*t_1NN9h zk(61Vedb42eq|V_IXwEMzgE3B=hnCUsR#a*Sg=I?-}n}1{P(3#P5_*I-j<8gPqFe@ zTKMgW!c&nRi~06v2>z4pijf4}u?_ zTPJXX;ZHS4A8+je|6C9F-3DJ74q0>rN^6Fn_bC5oz{%&AubFq_ly4Zg73M;0dH4+b(8Slor{-;RetXZ=l}UK*w0q^{kio^ z4Z-i1Umf+~Ucm?D_c~P}yu$E{xYXO*48Aga=N(>hjr86>3C~{n)lp7vRrx3E^72m< zu7B%+|EoRV_w;}th5<-E|KTP_{0H&*L4qIO_Ie*9`0;{2?J*8tDf&+_c&efL_*9ku zcddguS@3Owzw8^1;6CN$b_o6j%_r_q`5NGqpB1_M+odXh+L2C=rsu22}*Rg^>P=OBjoAGrr;H>xb-1>(z zRQ}>OIi8Pr@o=u-3mo`USuJ`(9AXXTzxQAISCBvjOLNs{A^Nn#yldd65~~ z!v7A<s=kzYu$4E=}p4(aIIJQs(yGo;N;JK z#ku$X(|Y^m!zzE+U0yKe&p)m5Yvk|UcZmOfhv4gTcJ}LrN0p`Ceq!*I;c*}Lc2&fP z`+AgLakBUO5BGWbUBdNn!KZTTD^4p^Wi$x{a=E==--{sQP2Eb@SiA;^c9u= zQxE(no+3F{92#zRe2)iQu2!nGA#5}F%5eF-)3e9l!i9pLaiIf#s;8bS_{H}hW{_jV z{}=Ya|HdBhn*eA3Zqs^Bp$Q)o{sWgDZul=&y`K~OTd#00I==H7;e^#sffh+EH{~u=*@b%{tmgn<2m9OUV zPER)cYGmr|Jk@($ZoZ}{JezXkVoLDg9DJwnyne0I&;4(FG5^8#4(7^VE>Jhm~I$?*C^8+$p}@*aOeUd%$_*1^NGjs~yj4)A#qAP&zg5Woaf>j9x3>U;^oUl|4D*h`ARRpQuIGw@QUJsZ>W49;N<5f z<->KBfnAUZ1sS7oWU-NLg^>$QT)zeIQ*sd=&g z)HAQ^f#=;l;9nO0z1L;){|9=M|7{QWagTNWv~u~blLX(V_$$WsX8_Lr`h)c3$HdPk z#q!F##&v+_sr<3mIG=AaUJ#Q;io%4@6&wTsVe_q!FOEiC5Klyv1-Y31@rrPj$!QZI$9$N%| zGT@Al#&h#B;|5_q9M9FF>0yua{(6S!nHBuiw(fCNctdXA>q#h2I>S9a z9~aj61CJMc@9n;RX0Py^CHNa;?^X!@G}Sx*Cgj6F`JkNQNSGWW7lze?p@GFk-_QrLgKNb8BpY?Kaf6DIxU*n+6-{T&yao2GCC}yuS z0Oxplwfa%b4NtW485H*AJS&g*MS0h7yqB32{$FTe1^4UnRqcUicMtgA3D313^!DB_ zf?n67{7ryU-X5ubjP&mpo+UY|aa?>!@Yiah=42_R@Akm|3*kRGr?&&*T=x4*u5>z| zql%9deBzUixP7Ga;W&f)=k(vR0Vn;B$kG2a;rWkq9ly+W7*qLkbNQm@sQeqoz22+T zt`i^Vbl!EFEy2r{R5B9Yq?E78^hySbcdv|#G-GV>h3C@S}R(X5x z6a1lolmFwn`H>T?yb7h>)(g+CG*KDl>Z!uBCbwR3OAkCdgy*`KIGx{-{FH@fWiHS8 zT$R6AamN*+>CztfUk3P^6y5RTn|qZ1C*l8vHW*d(z`qFoyUkALe$n|^z{$5q=hn~P z3HWmL{@n0HD!T70wQhgk8b6<8`p5p;iGp9B%e$@veA)QX;48zw7F_T<@<0Dt@W0kR z$2hNA75+^h`PT>o%3Y{|-m;d*Qm%>V#_5K*HA@#Q;||&q?yYLzTx48N-Ym`5n^QQV z7k6hY;L_Q}-MI5>zE#I{g41i)FJA%|QZ{P5pSHXQ_b_&F1NjUuAjE|O^YeS~Na`ET zX~czh>7uE#pqq6Z|Ig!f{e);xx!A%TAh=-?w}aqr7XF0mJ3vP21Y4b1OT2c&CQg>L zOI&bjwcVjm2`wDfYWD~7JW%@$$NwguSuXjq(C&UN;?Q6_sGGO-p;@ENwHt5?l3#$e zc0(Vo?_IlL15fS7$-f)c+abgFvi3>57_JSX@jSlsI`f6K=LVpTSBLVK__?*Kys-9( zIK#Czz4ja&osUDj*PhL*eUlP|oQ0$BtGGQ7g*M{G30?yp(K|98fQjpK&@kR4jmGsmLf`R!Fk5$ zneIowHq#%n+YBao&HX4(yXPI7K!7XZ{AZqDyVyo`B!?HqI*)K;20Dg(vZHlzTQn~z zU^j>M;?z7Og+Ee4aGonfV4=iooIt$3bp;}Q9`D%Ha|?rE+h)7qpa8av@f?0$l-%z0 z*XIXtx_S3Y6PFK~V1YZhb-6xGoTx#UW06C+BmkF&>QG_-TCSHDaB)d;mhVWTQ($ZH z&dVl>d)oZE(a!BH&9to9?AuCfF_ECN42qj5aq$Blb)n%$9Qj)fpaeH8+l>k6a(rvl zDt6Nc=)^aU2qzR@h}ph5e{n{zVYCa&)Q7xX6=$*I7CF24ukUQIFu8fx`^bu;(|mNQ z;~dC4b8O7|4XpmrFH5)KfIGk0x!ogk^~rANfcPX|b;B4gm5LYrB|qWv2fJfImr&w@G`*KSRTca_+e?tL4)!6Ui9gb#fTllevVO+z-ApFQ{ zWca~u(qKJ)ur5C(N9uM)2fFtw;D&?rl?Ul-BXl`}?sNcOdHq7X{UEsxVZ`ra=yeT) zT{Mxummz)a0!j0ueY+Pbr0+}M?$#Z*3oKfhl3=L);TPy$F4bn;_G7l|#16xVX zT%t1d7V3_`Ihf3LrZV)ZA2FVRQU!LJ84&eq`U3gfMcBAVO4n9(iQ$!Cl{T)tUZ8Qo zt-Yb9Z{i?#=q?zjQnfsV&b7;8iuoHm;?-<*TzcSFU0apu%Y7R#)Ix=E z2EoD=BX(V`Yemve9+;b8*Pq+f*tD(QA7CrH88!zF0Pe(Mqq5hFn)1LcIev)&xzWJ= z32igr#7$?%w8+rH0xtQWqi_Kn2J|ETWf+EjS3PsaO^E|A;#P)C$>dHjGmpcxjC4mA z;S}1X^sr`ah>a{-TJx+ zsUhcJax)jLnU8}D#r>{2+?hJ#m5yzG=Fq@oX$Dt|yK|!PgwwohT!IeIKRjAdNWd=*l;kI==)v3md+<2$k=Ao^HQIW)s?OqcK1a>R6 zyPW#X{Y1YAzC`!et_3gQdOuui)v8r?x|m8I+0~jZ_vpbyBCM&96`)@-X&UE!r?}Z% zm%Z9WF^ETioOgM-CZyTN1tET294{JlhD|ND_eh6UcjHdT>C&!Rb%|Hm^3of>COX4K zpvB#P^(+k45O=o^42gfWF%RBRT+R6A9_5Xa8BnP(2BL8TNC|%0vop7y2n0U!3c zyXq*DJX_ziNw(MEPAwzU-7!%D4;e&&Zz#{5o&<|0`l%``;!d2eo3>5JbyqXMXSKDrZoXG%PY^({CUuRJx|EP74#idjs_DsAY zkZ~5B((G;HG&^i2?!C)Y7sm*joijfWxb$7X7^RRMbO)mzd_WLU9#o!W^DuOe6ZKQEBbTwB0dE9ocQO@D*SK(9^J(2Eb#8+&clihgvgFo3Cpq zOapVI@D^owlZc3LjSBdmGAQu%rrXUJoo}snP`1uA076Q03FfPfMT_fZvYu17*%VT` z8g_+7hLp@jq-LCp=MUTUni!)Re{damy(2CKg0m7+G;YIeJY_C>bKekFlTP8#ZrDOx zTxUKOb)<2o8)EP_9MG1b2vUjg6zL5_?U^6Em*~Qz^a504HG3_sx0 zGS=c;b7?{iK<25+M2@wPCPwqSM6KaDcS*(T`=9v5f?u7wZd}c^$ z4cuvrbPafIw|PR)y24?ums!m2u#qR&E#%w^mRG~LL3-*SrC5UJGgXm(reG%Q+jy3) zgB?Vgp#LSt#ix%VkwyEMA z{U9G-X0m~Kw&PcL!7|`NFZo=&?FhpNE|}Qrv6J~x>_Mmw=96eUO-I{UfdJ_ez;0i( z%e$a+@d$}^2|x?n?{xiP>YW`_1RE(Ds?sf+JD#*EDXq5QEDlConVw;tS8Brp18*i$ zj--iQ_i3Wz2FLun6pdA0tY^tFk1eA9XVxa*ZYucWnVQ_MBzKrds%Cr8>Vb=ha4Lq+ zecSu#0rc@=U3cC~G+&b!jStDIjQ1Hs;)ao`D?|fiemgEZ#l@VAZ{m&K8EU#WZF-Y{ zg9?<=h#>|k#r>vqQ51Nzk(sX24ZvOP%UBTCT%D==J5bpb z-BErY!8j@~z;rq&XiEOFd(m>L<~@xL??XqNU@jPC4C>nWVG`*b&Z~zk#&uMw{2?5v zlq7J-NO6zCdxw8K)UKetE!^jh>d}#6L$p#RtrTM_UAsKpM1qnjvq2Yg3VO)Moq`5- zo!oCXm}^Y)VK)zSS@}c>k#Tz&b{gXOCeS0MOX(Bny&9^(?R+~+^Hq>qpMmvl;Kti# z6K)lJ0%qOH7SBria|ER<8HEdJNi=hrl*7o_;C3WZJc`0as`N2ntgEwV*bJsC+F5gD zL5Zs#OE3GFu2t(u_|eUyiqFVg>|vNm8C$<~dKj9jo2H3ZXxn(fRlbXGp}Y5rC(a+G zqtP@inz_dvH%u>gyE{9!JVW&Zex_uN{PK_wW2{<(-l3r=%`P-?8|-B-+WPd6f zv%!M?5#&fPXfxNHi&aoK@X;*}V#2VJbO}@C3zc%ans=Z%97izFYxvRcXZ6;>==ujn z%CK}stx<}^IEb~OKG~d@!fz7@6ySVpBQrHU0evLdbyjxDJFAH!=z6C$00uIcqlC6| z?sy!HR1fH6sEiReFy;i53aO!Q1TqI9f^9%y)`#I0y)?9>i1*2A9fG=rchllV>uNSB zfcrH&h>$RPcG|V_3EyDr(^F)jbGDL>Gw_eI4r=Otd-`$agK(JSq9XPjoCD?q8g0&# zBy6#G&&Rkm+r~H~n3(*Q=Y%Y3wE+%N$Vj&LN~Ot>0i{*D9oSl$&fa`)&hb!Vda&G1 z?)szIrfC4f5(zdMqQeWPt%QpJ(O*d(i+8|v768TUo4K5pKcNFOGgDt|&t)j4KSPgz zrfsH)G(+as7!Ah(OL8C?VWhCRBn4;wv6;`V`QixVz>XY26~^hTzpa;KSf z4AAOjRHP{-DA@X*%c{7Wu9o$7HI17LansFYS28xx)2VUlibo9rN6q|TP}=OF_Y|3L zP7U)ze#d5@{nFM zT4MQunm9p{pv=syW!W*;Bc(gJyMs%vnfqqSisP$2w}_dIrK~2gjzEz}D^j|ck3@*j z#L|fvJz~88gA+2<)R)W!`nnl;STxDI2djqD^NhbZyj$toXE=Cwff)I)GpaEY!4K!zoy3(JtfK`<0- zU~3ObEm5`S+fUK6gS^k3cV}gY;W{4*%Ejo&b!EOG_ zeI!%k?p?y5*E0NvHYqWdHaCYuvD3^td^4yjYx&IDLmMH(QJSYi99Smn;#r1vynk!V z&{Fh^Fb3oFKd^#pA<%M7)Mn@4bAlPpSF^VZ@MJjo!rnsj7MwIw_3Vb`PNepbPcDp% zk4;P#li96h#;4`9$)LqJU6BY2y3#_ogL>bB(DKX-I0#MHBN9!!@!lCUSk0N~ayDJ; z;*3~rVb3z+j9Gp;^-x%H_B;s!gF)I|Be>Z3v_zD@C_C=XNk@7Qlha$VZb5TfvU3bg zW@fQ?sNM<}U`~RI+01B<6br?{(O`j)ve3(EVdFd&qf|hV(5nap7pZaexlk`yX8czk;ryR;ShOUol_TekKc*Z^DH#&`YWBt%=VlQ}Lw^jVCvjvMs}eGm&ywb$if!7Xc+sg zsob1&5u!z-D{>goN(@mN(=Hj^wur@fS!D(ZoNR8HH&-0WgtPDYd44UcEOnQ;B#scC zV2^k0w%I+@-`tfAn-aC|LlVl(eK2n^iJpf?<`Ur>T%pB&%TSyCM`fZ_!8EULMC9`P>oQuFQo$X)D$~#}Vf{>ES zAd+b_+`VqkV4fg9n^Y>z!a;JgjrCM)d(J`Xb`rEJW`u2yQuC9LZ&_Ru>}AE;xi$l< zIY;}k4C}-%o7?o-QmP1AziJCl4>l)V%COkOb@}4PzD{!r^A*O{Zc4Ll_LY&LyCPj_ z_R(FNr-5m^a-3OWM4IV>I4#0((fe3aNwHsi%H7v`*`%r^S>%3rf)4D1_G!+~m!Zy0 z<2Y+t7~nm)QtV)X^DZ+f1^Sd&xPsi|bahv?4vWoUW!A_j5}%Q>pt@N;10UA5_sk>R zk9T-B_C6OsF^9X*3Tqq4$gQ1iEUv}k07xR%m2^S2!1+wLM-J-WTsV`f*RA**6GCgJ z_cTz2zeBj~7bvne1Hkl`5`J5#*2{cApIY@!SZgX|Ek3TDZQ?6GAoUp5cA!SXTG+@M zN;l1ht*y>!0s9WzK$7^3meAjU=34U#FNxnY@ zpRk20dH!5IAK&A?%J@Lsw-mqge8Tkeb9z3$pArk|-FHuPfrZ@jFVpk!eNDHheab(7 zA)x>F℘l_Um|#5Z@#H+O8Lmg-x)Q@rfH`;`2IQF2wi!5B8#LBY79wuWf;$1{g_> z&+l7_FL=fGLw);}1MxS{|4RY;bBg|Jbx=rrkNe>x{jr|-{(L;*0w-XySfP-pd$6<7U)SZHUw^K{<9jTp;>mLnesk{mO?p1Q zCk+;Y_*{JdNdEavUT~A%FV^{R4&@mf+1J0|Yr6gMy!`n7kZf`5>on+7dOr4lydNsQ zPmw{XSHAu);5XJEpO5#d#`hC__gR7=-+$lAJ-_!w+V80MaqQnpzjECfeuy6*ivLm@ zxG%t;-}e!J&zFziJPqRy^)Xa z28{fR&&PXa_kYys-;`rmd_KNE01v01PtL>I@6R8h{kg20uQm3!`{%)Un7Cs7Yrdi9 z#D|rAzV9zSu_k`d`_Za@eGYzvonA(xaV5W=lSA+xpO5d)>hb)e_j$+vAqq;5=bx+Rv$cfqS2y_c8*@LzdLx+M> $watcherLogFile -} - -function error_log() -{ - watcherLogFile=/usr/local/omc/log/cdr_data_proc_error`date +%Y%m%d`.log - timestr=`date +%H:%M:%S` - #echo $timestr - echo "$1" >> $watcherLogFile -} - -lockfile="/tmp/`basename $progname|awk -F. '{print $1}'`.lock" -if test -f $lockfile ; then - exit -fi -touch $lockfile - -setting=`grep $progname $omcbinpath/dual/sync_source.conf` -iodir=`echo $setting |awk -F, '{print $5}'` -procdir=`echo $setting |awk -F, '{print $6}'` - - -cd $procdir -procfiles=`ls *.finish` -for file in $procfiles; do - datafile="`echo $file|awk -F. '{print $1}'`.dat" - if test -f $procdir/$datafile ; then - rm -rf error.txt - cat $procdir/$datafile | $mysqlbin -u$mysqluser -p$mysqlpwd 2>error.txt - if test -f error.txt ; then - if test `cat error.txt|wc -l` -gt 0 ; then - error_log "$datafile:`cat error.txt`" - fi - rm -rf error.txt - fi - rm -rf $procdir/$datafile $file - debug_log "Process $datafile" - fi -done - -rm -rf $lockfile diff --git a/omc/bin/dual/cdr_io_proc.sh b/omc/bin/dual/cdr_io_proc.sh deleted file mode 100644 index f90bc60..0000000 --- a/omc/bin/dual/cdr_io_proc.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash - -omcbinpath="/usr/local/omc/bin" -progname=$0 - -function debug_log() -{ - watcherLogFile=/usr/local/omc/log/cdr_io_proc`date +%Y%m%d`.log - timestr=`date +%H:%M:%S` - #echo $timestr - echo "$timestr $1" >> $watcherLogFile -} - -lockfile="/tmp/`basename $progname|awk -F. '{print $1}'`.lock" -if test -f $lockfile ; then - exit -fi -touch $lockfile - - -setting=`grep $progname $omcbinpath/dual/sync_source.conf` -iodir=`echo $setting |awk -F, '{print $5}'` -procdir=`echo $setting |awk -F, '{print $6}'` - -localhostnameprefix=`hostname|awk -F'-' '{print $1}'` -localhostnameid=`hostname|awk -F'-' '{print $2}'|awk -F. '{print $1}'` - -if test $localhostnameid -eq 0 ; then - otherhostnameid=1 -else - otherhostnameid=0 -fi - -otherserverip=`grep ''$localhostnameprefix'\-'$otherhostnameid'' /etc/hosts |awk '{print $1}'` - -#echo iodir=$iodir -#echo procdir=$procdir -#echo localhostnameprefix=$localhostnameprefix -#echo localhostnameid=$localhostnameid -#echo otherhostnameid=$otherhostnameid -#echo otherserverip=$otherserverip - -cd $iodir - -low=`od -x file.index|awk '{print $2}'` -high=`od -x file.index|awk '{print $3}'` -((declow=16#$low)) -((dechigh=16#$high)) - -#writing_index=`expr $dechigh \* 65536 + $declow` -#writing_file=`printf "%06d.dat" $writing_index` -#echo writing_index=$writing_index -#echo writing_file=$writing_file - -sendfiles=`ls *.dat` -debug_log "Prepare to send files to $otherserverip" -for file in $sendfiles; do - processflag=0 - endfile="`echo $file|awk -F. '{print $1}'`.end" - if test -f $endfile ; then - processflag=1 - else - if test `find . -mmin +3 -name $file|wc -l` -eq 1 ; then - processflag=1 - fi - fi - - if test $processflag -eq 1 ; then - resultfile="`echo $file|awk -F. '{print $1}'`.ret" - sessionfile="`echo $file|awk -F. '{print $1}'`.finish" - touch $sessionfile - expect $omcbinpath/dual/sendfile $otherserverip www 123456 $iodir $file $procdir $iodir/$resultfile $sessionfile - if test -f $resultfile ; then - ret=`grep -c '^1' $resultfile` - else - ret=0 - fi - if test $ret -eq 1 ; then - debug_log "Send $file successfully" - rm -rf $file $resultfile $sessionfile $endfile - else - rm -rf $resultfile $sessionfile $endfile - debug_log "Send $file unsuccessfully" - fi - fi -done - -endfiles=`find . -mmin +5 -name '*.end'` -for file in $endfiles; do - datafile=`echo $file|awk -F'.end' '{print $1}'`".dat" - if test ! -f $datafile ; then - rm -rf $file - debug_log "Delete $file for nouse" - fi -done - - -rm -rf $lockfile diff --git a/omc/bin/dual/cdr_io_proc/file.index b/omc/bin/dual/cdr_io_proc/file.index deleted file mode 100644 index 4b75839055634eb5027e1071f43e9bd3d61fe44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 Lcmd<$VPF6N08juI diff --git a/omc/bin/dual/check_proc_status.sh b/omc/bin/dual/check_proc_status.sh deleted file mode 100644 index bf094d4..0000000 --- a/omc/bin/dual/check_proc_status.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/bash -omcbinpath="/usr/local/omc/bin" - -function debug_log() -{ - watcherLogFile=/usr/local/omc/log/check_proc_status`date +%Y%m%d`.log - timestr=`date +%H:%M:%S` - #echo $timestr - echo "$timestr $1" >> $watcherLogFile -} - - -process_id=0 -function get_process_id() -{ - # parameter: process_name - progname=$1 - process_id=`ps -aef|grep -v grep|grep '\./'$1 |awk '{print $2}'` -} - -process_status=0 -function get_process_status() -{ - # parameter: process_name - progname=$1 - - pid=`ps -aef|grep -v grep|grep -c '\./'$1` - if test $progname == "mysqld" ; then - pid=`ps -aef|grep -v grep|grep -c 'mysqld'` - fi - if test $progname == "httpd" ; then - pid=`ps -aef|grep -v grep|grep -c 'httpd'` - fi - - - - if test $pid -ge 1 ; then - process_status=1 - else - process_status=0 - fi -} - -function get_param() -{ - # parameter: file_name parameter_name - ret=`grep "$2=" $1|awk -F= '{print $2}'` - echo $ret -} - -function get_master_process() -{ - master_line=`grep -n '\[master_task\]' $omcbinpath/conf/server.conf |awk -F: '{print $1}'` - slave_line=`grep -n '\[slave_task\]' $omcbinpath/conf/server.conf |awk -F: '{print $1}'` - sed -n "${master_line},${slave_line}"p $omcbinpath/conf/server.conf|grep '^\s*[a-zA-Z]' |awk '{print $1}' -} - -function get_slave_process() -{ - slave_line=`grep -n '\[slave_task\]' $omcbinpath/conf/server.conf |awk -F: '{print $1}'` - sed -n "${slave_line},$"p $omcbinpath/conf/server.conf|grep '^\s*[a-zA-Z]' |awk '{print $1}' -} - -omc_state=`get_param $omcbinpath/dual/dualstate State` -master_list=`get_master_process` -slave_list=`get_slave_process` - -get_process_status "mysqld" -mysql_status=$process_status -get_process_status "httpd" -http_status=$process_status -get_process_status "omcMain" -omcMain_status=$process_status - -status_list="$mysql_status$http_status$omcMain_status" - -# master -if [ "x$omc_state" == "xMaster" -o "x$omc_state" == "xSingle" ] ;then - for prog in $master_list; do - get_process_status "$prog" - prog_status=$process_status - status_list="$status_list$prog_status" - if [ $prog_status -eq 0 ] ;then - debug_log "Run in $omc_state, start process $prog" - cd $omcbinpath - ./$prog -d - sleep 1 - fi - done -fi - -# slave -if [ "x$omc_state" == "xSlave" ] ;then - for prog in $master_list; do - get_process_status "$prog" - if [ $process_status -eq 1 ] ;then - if [ `echo $slave_list|grep -c $prog` -eq 0 ] ;then - debug_log "Run in $omc_state, stop process $prog" - get_process_id $prog - kill -9 $process_id - fi - fi - done - - for prog in $slave_list; do - get_process_status "$prog" - prog_status=$process_status - status_list="$status_list$prog_status" - if [ $prog_status -eq 0 ] ;then - debug_log "Run in $omc_state, start process $prog" - cd $omcbinpath - ./$prog -d - sleep 1 - fi - done -fi - -echo $status_list -echo $status_list > $omcbinpath/dual/procstatus diff --git a/omc/bin/dual/dualstate b/omc/bin/dual/dualstate deleted file mode 100644 index fa927ea..0000000 --- a/omc/bin/dual/dualstate +++ /dev/null @@ -1 +0,0 @@ -State=Single \ No newline at end of file diff --git a/omc/bin/dual/procstatus b/omc/bin/dual/procstatus deleted file mode 100644 index aa91fef..0000000 --- a/omc/bin/dual/procstatus +++ /dev/null @@ -1 +0,0 @@ -0011111111111111 diff --git a/omc/bin/dual/sendfile b/omc/bin/dual/sendfile deleted file mode 100644 index 31a1004..0000000 --- a/omc/bin/dual/sendfile +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/expect - -#This script interative with the remote server, and send the file to it - -#This script have 6 parameters -#remoteip: the ip of the remote server -#username: the name for logining in -#userpass: the password for logining in -#resdir: the directory to store the files -#sendfile: the file to send to the remote server -#desdir: the directory to send the files - -set remoteip [lindex $argv 0] -set username [lindex $argv 1] -set userpass [lindex $argv 2] -set resdir [lindex $argv 3] -set sendfile [lindex $argv 4] -set desdir [lindex $argv 5] -set resultfile [lindex $argv 6] -set sessionfile [lindex $argv 7] - -set timeout 6 - -spawn sftp $username@$remoteip - - -expect "*(yes/no)?" {send "yes\n"; expect "*assword: "} timeout {exit 1} "*assword: " -send "$userpass\n" -expect "*sftp>*" -send "cd $desdir\n" -send "lcd $resdir\n" -send "put $sendfile\n" -expect "*100%*" -send "put $sessionfile\n" -expect "*100%*" -exec echo 1 > $resultfile -exit - diff --git a/omc/bin/dual/sync_source.conf b/omc/bin/dual/sync_source.conf deleted file mode 100644 index 58679a4..0000000 --- a/omc/bin/dual/sync_source.conf +++ /dev/null @@ -1,7 +0,0 @@ -# Sync data source configuration -# NAME IO_PROC_SCRIPT DATA_PROC_SCRIPT SYNC_FILE_SIZE SEND_DIR RECV_DIR -CDR_SYNC,/usr/local/omc/bin/dual/cdr_io_proc.sh,/usr/local/omc/bin/dual/cdr_data_proc.sh,102400,/usr/local/omc/bin/dual/cdr_io_proc,/usr/local/omc/bin/dual/cdr_data_proc - - -# END - diff --git a/omc/bin/ftpSend b/omc/bin/ftpSend deleted file mode 100644 index fbc65a4354e0e4aa47b7344128e3c1bdbdc2031c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665760 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

W!jjU5(HYLN|^%zW-~%q&`6JR`GY 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ⅇWv!OG|bg{N2PG*09? zq{WT^oc~z*Qsf)Nq%$G3H{HgUNE3UG;2P12MS2f$ZBq(q~PhWFwTr{NVlw&!K);bxJr_l&U4FIu^A!oKT7I7 zpI9D4v|=8J8Mz_nT44C6E0>l9|}+EOK5lpOmO9k9HsFsNiYldQpif(X11vL=Pf;8Qy}cxs0k&Lmn|ik4Dr z^}7OtVm?zQBL$-I=G~k%lDCC<#RX=J=Bz8J8~f%II>t+NlRrp39wqkoKAZ8ZA4#|) zmb`YP(wM=@_&f}1xW|`iUouUcgj9`MvNCwPY7TB!6%-oQSWN~`f8^k%UJ6xAy!bkP zS+N^IDB~6>(w|BEveLNC(U(s~Ra8WIlr9#8>NBp4GIboYiA4Qw=?3d3w;8}e3%p1; zdA$g@l(|wGvtsYUwhIdU%zQVK*nM>$j?9CDNE<8;eBf;K5q!4GH#%bb_sHxYHi9`S z_?rj(J##L+80YC?Jer6{@zk9#z4XCCo6k2`Y3zl`VQ|HV>ZZ-q6ki2DepLG{n0fho zmNGGm0)k?b|5(Uys7}t4<9Wj-|K4K4)jEB7lX5V5{JG9$(WK7BWZ>sI3FP2zx+c$5 zKn1KEZmw%m_aXI{x&S%hE`%n}ged?Gv+Yfm4CD79QO}i?b@V3s@q=~#3?uECpu~@A z|CZ8b!rBkkB`FQg`1{|0E)Uj~vrpn_B>&xLn}c-&*d%yXz>2&J|GKTtzY;ZmiqAFR z^Jlsxd{p~TR5Uzy-W=o*7sn^4cn8$BxthV^V+c)jqs2=6I_i<(n6Y^s*A zE+yk`Q1yE-uFt82)zmiJK}Wsb!osxNZCCB(+>%v2(la^GWJs zs6SB`Qjs;$+{RfnC!MClRbD`t1hNx**{55Lm$d= zxqpd`P)v2Q>tdWY*lmXgY13W)?1_)yLso~#hMf-N!bqoEUL6+ZY zi!}8m3;p{A?yliO3&b+5I)`QLwiOGdE~-w>Q^4*QN?lZ4j;_m|g_fA=Xylf;rUx&? zC`L%5R-Lb<8Ih9aRZ24f+`g-o=I0%U{(04e%d}>fFAiTY8DK9B-n>|v<-6McTDYZ) zJ#4lgYUNmyJh*c$H1=byL(;e@W3gXL!&&qYPQdV%LEs{fW7YCnt+>{OwY@a?(L(QmTGJyYsv}_J57deq zLC01+PWeEsj4Q&8Uj7zcwMB*-E6$H<&xdkZms@HxbzP=NU2f5>Pseb51&f=ijrCs( zMcq<+v=POMEP!23)71aL6aVuXx1E=-y z65rK`Z9Hb>;cbgnat3PoaLp}eX|}m3@Ad)N(gQzSBSV7gfgi3Z`rQLRS|i;6 z58`^JS&!Bj103s_4j`&Io@2$=qJvynX|kT zU_^u4TGb6O%&Tim&)?OmE{CyPcMUQ=a_M3}Lj!jW>c&=ve_kvU?->-9Q%<;hKz!sqgXDk;jbd*x zw(;ET%NMId5a8ZH5-_ye{<;{_-#aKrOMlB^brG8A-a&F|#%{ZHu@!$AeR|M9zcoP1 zmXUO2yL}*PFx#pfn5QM#+$^kW2bytfeX~ebJFrqqwyaeos~uRam5eszMVPe%ha06Y z_VCnE-M~Bs+Sv%|ZVdE;2j($QfJSOotohLc^EAEHtq^_4KqKm7&1kYA0}FIT)-+2s zhYS=GwcFM;tCgAPlmmO{^v9c}Nrw!q)9~76^)yDo`hj^|RoHD$G^@jyjtw0sCwpK| z%~qrUoy$K^8Y;h9D}#>!@uS)!gLL2Y4=kno!6@D0&ww5H2li!9g(l|b@gV=edd+cX zi=XHG`~y!h+G|k{W2PS*n5Rv04-6?6HX0q^pWZ`rTMe~nZd1Swm5&XOzAaPC*|YJK zhw};2?Y4g`RzuO5)7|8UU?aJh0}P0=Ag|T5WSm?CNXE%7R{b(ABY*2JuE%Q_PS*TT zy$8vVmmpc12Ooxy=c5OH+TZ_GH!WT^G{=u>|D3s}TA%ed;=MmtB}%b_(m%oI2yfT2 zBHx4G%bMLiRhq!@DFXd#pqbNPcrW)aGt)#FYLm|(K{{GorHS4catnWc)5MTKR+5g@__V{7+k?H;Y zh2^^NX(=nPYEk`F@cuLUJEnuHkI)h``seb*Kc8L(?V0_}lwtK^vBH`C#a-eWL3Fn} zigCcD+CL$zX>Wi{@T1xTb@;vlqy3WVIF*2j;vDst62e&;-ZMvyKu=jxEr%HFwom7% z+u$@Wsg9ctHdp0Cz)Pz0_{0G`*IabpORCG>6>5j(c+Q_Q2XKY)iF2j?eZ0xo#=fGoLULE618eLf@?&*}XWir!N^-U8xrxdfGIux-Vl+9Kaq$-y2swguR{5EAJ{pl%!hD?9#L&UQAQd zHMipfn%n)UR!$#mxTSaImfo3L`tRI$t9p8My=Gp|fi9!kEGs4o@1)Cnf_efio>^T= zCN%9dK0Fa$0Rm-x1Ksv&A&Oz{{HXSpqw&oLmn!!vP!_Ki(1>D82ih2%dc+08s%k6H(b;;lQ}TgvyRL%YG@G|&pNWJ zDg zYPdD2OR!}AvZt9+ph6F#tA5opO3E1P8WpAcx@XiVq)|HGH$7#Z0FT|M9zqw{pQ6_y zjdq}CRF5W57)O@_JJ-yZu)HvYB?JDTNl2)!E?dXd4OgA-){R`gW@UU?|Me{ z_;*Kxbjj~~x?QqC6~UGK&@&@Al=6PwP_phpt)z6L-q(geMPGo)pL=zyEM}%d4OYqJ z8+0x{>dMdjdgS6NVpMO_masRr^{C#xwdx+yZF^GhO5L_^>9#%D&A+-qT?uMr)hXkgW>`ClY5WT@TUz{)__e~yh(8E z{D|_G^fsokq){Zk#FYTnMu{(RB}R{6q~KCl;*DD3%iR2%wZxaX5^vSke3>ipPFSlr zJnB})<3cNq$DAYO#W)VyU7X&DX0m)niAad9pEV3_=wZo`t6lQ?X4v3ty;lOoa7Hw{ zyK%^GHNyqZ?rtJLyO9%*Hq7oWPk&-4X_j^U#odj4?r2seU^J(@v4@?_GB=ysJ)-U7 z)n>7edEJeDeBP|?z|b_md(=b?TBL)|?_QYdZF?c<{O+>2!wjHV4THTc=q`^1*lj;F zV<=kKJ@yGIXSco7?70|Fx`tlH-0M;Jzj56}5vTHreSCh7%0DRLZ7PE7$8|G`Sjqs` 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 diff --git a/omc/bin/logCollector b/omc/bin/logCollector deleted file mode 100644 index 9ad5b598beb21adeb9857c0f946ac16fca6ac63a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695264 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 -mDXOQAc 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

-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 Default = BB" - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.1.3 - playTimes OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Play Times - Remark:Define the audio announcement play times.
- Range = 1 - 5" - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.1.4 - command OBJECT-TYPE - SYNTAX INTEGER - { - reset(1), - saveVoiceFile(2), - loadVoiceFile(3), - saveCodec(4), - loadCodec(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Control command for VAS." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2 - linkManage OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.1 - networkIndication OBJECT-TYPE - SYNTAX INTEGER - { - international(0), - internationalSpare(1), - national(2), - nationalSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Network Indicator - Remark:Select the type of network used to establish connection between AAS and MSS." - ::= { linkManage 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.2 - mSISDN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:SRF MSISDN - Remark:(Read Only) The E.164 node address of the SRF." - ::= { linkManage 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.3 - cC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CC - Remark:Country code" - ::= { linkManage 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.4 - nDC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NDC - Remark:National Destination Code" - ::= { linkManage 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.5 - aAS0OPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:AAS 0 OPC - Remark:Originating Point Code of AAS-0 in decimal format." - ::= { linkManage 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.6 - aAS0DPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:AAS 0 DPC - Remark:Destination Point Code of AAS-0 in decimal format." - ::= { linkManage 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.7 - aAS1OPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:AAS 1 OPC - Remark:Originating Point Code of AAS-1 in decimal format." - ::= { linkManage 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.8 - aAS1DPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:AAS 1 DPC - Remark:Destination Point Code of AAS-1 in decimal format." - ::= { linkManage 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.9 - flagLink0 OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Link 0 Flag - Remark:Enable or disable link-0 of the target AAS specified in the upper System ID field." - ::= { linkManage 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.10.2.2.10 - flagLink1 OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Link 1 Flag - Remark:Enable or disable link-1 of the target AAS specified in the upper System ID field." - ::= { linkManage 10 } - - - - END - --- --- LGC-SS-AAS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-AMRMG-MIB.my b/omc/bin/mib/LGC-SS-AMRMG-MIB.my deleted file mode 100644 index d481ba2..0000000 --- a/omc/bin/mib/LGC-SS-AMRMG-MIB.my +++ /dev/null @@ -1,263 +0,0 @@ --- --- LGC-SS-AMRMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 15:43:06 --- - --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, March 12, 2010 at 14:15:06 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:05:09 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:04:10 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 14:44:19 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 11:35:26 --- - - LGC-SS-AMRMG-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.22 - amrmg MODULE-IDENTITY - LAST-UPDATED "201003101054Z" -- March 10, 2010 at 10:54 GMT - ORGANIZATION - "altobridge" - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - REVISION "201003101055Z" -- March 10, 2010 at 10:55 GMT - DESCRIPTION - "1st Version" - ::= { application 22 } - - - - --- --- Node definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 - -- 1.3.6.1.4.1.1373.2.3.3.22.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { amrmg 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 - -- 1.3.6.1.4.1.1373.2.3.3.22.2 - parameter OBJECT IDENTIFIER ::= { amrmg 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.1 - localIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local IP - Remark:Specify the IP address of this Media Gateway." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.2 - netMask OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Netmask - Remark:A netmask is a 32-bit mask used to divide an IP address into subnets and specify the networks available hosts." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.3 - gateway OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Gateway - Remark:Specify the IP address of the gateway used to pass traffic from Media Gateway to other subnets." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.4 - systemID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:System ID - Remark:Specify the system ID of the target Media Gateway.
- Range = 0 - 31" - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.5 - subSystemID OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Sub-System ID - Remark:Specify the subsystem ID of the target Media Gateway.
- Range = 0 - 1" - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.6 - proxyIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Proxy IP - Remark:Specify the IP address of the connected RTP proxy server." - ::= { system 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.7 - portType OBJECT-TYPE - SYNTAX INTEGER - { - t1(0), - e1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port Type - Remark:Specify the physical interface type of target Media Gateway." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.8 - interfaceID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Interface ID - Remark:Specify the interface identifier to the Media Gateway physical interface." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.9 - crc4Switch OBJECT-TYPE - SYNTAX INTEGER - { - closed(0), - open(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CRC4 Flag - Remark:Enable or disable Cyclic Redundancy Check on the Media Gateway physical interface." - ::= { system 9 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.22.2.1.10 - rebootCommand OBJECT-TYPE - SYNTAX INTEGER { reboot(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 10 } - - - - END - --- --- LGC-SS-AMRMG-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-AUC-MIB.my b/omc/bin/mib/LGC-SS-AUC-MIB.my deleted file mode 100644 index 455c9fe..0000000 --- a/omc/bin/mib/LGC-SS-AUC-MIB.my +++ /dev/null @@ -1,567 +0,0 @@ --- --- LGC-SS-AUC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, May 24, 2012 at 11:16:44 --- - - LGC-SS-AUC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.4 - auc MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 4 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.4.2 - parameter OBJECT IDENTIFIER ::= { auc 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.1 - maxLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Max License - Remark:(Read Only) The maximum allowable AUC subscriber capacity determined by License Control." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.2 - usedLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Used License - Remark:(Read Only) The number of registered AUC subscribers." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.3 - provisionedUsers OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Provisioned Users - Remark:(Read Only) The number of service enabled AUC subscribers." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.4 - softwareVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Software Version - Remark:(Read Only) Version of AUC software." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.5 - dataVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Data Version - Remark:(Read Only) Version of AUC subscriber data structure." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.6 - saveParam OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - save(1), - succeeded(2), - failed(3) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Save the parameters into the disk." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.7 - saveDataCommand OBJECT-TYPE - SYNTAX INTEGER { saveData(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Save data into the disk." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.8 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Command[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Sending Command - [v]2[opt]In Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Success Numbers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Ki[u]04.0-11.7[u]input - [v]keepHex" - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2 - subscriberSelectAlgorithm OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1 - subscriberSelectAlgorithmTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubscriberSelectAlgorithmEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { subscriberSelectAlgorithm 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1 - subscriberSelectAlgorithmEntry OBJECT-TYPE - SYNTAX SubscriberSelectAlgorithmEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ssaIndex } - ::= { subscriberSelectAlgorithmTable 1 } - - - SubscriberSelectAlgorithmEntry ::= - SEQUENCE { - ssaIndex - INTEGER, - ssaAdministrationStatus - INTEGER, - ssaStartIMSI - OCTET STRING, - ssaEndIMSI - OCTET STRING, - ssaAlgorithmid - INTEGER, - ssaRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1.1 - ssaIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { subscriberSelectAlgorithmEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1.2 - ssaAdministrationStatus OBJECT-TYPE - SYNTAX INTEGER - { - lock(0), - unlock(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Administration State" - ::= { subscriberSelectAlgorithmEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1.3 - ssaStartIMSI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Start IMSI" - ::= { subscriberSelectAlgorithmEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1.4 - ssaEndIMSI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:End IMSI" - ::= { subscriberSelectAlgorithmEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1.5 - ssaAlgorithmid OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Algorithm index" - ::= { subscriberSelectAlgorithmEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.2.1.1.6 - ssaRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { subscriberSelectAlgorithmEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3 - algorithm OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1 - algorithmTable OBJECT-TYPE - SYNTAX SEQUENCE OF AlgorithmEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { algorithm 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1 - algorithmEntry OBJECT-TYPE - SYNTAX AlgorithmEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { aIndex } - ::= { algorithmTable 1 } - - - AlgorithmEntry ::= - SEQUENCE { - aIndex - INTEGER, - aAdministrationStatus - INTEGER, - aOP - OCTET STRING, - aR1 - INTEGER, - aR2 - INTEGER, - aR3 - INTEGER, - aR4 - INTEGER, - aR5 - INTEGER, - aC1 - Opaque, - aC2 - Opaque, - aC3 - Opaque, - aC4 - Opaque, - aC5 - Opaque, - aL - OCTET STRING, - aDelta - OCTET STRING, - aSQNgenerationScheme - INTEGER, - aAMF - Opaque, - aRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.1 - aIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { algorithmEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.2 - aAdministrationStatus OBJECT-TYPE - SYNTAX INTEGER - { - lock(0), - unlock(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Administration state" - ::= { algorithmEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.3 - aOP OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "PASSWORD:Visible Name:OP - Remark: a 128bit Operator variant algorithm configuration field that is a component of the functions f1, f1(, f2, f3, f4, f5 and f5(. It should be displayed "("." - ::= { algorithmEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.4 - aR1 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:R1 - Remark: integers in the range 0 to 127 inclusive, which define amounts by which intermediate variables are cyclically rotated." - ::= { algorithmEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.5 - aR2 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:R2" - ::= { algorithmEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.6 - aR3 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:R3" - ::= { algorithmEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.7 - aR4 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:R4" - ::= { algorithmEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.8 - aR5 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:R5" - ::= { algorithmEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.9 - aC1 OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:C1 - OPAQUE DECODE RULE: - [unit]C1[u]00.0-15.7[u]input - [v]keepHex-high-0 - Remark: 128bit constants, which are XORed onto intermediate variables." - ::= { algorithmEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.10 - aC2 OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:C2 - OPAQUE DECODE RULE: - [unit]C2[u]00.0-15.7[u]input - [v]keepHex-high-0" - ::= { algorithmEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.11 - aC3 OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:C3 - OPAQUE DECODE RULE: - [unit]C3[u]00.0-15.7[u]input - [v]keepHex-high-0" - ::= { algorithmEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.12 - aC4 OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:C4 - OPAQUE DECODE RULE: - [unit]C4[u]00.0-15.7[u]input - [v]keepHex-high-0" - ::= { algorithmEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.13 - aC5 OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:C5 - OPAQUE DECODE RULE: - [unit]C5[u]00.0-15.7[u]input - [v]keepHex-high-0" - ::= { algorithmEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.14 - aL OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:L - Remark:The USIM shall also be able to put a limit L on the difference between SEQms and a received sequence number component SEQ." - ::= { algorithmEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.15 - aDelta OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Delta - Remark:The USIM will not accept arbitrary jumps in sequence numbers, but only increases by a value of at most delta." - ::= { algorithmEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.16 - aSQNgenerationScheme OBJECT-TYPE - SYNTAX INTEGER - { - partlyTime(0), - notTime(1), - entirelyTime(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SQN generation scheme - Remark: Sequence number. 0:partly time-based; 1: not time-based; 2:entirely time-based." - ::= { algorithmEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.17 - aAMF OBJECT-TYPE - SYNTAX Opaque (SIZE (2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:AMF - OPAQUE DECODE RULE: - [unit]AMF[u]00.0-01.7[u]input - [v]keepHex-high-0" - ::= { algorithmEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.3.1.1.18 - aRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { algorithmEntry 18 } - - - - END - --- --- LGC-SS-AUC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-AUC-MIB.my_bak b/omc/bin/mib/LGC-SS-AUC-MIB.my_bak deleted file mode 100644 index 6ad4f7e..0000000 --- a/omc/bin/mib/LGC-SS-AUC-MIB.my_bak +++ /dev/null @@ -1,184 +0,0 @@ --- --- LGC-SS-AUC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 15:46:52 --- - - LGC-SS-AUC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.4 - auc MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 4 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.4.2 - parameter OBJECT IDENTIFIER ::= { auc 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.1 - maxLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Max License - Remark:(Read Only) The maximum allowable AUC subscriber capacity determined by License Control." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.2 - usedLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Used License - Remark:(Read Only) The number of registered AUC subscribers." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.3 - provisionedUsers OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Provisioned Users - Remark:(Read Only) The number of service enabled AUC subscribers." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.4 - softwareVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Software Version - Remark:(Read Only) Version of AUC software." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.5 - dataVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Data Version - Remark:(Read Only) Version of AUC subscriber data structure." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.6 - saveParam OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - save(1), - succeeded(2), - failed(3) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Save the parameters into the disk." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.7 - saveDataCommand OBJECT-TYPE - SYNTAX INTEGER { saveData(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Save data into the disk." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.4.2.1.8 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Command[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Sending Command - [v]2[opt]In Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Success Numbers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Ki[u]04.0-11.7[u]input - [v]keepHex" - ::= { system 8 } - - - - END - --- --- LGC-SS-AUC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-AUSF-MIB.my b/omc/bin/mib/LGC-SS-AUSF-MIB.my deleted file mode 100644 index a50da5e..0000000 --- a/omc/bin/mib/LGC-SS-AUSF-MIB.my +++ /dev/null @@ -1,241 +0,0 @@ --- --- LGC-SS-AUSF-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Sunday, January 19, 2020 at 15:40:02 --- - - LGC-SS-AUSF-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS - FROM LGC-MIB - Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.52 - ausf MODULE-IDENTITY - LAST-UPDATED "202001090955Z" -- January 09, 2020 at 09:55 GMT - ORGANIZATION - "Organization." - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - ::= { application 52 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2 - parameter OBJECT IDENTIFIER ::= { ausf 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.1 - adminState OBJECT-TYPE - SYNTAX INTEGER - { - unlock(0), - lock(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.2 - label OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.3 - nfInstanceID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.4 - hplmnID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.5 - servicesIP OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.6 - servicesPort OBJECT-TYPE - SYNTAX Integer32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.7 - nrf0Path OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.8 - nrf1Path OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.9 - defaultUDMURI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.10 - defaultNRFNotifyURI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.11 - fqdn OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.12 - priority OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.13 - capacity OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.14 - groupID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.15 - supiRanges OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.52.2.1.16 - snssais OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 16 } - - - - END - --- --- LGC-SS-AUSF-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-EIR-MIB.my b/omc/bin/mib/LGC-SS-EIR-MIB.my deleted file mode 100644 index 3ea72eb..0000000 --- a/omc/bin/mib/LGC-SS-EIR-MIB.my +++ /dev/null @@ -1,253 +0,0 @@ --- --- LGC-SS-EIR-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 15:55:05 --- - - LGC-SS-EIR-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.8 - eir MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 8 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.8.2 - parameter OBJECT IDENTIFIER ::= { eir 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.1 - maxLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Max License - Remark:(Read Only) The maximum allowable EIR subscriber capacity determined by License Control." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.2 - usedLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Used License - Remark:(Read Only) The number of registered EIR subscribers." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.3 - softwareVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Software Version - Remark:(Read Only) Version of EIR software." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.4 - dataVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Data Version - Remark:(Read Only) Version of EIR subscriber data structure." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.5 - saveParam OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - save(1), - succeeded(2), - failed(3) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:EIR control commands." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.6 - saveDataCommand OBJECT-TYPE - SYNTAX INTEGER { saveData(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:EIR control commands." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.1.7 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Progress Report[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Requesting - [v]2[opt]Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total IMEIs[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Imported IMEIs[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2 - whiteListSegments OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2.1 - whiteListSegmentsTable OBJECT-TYPE - SYNTAX SEQUENCE OF WhiteListSegmentsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { whiteListSegments 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2.1.1 - whiteListSegmentsEntry OBJECT-TYPE - SYNTAX WhiteListSegmentsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { wlsIndex } - ::= { whiteListSegmentsTable 1 } - - - WhiteListSegmentsEntry ::= - SEQUENCE { - wlsIndex - INTEGER, - wlsStartIMEI - OCTET STRING, - wlsEndIMEI - OCTET STRING, - wlsRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2.1.1.1 - wlsIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:White-list IMEI segment index number ranges from 0 to 1023. A white-list number is a legal IMEI that can pass the EIR verification." - ::= { whiteListSegmentsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2.1.1.2 - wlsStartIMEI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IMEI Start - Remark:The beginning of consecutive white-list IMEIs. A 16-digit IMEI comprises four parts:
- TAC = 6 digits (Type Approval Code)
- FAC = 2 digits (Final Assembly Code)
- SNR = 6 digits (Serial Number)
- SVN = 2 digits (Software Version Number)" - ::= { whiteListSegmentsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2.1.1.3 - wlsEndIMEI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IMEI End - Remark:The end of consecutive white-list IMEIs." - ::= { whiteListSegmentsEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.8.2.2.1.1.4 - wlsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { whiteListSegmentsEntry 4 } - - - - END - --- --- LGC-SS-EIR-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-GRS-MIB.my b/omc/bin/mib/LGC-SS-GRS-MIB.my deleted file mode 100644 index 2d1bbe3..0000000 --- a/omc/bin/mib/LGC-SS-GRS-MIB.my +++ /dev/null @@ -1,2225 +0,0 @@ --- --- LGC-SS-GRS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, June 20, 2019 at 17:38:34 --- - - LGC-SS-GRS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, TimeStamp, RowStatus, DisplayString, AdminStateChoices - FROM LGC-MIB - IpAddress, Opaque, Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.16 - grs MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 16 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { grs 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2 - parameter OBJECT IDENTIFIER ::= { grs 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.1 - systemID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:System ID - Remark:Specify the System ID of the iGRS." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.2 - primaryPalimIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Primary iPALIM IP - Remark:Specify the IP address of the master iPALIM connecting to the iGRS." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.3 - primaryPalimPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Primary iPALIM Port - Remark:Specify the transmission port of the master iPALIM connecting to the iGRS." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.4 - secondaryPalimIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Secondary iPALIM IP - Remark:Specify the IP address of the slave iPALIM connecting to the iGRS." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.5 - secondaryPalimPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Secondary iPALIM Port - Remark:Specify the transmission port of the slave iPALIM connecting to the iGRS." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.6 - keepNSAliveToCellTimer OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Keep NS Alive to Cell Timer - Remark:Keep Alive Time Interval to Cell." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.7 - resetToSGSNTimer OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Reset to SGSN Timer - Remark:Reset Time Interval to SGSN." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.8 - blockUnblockToSGSNTimer OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Block and Unblock to SGSN Timer - Remark:Block and Unblock Time Interval to SGSN." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.9 - keepAliveToSGSNTimer OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Keep Alive to SGSN Timer - Remark:Keep Alive Time Interval to SGSN." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.10 - resetToSGSNRetries OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Reset to SGSN Retries - Remark:Reset Retry to SGSN." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.11 - blockUnblockToSGSNRetries OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Block and Unblock to SGSN Retries - Remark:Block and Unblock Retry to SGSN." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.12 - keepAliveToSGSNRetries OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Keep Alive to SGSN Retries - Remark:Keep Alive Retry to SGSN." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.1.13 - defaultMocnSgsnId OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:default MOCN SGSN Id - Remark:Used when MOCN only." - ::= { system 13 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2 - bSS OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1 - bSSTable OBJECT-TYPE - SYNTAX SEQUENCE OF BSSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { bSS 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1 - bSSEntry OBJECT-TYPE - SYNTAX BSSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { bssIndex } - ::= { bSSTable 1 } - - - BSSEntry ::= - SEQUENCE { - bssIndex - INTEGER, - bssTitle - OCTET STRING, - bssCreateTimeStamp - TimeStamp, - bssAdministrationState - AdminStateChoices, - bssSNSType - INTEGER, - bssNseiOneEntries - INTEGER, - bssCreateEntryNseiOne - INTEGER, - bssRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.1 - bssIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:BSS ID - Remark:Index number of the virtual connection to BSS." - ::= { bSSEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.2 - bssTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Name that identifies this virtual connection to BSS." - ::= { bSSEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.3 - bssCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Reserved" - ::= { bSSEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.4 - bssAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the BSS virtual connection entry." - ::= { bSSEntry 4 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.5 - bssSNSType OBJECT-TYPE - SYNTAX INTEGER - { - ip(0), - frameRelay(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SNS Type - Remark:Specify the protocol type of subnetwork service (SNS) sub-layer." - ::= { bSSEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.6 - bssNseiOneEntries OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSE Entries - Remark:Each BSS entry can create one Network Service Entity (NSE). NSE provides communication service between iGRS and BSS." - ::= { bSSEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.7 - bssCreateEntryNseiOne OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { bSSEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.1.1.8 - bssRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { bSSEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2 - nSEIOneTable OBJECT-TYPE - SYNTAX SEQUENCE OF NSEIOneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:NSEI" - ::= { bSS 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1 - nSEIOneEntry OBJECT-TYPE - SYNTAX NSEIOneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:NSEI" - INDEX { niBSSIndex, niIndex } - ::= { nSEIOneTable 1 } - - - NSEIOneEntry ::= - SEQUENCE { - niBSSIndex - INTEGER, - niIndex - INTEGER, - niTitle - OCTET STRING, - niAdministrationState - AdminStateChoices, - niNSEIValue - INTEGER, - niNsvciOneEntries - INTEGER, - niCreateEntryNsvciOne - INTEGER, - niRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.1 - niBSSIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:BSS ID - Remark:(Read Only) Index number of the BSS virtual connection." - ::= { nSEIOneEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.2 - niIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSE ID - Remark:NSE index number reserved as 0." - ::= { nSEIOneEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.3 - niTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSE Title - Remark:NSE name for identification purpose only." - ::= { nSEIOneEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.4 - niAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed NSE." - ::= { nSEIOneEntry 4 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.5 - niNSEIValue OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSEI - Remark:Specify network service entity identifier (NSEI) to identify the NSE." - ::= { nSEIOneEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.6 - niNsvciOneEntries OBJECT-TYPE - SYNTAX INTEGER (0..2) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSVC Entries - Remark:Each NSE entry can create two Network Service Virtual Connections (NSVC). NSVC is end-to-end virtual connection between the iGRS and the BSS." - ::= { nSEIOneEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.7 - niCreateEntryNsvciOne OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { nSEIOneEntry 7 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.2.1.8 - niRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { nSEIOneEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3 - nSVCIOneTable OBJECT-TYPE - SYNTAX SEQUENCE OF NSVCIOneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3 Name:NSVCI" - ::= { bSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1 - nSVCIOneEntry OBJECT-TYPE - SYNTAX NSVCIOneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3 Name:NSVCI" - INDEX { nsNseiBSSIndex, nsNseiIndex, nsIndex } - ::= { nSVCIOneTable 1 } - - - NSVCIOneEntry ::= - SEQUENCE { - nsNseiBSSIndex - INTEGER, - nsNseiIndex - INTEGER, - nsIndex - INTEGER, - nsTitle - OCTET STRING, - nsCreateTimeStamp - TimeStamp, - nsAdministrationState - AdminStateChoices, - nsBlockingStatus - INTEGER, - nsAliveStatus - INTEGER, - nsNSVCIValue - INTEGER, - nsLocalIP - IpAddress, - nsLocalPort - INTEGER, - nsPeerIP - IpAddress, - nsPeerPort - INTEGER, - nsResetCommand - INTEGER, - nsRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.1 - nsNseiBSSIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Name:BSS ID - Remark:(Read Only) Index number of the BSS virtual connection." - ::= { nSVCIOneEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.2 - nsNseiIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:NSE ID - Remark:(Read Only) Index number of the host NSE." - ::= { nSVCIOneEntry 2 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.3 - nsIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSVC ID - Remark:NSVC index number ranges from 0 to 1." - ::= { nSVCIOneEntry 3 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.4 - nsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSVC Title - Remark:NSVC name for identification purpose only." - ::= { nSVCIOneEntry 4 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.5 - nsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Reserved" - ::= { nSVCIOneEntry 5 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.6 - nsAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed NSVC." - ::= { nSVCIOneEntry 6 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.7 - nsBlockingStatus OBJECT-TYPE - SYNTAX INTEGER - { - block(0), - unblock(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Blocking Status - Remark:(Read Only) The blocking status of the NSVC." - ::= { nSVCIOneEntry 7 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.8 - nsAliveStatus OBJECT-TYPE - SYNTAX INTEGER - { - non-alive(0), - alive(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alive Status - Remark:(Read Only) The running status of the NEVC." - ::= { nSVCIOneEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.9 - nsNSVCIValue OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NSVCI - Remark:Specify network service virtual connection identifier (NSVCI) to identify the NSVC." - ::= { nSVCIOneEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.10 - nsLocalIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local IP - Remark:IP address of the iGRS." - ::= { nSVCIOneEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.11 - nsLocalPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local Port - Remark:iGRS transmission port for the virtual connection to BSS." - ::= { nSVCIOneEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.12 - nsPeerIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Peer IP - Remark:IP address of the BSS." - ::= { nSVCIOneEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.13 - nsPeerPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Peer Port - Remark:BSS transmission port for the virtual connection to iGRS." - ::= { nSVCIOneEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.14 - nsResetCommand OBJECT-TYPE - SYNTAX INTEGER { reset(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { nSVCIOneEntry 14 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.2.3.1.15 - nsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { nSVCIOneEntry 15 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3 - sGSN OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1 - sGSNTable OBJECT-TYPE - SYNTAX SEQUENCE OF SGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sGSN 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1 - sGSNEntry OBJECT-TYPE - SYNTAX SGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { sgIndex } - ::= { sGSNTable 1 } - - - SGSNEntry ::= - SEQUENCE { - sgIndex - INTEGER, - sgTitle - OCTET STRING, - sgCreateTimeStamp - TimeStamp, - sgAdministrationState - AdminStateChoices, - sgSNSType - INTEGER, - sgMocnSgsnMcc - OCTET STRING, - sgMocnSgsnMnc - OCTET STRING, - sgMocnSgsnLac - INTEGER, - sgNseiTwoEntries - INTEGER, - sgCreateEntryNseiTwo - INTEGER, - sgRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.1 - sgIndex OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN ID - Remark:Index number of the virtual connection to SGSN." - ::= { sGSNEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.2 - sgTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Name that identifies this virtual connection to SGSN." - ::= { sGSNEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.3 - sgCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Reserved" - ::= { sGSNEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.4 - sgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the SGSN virtual connection entry." - ::= { sGSNEntry 4 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.5 - sgSNSType OBJECT-TYPE - SYNTAX INTEGER - { - ip(0), - frameRelay(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SNS Type - Remark:Specify the protocol type of subnetwork service (SNS) sub-layer." - ::= { sGSNEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.6 - sgMocnSgsnMcc OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MOCN SGSN MCC - Remark:used for MOCN only. " - ::= { sGSNEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.7 - sgMocnSgsnMnc OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MOCN SGSN MNC - Remark:used for MOCN only. " - ::= { sGSNEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.8 - sgMocnSgsnLac OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MOCN SGSN LAC - Remark:used for MOCN only. " - ::= { sGSNEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.18 - sgNseiTwoEntries OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSE Entries - Remark:Each SGSN entry can create 256 Network Service Entities (NSE). NSE provides communication service between iGRS and SGSN." - ::= { sGSNEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.19 - sgCreateEntryNseiTwo OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sGSNEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.1.1.20 - sgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sGSNEntry 20 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2 - nSEITwoTable OBJECT-TYPE - SYNTAX SEQUENCE OF NSEITwoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:NSEI" - ::= { sGSN 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1 - nSEITwoEntry OBJECT-TYPE - SYNTAX NSEITwoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:NSEI" - INDEX { ntSGSNIndex, ntIndex } - ::= { nSEITwoTable 1 } - - - NSEITwoEntry ::= - SEQUENCE { - ntSGSNIndex - INTEGER, - ntIndex - INTEGER, - ntTitle - OCTET STRING, - ntAdministrationState - AdminStateChoices, - ntNSEIValue - INTEGER, - ntNsvciTwoEntries - INTEGER, - ntCreateEntryNsvciTwo - INTEGER, - ntRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.1 - ntSGSNIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:SGSN ID - Remark:(Read Only) Index number of the SGSN virtual connection." - ::= { nSEITwoEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.2 - ntIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSE ID - Remark:NSE index number ranges from 0 to 255." - ::= { nSEITwoEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.3 - ntTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSE Title - Remark:NSE name for identification purpose only." - ::= { nSEITwoEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.4 - ntAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed NSE." - ::= { nSEITwoEntry 4 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.5 - ntNSEIValue OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NSEI - Remark:Specify network service entity identifier (NSEI) to identify the NSE." - ::= { nSEITwoEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.6 - ntNsvciTwoEntries OBJECT-TYPE - SYNTAX INTEGER (0..2) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSVC Entries - Remark:Each NSE entry can create two Network Service Virtual Connections (NSVC). NSVC is end-to-end virtual connection between the iGRS and the SGSN." - ::= { nSEITwoEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.7 - ntCreateEntryNsvciTwo OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { nSEITwoEntry 7 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.2.1.8 - ntRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { nSEITwoEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3 - nSVCITwoTable OBJECT-TYPE - SYNTAX SEQUENCE OF NSVCITwoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3 Name:NSVCI" - ::= { sGSN 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1 - nSVCITwoEntry OBJECT-TYPE - SYNTAX NSVCITwoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3 Name:NSVCI" - INDEX { nsNseiBSSIndex, nsNseiIndex, nsIndex } - ::= { nSVCITwoTable 1 } - - - NSVCITwoEntry ::= - SEQUENCE { - nnNseiSGSNIndex - INTEGER, - nnNseiIndex - INTEGER, - nnIndex - INTEGER, - nnTitle - OCTET STRING, - nnCreateTimeStamp - TimeStamp, - nnAdministrationState - AdminStateChoices, - nnBlockingStatus - INTEGER, - nnAliveStatus - INTEGER, - nnNSVCIValue - INTEGER, - nnLocalIP - IpAddress, - nnLocalPort - INTEGER, - nnPeerIP - IpAddress, - nnPeerPort - INTEGER, - nnResetCommand - INTEGER, - nnRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.1 - nnNseiSGSNIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:SGSN ID - Remark:(Read Only) Index number of the SGSN virtual connection." - ::= { nSVCITwoEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.2 - nnNseiIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:BSS ID - Remark:(Read Only) Index number of the host NSE." - ::= { nSVCITwoEntry 2 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.3 - nnIndex OBJECT-TYPE - SYNTAX INTEGER (0..2) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSVC ID - Remark:NSVC index number ranges from 0 to 1." - ::= { nSVCITwoEntry 3 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.4 - nnTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSVC Title - Remark:NSVC name for identification purpose only." - ::= { nSVCITwoEntry 4 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.5 - nnCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Reserved" - ::= { nSVCITwoEntry 5 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.6 - nnAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed NSVC." - ::= { nSVCITwoEntry 6 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.7 - nnBlockingStatus OBJECT-TYPE - SYNTAX INTEGER - { - block(0), - unblock(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Blocking Status - Remark:(Read Only) The blocking status of the NSVC." - ::= { nSVCITwoEntry 7 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.8 - nnAliveStatus OBJECT-TYPE - SYNTAX INTEGER - { - non-alive(0), - alive(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alive Status - Remark:(Read Only) The running status of the NEVC." - ::= { nSVCITwoEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.9 - nnNSVCIValue OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NSVCI - Remark:Specify network service virtual connection identifier (NSVCI) to identify the NSVC." - ::= { nSVCITwoEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.10 - nnLocalIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local IP - Remark:IP address of the iGRS." - ::= { nSVCITwoEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.11 - nnLocalPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local Port - Remark:iGRS transmission port for the virtual connection to SGSN." - ::= { nSVCITwoEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.12 - nnPeerIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Peer IP - Remark:IP address of the SGSN." - ::= { nSVCITwoEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.13 - nnPeerPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Peer Port - Remark:SGSN transmission port for the virtual connection to iGRS." - ::= { nSVCITwoEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.14 - nnResetCommand OBJECT-TYPE - SYNTAX INTEGER { reset(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { nSVCITwoEntry 14 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.3.3.1.15 - nnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { nSVCITwoEntry 15 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4 - routeArea OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1 - routeAreaTable OBJECT-TYPE - SYNTAX SEQUENCE OF RouteAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routeArea 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1 - routeAreaEntry OBJECT-TYPE - SYNTAX RouteAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { raIndex } - ::= { routeAreaTable 1 } - - - RouteAreaEntry ::= - SEQUENCE { - raIndex - INTEGER, - raTitle - OCTET STRING, - raMCC - OCTET STRING, - raMNC - OCTET STRING, - raLAC - OCTET STRING, - raRAC - OCTET STRING, - raAdministrationState - AdminStateChoices, - raRouteType - INTEGER, - raUserTypeEntries - INTEGER, - raBvciMappingEntries - INTEGER, - raCreateEntryBvciMapping - INTEGER, - raRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.1 - raIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing area index number ranges from 0 to 1023." - ::= { routeAreaEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.2 - raTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing area name for identification purpose only." - ::= { routeAreaEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.3 - raMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MCC - Remark:Mobile Country Code" - ::= { routeAreaEntry 3 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.4 - raMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MNC - Remark:Mobile Network Code" - ::= { routeAreaEntry 4 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.5 - raLAC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LAC - Remark:Location Area Code" - ::= { routeAreaEntry 5 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.6 - raRAC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:RAC - Remark:The Routing Area Code identifies a routing area within the specific location area." - ::= { routeAreaEntry 6 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.7 - raAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed routing area." - ::= { routeAreaEntry 7 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.8 - raRouteType OBJECT-TYPE - SYNTAX INTEGER - { - routeByUserType(0), - routeByIMSIPrefix(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Route Option - Remark:Route by User Type or IMSI Prefix." - ::= { routeAreaEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.9 - raUserTypeEntries OBJECT-TYPE - SYNTAX INTEGER (0..3) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Routing Table - Remark:Specify SGSN routing to three types of iPALIM users." - ::= { routeAreaEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.10 - raBvciMappingEntries OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:BVC Mapping Entries - Remark:Each BSS routing area entry can create 16 BSSGP Virtual Connections (BVC) to SGSN.
BVC is end-to-end virtual connection between the BSS and the SGSN at BSSGP layer." - ::= { routeAreaEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.11 - raCreateEntryBvciMapping OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { routeAreaEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.1.1.12 - raRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { routeAreaEntry 12 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2 - userTypeTable OBJECT-TYPE - SYNTAX SEQUENCE OF UserTypeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routeArea 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1 - userTypeEntry OBJECT-TYPE - SYNTAX UserTypeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { ntSGSNIndex, ntIndex } - ::= { userTypeTable 1 } - - - UserTypeEntry ::= - SEQUENCE { - utRoutingAreaIndex - INTEGER, - utIndex - INTEGER, - utUserTitle - OCTET STRING, - utAdministrationState - AdminStateChoices, - utSGSNID - INTEGER, - utSGSNID1 - Integer32, - utAPNReplaceFlag - INTEGER, - utAPN - OCTET STRING - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.1 - utRoutingAreaIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Routing Area ID - Remark:(Read Only) Index number of the routing area." - ::= { userTypeEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.2 - utIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:(Read Only) Index number for sorting." - ::= { userTypeEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.3 - utUserTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:User Type - Remark:(Read Only) iPALIM user type." - ::= { userTypeEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.4 - utAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed entry." - ::= { userTypeEntry 4 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.5 - utSGSNID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SGSN ID - Remark:Specify ID of the serving SGSN virtual connection.
Range = 0 - 7" - ::= { userTypeEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.6 - utSGSNID1 OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { userTypeEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.7 - utAPNReplaceFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:APN Replace Flag - Remark:Enable or disable replace the current access point name." - ::= { userTypeEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.2.1.8 - utAPN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:APN - Remark:Specify the modified APN if the upper replace flag is enabled." - ::= { userTypeEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3 - bVCIMappingTable OBJECT-TYPE - SYNTAX SEQUENCE OF BVCIMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routeArea 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1 - bVCIMappingEntry OBJECT-TYPE - SYNTAX BVCIMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { lrIndex, lrRoutingAreaIndex } - ::= { bVCIMappingTable 1 } - - - BVCIMappingEntry ::= - SEQUENCE { - lrRoutingAreaIndex - INTEGER, - lrIndex - INTEGER, - lrNSEIValue - INTEGER, - lrBVCIValue - INTEGER, - lrAdministrationState - AdminStateChoices, - lrRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1.1 - lrRoutingAreaIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Routing Area ID - Remark:(Read Only) Index number of the routing area." - ::= { bVCIMappingEntry 1 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1.2 - lrIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:BVC index number ranges from 0 to 15." - ::= { bVCIMappingEntry 2 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1.3 - lrNSEIValue OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NSEI - Remark:Specify network service entity identifier (NSEI) to identify the NSE." - ::= { bVCIMappingEntry 3 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1.4 - lrBVCIValue OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:BVCI - Remark:Specify BSSGP virtual connection identifier (BVCI) to identify the BVC." - ::= { bVCIMappingEntry 4 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1.5 - lrAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed BVC." - ::= { bVCIMappingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.4.3.1.6 - lrRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { bVCIMappingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5 - mocnControl OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1 - mocnControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF MocnControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mocnControl 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1.1 - mocnControlEntry OBJECT-TYPE - SYNTAX MocnControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { rbiIndex } - ::= { mocnControlTable 1 } - - - MocnControlEntry ::= - SEQUENCE { - rbiIndex - INTEGER, - rbiIMSIPrefix - OCTET STRING, - rbiSGSNID - Opaque, - rbiAdministrationState - AdminStateChoices, - rbiRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1.1.1 - rbiIndex OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 0 to 511." - ::= { mocnControlEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1.1.2 - rbiIMSIPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:IMSI Prefix." - ::= { mocnControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1.1.3 - rbiSGSNID OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Name:SGSN ID - OPAQUE DECODE RULE: - [unit]SGSN-0[u]00.0-00.0[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-1[u]00.1-00.1[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-2[u]00.2-00.2[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-3[u]00.3-00.3[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-4[u]00.4-00.4[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-5[u]00.5-00.5[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-6[u]00.6-00.6[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [unit]SGSN-7[u]00.7-00.7[u]select - [v]0[opt]Blocked - [v]1[opt]Non Blocked - [remark] - SGSN ID." - ::= { mocnControlEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1.1.4 - rbiAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed entry." - ::= { mocnControlEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.5.1.1.10 - rbiRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mocnControlEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6 - mocnCellMapping OBJECT IDENTIFIER ::= { parameter 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1 - cellMappingTable OBJECT-TYPE - SYNTAX SEQUENCE OF CellMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mocnCellMapping 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1 - cellMappingEntry OBJECT-TYPE - SYNTAX CellMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { cellMappingIndex } - ::= { cellMappingTable 1 } - - - CellMappingEntry ::= - SEQUENCE { - cellMappingIndex - INTEGER, - cellMappingTitle - OCTET STRING, - cellMappingLacSGSN0 - INTEGER, - cellMappingCellIdSGSN0 - INTEGER, - cellMappingRacSGSN0 - INTEGER, - cellMappingLacSGSN1 - INTEGER, - cellMappingCellIdSGSN1 - INTEGER, - cellMappingRacSGSN1 - INTEGER, - cellMappingLacSGSN2 - INTEGER, - cellMappingCellIdSGSN2 - INTEGER, - cellMappingRacSGSN2 - INTEGER, - cellMappingRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.1 - cellMappingIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:BSS ID - Remark:Index number of the virtual connection to BSS." - ::= { cellMappingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.2 - cellMappingTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Name that identifies this virtual connection to BSS." - ::= { cellMappingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.3 - cellMappingLacSGSN0 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 0 Lac" - ::= { cellMappingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.4 - cellMappingCellIdSGSN0 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 0 Cell Id" - ::= { cellMappingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.5 - cellMappingRacSGSN0 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 0 Rac" - ::= { cellMappingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.6 - cellMappingLacSGSN1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 1 Lac" - ::= { cellMappingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.7 - cellMappingCellIdSGSN1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 1 Cell Id" - ::= { cellMappingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.8 - cellMappingRacSGSN1 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 1 Rac" - ::= { cellMappingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.9 - cellMappingLacSGSN2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 2 Lac" - ::= { cellMappingEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.10 - cellMappingCellIdSGSN2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 2 Cell Id" - ::= { cellMappingEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.11 - cellMappingRacSGSN2 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN 2 Rac" - ::= { cellMappingEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.2.6.1.1.30 - cellMappingRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cellMappingEntry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3 - csta OBJECT IDENTIFIER ::= { grs 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.1 - toBSSTable OBJECT-TYPE - SYNTAX SEQUENCE OF ToBSSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.1.1 - toBSSEntry OBJECT-TYPE - SYNTAX ToBSSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { toBSSBSSID, toBSSTimeIndex } - ::= { toBSSTable 1 } - - - ToBSSEntry ::= - SEQUENCE { - toBSSBSSID - Integer32, - toBSSTimeIndex - Integer32, - toBSSData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.1.1.1 - toBSSBSSID OBJECT-TYPE - SYNTAX Integer32 (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { toBSSEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.1.1.2 - toBSSTimeIndex OBJECT-TYPE - SYNTAX Integer32 (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { toBSSEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.1.1.3 - toBSSData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { toBSSEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.2 - toSGSNTable OBJECT-TYPE - SYNTAX SEQUENCE OF ToSGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.2.1 - toSGSNEntry OBJECT-TYPE - SYNTAX ToSGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { toSGSNSGSNID, toSGSNTimeIndex } - ::= { toSGSNTable 1 } - - - ToSGSNEntry ::= - SEQUENCE { - toSGSNSGSNID - Integer32, - toSGSNTimeIndex - Integer32, - toSGSNData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.2.1.1 - toSGSNSGSNID OBJECT-TYPE - SYNTAX Integer32 (0..7) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { toSGSNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.2.1.2 - toSGSNTimeIndex OBJECT-TYPE - SYNTAX Integer32 (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { toSGSNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.16.3.2.1.3 - toSGSNData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { toSGSNEntry 3 } - - - - END - --- --- LGC-SS-GRS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-GbC-MIB.my b/omc/bin/mib/LGC-SS-GbC-MIB.my deleted file mode 100644 index c32415d..0000000 --- a/omc/bin/mib/LGC-SS-GbC-MIB.my +++ /dev/null @@ -1,287 +0,0 @@ --- --- LGC-SS-GbC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 16:05:01 --- - --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, March 12, 2010 at 14:15:06 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:05:09 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:04:10 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 14:44:19 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 11:35:26 --- - - LGC-SS-GbC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.19 - gbc MODULE-IDENTITY - LAST-UPDATED "201003101054Z" -- March 10, 2010 at 10:54 GMT - ORGANIZATION - "altobridge" - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - REVISION "201003101055Z" -- March 10, 2010 at 10:55 GMT - DESCRIPTION - "1st Version" - ::= { application 19 } - - - - --- --- Node definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 - -- 1.3.6.1.4.1.1373.2.3.3.19.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { gbc 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 - -- 1.3.6.1.4.1.1373.2.3.3.19.2 - parameter OBJECT IDENTIFIER ::= { gbc 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.1 - localIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local IP - Remark:Specify the IP address of the target Gb converter." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.2 - netMask OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Netmask - Remark:A netmask is a 32-bit mask used to divide an IP address into subnets and specify the networks available hosts." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.3 - gateway OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Gateway - Remark:Specify the IP address of the gateway used to pass traffic from Gb converter to other subnets." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.4 - systemID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:System ID - Remark:Specify the system ID of the target Gb converter." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.5 - subSystemID OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Sub-System ID - Remark:Specify the subsystem ID of the target Gb converter." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.6 - peerIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Peer IP - Remark:Specify the IP address of the connecting SGSN." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.7 - peerPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Peer Port - Remark:Specify the transmission port of the connecting SGSN." - ::= { system 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.8 - receiveChannelSelect OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rx Channel Selection - Remark:Select up to 31 channels for receiving packets.
The four dotted decimal numbers can be transferred into 32-digit binary numbers, each of the right-to-left 31 bits represents a physical channel.
- 0 = Disable
- 1 = Enable" - ::= { system 8 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.9 - transmitChannelSelect OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tx Channel Selection - Remark:Select up to 31 channels for transmitting packets.
The four dotted decimal numbers can be transferred into 32-digit binary numbers, each of the right-to-left 31 bits represents a physical channel.
- 0 = Disable
- 1 = Enable" - ::= { system 9 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.10 - portType OBJECT-TYPE - SYNTAX INTEGER - { - t1(0), - e1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port Type - Remark:Specify the type of the Gb converter physical interface." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.11 - crc4Switch OBJECT-TYPE - SYNTAX INTEGER - { - closed(0), - open(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CRC4 Flag - Remark:Enable or disable Cyclic Redundancy Check on the Gb converter physical interface." - ::= { system 11 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.19.2.1.12 - rebootCommand OBJECT-TYPE - SYNTAX INTEGER { reboot(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 12 } - - - - END - --- --- LGC-SS-GbC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-HLR-MIB.my b/omc/bin/mib/LGC-SS-HLR-MIB.my deleted file mode 100644 index 30cdd7f..0000000 --- a/omc/bin/mib/LGC-SS-HLR-MIB.my +++ /dev/null @@ -1,7454 +0,0 @@ --- --- LGC-SS-HLR-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 17:22:53 --- - - LGC-SS-HLR-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.3 - hlr MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 3 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.3.2 - parameter OBJECT IDENTIFIER ::= { hlr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.1 - cC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CC - Remark:Country Code" - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.2 - nDC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NDC - Remark:National Destination Code" - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.3 - startSN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SN Start - Remark:The beginning of the VLR SN range." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.4 - endSN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SN End - Remark:The end of the VLR SN range." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.5 - maxLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Max License - Remark:(Read Only) The maximum subscriber capacity of HLR determined by License Control." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.6 - usedLicenses OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Used License - Remark:(Read Only) The number of registered HLR subscribers." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.7 - provisionedSubs OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Provisioned Users - Remark:(Read Only) The number of service enabled HLR subscribers." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.8 - registeredSubs OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Registered Users - Remark:(Read Only) The number of registered (both service enabled and disabled) HLR subscribers." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.9 - roamingSubs OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Roaming Users - Remark:(Read Only) The number of provisioned HLR subscribers currently roaming to VPLMNs." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.10 - softwareVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Software Version - Remark:(Read Only) Version of HLR software." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.11 - dataVersion OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Data Version - Remark:(Read Only) Version of HLR subscriber data structure." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.12 - cDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable CDR generation of HLR." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.13 - reloadState OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - reload(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Reload State - Remark:Select reload to load backup HLR subscriber data from HLR server hard disk." - ::= { system 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.14 - saveParamCommand OBJECT-TYPE - SYNTAX INTEGER { saveParameter(1) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Save the HLR parameters residing in memory to harddisk." - ::= { system 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.15 - saveDataCommand OBJECT-TYPE - SYNTAX INTEGER { saveData(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Save the HLR subscriber data to both HLR
harddisk and EMS database." - ::= { system 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.16 - saveUSSDParamCommand OBJECT-TYPE - SYNTAX INTEGER { saveUSSDParam(1) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Save the USSD parameters residing
in memory to harddisk." - ::= { system 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.17 - resetUSSDParamCommand OBJECT-TYPE - SYNTAX INTEGER { resetUSSDParam(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Reload and activate all USSD
parameters to default values." - ::= { system 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.1.18 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Command[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Sending Command - [v]2[opt]In Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Numbers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Success Numbers[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { system 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2 - vPLMN OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1 - vPLMNTable OBJECT-TYPE - SYNTAX SEQUENCE OF VPLMNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { vPLMN 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1 - vPLMNEntry OBJECT-TYPE - SYNTAX VPLMNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { vplmnIndex } - ::= { vPLMNTable 1 } - - - VPLMNEntry ::= - SEQUENCE { - vplmnIndex - INTEGER, - vplmnCC - OCTET STRING, - vplmnNDC - OCTET STRING, - vplmnStartSN - OCTET STRING, - vplmnEndSN - OCTET STRING, - vplmnRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1.1 - vplmnIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:VPLMN index number ranges from 0 to 255." - ::= { vPLMNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1.2 - vplmnCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CC - Remark:The Country Code of the VPLMN." - ::= { vPLMNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1.3 - vplmnNDC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NDC - Remark:The National Destination Code of the VPLMN." - ::= { vPLMNEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1.4 - vplmnStartSN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SN Start - Remark:The beginning of the VLR range in the VPLMN." - ::= { vPLMNEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1.5 - vplmnEndSN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SN End - Remark:The end of the VLR range in the VPLMN." - ::= { vPLMNEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.2.1.1.6 - vplmnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vPLMNEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3 - cSRRList OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.1 - cSRR0 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 0(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.2 - cSRR1 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 1(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.3 - cSRR2 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 2(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.4 - cSRR3 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 3(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.5 - cSRR4 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 4(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.6 - cSRR5 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 5(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.7 - cSRR6 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 6(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.3.8 - cSRR7 OBJECT-TYPE - SYNTAX Opaque (SIZE (32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]VPLMN0[u]00.0-00.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN1[u]00.1-00.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN2[u]00.2-00.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN3[u]00.3-00.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN4[u]00.4-00.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN5[u]00.5-00.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN6[u]00.6-00.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN7[u]00.7-00.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN8[u]01.0-01.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN9[u]01.1-01.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN10[u]01.2-01.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN11[u]01.3-01.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN12[u]01.4-01.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN13[u]01.5-01.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN14[u]01.6-01.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN15[u]01.7-01.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN16[u]02.0-02.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN17[u]02.1-02.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN18[u]02.2-02.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN19[u]02.3-02.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN20[u]02.4-02.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN21[u]02.5-02.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN22[u]02.6-02.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN23[u]02.7-02.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN24[u]03.0-03.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN25[u]03.1-03.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN26[u]03.2-03.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN27[u]03.3-03.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN28[u]03.4-03.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN29[u]03.5-03.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN30[u]03.6-03.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN31[u]03.7-03.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN32[u]04.0-04.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN33[u]04.1-04.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN34[u]04.2-04.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN35[u]04.3-04.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN36[u]04.4-04.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN37[u]04.5-04.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN38[u]04.6-04.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN39[u]04.7-04.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN40[u]05.0-05.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN41[u]05.1-05.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN42[u]05.2-05.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN43[u]05.3-05.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN44[u]05.4-05.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN45[u]05.5-05.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN46[u]05.6-05.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN47[u]05.7-05.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN48[u]06.0-06.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN49[u]06.1-06.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN50[u]06.2-06.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN51[u]06.3-06.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN52[u]06.4-06.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN53[u]06.5-06.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN54[u]06.6-06.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN55[u]06.7-06.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN56[u]07.0-07.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN57[u]07.1-07.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN58[u]07.2-07.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN59[u]07.3-07.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN60[u]07.4-07.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN61[u]07.5-07.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN62[u]07.6-07.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN63[u]07.7-07.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN64[u]08.0-08.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN65[u]08.1-08.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN66[u]08.2-08.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN67[u]08.3-08.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN68[u]08.4-08.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN69[u]08.5-08.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN70[u]08.6-08.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN71[u]08.7-08.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN72[u]09.0-09.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN73[u]09.1-09.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN74[u]09.2-09.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN75[u]09.3-09.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN76[u]09.4-09.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN77[u]09.5-09.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN78[u]09.6-09.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN79[u]09.7-09.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN80[u]10.0-10.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN81[u]10.1-10.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN82[u]10.2-10.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN83[u]10.3-10.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN84[u]10.4-10.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN85[u]10.5-10.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN86[u]10.6-10.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN87[u]10.7-10.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN88[u]11.0-11.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN89[u]11.1-11.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN90[u]11.2-11.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN91[u]11.3-11.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN92[u]11.4-11.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN93[u]11.5-11.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN94[u]11.6-11.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN95[u]11.7-11.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN96[u]12.0-12.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN97[u]12.1-12.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN98[u]12.2-12.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN99[u]12.3-12.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN100[u]12.4-12.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN101[u]12.5-12.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN102[u]12.6-12.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN103[u]12.7-12.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN104[u]13.0-13.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN105[u]13.1-13.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN106[u]13.2-13.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN107[u]13.3-13.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN108[u]13.4-13.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN109[u]13.5-13.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN110[u]13.6-13.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN111[u]13.7-13.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN112[u]14.0-14.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN113[u]14.1-14.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN114[u]14.2-14.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN115[u]14.3-14.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN116[u]14.4-14.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN117[u]14.5-14.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN118[u]14.6-14.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN119[u]14.7-14.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN120[u]15.0-15.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN121[u]15.1-15.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN122[u]15.2-15.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN123[u]15.3-15.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN124[u]15.4-15.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN125[u]15.5-15.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN126[u]15.6-15.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN127[u]15.7-15.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN128[u]16.0-16.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN129[u]16.1-16.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN130[u]16.2-16.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN131[u]16.3-16.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN132[u]16.4-16.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN133[u]16.5-16.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN134[u]16.6-16.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN135[u]16.7-16.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN136[u]17.0-17.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN137[u]17.1-17.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN138[u]17.2-17.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN139[u]17.3-17.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN140[u]17.4-17.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN141[u]17.5-17.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN142[u]17.6-17.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN143[u]17.7-17.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN144[u]18.0-18.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN145[u]18.1-18.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN146[u]18.2-18.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN147[u]18.3-18.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN148[u]18.4-18.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN149[u]18.5-18.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN150[u]18.6-18.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN151[u]18.7-18.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN152[u]19.0-19.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN153[u]19.1-19.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN154[u]19.2-19.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN155[u]19.3-19.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN156[u]19.4-19.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN157[u]19.5-19.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN158[u]19.6-19.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN159[u]19.7-19.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN160[u]20.0-20.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN161[u]20.1-20.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN162[u]20.2-20.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN163[u]20.3-20.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN164[u]20.4-20.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN165[u]20.5-20.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN166[u]20.6-20.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN167[u]20.7-20.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN168[u]21.0-21.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN169[u]21.1-21.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN170[u]21.2-21.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN171[u]21.3-21.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN172[u]21.4-21.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN173[u]21.5-21.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN174[u]21.6-21.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN175[u]21.7-21.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN176[u]22.0-22.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN177[u]22.1-22.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN178[u]22.2-22.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN179[u]22.3-22.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN180[u]22.4-22.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN181[u]22.5-22.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN182[u]22.6-22.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN183[u]22.7-22.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN184[u]23.0-23.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN185[u]23.1-23.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN186[u]23.2-23.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN187[u]23.3-23.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN188[u]23.4-23.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN189[u]23.5-23.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN190[u]23.6-23.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN191[u]23.7-23.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN192[u]24.0-24.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN193[u]24.1-24.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN194[u]24.2-24.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN195[u]24.3-24.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN196[u]24.4-24.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN197[u]24.5-24.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN198[u]24.6-24.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN199[u]24.7-24.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN200[u]25.0-25.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN201[u]25.1-25.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN202[u]25.2-25.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN203[u]25.3-25.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN204[u]25.4-25.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN205[u]25.5-25.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN206[u]25.6-25.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN207[u]25.7-25.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN208[u]26.0-26.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN209[u]26.1-26.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN210[u]26.2-26.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN211[u]26.3-26.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN212[u]26.4-26.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN213[u]26.5-26.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN214[u]26.6-26.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN215[u]26.7-26.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN216[u]27.0-27.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN217[u]27.1-27.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN218[u]27.2-27.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN219[u]27.3-27.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN220[u]27.4-27.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN221[u]27.5-27.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN222[u]27.6-27.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN223[u]27.7-27.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN224[u]28.0-28.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN225[u]28.1-28.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN226[u]28.2-28.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN227[u]28.3-28.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN228[u]28.4-28.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN229[u]28.5-28.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN230[u]28.6-28.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN231[u]28.7-28.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN232[u]29.0-29.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN233[u]29.1-29.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN234[u]29.2-29.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN235[u]29.3-29.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN236[u]29.4-29.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN237[u]29.5-29.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN238[u]29.6-29.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN239[u]29.7-29.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN240[u]30.0-30.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN241[u]30.1-30.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN242[u]30.2-30.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN243[u]30.3-30.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN244[u]30.4-30.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN245[u]30.5-30.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN246[u]30.6-30.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN247[u]30.7-30.7[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN248[u]31.0-31.0[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN249[u]31.1-31.1[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN250[u]31.2-31.2[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN251[u]31.3-31.3[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN252[u]31.4-31.4[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN253[u]31.5-31.5[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN254[u]31.6-31.6[u]select - [v]0[opt]N - [v]1[opt]Y - [unit]VPLMN255[u]31.7-31.7[u]select - [v]0[opt]N - [v]1[opt]Y - [remark]
Define CSRR 7(country specific roaming restriction) lists to confine the roaming range of a subscriber.
The CSRR list defines the roaming restriction for 256 VPLMN ranges.
" - ::= { cSRRList 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4 - rSZIList OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1 - rSZITable OBJECT-TYPE - SYNTAX SEQUENCE OF RSZIEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { rSZIList 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1.1 - rSZIEntry OBJECT-TYPE - SYNTAX RSZIEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { rsziIndex } - ::= { rSZITable 1 } - - - RSZIEntry ::= - SEQUENCE { - rsziIndex - INTEGER, - rsziCC - OCTET STRING, - rsziNDC - OCTET STRING, - rsziZoneCode - INTEGER, - rsziRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1.1.1 - rsziIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:RSZI (Regional Subscription Zone Identity) index number ranges from 0 to 255." - ::= { rSZIEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1.1.2 - rsziCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CC - Remark:The Country Code of the regional subscription zone." - ::= { rSZIEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1.1.3 - rsziNDC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NDC - Remark:The National Destination Code of the regional subscription zone." - ::= { rSZIEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1.1.4 - rsziZoneCode OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Zone Code - Remark:The regional subscription zone code." - ::= { rSZIEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.4.1.1.5 - rsziRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rSZIEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.5 - faxGSMBC OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.5.1 - faxGSMBCTable OBJECT-TYPE - SYNTAX SEQUENCE OF FaxGSMBCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { faxGSMBC 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.5.1.1 - faxGSMBCEntry OBJECT-TYPE - SYNTAX FaxGSMBCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { fgIndex } - ::= { faxGSMBCTable 1 } - - - FaxGSMBCEntry ::= - SEQUENCE { - fgIndex - INTEGER, - fgBearerCapability - OCTET STRING, - fgRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.5.1.1.1 - fgIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number of this Fax GSM Bearer Capability entry." - ::= { faxGSMBCEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.5.1.1.2 - fgBearerCapability OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..14)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Bearer Capability - Remark:Define the GSM Bearer Capability for fax service.
- Default = A3B88120156380" - ::= { faxGSMBCEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.5.1.1.3 - fgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { faxGSMBCEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.6 - dataGSMBC OBJECT IDENTIFIER ::= { parameter 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.6.1 - dataGSMBCTable OBJECT-TYPE - SYNTAX SEQUENCE OF DataGSMBCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { dataGSMBC 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.6.1.1 - dataGSMBCEntry OBJECT-TYPE - SYNTAX DataGSMBCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { dgIndex } - ::= { dataGSMBCTable 1 } - - - DataGSMBCEntry ::= - SEQUENCE { - dgIndex - INTEGER, - dgBearerCapability - OCTET STRING, - dgRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.6.1.1.1 - dgIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number of this Data GSM Bearer Capability entry." - ::= { dataGSMBCEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.6.1.1.2 - dgBearerCapability OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..14)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Bearer Capability - Remark:Define the GSM Bearer Capability for data service.
- Default = A28881211563A8" - ::= { dataGSMBCEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.6.1.1.3 - dgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { dataGSMBCEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8 - uSSD OBJECT IDENTIFIER ::= { parameter 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.1 - uSSDFormatString OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:USSD Format - Remark:The access code of USSD service. Start with 2-3 digits of '*' or '#' . End with '#'. Separate sections by '*'.
Contents can be added:

- C/c = Service Code
- R/r = Router Indicator
- B = Blank
- S = Supplement Info

For example: **C3B*S#" - ::= { uSSD 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.2 - uGCsiServiceCode0 OBJECT-TYPE - SYNTAX INTEGER (0..9999) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI Service Code 0 - Remark:Service code for UG-CSI (USSD General - CAMEL Subscription Information). Prepaid subscriber dials service code to apply different prepaid services.
For example: Service Code = 111, prepaid user dials **1215111*# to enquire account info." - ::= { uSSD 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.3 - uGCsiGSMSCFAddr0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..18)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI SCF Address 0 - Remark:SCP address for UG-CSI (USSD General - CAMEL Subscription Information). The E.164 number of the SCP-MAP.
- Format = 91+CC+NDC+SN" - ::= { uSSD 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.4 - uGCsiServiceCode1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI Service Code 1 - Remark:Service code for UG-CSI (USSD General - CAMEL Subscription Information). Prepaid subscriber dials service code to apply different prepaid services." - ::= { uSSD 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.5 - uGCsiGSMSCFAddr1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..18)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI SCF Address 1 - Remark:SCP address for UG-CSI (USSD General - CAMEL Subscription Information). The E.164 number of the SCP-MAP.
- Format = 91+CC+NDC+SN" - ::= { uSSD 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.6 - uGCsiServiceCode2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI Service Code 2 - Remark:Service code for UG-CSI (USSD General - CAMEL Subscription Information). Prepaid subscriber dials service code to apply different prepaid services." - ::= { uSSD 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.7 - uGCsiGSMSCFAddr2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..18)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI SCF Address 2 - Remark:SCP address for UG-CSI (USSD General - CAMEL Subscription Information). The E.164 number of the SCP-MAP.
- Format = 91+CC+NDC+SN" - ::= { uSSD 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.8 - uGCsiServiceCode3 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI Service Code 3 - Remark:Service code for UG-CSI (USSD General - CAMEL Subscription Information). Prepaid subscriber dials service code to apply different prepaid services." - ::= { uSSD 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.8.9 - uGCsiGSMSCFAddr3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..18)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UG-CSI SCF Address 3 - Remark:SCP address for UG-CSI (USSD General - CAMEL Subscription Information). The E.164 number of the SCP-MAP.
- Format = 91+CC+NDC+SN" - ::= { uSSD 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10 - ussdEAE OBJECT IDENTIFIER ::= { parameter 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10.1 - ussdEAETable OBJECT-TYPE - SYNTAX SEQUENCE OF UssdEAEEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:USSD EAE" - ::= { ussdEAE 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10.1.1 - ussdEAEEntry OBJECT-TYPE - SYNTAX UssdEAEEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:USSD EAE" - INDEX { ueIndex } - ::= { ussdEAETable 1 } - - - UssdEAEEntry ::= - SEQUENCE { - ueIndex - INTEGER, - ueServiceCode - INTEGER, - ueServiceNum - OCTET STRING, - ueRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10.1.1.1 - ueIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:USSD EAE (Extended Application Entity) index number ranges from 0 to 127." - ::= { ussdEAEEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10.1.1.2 - ueServiceCode OBJECT-TYPE - SYNTAX INTEGER (0..9999) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Code - Remark:Subscriber dials service code to access different USSD services." - ::= { ussdEAEEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10.1.1.3 - ueServiceNum OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..9)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Number - Remark:Enter the identical Service Number as that set in SMPP configuration to connect with the third party USSD server." - ::= { ussdEAEEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.10.1.1.4 - ueRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { ussdEAEEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11 - epsAPN OBJECT IDENTIFIER ::= { parameter 11 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1 - epsAPNTable OBJECT-TYPE - SYNTAX SEQUENCE OF EpsAPNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:EPS APN" - ::= { epsAPN 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1 - epsAPNEntry OBJECT-TYPE - SYNTAX EpsAPNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:EPS APN" - INDEX { apnIndex } - ::= { epsAPNTable 1 } - - - EpsAPNEntry ::= - SEQUENCE { - apnIndex - INTEGER, - apnContextId - INTEGER, - apnPDNType - INTEGER, - apnQOSClassId - INTEGER, - apnVPLMNAllowed - INTEGER, - apnVisitedNetworkId - OCTET STRING, - apnPDNGWAllocationType - INTEGER, - apnPDNGWIdentity - OCTET STRING, - apnAMBRUL - INTEGER, - apnAMBRDL - INTEGER, - apnChargingCharacteristics - OCTET STRING, - apnServiceSelection - OCTET STRING, - apnOIReplacement - OCTET STRING, - apnRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.1 - apnIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { epsAPNEntry 1 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.2 - apnContextId OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Context Id" - ::= { epsAPNEntry 2 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.3 - apnPDNType OBJECT-TYPE - SYNTAX INTEGER - { - IPv4(0), - IPv6(1), - IPv4v6(2), - IPv4orIPv6(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:PDN Type" - DEFVAL { IPv4 } - ::= { epsAPNEntry 3 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.4 - apnQOSClassId OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Qos Class Id" - ::= { epsAPNEntry 4 } - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.5 - apnVPLMNAllowed OBJECT-TYPE - SYNTAX INTEGER - { - NOTALLOWED(0), - ALLOWED(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter" - DEFVAL { ALLOWED } - ::= { epsAPNEntry 5 } - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.6 - apnVisitedNetworkId OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter" - ::= { epsAPNEntry 6 } - - apnPDNGWAllocationType OBJECT-TYPE - SYNTAX INTEGER - { - STATIC(0), - DYNAMIC(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter" - DEFVAL { DYNAMIC } - ::= { epsAPNEntry 7 } - - apnPDNGWIdentity OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter" - ::= { epsAPNEntry 8 } - - apnAMBRUL OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:AMBR UL" - ::= { epsAPNEntry 9 } - - apnAMBRDL OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:AMBR DL" - ::= { epsAPNEntry 10 } - - apnChargingCharacteristics OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter" - ::= { epsAPNEntry 11 } - - apnServiceSelection OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Selection" - ::= { epsAPNEntry 12 } - - apnOIReplacement OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter" - ::= { epsAPNEntry 13 } - - apnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { epsAPNEntry 14 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.12 - epsQOS OBJECT IDENTIFIER ::= { parameter 12 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.12.1 - epsQOSTable OBJECT-TYPE - SYNTAX SEQUENCE OF EpsQOSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:EPS QOS" - ::= { epsQOS 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.12.1.1 - epsQOSEntry OBJECT-TYPE - SYNTAX EpsQOSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:EPS QOS" - INDEX { qosIndex } - ::= { epsQOSTable 1 } - - - EpsQOSEntry ::= - SEQUENCE { - qosIndex - INTEGER, - qosQosClassId - INTEGER, - qosPriorityLevel - INTEGER, - qosPreEmptionCapability - INTEGER, - qosPreEmptionVulnerability - INTEGER, - qosRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.12.1.1.1 - qosIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { epsQOSEntry 1 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.11.1.1.2 - qosQosClassId OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Qos Class Id" - ::= { epsQOSEntry 2 } - - qosPriorityLevel OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Priority Level" - ::= { epsQOSEntry 3 } - - qosPreEmptionCapability OBJECT-TYPE - SYNTAX INTEGER - { - Disable(0), - Enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:PreEmptionCapability" - DEFVAL { Disable } - ::= { epsQOSEntry 4 } - - qosPreEmptionVulnerability OBJECT-TYPE - SYNTAX INTEGER - { - Disable(0), - Enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:PreEmptionVulnerability" - DEFVAL { Disable } - ::= { epsQOSEntry 5 } - - qosRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { epsQOSEntry 6 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.13 - epsTPL OBJECT IDENTIFIER ::= { parameter 13 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.13.1 - epsTPLTable OBJECT-TYPE - SYNTAX SEQUENCE OF EpsTPLEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:EPS TPL" - ::= { epsTPL 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.13.1.1 - epsTPLEntry OBJECT-TYPE - SYNTAX EpsTPLEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:EPS TPL" - INDEX { tplIndex } - ::= { epsTPLTable 1 } - - - EpsTPLEntry ::= - SEQUENCE { - tplIndex - INTEGER, - tplName - OCTET STRING, - tplUeAmbrUL - INTEGER, - tplUeAmbrDL - INTEGER, - tplUeApnOiReplacement - OCTET STRING, - tplRfsp - INTEGER, - tplRauTauTimer - INTEGER, - tplChargingCharacteristic - OCTET STRING, - tplRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.13.1.1.1 - tplIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { epsTPLEntry 1 } - - -- 1.3.6.1.4.1.1373.2.3.3.3.2.13.1.1.2 - tplName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Template name" - ::= { epsTPLEntry 2 } - - tplUeAmbrUL OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:UE AMBR UL" - ::= { epsTPLEntry 3 } - - tplUeAmbrDL OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:UE AMBR DL" - ::= { epsTPLEntry 4 } - - tplUeApnOiReplacement OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { epsTPLEntry 5 } - - tplRfsp OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { epsTPLEntry 6 } - - tplRauTauTimer OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { epsTPLEntry 7 } - - tplChargingCharacteristic OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { epsTPLEntry 8 } - - tplRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { epsTPLEntry 9 } - - END - --- --- LGC-SS-HLR-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-IMS-MIB.my b/omc/bin/mib/LGC-SS-IMS-MIB.my deleted file mode 100644 index daf25b8..0000000 --- a/omc/bin/mib/LGC-SS-IMS-MIB.my +++ /dev/null @@ -1,428 +0,0 @@ --- --- LGC-SS-IMS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, July 05, 2018 at 19:19:32 --- - --- LGC-SS-IMS-MIB-2.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Saturday, April 28, 2018 at 18:03:35 --- --- LGC-SS-IMS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Saturday, April 28, 2018 at 17:25:31 --- - - LGC-SS-IMS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.29 - ims MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 29 } - - - --- --- Type definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.29 --- June 29, 2007 at 16:06 GMT --- June 05, 2007 at 12:19 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.29 --- June 29, 2007 at 16:06 GMT --- June 05, 2007 at 12:19 GMT --- --- Type definitions --- - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- Node definitions --- --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2 - -- 1.3.6.1.4.1.1373.2.3.3.29.2 - parameter OBJECT IDENTIFIER ::= { ims 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.1 --- 1.3.6.1.4.1.1373.2.3.3.29.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.29.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.1.1 - domain OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Domain." - ::= { system 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.1.2 - ipAddr OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:IMS IP Address." - ::= { system 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.29.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.1.3 - serviceType OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable-volte(1), - enable-voip(2), - enable-both(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Service Type." - ::= { system 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2 - network OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.1 - pcscfName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:VOLTE P-CSCF Name." - ::= { network 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.2 - pcscf2Name OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:VOIP P-CSCF Name." - ::= { network 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.3 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.3 - icscfName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:I-CSCF Name." - ::= { network 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.4 - scscfName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:S-CSCF Name." - ::= { network 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.5 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.5 - mMtelName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:MMtel Name." - ::= { network 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.6 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.6 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.6 - smscName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:SMSC Name." - ::= { network 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.7 --- 1.3.6.1.4.1.1373.2.3.3.29.2.2.7 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.2.7 - mrfName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:MRF Name." - ::= { network 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3 - iCX OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.1 - ilocalHost OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local hostname." - ::= { iCX 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.2 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.2 - ilocalRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local realm." - ::= { iCX 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.3 - ihssHost OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS hostname." - ::= { iCX 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.4 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.4 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.4 - ihssRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS realm." - ::= { iCX 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.5 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.5 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.5 - ihssIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS IPAddress." - ::= { iCX 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.6 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.6 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.6 - ihssPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS Port." - ::= { iCX 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.7 --- 1.3.6.1.4.1.1373.2.3.3.29.2.3.7 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.3.7 - icxStatus OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Status." - ::= { iCX 7 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4 - sCX OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.1 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.1 - slocalHost OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local hostname." - ::= { sCX 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.2 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.2 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.2 - slocalRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local realm." - ::= { sCX 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.3 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.3 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.3 - shssHost OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS hostname." - ::= { sCX 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.4 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.4 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.4 - shssRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS realm." - ::= { sCX 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.5 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.5 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.5 - shssIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS IPAddress." - ::= { sCX 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.6 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.6 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.6 - shssPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS Port." - ::= { sCX 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.7 --- 1.3.6.1.4.1.1373.2.3.3.29.2.4.7 - -- 1.3.6.1.4.1.1373.2.3.3.29.2.4.7 - scxStatus OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Status." - ::= { sCX 7 } - - - - END - --- --- LGC-SS-IMS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MCA-MIB.my b/omc/bin/mib/LGC-SS-MCA-MIB.my deleted file mode 100644 index a0c88d2..0000000 --- a/omc/bin/mib/LGC-SS-MCA-MIB.my +++ /dev/null @@ -1,305 +0,0 @@ --- --- LGC-SS-MCA-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 17:34:25 --- - --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, March 12, 2010 at 14:15:06 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:05:09 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:04:10 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 14:44:19 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 11:35:26 --- - - LGC-SS-MCA-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString, RowStatus - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.25 - mca MODULE-IDENTITY - LAST-UPDATED "201003101054Z" -- March 10, 2010 at 10:54 GMT - ORGANIZATION - "altobridge" - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - REVISION "201003101055Z" -- March 10, 2010 at 10:55 GMT - DESCRIPTION - "1st Version" - ::= { application 25 } - - - - --- --- Node definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 - -- 1.3.6.1.4.1.1373.2.3.3.25.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mca 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 - -- 1.3.6.1.4.1.1373.2.3.3.25.2 - parameter OBJECT IDENTIFIER ::= { mca 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.1 - localIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MCA IP - Remark:IP address of the MCA (MMS Charging Agent)." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.2 - nasIP0 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAS 0 IP - Remark:IP address of the PPS-0." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.3 - nasKey0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAS 0 Key - Remark:Cryptographic key used between MCA and PPS-0. It corresponds with the setting in PPS > Service Control > RADIUS GGSN." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.4 - nasPassword0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAS 0 Password - Remark:Password used between MCA and PPS-0. It corresponds with the setting in PPS > Service Control > RADIUS GGSN." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.5 - nasIP1 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAS 1 IP - Remark:IP address of PPS-1. Set 0.0.0.0 to ignore NAS 1." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.6 - nasKey1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAS 1 Key - Remark:Cryptographic key used between MCA and PPS-1. It corresponds with the setting in PPS > Service Control > RADIUS GGSN." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.1.7 - nasPassword1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAS 1 Password - Remark:Password used between MCA and PPS-1. It corresponds with the setting in PPS > Service Control > RADIUS GGSN." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2 - mMSCenterIP OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2.1 - mMSCenterIPTable OBJECT-TYPE - SYNTAX SEQUENCE OF MMSCenterIPEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mMSCenterIP 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2.1.1 - mMSCenterIPEntry OBJECT-TYPE - SYNTAX MMSCenterIPEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mciIndex } - ::= { mMSCenterIPTable 1 } - - - MMSCenterIPEntry ::= - SEQUENCE { - mciIndex - INTEGER, - mciFlag - INTEGER, - mciAllowIP - IpAddress, - mciRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2.1.1.1 - mciIndex OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:MMSC (MMS Center) index number ranges from 0 to 7." - ::= { mMSCenterIPEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2.1.1.2 - mciFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Flag - Remark:Enable or disable the connection to the specific MMS center." - ::= { mMSCenterIPEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2.1.1.3 - mciAllowIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MMSC IP - Remark:IP address of the specific MMS center." - ::= { mMSCenterIPEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.25.2.2.1.1.4 - mciRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mMSCenterIPEntry 4 } - - - - END - --- --- LGC-SS-MCA-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MHC-MIB.my b/omc/bin/mib/LGC-SS-MHC-MIB.my deleted file mode 100644 index 8e7f993..0000000 --- a/omc/bin/mib/LGC-SS-MHC-MIB.my +++ /dev/null @@ -1,564 +0,0 @@ --- --- LGC-SS-MHC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 17:44:25 --- - - LGC-SS-MHC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, DisplayString - FROM LGC-MIB - IpAddress, Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.17 - mhc MODULE-IDENTITY - LAST-UPDATED "200810151006Z" -- October 15, 2008 at 10:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 17 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mhc 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.17.2 - parameter OBJECT IDENTIFIER ::= { mhc 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.1 - license OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Hidden Flag:Yes - Remark:License." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.2 - mHC OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Enable or disable the MHC function." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.3 - cDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable MHC CDR generation." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.4 - maxSynMessageInterval OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Synchronization Interval - Remark:The time interval between sending successive SYN commands to the destination nodes.
- Range = 1 - 255 seconds" - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.5 - maxVerificationMessageInterval OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Verification Interval - Remark:The time interval between sending successive verification commands to the destination nodes.
- Range = 1 - 255 seconds" - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.6 - maxDownloadMessageInterval OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Download Interval - Remark:The time interval between sending successive download commands to the destination nodes.
- Range = 1 - 255 seconds" - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.7 - maxReplicationMessageInterval OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Replication Interval - Remark:The time interval between sending successive replication commands to the destination nodes.
- Range = 1 - 255 seconds" - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.8 - replicationCommand OBJECT-TYPE - SYNTAX INTEGER { replication(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Replication the data from remote server." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.9 - verificationStartTime OBJECT-TYPE - SYNTAX INTEGER - { - PM12(0), - AM01(1), - AM02(2), - AM03(3), - AM04(4), - AM05(5), - AM06(6), - AM07(7), - AM08(8), - AM09(9), - AM10(10), - AM11(11), - AM12(12), - PM01(13), - PM02(14), - PM03(15), - PM04(16), - PM05(17), - PM06(18), - PM07(19), - PM08(20), - PM09(21), - PM10(22), - PM11(23) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Verification Start Time - Remark:The start time of daily HLR data verification procedure." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.10 - hLRChecksumField OBJECT-TYPE - SYNTAX Opaque (SIZE (13)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]IMSI[u]00.0-00.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Used flag[u]00.1-00.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]MSISDN[u]00.2-00.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Fax number[u]00.3-00.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Data number[u]00.4-00.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Network access mode[u]00.5-00.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Mobile station category[u]00.6-00.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Subscriber status[u]00.7-00.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]ODB general data[u]01.0-01.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]ODB specific data[u]01.1-01.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Bearer service data[u]01.2-01.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Tele service data[u]01.3-01.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Country specification roam type[u]01.4-01.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]GSM bearer capability[u]01.5-01.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Regional subscription zone code index[u]01.6-01.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CLIP state[u]01.7-01.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CLIR state[u]02.0-02.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]COLP state[u]02.1-02.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]COLR state[u]02.2-02.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Subscription option[u]02.3-02.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Password[u]02.4-02.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Wrong password attempt count[u]02.5-02.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]BAOC state[u]02.6-02.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]BAIC state[u]02.7-02.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]BOIC except directed to home HPLMN[u]03.0-03.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]BAIC state[u]03.1-03.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]BIC-Roam state[u]03.2-03.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFU state[u]03.3-03.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFU forwarded-to number[u]03.4-03.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFB state[u]03.5-03.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFB forwarded-to number[u]03.6-03.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFNRy state[u]03.7-03.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFNRy no reply condition timer[u]04.0-04.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFNRy forward-to number[u]04.1-04.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFNRc state[u]04.2-04.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CFNRc forward-to number[u]04.3-04.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Call waiting state[u]04.4-04.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Call hold state[u]04.5-04.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Explict call transfer state[u]04.6-04.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Multi party state[u]04.7-04.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]CAMEL flag[u]05.0-05.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]O-CSI[u]05.1-05.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]T-CSI[u]05.2-05.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]SS-CSI[u]05.3-05.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]SMS-CSI[u]05.4-05.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]GPRS-CSI[u]05.5-05.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]GPRS flag[u]05.6-05.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]PDP1[u]05.7-05.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]PDP2[u]06.0-06.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]PDP3[u]06.1-06.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]User name[u]06.2-06.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Certificate[u]06.3-06.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Alternative telephone[u]06.4-06.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Remark[u]06.5-06.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]MSC area restrict flag[u]06.6-06.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Roaming restrict due to unsupport feature flag[u]06.7-06.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]MS purged flag[u]07.0-07.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Mobile station not reachable for GPRS flag[u]07.1-07.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]LMSI[u]07.2-07.2[u]select - [v]0[opt]off - [v]1[opt]on - [unit]VLR number[u]07.3-07.3[u]select - [v]0[opt]off - [v]1[opt]on - [unit]MSC number[u]07.4-07.4[u]select - [v]0[opt]off - [v]1[opt]on - [unit]SGSN number[u]07.5-07.5[u]select - [v]0[opt]off - [v]1[opt]on - [unit]GGSN number[u]07.6-07.6[u]select - [v]0[opt]off - [v]1[opt]on - [unit]GGSN address[u]07.7-07.7[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Route param[u]08.0-08.0[u]select - [v]0[opt]off - [v]1[opt]on - [unit]MWD[u]08.1-08.1[u]select - [v]0[opt]off - [v]1[opt]on - [unit]Reserved[u]08.2-12.7[u]select - [remark]
Enable or disable checksum for each HLR subscriber data fields.
" - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.11 - sysCommand OBJECT-TYPE - SYNTAX INTEGER { saveUserData(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.1.12 - replicateRate OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Replication Rate - Remark:The limited number of replicating subscribers per 50ms.
- Range = 1 - 255" - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2 - mHCNode OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1 - mHCNodeTable OBJECT-TYPE - SYNTAX SEQUENCE OF MHCNodeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mHCNode 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1 - mHCNodeEntry OBJECT-TYPE - SYNTAX MHCNodeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mnIndex } - ::= { mHCNodeTable 1 } - - - MHCNodeEntry ::= - SEQUENCE { - mnIndex - INTEGER, - mnName - OCTET STRING, - mnIP0 - IpAddress, - mnIP1 - IpAddress, - mnBlock - INTEGER, - mnRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1.1 - mnIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:MHC node index number ranges from 0 to 15." - ::= { mHCNodeEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1.2 - mnName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:MHC node name for identification purpose only." - ::= { mHCNodeEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1.3 - mnIP0 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP 0 - Remark:IP address of the MHC installed on platform 0." - ::= { mHCNodeEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1.4 - mnIP1 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP 1 - Remark:IP address of the MHC installed on platform 1. It is available only for the dual-platform system." - ::= { mHCNodeEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1.5 - mnBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblock(0), - block(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed MHC node.
- Unblock = Enable blocked MHC node.
- Block = Disable MHC node manually." - ::= { mHCNodeEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.17.2.2.1.1.6 - mnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mHCNodeEntry 6 } - - - - END - --- --- LGC-SS-MHC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MME-MIB.my b/omc/bin/mib/LGC-SS-MME-MIB.my deleted file mode 100644 index 2e95bc7..0000000 --- a/omc/bin/mib/LGC-SS-MME-MIB.my +++ /dev/null @@ -1,609 +0,0 @@ --- --- LGC-SS-MME-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, July 20, 2018 at 10:11:54 --- - - LGC-SS-MME-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString8, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.27 - mme MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 27 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2 - parameter OBJECT IDENTIFIER ::= { mme 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1.1 - maxENB OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Number of Max eNB." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1.2 - maxUE OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Number of Max UE." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1.3 - cSFallback OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Switch of CS fallback function." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2 - network OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.1 - s1MMEIp OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:IP address of S1 MME interface." - ::= { network 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.2 - s1MMEPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:port number of S1 MME interface." - ::= { network 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.3 - s11IP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:IP address of S11 interface." - ::= { network 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.4 - s11Port OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:port number of S11 interface." - ::= { network 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.5 - sGsIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:IP address of SGs interface." - ::= { network 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.6 - sGsPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:port number of SGs interface." - ::= { network 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3 - gUMMEI OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.1 - mCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MCC." - ::= { gUMMEI 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.2 - mNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MNC." - ::= { gUMMEI 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.3 - mMEGid OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MME Gid." - ::= { gUMMEI 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.4 - mMECode OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MME Code." - ::= { gUMMEI 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4 - tAIList OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1 - tAIListTable OBJECT-TYPE - SYNTAX SEQUENCE OF TAIListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:TAI List Table" - ::= { tAIList 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1 - tAIListEntry OBJECT-TYPE - SYNTAX TAIListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:TAI List Table" - INDEX { taiIndex } - ::= { tAIListTable 1 } - - - TAIListEntry ::= - SEQUENCE { - taiIndex - INTEGER, - taiMCC - OCTET STRING, - taiMNC - OCTET STRING, - taiTAC - INTEGER, - taiRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.1 - taiIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { tAIListEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.2 - taiMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:MCC." - ::= { tAIListEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.3 - taiMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:MNC." - ::= { tAIListEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.4 - taiTAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:TAC." - ::= { tAIListEntry 4 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.5 - taiRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tAIListEntry 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5 - eNBList OBJECT IDENTIFIER ::= { parameter 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1 - eNBListTable OBJECT-TYPE - SYNTAX SEQUENCE OF ENBListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:eNB List Table" - ::= { eNBList 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1 - eNBListEntry OBJECT-TYPE - SYNTAX ENBListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:eNB List Table" - INDEX { enbIndex } - ::= { eNBListTable 1 } - - - ENBListEntry ::= - SEQUENCE { - enbIndex - INTEGER, - enbID - INTEGER, - enbName - OCTET STRING, - enbState - INTEGER, - enbNumOfAssociatedUE - INTEGER, - enbSctpAssociationId - INTEGER - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.1 - enbIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { eNBListEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.2 - enbID OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:eNB ID." - ::= { eNBListEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.3 - enbName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:eNB name." - ::= { eNBListEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.4 - enbState OBJECT-TYPE - SYNTAX INTEGER - { - init(0), - resetting(1), - ready(2), - shutdown(3) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:state." - ::= { eNBListEntry 4 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.5 - enbNumOfAssociatedUE OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Number of associated UEs." - ::= { eNBListEntry 5 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.6 - enbSctpAssociationId OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:SCTP association id." - ::= { eNBListEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6 - s6a OBJECT IDENTIFIER ::= { parameter 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.1 - localHostname OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local Hostname." - ::= { s6a 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.2 - localRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local Realm." - ::= { s6a 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.3 - hSSHostname OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS Hostname." - ::= { s6a 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.4 - hSSRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS Realm." - ::= { s6a 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.5 - hSSIp OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS IP." - ::= { s6a 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.6 - hSSPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS port." - ::= { s6a 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.7 - s6aStatus OBJECT-TYPE - SYNTAX INTEGER - { - inactive(0), - active(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:status." - ::= { s6a 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.7 - s11 OBJECT IDENTIFIER ::= { parameter 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.7.1 - id OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MCC." - ::= { s11 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.2.7.2 - sGWIpAddressForS11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SGW IP Address for S11." - ::= { s11 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.3 - csta OBJECT IDENTIFIER ::= { mme 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1 - ueTable OBJECT-TYPE - SYNTAX SEQUENCE OF UeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1 - ueEntry OBJECT-TYPE - SYNTAX UeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { luTgIndex, luIndex } - ::= { ueTable 1 } - - - UeEntry ::= - SEQUENCE { - ueIndex - INTEGER, - ueData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1.1 - ueIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ueEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1.2 - ueData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ueEntry 2 } - - - - END - --- --- LGC-SS-MME-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MME-MIB.my_bak b/omc/bin/mib/LGC-SS-MME-MIB.my_bak deleted file mode 100644 index 4084d60..0000000 --- a/omc/bin/mib/LGC-SS-MME-MIB.my_bak +++ /dev/null @@ -1,689 +0,0 @@ --- --- LGC-SS-MME-MIB-2.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Saturday, April 28, 2018 at 18:03:35 --- - --- LGC-SS-MME-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Saturday, April 28, 2018 at 17:25:31 --- - - LGC-SS-MME-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.27 - mme MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 27 } - - - --- --- Type definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.27 --- June 29, 2007 at 16:06 GMT --- June 05, 2007 at 12:19 GMT --- --- Type definitions --- - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 --- 1.3.6.1.4.1.1373.2.3.3.27.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2 - parameter OBJECT IDENTIFIER ::= { mme 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1.1 - maxENB OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Number of Max eNB." - ::= { system 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1.2 - maxUE OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Number of Max UE." - ::= { system 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.1.3 - cSFallback OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Switch of CS fallback function." - ::= { system 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2 - network OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.1 - s1MMEIp OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:IP address of S1 MME interface." - ::= { network 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.2 - s1MMEPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:port number of S1 MME interface." - ::= { network 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.3 - s11IP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:IP address of S11 interface." - ::= { network 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.4 - s11Port OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:port number of S11 interface." - ::= { network 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.5 - sGsIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:IP address of SGs interface." - ::= { network 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.2.6 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.2.6 - sGsPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:port number of SGs interface." - ::= { network 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3 - gUMMEI OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.1 - mCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MCC." - ::= { gUMMEI 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.3.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.2 - mNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MNC." - ::= { gUMMEI 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.3 - mMEGid OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MME Gid." - ::= { gUMMEI 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.3.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.3.4 - mMECode OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MME Code." - ::= { gUMMEI 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4 - tAIList OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1 - tAIListTable OBJECT-TYPE - SYNTAX SEQUENCE OF TAIListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:TAI List Table" - ::= { tAIList 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1 - tAIListEntry OBJECT-TYPE - SYNTAX TAIListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:TAI List Table" - INDEX { taiIndex } - ::= { tAIListTable 1 } - - - TAIListEntry ::= - SEQUENCE { - taiIndex - INTEGER, - taiMCC - OCTET STRING, - taiMNC - OCTET STRING, - taiTAC - INTEGER, - taiRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.1 - taiIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { tAIListEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.2 - taiMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:MCC." - ::= { tAIListEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.3 - taiMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:MNC." - ::= { tAIListEntry 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.4 - taiTAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:TAC." - ::= { tAIListEntry 4 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 --- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.4.1.1.5 - taiRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tAIListEntry 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5 - eNBList OBJECT IDENTIFIER ::= { parameter 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1 - eNBListTable OBJECT-TYPE - SYNTAX SEQUENCE OF ENBListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:eNB List Table" - ::= { eNBList 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1 - eNBListEntry OBJECT-TYPE - SYNTAX ENBListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:eNB List Table" - INDEX { enbIndex } - ::= { eNBListTable 1 } - - - ENBListEntry ::= - SEQUENCE { - enbIndex - INTEGER, - enbID - INTEGER, - enbName - OCTET STRING, - enbState - INTEGER, - enbNumOfAssociatedUE - INTEGER, - enbSctpAssociationId - INTEGER, - enbRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.1 - enbIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { eNBListEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.2 - enbID OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:eNB ID." - ::= { eNBListEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.3 - enbName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:eNB name." - ::= { eNBListEntry 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.4 - enbState OBJECT-TYPE - SYNTAX INTEGER - { - init(0), - resetting(1), - ready(2), - shutdown(3) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:state." - ::= { eNBListEntry 4 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.5 - enbNumOfAssociatedUE OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Number of associated UEs." - ::= { eNBListEntry 5 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.6 - enbSctpAssociationId OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:SCTP association id." - ::= { eNBListEntry 6 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 --- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.5.1.1.7 - enbRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { eNBListEntry 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6 - s6a OBJECT IDENTIFIER ::= { parameter 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.1 - localHostname OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local Hostname." - ::= { s6a 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.2 - localRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Local Realm." - ::= { s6a 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.3 - hSSHostname OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS Hostname." - ::= { s6a 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.4 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.4 - hSSRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS Realm." - ::= { s6a 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.5 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.5 - hSSIp OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS IP." - ::= { s6a 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.6 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.6 - hSSPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:HSS port." - ::= { s6a 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.6.7 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.6.7 - s6aStatus OBJECT-TYPE - SYNTAX INTEGER - { - inactive(0), - active(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:status." - ::= { s6a 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.7 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.7 - s11 OBJECT IDENTIFIER ::= { parameter 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.7.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.7.1 - id OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MCC." - ::= { s11 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.2.7.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.2.7.2 - sGWIpAddressForS11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SGW IP Address for S11." - ::= { s11 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.3 - -- 1.3.6.1.4.1.1373.2.3.3.27.3 - csta OBJECT IDENTIFIER ::= { mme 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1 - ueTable OBJECT-TYPE - SYNTAX SEQUENCE OF UeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1 - ueEntry OBJECT-TYPE - SYNTAX UeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { luTgIndex, luIndex } - ::= { ueTable 1 } - - - UeEntry ::= - SEQUENCE { - ueIndex - INTEGER, - ueData - DisplayString - } - --- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1.1 - ueIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ueEntry 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.27.3.1.1.2 - ueData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ueEntry 2 } - - - - END - --- --- LGC-SS-MME-MIB-2.my --- diff --git a/omc/bin/mib/LGC-SS-MNP-MIB.my b/omc/bin/mib/LGC-SS-MNP-MIB.my deleted file mode 100644 index d279010..0000000 --- a/omc/bin/mib/LGC-SS-MNP-MIB.my +++ /dev/null @@ -1,378 +0,0 @@ --- --- LGC-SS-MNP-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 17:59:41 --- - - LGC-SS-MNP-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus, DisplayString - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.7 - mnp MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { mss 7 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - mss OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mnp 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.7.2 - parameter OBJECT IDENTIFIER ::= { mnp 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.1 - flag OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MNP Flag - Remark:Enable or disable MNP (Mobile Number Portability) function." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.2 - nPLRNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NPLR Address - Remark:The E.164 node address of the NPLR (Number Portability Location Register)." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.3 - routingNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Routing Number - Remark:A specific number which is part of the routing information, used by the network to route the call and the non-call related signaling messages." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.4 - routingMethod OBJECT-TYPE - SYNTAX INTEGER - { - direct(1), - indirect(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Routing Method - Remark:For every call or non-call related transaction initiated from local network, the MSC can select one of the two following routing conventions:

" - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.5 - rNPosition OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:RN Position - Remark:The routing number will be attached to the called number in the portability database.
This parameter specifies the digit position of the called number to append the routing number." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.6 - type OBJECT-TYPE - SYNTAX INTEGER - { - srf(0), - ansiIn(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MNP Solution - Remark:Select a solution for call related signaling in the ETSI MNP-standard:
  • MNP-SRF = Mobile Number Portability Signaling Relay Function
  • ANSI IN = American National Standard Institute Intelligent Network
" - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.7 - systemCommand OBJECT-TYPE - SYNTAX INTEGER { saveSubsData(2) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.7.2.1.8 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]operation[u]00.0-00.7[u]select - [v]1[opt]Send - [v]2[opt]Reading - [v]3[opt]Succeed - [v]4[opt]Failed - [unit]Imported subs.[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Loaded subs.[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { system 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2 - localPrefix OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2.1 - localPrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocalPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { localPrefix 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2.1.1 - localPrefixEntry OBJECT-TYPE - SYNTAX LocalPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { localIndex } - ::= { localPrefixTable 1 } - - - LocalPrefixEntry ::= - SEQUENCE { - localIndex - INTEGER, - localTitle - OCTET STRING, - localPrefixNumber - OCTET STRING, - localRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2.1.1.1 - localIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Local prefix index number ranges from 0 to 31." - ::= { localPrefixEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2.1.1.2 - localTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Local prefix name for identification purpose only." - ::= { localPrefixEntry 2 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2.1.1.3 - localPrefixNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:Specify prefix of E.164 numbers using in the local network." - ::= { localPrefixEntry 3 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.2.1.1.4 - localRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { localPrefixEntry 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3 - portablePrefix OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3.1 - portablePrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF PortablePrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { portablePrefix 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3.1.1 - portablePrefixEntry OBJECT-TYPE - SYNTAX PortablePrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { portableIndex } - ::= { portablePrefixTable 1 } - - - PortablePrefixEntry ::= - SEQUENCE { - portableIndex - INTEGER, - portableTitle - DisplayString16, - portablePrefixNumber - OCTET STRING, - portableRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3.1.1.1 - portableIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Portable prefix index number ranges from 0 to 127." - ::= { portablePrefixEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3.1.1.2 - portableTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Portable prefix name for identification purpose only." - ::= { portablePrefixEntry 2 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3.1.1.3 - portablePrefixNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:Specify prefix of E.164 numbers that can be ported among networks." - ::= { portablePrefixEntry 3 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.7.2.3.1.1.4 - portableRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { portablePrefixEntry 4 } - - - - END - --- --- LGC-SS-MNP-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MRFC-MIB.my b/omc/bin/mib/LGC-SS-MRFC-MIB.my deleted file mode 100644 index 7c0228f..0000000 --- a/omc/bin/mib/LGC-SS-MRFC-MIB.my +++ /dev/null @@ -1,381 +0,0 @@ --- --- LGC-SS-MRFC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, September 13, 2010 at 18:10:09 --- - - LGC-SS-MRFC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, TimeStamp, RowStatus, DisplayString, - AdminStateChoices - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.13 - mrfc MODULE-IDENTITY - LAST-UPDATED "200810151006Z" -- October 15, 2008 at 10:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 13 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mrfc 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.13.2 - parameter OBJECT IDENTIFIER ::= { mrfc 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.8 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1 - mRFP OBJECT IDENTIFIER ::= { parameter 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.8.1 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1 - mRFPTable OBJECT-TYPE - SYNTAX SEQUENCE OF MRFPEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mRFP 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.8.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1 - mRFPEntry OBJECT-TYPE - SYNTAX MRFPEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mrfpIndex } - ::= { mRFPTable 1 } - - - MRFPEntry ::= - SEQUENCE { - mrfpIndex - INTEGER, - mrfpTitle - DisplayString16, - mrfpCreateTimeStamp - TimeStamp, - mrfpAdministrationState - AdminStateChoices, - mrfpLocalDomain - DisplayString16, - mrfpDestDomain - DisplayString16, - mrfpDestIp - IpAddress, - mrfpDestPort - INTEGER, - mrfpConfPrefix - OCTET STRING, - mrfpTransPrefix - OCTET STRING, - mrfpConfUserNumber - INTEGER, - mrfpTransUserNumber - INTEGER, - mrfpType - INTEGER, - mrfpStatus - INTEGER, - mrfpRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.1 - mrfpIndex OBJECT-TYPE - SYNTAX INTEGER (0..254) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:MRFP (Multimedia Resource Function Processor) index number ranges from 0 to 254." - ::= { mRFPEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.2 - mrfpTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:MRFP name for identification purpose only." - DEFVAL { "MRFP#" } - ::= { mRFPEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.3 - mrfpCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the MRFP." - ::= { mRFPEntry 3 } - - --- Origination MG --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.4 - mrfpAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed MRFP." - ::= { mRFPEntry 4 } - - --- Origination Trunk --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.5 - mrfpLocalDomain OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MRFC Domain - Remark:Domain name of the local MRFC (Multimedia Resource Function Controller). Use MSS IP address as default." - ::= { mRFPEntry 5 } - - --- Origination Channel --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.6 - mrfpDestDomain OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MRFP Domain - Remark:Domain name of the connected MRFP. Use MRFP IP address as default." - ::= { mRFPEntry 6 } - - --- Destination MG --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.7 - mrfpDestIp OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MRFP IP - Remark:IP address of the connected MRFP." - ::= { mRFPEntry 7 } - - --- Destination Trunk --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.8 - mrfpDestPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MRFP Port - Remark:Enter the SIP UDP transmission port that set on the connected MRFP. Default as 5060." - ::= { mRFPEntry 8 } - - --- Destination Channel --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.9 - mrfpConfPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Conf Prefix - Remark:Enter the conference ID that set on the connected MRFP.
- Default = conf" - ::= { mRFPEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.10 - mrfpTransPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Trans Prefix - Remark:Enter the transcoding ID that set on the connected MRFP.
- Default = trans" - ::= { mRFPEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.11 - mrfpConfUserNumber OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Max Conf Channels - Remark:Assign the maximum number of channels reserved for conference call use.
It cooperates with the following parameter to distribute licensed channels between conference and transcoding." - ::= { mRFPEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.12 - mrfpTransUserNumber OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Max Trans Channels - Remark:Assign the maximum number of channels reserved for transcoding use.
It cooperates with the preceding parameter to distribute licensed channels between conference and transcoding." - ::= { mRFPEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.13 - mrfpType OBJECT-TYPE - SYNTAX INTEGER - { - ipMedia(1), - iwf(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Device Type - Remark:Specify the device type of the connected MRFP." - ::= { mRFPEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.14 - mrfpStatus OBJECT-TYPE - SYNTAX INTEGER - { - offLine(0), - onLine(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Avail State - Remark:Indicate the current availability state of the connected MRFP." - ::= { mRFPEntry 14 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.13.2.1.1.1.15 - mrfpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mRFPEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.3 - csta OBJECT IDENTIFIER ::= { mrfc 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.4 - cdr OBJECT IDENTIFIER ::= { mrfc 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.13.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - - END - --- --- LGC-SS-MRFC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MSC-MIB.my b/omc/bin/mib/LGC-SS-MSC-MIB.my deleted file mode 100644 index 7216a49..0000000 --- a/omc/bin/mib/LGC-SS-MSC-MIB.my +++ /dev/null @@ -1,4939 +0,0 @@ --- --- LGC-SS-MSC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, March 08, 2013 at 15:35:22 --- - - LGC-SS-MSC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, TimeStamp, RowStatus, DisplayString8, - DisplayString, AdminStateChoices, OperStateChoices - FROM LGC-MIB - IpAddress, Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.1 - msc MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 1 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { msc 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2 - parameter OBJECT IDENTIFIER ::= { msc 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.1 - cDROption OBJECT-TYPE - SYNTAX Opaque (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]MO Call[u]00.0-00.0[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MT Call[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]In Gateway[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Out Gateway[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MO SMS[u]00.4-00.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MT SMS[u]00.5-00.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Transit Call[u]00.6-00.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Roaming[u]00.7-00.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Reserved[u]01.0-01.0[u]select - [unit]Common Equipment[u]01.1-01.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]SS Action[u]01.2-01.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Term CAMEL[u]01.3-01.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI White List[u]01.4-01.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI Black List[u]01.5-01.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI Grey List[u]01.6-01.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI Unknown[u]01.7-01.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Reserved[u]02.0-02.7[u]select - [unit]Reserved[u]03.0-03.7[u]select - [remark]Control the Call Detail Record generation for different call types." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.2 - maxCallDurationMO OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MO Max Call Duration - Remark:Define the permitted maximum call duration for MO call. Any ongoing call reaching this threshold will be compulsively cut off.

- Set 0 to disable this function." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.3 - maxCallDurationMT OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MT Max Call Duration - Remark:Define the permitted maximum call duration for MT call. Any incoming call reaching this threshold will be compulsively cut off.

- Set 0 to disable this function." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.4 - locationNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Location Number - Remark:Specify the location routing number for MNP service." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.5 - suspendTimer OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Suspend Timer - Remark:If receives ISUP SUSPEND message in an ISUP call, then start the suspend timer to wait for the ISUP RESUME message. If time out, then send RELEASE to ISUP. Unit is second." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.6 - emlppPciOption OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:eMLPP PCI Option - OPAQUE DECODE RULE: - [unit]Reserved[u]00.0-00.0[u]select - [unit]Level A[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level B[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 0[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 1[u]00.4-00.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 2[u]00.5-00.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 3[u]00.6-00.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 4[u]00.7-00.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [remark] - The enhanced Multi-Level Precedence and Preemption (eMLPP) service provides the capability to classify the mobile subscribers according to a subscriber specific priority.

The Preemption Capability Indicator (PCI) is set when the traffic channel to be assigned may preempt (forced release) an existing connection with a lower priority level (active preemption)." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.7 - emlppPviOption OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:eMLPP PVI Option - OPAQUE DECODE RULE: - [unit]Reserved[u]00.0-00.0[u]select - [unit]Level A[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level B[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 0[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 1[u]00.4-00.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 2[u]00.5-00.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 3[u]00.6-00.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 4[u]00.7-00.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [remark] - The enhanced Multi-Level Precedence and Preemption (eMLPP) service provides the capability to classify the mobile subscribers according to a subscriber specific priority.

The Preemption Vulnerability Indicator (PVI) is set when the traffic channel to be assigned can be preempted by another connection that might be established later with a higher priority level (passive preemption)." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.8 - assignmentTimer OBJECT-TYPE - SYNTAX INTEGER (10..250) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Assignment Timer - Remark:Specify the maximum waiting time for receiving Assignment Complete message after the Assignment Request message has been sent. Unit is 100ms." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.9 - pagingTimer OBJECT-TYPE - SYNTAX INTEGER (10..40) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Paging Timer - Remark:Specify the maximum waiting time for receiving Paging Response message after the Paging message has been sent. Unit is 1 second." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.10 - splitEtcNumber OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Split ETC Number - Remark:Allow or forbid splitting the Correlation ID and SCF ID in the Establish Temporary Connection message." - ::= { system 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2 - routingZoneSet OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1 - routingZoneSetTable OBJECT-TYPE - SYNTAX SEQUENCE OF RoutingZoneSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routingZoneSet 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1 - routingZoneSetEntry OBJECT-TYPE - SYNTAX RoutingZoneSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { rzsIndex } - ::= { routingZoneSetTable 1 } - - - RoutingZoneSetEntry ::= - SEQUENCE { - rzsIndex - INTEGER, - rzsTitle - DisplayString16, - rzsCreateTimeStamp - TimeStamp, - rzsDialingPrefixSetID - INTEGER, - rzsAnnouncementSetID - INTEGER, - rzsMSRNRangeStart - DisplayString16, - rzsMSRNRangeEnd - DisplayString16, - rzsSRFNumber0 - DisplayString16, - rzsSRFNumber1 - DisplayString16, - rzsCreateEntryRoutingSelection - INTEGER, - rzsRoutingSelectionEntries - INTEGER, - rzsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.1 - rzsIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing Zone Set index number ranges from 1 to 31." - ::= { routingZoneSetEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.2 - rzsTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing Zone Set name for identification purpose only." - DEFVAL { "RZS#" } - ::= { routingZoneSetEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.3 - rzsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Routing Zone Set." - ::= { routingZoneSetEntry 3 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.4 - rzsDialingPrefixSetID OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Dialing Prefix Set ID - Remark:Specify the Dialing Prefix Set to this Routing Zone Set." - DEFVAL { 0 } - ::= { routingZoneSetEntry 4 } - - --- Announcement(CUA) Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.5 - rzsAnnouncementSetID OBJECT-TYPE - SYNTAX INTEGER (0..256) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Announcement Set ID - Remark:Specify the Announcement Set to this Routing Zone Set." - ::= { routingZoneSetEntry 5 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.6 - rzsMSRNRangeStart OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSRN Start - Remark:The beginning of the MSRN range for this Routing Zone Set." - ::= { routingZoneSetEntry 6 } - - --- MSRN Range End --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.7 - rzsMSRNRangeEnd OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSRN End - Remark:The end of the MSRN range for this Routing Zone Set." - ::= { routingZoneSetEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.8 - rzsSRFNumber0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SRF 0 Number - Remark:The E.164 node address of the SRF connecting to MSS platform 0." - ::= { routingZoneSetEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.9 - rzsSRFNumber1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SRF 1 Number - Remark:The E.164 node address of the SRF connecting to MSS platform 1." - ::= { routingZoneSetEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.10 - rzsCreateEntryRoutingSelection OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { routingZoneSetEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.11 - rzsRoutingSelectionEntries OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Routing Selection Entries - Remark:The total number of configured Routing Selections in this Routing Zone Set." - ::= { routingZoneSetEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.12 - rzsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { routingZoneSetEntry 12 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2 - routingSelectionTable OBJECT-TYPE - SYNTAX SEQUENCE OF RoutingSelectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routingZoneSet 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1 - routingSelectionEntry OBJECT-TYPE - SYNTAX RoutingSelectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { rsIndex, rsRZSIndex } - ::= { routingSelectionTable 1 } - - - RoutingSelectionEntry ::= - SEQUENCE { - rsRZSIndex - INTEGER, - rsIndex - INTEGER, - rsTitle - DisplayString16, - rsCreateTimeStamp - TimeStamp, - rsTrunkGroup - INTEGER, - rsAlternativeTrunkGroupOption - INTEGER, - rsAlternativeTrunkGroup - INTEGER, - rsNAIForOutgoingCall - INTEGER, - rsNumberOfDigitDeletion - INTEGER, - rsInsertionNumber - DisplayString16, - rsRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.1 - rsRZSIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:RSZ Index - Remark:Routing Zone Set Index for the Routing Selection." - ::= { routingSelectionEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.2 - rsIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing Selection index number range from 1 to 31." - ::= { routingSelectionEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.3 - rsTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing Selection name for identification purpose only." - DEFVAL { "RS#" } - ::= { routingSelectionEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.4 - rsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Routing Selection." - ::= { routingSelectionEntry 4 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.5 - rsTrunkGroup OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Group - Remark:Select the Trunk Group for the outgoing routing." - DEFVAL { 0 } - ::= { routingSelectionEntry 5 } - - --- Alternative Trunk Group Option --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.6 - rsAlternativeTrunkGroupOption OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative TG Flag - Remark:Enable or disable alternative Trunk Group when the primary Trunk Group is unavailable." - DEFVAL { disable } - ::= { routingSelectionEntry 6 } - - --- Alternative Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.7 - rsAlternativeTrunkGroup OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative TG - Remark:Specify the alternative Trunk Group. It's available only when the previous Alternative TG Flag is enabled." - DEFVAL { 0 } - ::= { routingSelectionEntry 7 } - - --- NAI For Outgoing Call --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.8 - rsNAIForOutgoingCall OBJECT-TYPE - SYNTAX INTEGER - { - sub(1), - unknown(2), - ndd(3), - idd(4), - UKSpecific(126) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NAI for Outgoing Call - Remark:Select the required Network Address Identifier (NAI). The NAI option enables the MSC to perform call routing." - ::= { routingSelectionEntry 8 } - - --- Number Of Digit Deletion --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.9 - rsNumberOfDigitDeletion OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Deletion Count - Remark:Number of digits to be deleted from the beginning of the dialed number." - DEFVAL { 0 } - ::= { routingSelectionEntry 9 } - - --- Insertion Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.10 - rsInsertionNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Inserted Digits - Remark:The digits to be inserted to the front of the dialed number." - DEFVAL { "FFFFFFFFFFFFFFFF" } - ::= { routingSelectionEntry 10 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.11 - rsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { routingSelectionEntry 11 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3 - dialingPrefixSet OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1 - dialingPrefixSetTable OBJECT-TYPE - SYNTAX SEQUENCE OF DialingPrefixSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { dialingPrefixSet 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1 - dialingPrefixSetEntry OBJECT-TYPE - SYNTAX DialingPrefixSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { dpsIndex } - ::= { dialingPrefixSetTable 1 } - - - DialingPrefixSetEntry ::= - SEQUENCE { - dpsIndex - INTEGER, - dpsTitle - DisplayString16, - dpsCreateTimeStamp - TimeStamp, - dpsCC - DisplayString8, - dpsNDC - DisplayString8, - dpsInternationalPrefix - DisplayString8, - dpsNationalPrefix - DisplayString8, - dpsHPLMNCC0 - DisplayString16, - dpsHPLMNCC1 - DisplayString16, - dpsHPLMNCC2 - DisplayString16, - dpsHPLMNCC3 - DisplayString16, - dpsHPLMNCC4 - DisplayString16, - dpsHPLMNCC5 - DisplayString16, - dpsHPLMNCC6 - DisplayString16, - dpsHPLMNCC7 - DisplayString16, - dpsNumberPlanArea - DisplayString8, - dpsCreateEntryDialingPrefix - INTEGER, - dpsDialingPrefixEntries - INTEGER, - dpsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.1 - dpsIndex OBJECT-TYPE - SYNTAX INTEGER (1..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Dialing Prefix Set index number ranges from 1 to 15." - ::= { dialingPrefixSetEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.2 - dpsTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Dialing Prefix Set name for identification purpose only." - DEFVAL { "DPS#" } - ::= { dialingPrefixSetEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.3 - dpsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Dialing Prefix Set." - ::= { dialingPrefixSetEntry 3 } - - --- Country Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.4 - dpsCC OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CC - Remark:Country Code identifies the country's network." - ::= { dialingPrefixSetEntry 4 } - - --- National Destination Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.5 - dpsNDC OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NDC - Remark:National Destination Code defines the national calling area or national network to which the subscriber belongs." - ::= { dialingPrefixSetEntry 5 } - - --- International Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.6 - dpsInternationalPrefix OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:International Prefix - Remark:Access code for international network." - ::= { dialingPrefixSetEntry 6 } - - --- National Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.7 - dpsNationalPrefix OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:National Prefix - Remark:National prefix for the operating country to make a national call." - DEFVAL { "0" } - ::= { dialingPrefixSetEntry 7 } - - --- HPLMN CC0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.8 - dpsHPLMNCC0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 0 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 8 } - - --- HPLMN CC1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.9 - dpsHPLMNCC1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 1 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 9 } - - --- HPLMN CC2 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.10 - dpsHPLMNCC2 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 2 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 10 } - - --- HPLMN CC3 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.11 - dpsHPLMNCC3 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 3 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 11 } - - --- HPLMN CC4 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.12 - dpsHPLMNCC4 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 4 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 12 } - - --- HPLMN CC5 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.13 - dpsHPLMNCC5 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 5 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 13 } - - --- HPLMN CC6 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.14 - dpsHPLMNCC6 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 6 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 14 } - - --- HPLMN CC7 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.15 - dpsHPLMNCC7 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 7 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.16 - dpsNumberPlanArea OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Number Plan Area - Remark:Specify number plan area number for MNP outbound." - ::= { dialingPrefixSetEntry 16 } - - --- Dialing Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.17 - dpsCreateEntryDialingPrefix OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { dialingPrefixSetEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.18 - dpsDialingPrefixEntries OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Dialing Prefix Entries - Remark:The total number of the configured Dialing Prefixes in this Dialing Prefix Set." - ::= { dialingPrefixSetEntry 18 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.17 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.19 - dpsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { dialingPrefixSetEntry 19 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2 - dialingPrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF DialingPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { dialingPrefixSet 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1 - dialingPrefixEntry OBJECT-TYPE - SYNTAX DialingPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { dpIndex, dpDPSIndex } - ::= { dialingPrefixTable 1 } - - - DialingPrefixEntry ::= - SEQUENCE { - dpDPSIndex - INTEGER, - dpIndex - INTEGER, - dpTitle - DisplayString16, - dpLookupMethod - INTEGER, - dpCallNumberPrefix - DisplayString16, - dpStartNumber - DisplayString16, - dpEndNumber - DisplayString16, - dpCallNumberAttribute - INTEGER, - dpAdministrationState - AdminStateChoices, - dpCallNumberLength - INTEGER, - dpServiceType - INTEGER, - dpEmergencyType - INTEGER, - dpServiceKey - INTEGER, - dpNumberType - INTEGER, - dpCLIType - INTEGER, - dpRSC - INTEGER, - dpCDRFlag - INTEGER, - dpOptionForSRFMNP - INTEGER, - dpMSCOptionForINMNP - INTEGER, - dpGMSCOptionForINMNP - INTEGER, - dpPremiumCall - INTEGER, - dpOSB1Flag - INTEGER, - dpOSB2Flag - INTEGER, - dpNAIForOutgoingCall - INTEGER, - dpPSTNNumberOfDigitDeletion - INTEGER, - dpPSTNInsertionNumber - DisplayString16, - dpE164NumberOfDigitDeletion - INTEGER, - dpE164InsertionNumber - DisplayString16, - dpRowStatus - RowStatus - } - --- DP DPS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.1 - dpDPSIndex OBJECT-TYPE - SYNTAX INTEGER (1..15) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:DPS Index - Remark:Dialing Prefix Set index number for this Dialing Prefix." - ::= { dialingPrefixEntry 1 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.2 - dpIndex OBJECT-TYPE - SYNTAX INTEGER (1..1024) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Dialing Prefix index number ranges from 1 to 1024." - ::= { dialingPrefixEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.3 - dpTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Dialing Prefix name for identification purpose only." - ::= { dialingPrefixEntry 3 } - - --- Lookup Method --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.4 - dpLookupMethod OBJECT-TYPE - SYNTAX INTEGER - { - prefixLookup(0), - groupLookup(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Lookup Method - Remark:Select a dialing plan lookup method. Group Lookup Method has a higher priority than Prefix Lookup Method." - DEFVAL { prefix } - ::= { dialingPrefixEntry 4 } - - --- Call Number Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.5 - dpCallNumberPrefix OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:A combination digits that dial to originate a call. It's only valid when the lookup method selected Prefix." - ::= { dialingPrefixEntry 5 } - - --- Start Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.6 - dpStartNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Group Prefix Start - Remark:The beginning of the group prefix range. It's only valid when the lookup method selected Group." - ::= { dialingPrefixEntry 6 } - - --- End Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.7 - dpEndNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Group Prefix End - Remark:The end of the group prefix range. Start prefix and end prefix must have the same length." - ::= { dialingPrefixEntry 7 } - - --- Call Number Attribute --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.8 - dpCallNumberAttribute OBJECT-TYPE - SYNTAX INTEGER - { - sub(1), - unknown(2), - ndd(3), - idd(4), - UKSpecific(126) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Attribute - Remark:The original type of the incoming number. It is specified by originating node for terminating node to route this call with proper dialed number manipulation." - ::= { dialingPrefixEntry 8 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.9 - dpAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:The state of the current Dialing Prefix entry." - ::= { dialingPrefixEntry 9 } - - --- Call Number Length --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.10 - dpCallNumberLength OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Number Length - Remark:The length of the dialed number. Set 0 for uncertain length." - DEFVAL { 0 } - ::= { dialingPrefixEntry 10 } - - --- Service Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.11 - dpServiceType OBJECT-TYPE - SYNTAX INTEGER - { - normalCall(0), - emergencyCall(1), - intelligentCall(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Type - Remark:Service type of the outgoing call:

- Normal = No verification for MT
- Emergency Call = No verification for MO (free call)
- Intelligent Call = Calls to intelligent peripheral" - DEFVAL { normalCall } - ::= { dialingPrefixEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.12 - dpEmergencyType OBJECT-TYPE - SYNTAX INTEGER - { - zero(0), - one(1), - two(2), - three(3), - four(4), - five(5), - six(6), - seven(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Type - Remark:Specify index number which associated with the 8 emergency call numbers in Location Area or Cell setting." - DEFVAL { zero } - ::= { dialingPrefixEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.13 - dpServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Service Key - Remark:Specify service hot key which associated with the service key configuration in the PPS SRF setting." - ::= { dialingPrefixEntry 13 } - - --- Number Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.14 - dpNumberType OBJECT-TYPE - SYNTAX INTEGER - { - msisdn(0), - msrn(1), - pstn(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Type - Remark:It determines how the numbers are sent out." - DEFVAL { msisdn } - ::= { dialingPrefixEntry 14 } - - --- CLI Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.15 - dpCLIType OBJECT-TYPE - SYNTAX INTEGER - { - sub(0), - ndd(1), - idd(2), - unknownSub(3), - unknownNdd(4), - unknownIdd(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CLI Type - Remark:It determines the format of the Caller Line ID (CLI).

- Sub = Unknown(Sub) = SN
- NDD = NDC+SN
- Unknown(NDD) = Nat Prefix+NDC+SN
- IDD = +CC+NDC+SN
- Unknown(IDD) = Int Prefix+CC+NDC+SN" - DEFVAL { ndd } - ::= { dialingPrefixEntry 15 } - - --- Routing Selection Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.16 - dpRSC OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Routing Selection ID - Remark:Specify the Routing Selection ID to this Dialing Prefix." - DEFVAL { 0 } - ::= { dialingPrefixEntry 16 } - - --- CDR Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.17 - dpCDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable the Call Detail Record generation of this prefix." - DEFVAL { enable } - ::= { dialingPrefixEntry 17 } - - --- MNP Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.18 - dpOptionForSRFMNP OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - portableNumber(1), - portedNumber(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SRF-MNP Flag - Remark:Enable if this prefix relating to SRF MNP service." - DEFVAL { disable } - ::= { dialingPrefixEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.19 - dpMSCOptionForINMNP OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - OQoD(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IN-MNP Flag (MSC) - Remark:Enable or disable IN MNP service when the system performs as an MSC." - ::= { dialingPrefixEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.20 - dpGMSCOptionForINMNP OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - TQoD(1), - QoHR(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IN-MNP Flag (GMSC) - Remark:Enable or disable IN MNP service when the system performs as a GMSC." - ::= { dialingPrefixEntry 20 } - - --- Premium Call --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.21 - dpPremiumCall OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - information(1), - entertainment(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Premium Call Flag - Remark:Enable if this prefix relating to Premium Call service." - DEFVAL { disable } - ::= { dialingPrefixEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.22 - dpOSB1Flag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OSB 1 Flag - Remark:Subscribers with OSB type 1 can only make calls to this dialing prefix with Call Allow Flag enabled." - DEFVAL { disable } - ::= { dialingPrefixEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.23 - dpOSB2Flag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OSB 2 Flag - Remark:Subscribers with OSB type 2 can't make calls to this dialing prefix with Call Bar Flag enabled." - DEFVAL { disable } - ::= { dialingPrefixEntry 23 } - - --- NAI For Outgoing Call --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.24 - dpNAIForOutgoingCall OBJECT-TYPE - SYNTAX INTEGER - { - sub(1), - unknown(2), - ndd(3), - idd(4), - UKSpecific(126) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAI for Outgoing Call - Remark:Select the required Network Address Identifier (NAI). The transformed incoming number will be routed to the associated trunk group." - ::= { dialingPrefixEntry 24 } - - --- PSTN Number Of Digit Deletion --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.25 - dpPSTNNumberOfDigitDeletion OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PSTN Deletion Count - Remark:Number of digits to be deleted from the beginning of the dialed number." - DEFVAL { 0 } - ::= { dialingPrefixEntry 25 } - - --- PSTN Insertion Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.26 - dpPSTNInsertionNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PSTN Inserted Digits - Remark:Digits of the number to be added to the front of the dialed number." - DEFVAL { 'FFFFFFFFFFFFFFFF'h } - ::= { dialingPrefixEntry 26 } - - --- E164 Number Of Digit Deletion --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.17 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.27 - dpE164NumberOfDigitDeletion OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:E.164 Deletion Count - Remark:Number of digits to be deleted from the beginning of the incoming number." - ::= { dialingPrefixEntry 27 } - - --- E164 Insertion Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.18 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.28 - dpE164InsertionNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:E.164 Inserted Digits - Remark:Digits of the number to be added to the front of the incoming number to convert it to an international E.164 format." - DEFVAL { 'FFFFFFFFFFFFFFFF'h } - ::= { dialingPrefixEntry 28 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.19 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.29 - dpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { dialingPrefixEntry 29 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4 - trunkGroup OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1 - trunkGroupTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkGroupEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroup 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1 - trunkGroupEntry OBJECT-TYPE - SYNTAX TrunkGroupEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { tgIndex } - ::= { trunkGroupTable 1 } - - - TrunkGroupEntry ::= - SEQUENCE { - tgIndex - INTEGER, - tgTitle - DisplayString16, - tgCreateTimeStamp - TimeStamp, - tgAdministrationState - AdminStateChoices, - tgOperabilityStatus - OperStateChoices, - tgAvailabilityStatus - AvailStateChoices, - tgOPC - INTEGER, - tgDPC - INTEGER, - tgNetworkIndicator - INTEGER, - tgProtocolType - INTEGER, - tgProtocolVariant - INTEGER, - tgLocalDomain - OCTET STRING, - tgDestDomain - OCTET STRING, - tgDestIP0 - IpAddress, - tgDestIP1 - IpAddress, - tgDestPort - INTEGER, - tgRemoteProcessISUP - INTEGER, - tgTONIncomingSIPCall - INTEGER, - tgCircuitSelectionMode - INTEGER, - tgBackoffFlag - INTEGER, - tgTandemRestriction - INTEGER, - tgCDRFlag - INTEGER, - tgTrunkGroupType - INTEGER, - tgRoutingZoneID - INTEGER, - tgAlternativeRoutingTrigger - INTEGER, - tgIgnoreNumberPortabilityInformation - INTEGER, - tgSignalPortedNumber - INTEGER, - tgNFAS - INTEGER, - tgPrimaryLink - INTEGER, - tgBackupLink - INTEGER, - tgBSCCodec - Opaque, - tgEchoControlDeviceIndicator - INTEGER, - tgSatelliteIndicator - INTEGER, - tgCreateEntryTrunk - INTEGER, - tgTrunkEntries - INTEGER, - tgRowStatus - RowStatus, - tgEventLog - DisplayString, - tgExtendProtocolType - INTEGER - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.1 - tgIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Trunk Group index number ranges from 1 to 255." - ::= { trunkGroupEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.2 - tgTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Trunk Group name for identification purpose only." - DEFVAL { "TG#" } - ::= { trunkGroupEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.3 - tgCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Trunk Group." - ::= { trunkGroupEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.4 - tgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed Trunk Group." - ::= { trunkGroupEntry 4 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.5 - tgOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Oper State - Remark:(Read Only) Indicate the current Trunk Group operation is qualified by Availability State." - ::= { trunkGroupEntry 5 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.6 - tgAvailabilityStatus OBJECT-TYPE - SYNTAX AvailStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Avail State - Remark:(Read Only) Qualify Operation State providing details about the current operational state." - ::= { trunkGroupEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.7 - tgOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:The Originating Point Code of the current TG." - ::= { trunkGroupEntry 7 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.8 - tgDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:The Destination Point Code of the current TG." - ::= { trunkGroupEntry 8 } - - --- Network Indication --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.9 - tgNetworkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - int(0), - intSpare(1), - nat(2), - natSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NI - Remark:Network Indicator specifies the Trunk Group to a network." - DEFVAL { int } - ::= { trunkGroupEntry 9 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.10 - tgProtocolType OBJECT-TYPE - SYNTAX INTEGER - { - aif(0), - isup(1), - bicc(2), - isdn(3), - sip(5), - staticConnection(7), - iuCS(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Protocol Type - Remark:Select the protocol type for this Trunk Group." - ::= { trunkGroupEntry 10 } - - --- Protocol Variant --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.11 - tgProtocolVariant OBJECT-TYPE - SYNTAX INTEGER - { - itu(0), - ansi(1), - etsi(2), - uk(3), - Qsig(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Protocol Variant - Remark:Select the protocol variant for this Trunk Group." - DEFVAL { itu } - ::= { trunkGroupEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.12 - tgLocalDomain OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local Domain - Remark:(For SIP) Define the local domain name for a SIP TG." - ::= { trunkGroupEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.13 - tgDestDomain OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest Domain - Remark:(For SIP) Specify the destination domain name for a SIP TG." - ::= { trunkGroupEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.14 - tgDestIP0 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest IP 0 - Remark:(For SIP) Specify the destination IP address for a SIP TG." - ::= { trunkGroupEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.15 - tgDestIP1 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest IP 1 - Remark:(For SIP) Specify the destination IP address for a SIP TG." - ::= { trunkGroupEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.16 - tgDestPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest Port - Remark:(For SIP) Specify the destination port for a SIP TG." - ::= { trunkGroupEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.17 - tgRemoteProcessISUP OBJECT-TYPE - SYNTAX INTEGER - { - notSupport(0), - support(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Remote Process ISUP - Remark:(For SIP) Indicate whether the remote SIP UA is able to process ISUP in SIP-ISUP interworking." - ::= { trunkGroupEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.18 - tgTONIncomingSIPCall OBJECT-TYPE - SYNTAX INTEGER - { - CLIR(0), - Sub(1), - Unknown(2), - NDD(3), - IDD(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Incoming SIP Calls TON - Remark:(For SIP) Manipulate the type of calling number for a SIP TG. It doesn't take effect when the calling number's attribute is International. It is used for Calling Line Identification Presentation (CLIP) of incoming SIP calls." - ::= { trunkGroupEntry 18 } - - --- Circuit Selection Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.19 - tgCircuitSelectionMode OBJECT-TYPE - SYNTAX INTEGER - { - clockwise(0), - antiClockwise(1), - lowToHigh(128), - highToLow(129) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Circuit Selection - Remark:Circuit selection mode of the traffic channel connections." - DEFVAL { clockwise } - ::= { trunkGroupEntry 19 } - - --- Backoff Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.20 - tgBackoffFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Backoff Flag - Remark:Enable or disable back off when simultaneously select the same channel with the opposite side." - DEFVAL { enable } - ::= { trunkGroupEntry 20 } - - --- Tandem Restriction --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.21 - tgTandemRestriction OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tandem Restriction - Remark:Enable or disable Tandem to allow or prohibit transit calls from PSTN to PSTN via this trunk group." - DEFVAL { enable } - ::= { trunkGroupEntry 21 } - - --- CDR Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.22 - tgCDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable the Call Detail Record generation of this Trunk Group." - DEFVAL { enable } - ::= { trunkGroupEntry 22 } - - --- Trunk Group Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.23 - tgTrunkGroupType OBJECT-TYPE - SYNTAX INTEGER - { - normal(0), - interconnectionForMSS0(16), - interconnectionForMSS1(17) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:TG Type - Remark:Application type of this Trunk Group." - DEFVAL { normal } - ::= { trunkGroupEntry 23 } - - --- Routing Zone ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.24 - tgRoutingZoneID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:RZS ID - Remark:Specify the Trunk Group to a Routing Zone Set. Set 255 to apply this TG in all Routing Zone Sets." - DEFVAL { 0 } - ::= { trunkGroupEntry 24 } - - --- Alternative Routing Trigger --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.17 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.25 - tgAlternativeRoutingTrigger OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Alternative RZS Trigger - Remark:Specify the Trunk Group to an alternative Routing Zone Set for backup purpose.

- 0 = Disable Alternative Routing Zone Set" - DEFVAL { 0 } - ::= { trunkGroupEntry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.26 - tgIgnoreNumberPortabilityInformation OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Ignore MNP Info - Remark:(For MNP) In the MNP port-in processing, enable to ignore the optional parameters in the incoming IAM message." - ::= { trunkGroupEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.27 - tgSignalPortedNumber OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Signal Ported Number - Remark:(For MNP) In the MNP port-out processing, enable to ignore the optional parameters in the outgoing IAM message." - ::= { trunkGroupEntry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.28 - tgNFAS OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NFAS Flag - Remark:(For ISDN) Enable or disable Non-Facility Associated Signaling (NFAS) with D Channel Backup feature." - ::= { trunkGroupEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.29 - tgPrimaryLink OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Primary Link - Remark:(For ISDN) Specify the primary D channel to control multiple trunks." - ::= { trunkGroupEntry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.30 - tgBackupLink OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Backup Link - Remark:(For ISDN) Specify a backup D channel for use when the primary NFAS D channel is unavailable." - ::= { trunkGroupEntry 30 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.31 - tgBSCCodec OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Codec 0[u]00.0-00.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 1[u]01.0-01.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 2[u]02.0-02.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 3[u]03.0-03.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 4[u]04.0-04.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 5[u]05.0-05.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 6[u]06.0-06.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 7[u]07.0-07.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 8[u]08.0-08.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 9[u]09.0-09.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 10[u]10.0-10.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 11[u]11.0-11.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 12[u]12.0-12.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 13[u]13.0-13.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 14[u]14.0-14.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 15[u]15.0-15.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [remark] - Specify the codec type of the BSC. It is available only for circuit BSC.

Entry 0 is the highest priority, entry 13 is the lowest." - ::= { trunkGroupEntry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.32 - tgEchoControlDeviceIndicator OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Echo Control Device Indicator - Remark:Indicate including echo control device in outbound IAM message or not." - ::= { trunkGroupEntry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.33 - tgSatelliteIndicator OBJECT-TYPE - SYNTAX INTEGER - { - noSatelliteCircuit(0), - oneSatelliteCircuit(1), - twoSatelliteCircuit(2), - transit(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the bearing value of the Satellite Indicator in the outgoing ISUP IAM message. For Transit, just adopts the same value from incoming ISUP IAM message." - ::= { trunkGroupEntry 33 } - - --- Trunk --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.18 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.34 - tgCreateEntryTrunk OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { trunkGroupEntry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.35 - tgTrunkEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Entries - Remark:The total number of configured Trunks in this Trunk Group." - ::= { trunkGroupEntry 35 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.19 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.36 - tgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { trunkGroupEntry 36 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.37 - tgEventLog OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroupEntry 37 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.38 - tgExtendProtocolType OBJECT-TYPE - SYNTAX INTEGER - { - none(0), - aoip(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Extend Protocol Type - Remark:Select the extend protocol type for this Trunk Group. Such as AOIP" - ::= { trunkGroupEntry 38 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2 - trunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroup 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1 - trunkEntry OBJECT-TYPE - SYNTAX TrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { trunkIndex, trunkTGIndex } - ::= { trunkTable 1 } - - - TrunkEntry ::= - SEQUENCE { - trunkTGIndex - INTEGER, - trunkIndex - INTEGER, - trunkTitle - DisplayString16, - trunkCreateTimeStamp - TimeStamp, - trunkAdministrationState - AdminStateChoices, - trunkOperabilityStatus - OperStateChoices, - trunkAvailabilityStatus - AvailStateChoices, - trunkMgID - INTEGER, - trunkPortID - INTEGER, - trunkPortType - INTEGER, - trunkGroupID - INTEGER, - trunkSupervisionMethod - INTEGER, - trunkLinkID - INTEGER, - trunkUserNetworkInterface - INTEGER, - trunkCICValueAssignment - INTEGER, - trunkChannelInUse - INTEGER, - trunkChannelEntries - INTEGER, - trunkRowStatus - RowStatus - } - --- Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.1 - trunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:TG Index - Remark:Trunk Group index number for the Trunk." - ::= { trunkEntry 1 } - - --- Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.2 - trunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Trunk index number ranges from 1 to 32." - ::= { trunkEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.3 - trunkTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Trunk name for identification purpose only." - DEFVAL { "TK#" } - ::= { trunkEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.4 - trunkCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Trunk" - ::= { trunkEntry 4 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.5 - trunkAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed Trunk." - ::= { trunkEntry 5 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.6 - trunkOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Oper State - Remark:(Read Only) Indicate the current Trunk operation is qualified by Availability Status." - ::= { trunkEntry 6 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.7 - trunkAvailabilityStatus OBJECT-TYPE - SYNTAX AvailStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Avail State - Remark:(Read Only) Qualify Operation State providing details about the current operational state." - ::= { trunkEntry 7 } - - --- MG ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.8 - trunkMgID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MG ID - Remark:Specify the Trunk to a Media Gateway. Not applicable to virtual MG." - DEFVAL { 0 } - ::= { trunkEntry 8 } - - --- Port ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.9 - trunkPortID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port ID - Remark:Specify the Trunk to a physical port of the selected Media Gateway. Not applicable to virtual MG." - ::= { trunkEntry 9 } - - --- Port Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.10 - trunkPortType OBJECT-TYPE - SYNTAX INTEGER - { - e1(0), - t1(1), - analogue(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port Type - Remark:Specify the type of MG physical ports." - DEFVAL { enable } - ::= { trunkEntry 10 } - - --- Group ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.11 - trunkGroupID OBJECT-TYPE - SYNTAX INTEGER - { - group0(0), - group1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Group ID - Remark:Select the application group for the Trunk.

- Group0 = Master is MSC 0
- Group1 = Master is MSC1" - DEFVAL { group0 } - ::= { trunkEntry 11 } - - --- Typical CIC Assignment Plan --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.12 - trunkSupervisionMethod OBJECT-TYPE - SYNTAX INTEGER - { - circuitGroup(0), - circuit(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Supervision Method - Remark:Specify the type of block request indication delivered in the ISUP trunk initialization process." - DEFVAL { enable } - ::= { trunkEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.13 - trunkLinkID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Link ID - Remark:(For ISDN) Specify the corresponding IUA link ID which is configured in the MTP3 setting." - ::= { trunkEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.14 - trunkUserNetworkInterface OBJECT-TYPE - SYNTAX INTEGER - { - networkSide(0), - userSide(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:User Network Interface - Remark:(For ISDN) Select Q.931 switch type for ISDN call processing." - ::= { trunkEntry 14 } - - --- Typical CIC Value Assignment --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.15 - trunkCICValueAssignment OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CIC Assignment - Remark:Specify the start CIC to the Trunk for typical mode.

- E1 = 0, 32, 64 ...
- T1 = 0, 24, 48 ..." - ::= { trunkEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.16 - trunkChannelInUse OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Channel in Use - Remark:(Read Only) Display the quantity of occupied channels of this trunk in real-time." - ::= { trunkEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.17 - trunkChannelEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Channel Entries - Remark:The total number of configured Channels in this Trunk." - ::= { trunkEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.18 - trunkRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { trunkEntry 18 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3 - channelTable OBJECT-TYPE - SYNTAX SEQUENCE OF ChannelEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroup 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1 - channelEntry OBJECT-TYPE - SYNTAX ChannelEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3" - INDEX { tsTrunkIndex, tsIndex, tsTrunkTGIndex } - ::= { channelTable 1 } - - - ChannelEntry ::= - SEQUENCE { - tsTrunkTGIndex - INTEGER, - tsTrunkIndex - INTEGER, - tsIndex - INTEGER, - tsType - INTEGER, - tsChannelCIC - INTEGER, - tsChannelStatus - INTEGER, - tsLocalBlock - INTEGER, - tsRemoteBlock - INTEGER - } - --- CIC Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.1 - tsTrunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:TG Index - Remark:Trunk Group index number for this Timeslot." - ::= { channelEntry 1 } - - --- CIC Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.2 - tsTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Trunk Index - Remark:Trunk index number for this Timeslot." - ::= { channelEntry 2 } - - --- CIC Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.3 - tsIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Timeslot index number ranges from 1 to 32." - ::= { channelEntry 3 } - - --- CIC Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.4 - tsType OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - incoming(1), - outgoing(2), - bidirectional(3), - leaseLine(4), - dChannel(5), - xChannel(6) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Type - Remark:Specify the type of the channel." - DEFVAL { bidirectiona } - ::= { channelEntry 4 } - - --- Channel CIC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.5 - tsChannelCIC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CIC - Remark:Assign a Circuit Identity Code (CIC) to the channel." - ::= { channelEntry 5 } - - --- Call Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.6 - tsChannelStatus OBJECT-TYPE - SYNTAX INTEGER - { - outOfService(0), - idle(1), - busy(2), - iPALIMUsed(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Status - Remark:(Read Only) The current status of the serving channel." - ::= { channelEntry 6 } - - --- Local Block --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.7 - tsLocalBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblocked(0), - localBlocked(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Local Block - Remark:(Read Only) Display the local block error if the channel is out of service." - ::= { channelEntry 7 } - - --- Remote Block --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.8 - tsRemoteBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblocked(0), - remoteBlocked(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Remote Block - Remark:(Read Only) Display the remote block error if the channel is out of service." - ::= { channelEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5 - locationArea OBJECT IDENTIFIER ::= { parameter 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1 - locationAreaTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocationAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { locationArea 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1 - locationAreaEntry OBJECT-TYPE - SYNTAX LocationAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { laIndex } - ::= { locationAreaTable 1 } - - - LocationAreaEntry ::= - SEQUENCE { - laIndex - INTEGER, - laTitle - DisplayString16, - laCreateTimeStamp - TimeStamp, - laLAC - INTEGER, - laTrunkGroup - INTEGER, - laPageType - INTEGER, - laNumberOfRepeatPaging - INTEGER, - laNITZ - Opaque, - laLocalEmergencyNumber0 - DisplayString16, - laLocalEmergencyNumber1 - DisplayString16, - laLocalEmergencyNumber2 - DisplayString16, - laLocalEmergencyNumber3 - DisplayString16, - laLocalEmergencyNumber4 - DisplayString16, - laLocalEmergencyNumber5 - DisplayString16, - laLocalEmergencyNumber6 - DisplayString16, - laLocalEmergencyNumber7 - DisplayString16, - laCreateEntryCell - INTEGER, - laCellEntries - INTEGER, - laRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.1 - laIndex OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Location Area index number ranges from 1 to 1023." - ::= { locationAreaEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.2 - laTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Location Area name for identification purpose only." - DEFVAL { "LA#" } - ::= { locationAreaEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.3 - laCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Location Area." - ::= { locationAreaEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.4 - laLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LAC - Remark:Specify the Location Area Code of this location area.

- Range = 1 - 65535" - ::= { locationAreaEntry 4 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.5 - laTrunkGroup OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Group - Remark:Specify the serving Trunk Group of this location area." - ::= { locationAreaEntry 5 } - - --- Page Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.6 - laPageType OBJECT-TYPE - SYNTAX INTEGER - { - byLAC(0), - byAllCell(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Paging Mode - Remark:Paging messages broadcast in the specified location area or in the whole network." - DEFVAL { byLAC } - ::= { locationAreaEntry 6 } - - --- Number Of Repeat Paging --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.7 - laNumberOfRepeatPaging OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Repeat Paging Times - Remark:Specify the subsequent paging times if the initial paging fails." - DEFVAL { 2 } - ::= { locationAreaEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.8 - laNITZ OBJECT-TYPE - SYNTAX Opaque (SIZE (35)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NITZ - Remark:Network Identity and Time Zone" - ::= { locationAreaEntry 8 } - - --- Local Emergency Number0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.9 - laLocalEmergencyNumber0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 0 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 9 } - - --- Local Emergency Number1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.10 - laLocalEmergencyNumber1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 1 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 10 } - - --- Local Emergency Number2 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.11 - laLocalEmergencyNumber2 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 2 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 11 } - - --- Local Emergency Number3 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.12 - laLocalEmergencyNumber3 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 3 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 12 } - - --- Local Emergency Number4 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.13 - laLocalEmergencyNumber4 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 4 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 13 } - - --- Local Emergency Number5 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.14 - laLocalEmergencyNumber5 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 5 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 14 } - - --- Local Emergency Number6 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.15 - laLocalEmergencyNumber6 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 6 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 15 } - - --- Local Emergency Number7 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.16 - laLocalEmergencyNumber7 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 7 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 16 } - - --- Cell --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.17 - laCreateEntryCell OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { locationAreaEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.18 - laCellEntries OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Cell Entries - Remark:The total number of configured Cells in this Location Area." - ::= { locationAreaEntry 18 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.19 - laRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { locationAreaEntry 19 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2 - cellTable OBJECT-TYPE - SYNTAX SEQUENCE OF CellEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { locationArea 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1 - cellEntry OBJECT-TYPE - SYNTAX CellEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { cellIndex, cellLAIndex } - ::= { cellTable 1 } - - - CellEntry ::= - SEQUENCE { - cellLAIndex - INTEGER, - cellIndex - INTEGER, - cellTitle - DisplayString16, - cellCreateTimeStamp - TimeStamp, - cellRoutingZoneID - INTEGER, - cellRegionalSubscriptionZoneCode - INTEGER, - cellCellID - INTEGER, - cellLatitude - Opaque, - cellLongitude - Opaque, - cellLocalEmergencyNumber0 - DisplayString16, - cellLocalEmergencyNumber1 - DisplayString16, - cellLocalEmergencyNumber2 - DisplayString16, - cellLocalEmergencyNumber3 - DisplayString16, - cellLocalEmergencyNumber4 - DisplayString16, - cellLocalEmergencyNumber5 - DisplayString16, - cellLocalEmergencyNumber6 - DisplayString16, - cellLocalEmergencyNumber7 - DisplayString16, - cellRowStatus - RowStatus - } - --- Cell Location Area Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.1 - cellLAIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:LA Index - Remark:Location Area index number for this Cell." - ::= { cellEntry 1 } - - --- Cell Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.2 - cellIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Cell index number ranges from 1 to 16." - ::= { cellEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.3 - cellTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Cell name for identification purpose only." - DEFVAL { "CELL#" } - ::= { cellEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.4 - cellCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Cell." - ::= { cellEntry 4 } - - --- Rounting Zone ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.5 - cellRoutingZoneID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:RZS ID - Remark:Specify the Routing Zone Set to this Cell." - DEFVAL { 0 } - ::= { cellEntry 5 } - - --- Regional Subscription Zone Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.6 - cellRegionalSubscriptionZoneCode OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:RSZC - Remark:Assign a Regional Subscription Zone Code (RSZC) to the LAC.

- RSZC = CC + NDC + Zone Code" - DEFVAL { 'FF'h } - ::= { cellEntry 6 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.7 - cellCellID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Cell ID - Remark:Global Cell Identity defined in GSM 03.03.

- Range = 0 - 65535" - ::= { cellEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.8 - cellLatitude OBJECT-TYPE - SYNTAX Opaque (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Latitude[u]00.0-03.7[u]input - [v]toLatitude-formula-pow(2,23)/90 - [remark] - Specify the latitude of this cell for a location service use.

- Range = -90.00 - 90.00" - ::= { cellEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.9 - cellLongitude OBJECT-TYPE - SYNTAX Opaque (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Longitude[u]00.0-03.7[u]input - [v]toLongitude-formula-pow(2,24)/360 - [remark] - Specify the longitude of this cell for a location service use.

- Range = -180.00 - 180.00" - ::= { cellEntry 9 } - - --- Cell Local Emergency Number0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.10 - cellLocalEmergencyNumber0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 0 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 10 } - - --- Cell Local Emergency Number1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.11 - cellLocalEmergencyNumber1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 1 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 11 } - - --- Cell Local Emergency Number2 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.12 - cellLocalEmergencyNumber2 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 2 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 12 } - - --- Cell Local Emergency Number3 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.13 - cellLocalEmergencyNumber3 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 3 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 13 } - - --- Cell Local Emergency Number4 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.14 - cellLocalEmergencyNumber4 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 4 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 14 } - - --- Cell Local Emergency Number5 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.15 - cellLocalEmergencyNumber5 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 5 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 15 } - - --- Cell Local Emergency Number6 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.16 - cellLocalEmergencyNumber6 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 6 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 16 } - - --- Cell Local Emergency Number7 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.17 - cellLocalEmergencyNumber7 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 7 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.18 - cellRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cellEntry 18 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6 - mediaGateway OBJECT IDENTIFIER ::= { parameter 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1 - mediaGatewayTable OBJECT-TYPE - SYNTAX SEQUENCE OF MediaGatewayEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mediaGateway 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1 - mediaGatewayEntry OBJECT-TYPE - SYNTAX MediaGatewayEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { mgIndex } - ::= { mediaGatewayTable 1 } - - - MediaGatewayEntry ::= - SEQUENCE { - mgIndex - INTEGER, - mgTitle - DisplayString16, - mgCreateTimeStamp - TimeStamp, - mgAdministrationState - AdminStateChoices, - mgIP - IpAddress, - mgDomainName - DisplayString16, - mgSwitchingMode - INTEGER, - mgEndPoint - INTEGER, - mgToneGenCapability - INTEGER, - mgType - INTEGER, - mgMaxPhysicalPorts - INTEGER, - mgMaxChannels - INTEGER, - mgPacketizationPeriod - INTEGER, - mgPriorityLevel - INTEGER, - mgCodecType - Opaque, - mgAuditTimer - INTEGER, - mgPhysicalPortEntries - INTEGER, - mgRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.1 - mgIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Media Gateway index number ranges from 1 to 255." - ::= { mediaGatewayEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.2 - mgTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Media Gateway name for identification purpose only." - DEFVAL { "MG#" } - ::= { mediaGatewayEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.3 - mgCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the MG entry." - ::= { mediaGatewayEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.4 - mgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed Media Gateway." - ::= { mediaGatewayEntry 4 } - - --- IP --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.5 - mgIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP - Remark:IP address of the Media Gateway." - ::= { mediaGatewayEntry 5 } - - --- Domain Name --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.6 - mgDomainName OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Domain Name - Remark:Specify a domain name to the Media Gateway." - ::= { mediaGatewayEntry 6 } - - --- Switching Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.7 - mgSwitchingMode OBJECT-TYPE - SYNTAX INTEGER - { - mgcp(0), - eightECP(1), - megaco(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Switching Mode - Remark:Select the switching mode of the specific Media Gateway.

- 8ECP = Circuit Switch (8KE1 Card)
- MGCP = Soft Switch" - DEFVAL { mgcp } - ::= { mediaGatewayEntry 7 } - - --- End Point Description --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.8 - mgEndPoint OBJECT-TYPE - SYNTAX INTEGER - { - structured(1), - unStructured(2), - unStructuredHex(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Endpoint - Remark:Specify the method of MGCP endpoint description." - DEFVAL { structured } - ::= { mediaGatewayEntry 8 } - - --- Tone Gen Capability --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.9 - mgToneGenCapability OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tone Generation Capacity - Remark:Enable if the Media Gateway has tone generation capability." - DEFVAL { enable } - ::= { mediaGatewayEntry 9 } - - --- MG Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.10 - mgType OBJECT-TYPE - SYNTAX INTEGER - { - audioCodes(1), - lgcMG(2), - lgcCS(3), - ipBSS(4), - analogLine(11), - vim(19), - tandem(20), - announcementServer(21), - iuupGW(23), - interactiveVoiceResponse(31), - conferenceBridge(41), - packetRelay(51), - wiretap(61), - atm(71) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Type - Remark:Select the type of Media Gateway endpoint." - DEFVAL { digitalChannel } - ::= { mediaGatewayEntry 10 } - - --- Max Physical Ports --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.11 - mgMaxPhysicalPorts OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Ports - Remark:The total physical port number of the Media Gateway. Not applicable to virtual MG." - ::= { mediaGatewayEntry 11 } - - --- Max Channels --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.12 - mgMaxChannels OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Channels - Remark:The total channel number of the virtual Media Gateway. Applicable to virtual MG only." - ::= { mediaGatewayEntry 12 } - - --- Packetization Period --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.13 - mgPacketizationPeriod OBJECT-TYPE - SYNTAX INTEGER - { - x20ms(20), - x40ms(40), - x60ms(60), - x80ms(80) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Packetization Period - Remark:The period over which encoded voice bits are collected for encapsulation in." - DEFVAL { x20ms } - ::= { mediaGatewayEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.14 - mgPriorityLevel OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Priority Level - Remark:Set the priority level of the MG codec table:

- 0 = Lowest priority level
- 255 = Highest priority level" - ::= { mediaGatewayEntry 14 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.15 - mgCodecType OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Codec 0[u]00.0-00.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 1[u]01.0-01.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 2[u]02.0-02.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 3[u]03.0-03.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 4[u]04.0-04.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 5[u]05.0-05.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 6[u]06.0-06.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 7[u]07.0-07.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 8[u]08.0-08.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 9[u]09.0-09.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 10[u]10.0-10.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 11[u]11.0-11.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 12[u]12.0-12.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 13[u]13.0-13.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 14[u]14.0-14.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 15[u]15.0-15.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [remark] - Specify the codec type of the Media Gateway. Entry 0 is the highest priority, entry 13 is the lowest." - ::= { mediaGatewayEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.16 - mgAuditTimer OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Audit Timer - Remark:The time interval between sending AUEP message from MGC to MGW to check the trunk status. Unit is second." - ::= { mediaGatewayEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.17 - mgPhysicalPortEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Port Entries - Remark:The total number of the configured physical Ports of this Media Gateway." - ::= { mediaGatewayEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.18 - mgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mediaGatewayEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2 - physicalPortTable OBJECT-TYPE - SYNTAX SEQUENCE OF PhysicalPortEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mediaGateway 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1 - physicalPortEntry OBJECT-TYPE - SYNTAX PhysicalPortEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { ppIndex, ppMGIndex } - ::= { physicalPortTable 1 } - - - PhysicalPortEntry ::= - SEQUENCE { - ppMGIndex - INTEGER, - ppIndex - INTEGER, - ppUsedFlag - INTEGER, - ppStatus - INTEGER, - ppSeizure - OCTET STRING - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.1 - ppMGIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:MG Index - Remark:Media Gateway index number for this physical Port." - ::= { physicalPortEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.2 - ppIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Port index number ranges from 1 to 32." - ::= { physicalPortEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.3 - ppUsedFlag OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - inUse(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Used Flag - Remark:(Read Only) This field indicates whether the port is in service." - ::= { physicalPortEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.4 - ppStatus OBJECT-TYPE - SYNTAX INTEGER - { - notReady(0), - ready(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Status - Remark:(Read Only) The availability status of the physical port." - ::= { physicalPortEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.5 - ppSeizure OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - RelationPoint:2.4.2.1 - Remark:(Read Only) Hyperlink of the related Trunk Group and Trunk." - ::= { physicalPortEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3 - csta OBJECT IDENTIFIER ::= { msc 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3 - tgIncomingTable OBJECT-TYPE - SYNTAX SEQUENCE OF TgIncomingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1 - tgIncomingEntry OBJECT-TYPE - SYNTAX TgIncomingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { tgIncomingTgndex, tgIncomingIndex } - ::= { tgIncomingTable 1 } - - - TgIncomingEntry ::= - SEQUENCE { - tgIncomingTgndex - INTEGER, - tgIncomingIndex - INTEGER, - tgIncomingData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1.1 - tgIncomingTgndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { tgIncomingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1.2 - tgIncomingIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgIncomingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1.3 - tgIncomingData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgIncomingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4 - tgOutgoingTable OBJECT-TYPE - SYNTAX SEQUENCE OF TgOutgoingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1 - tgOutgoingEntry OBJECT-TYPE - SYNTAX TgOutgoingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { tgOutgoingTgIndex, tgOutgoingIndex } - ::= { tgOutgoingTable 1 } - - - TgOutgoingEntry ::= - SEQUENCE { - tgOutgoingTgIndex - INTEGER, - tgOutgoingIndex - INTEGER, - tgOutgoingData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1.1 - tgOutgoingTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { tgOutgoingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1.2 - tgOutgoingIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgOutgoingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1.3 - tgOutgoingData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgOutgoingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5 - subsToSubsTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubsToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5.1 - subsToSubsEntry OBJECT-TYPE - SYNTAX SubsToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { subsToSubsIndex } - ::= { subsToSubsTable 1 } - - - SubsToSubsEntry ::= - SEQUENCE { - subsToSubsIndex - INTEGER, - subsToSubsData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5.1.1 - subsToSubsIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToSubsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5.1.2 - subsToSubsData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToSubsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6 - subsToTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubsToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6.1 - subsToTrunkEntry OBJECT-TYPE - SYNTAX SubsToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { subsToTrunkIndex } - ::= { subsToTrunkTable 1 } - - - SubsToTrunkEntry ::= - SEQUENCE { - subsToTrunkIndex - INTEGER, - subsToTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6.1.1 - subsToTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6.1.2 - subsToTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7 - trunkToSubsTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7.1 - trunkToSubsEntry OBJECT-TYPE - SYNTAX TrunkToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { trunkToSubsIndex } - ::= { trunkToSubsTable 1 } - - - TrunkToSubsEntry ::= - SEQUENCE { - trunkToSubsIndex - INTEGER, - trunkToSubsData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7.1.1 - trunkToSubsIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToSubsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7.1.2 - trunkToSubsData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToSubsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8 - trunkToTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8.1 - trunkToTrunkEntry OBJECT-TYPE - SYNTAX TrunkToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { trunkToTrunkIndex } - ::= { trunkToTrunkTable 1 } - - - TrunkToTrunkEntry ::= - SEQUENCE { - trunkToTrunkIndex - INTEGER, - trunkToTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8.1.1 - trunkToTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8.1.2 - trunkToTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9 - intraconnectionTable OBJECT-TYPE - SYNTAX SEQUENCE OF IntraconnectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9.1 - intraconnectionEntry OBJECT-TYPE - SYNTAX IntraconnectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { intraconnectionIndex } - ::= { intraconnectionTable 1 } - - - IntraconnectionEntry ::= - SEQUENCE { - intraconnectionIndex - INTEGER, - intraconnectionData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9.1.1 - intraconnectionIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { intraconnectionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9.1.2 - intraconnectionData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { intraconnectionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10 - subsToIpTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubsToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10.1 - subsToIpEntry OBJECT-TYPE - SYNTAX SubsToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { subsToIpIndex } - ::= { subsToIpTable 1 } - - - SubsToIpEntry ::= - SEQUENCE { - subsToIpIndex - INTEGER, - subsToIpData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10.1.1 - subsToIpIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToIpEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10.1.2 - subsToIpData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToIpEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11 - trunkToIpTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11.1 - trunkToIpEntry OBJECT-TYPE - SYNTAX TrunkToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { trunkToIpIndex } - ::= { trunkToIpTable 1 } - - - TrunkToIpEntry ::= - SEQUENCE { - trunkToIpIndex - INTEGER, - trunkToIpData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11.1.1 - trunkToIpIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToIpEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11.1.2 - trunkToIpData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToIpEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12 - mobileOriginatedTable OBJECT-TYPE - SYNTAX SEQUENCE OF MobileOriginatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12.1 - mobileOriginatedEntry OBJECT-TYPE - SYNTAX MobileOriginatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mobileOriginatedIndex } - ::= { mobileOriginatedTable 1 } - - - MobileOriginatedEntry ::= - SEQUENCE { - mobileOriginatedIndex - INTEGER, - mobileOriginatedData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12.1.1 - mobileOriginatedIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileOriginatedEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12.1.2 - mobileOriginatedData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileOriginatedEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13 - mobileTerminatedTable OBJECT-TYPE - SYNTAX SEQUENCE OF MobileTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13.1 - mobileTerminatedEntry OBJECT-TYPE - SYNTAX MobileTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mobileTerminatedIndex } - ::= { mobileTerminatedTable 1 } - - - MobileTerminatedEntry ::= - SEQUENCE { - mobileTerminatedIndex - INTEGER, - mobileTermiginatedData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13.1.1 - mobileTerminatedIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileTerminatedEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13.1.2 - mobileTermiginatedData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileTerminatedEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14 - inTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF InTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14.1 - inTrunkEntry OBJECT-TYPE - SYNTAX InTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { inTrunkIndex } - ::= { inTrunkTable 1 } - - - InTrunkEntry ::= - SEQUENCE { - inTrunkIndex - INTEGER, - inTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14.1.1 - inTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { inTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14.1.2 - inTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { inTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15 - outTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF OutTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15.1 - outTrunkEntry OBJECT-TYPE - SYNTAX OutTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { outTrunkIndex } - ::= { outTrunkTable 1 } - - - OutTrunkEntry ::= - SEQUENCE { - outTrunkIndex - INTEGER, - outTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15.1.1 - outTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { outTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15.1.2 - outTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { outTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16 - ipTerminatedTable OBJECT-TYPE - SYNTAX SEQUENCE OF IpTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16.1 - ipTerminatedEntry OBJECT-TYPE - SYNTAX IpTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ipTermiginatedIndex } - ::= { ipTerminatedTable 1 } - - - IpTerminatedEntry ::= - SEQUENCE { - ipTermiginatedIndex - INTEGER, - ipTermiginatedData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16.1.1 - ipTermiginatedIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ipTerminatedEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16.1.2 - ipTermiginatedData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ipTerminatedEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4 - cdr OBJECT IDENTIFIER ::= { msc 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - - END - --- --- LGC-SS-MSC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MSC-MIB_baknew.my b/omc/bin/mib/LGC-SS-MSC-MIB_baknew.my deleted file mode 100644 index 14c4c8e..0000000 --- a/omc/bin/mib/LGC-SS-MSC-MIB_baknew.my +++ /dev/null @@ -1,4932 +0,0 @@ --- --- LGC-SS-MSC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Tuesday, March 20, 2012 at 10:02:43 --- - - LGC-SS-MSC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, TimeStamp, RowStatus, DisplayString8, - DisplayString, AdminStateChoices, OperStateChoices - FROM LGC-MIB - IpAddress, Opaque, Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.1 - msc MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 1 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { msc 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2 - parameter OBJECT IDENTIFIER ::= { msc 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.1 - cDROption OBJECT-TYPE - SYNTAX Opaque (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]MO Call[u]00.0-00.0[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MT Call[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]In Gateway[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Out Gateway[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MO SMS[u]00.4-00.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MT SMS[u]00.5-00.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Transit Call[u]00.6-00.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Roaming[u]00.7-00.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Reserved[u]01.0-01.0[u]select - [unit]Common Equipment[u]01.1-01.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]SS Action[u]01.2-01.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Term CAMEL[u]01.3-01.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI White List[u]01.4-01.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI Black List[u]01.5-01.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI Grey List[u]01.6-01.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]IMEI Unknown[u]01.7-01.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Reserved[u]02.0-02.7[u]select - [unit]Reserved[u]03.0-03.7[u]select - [remark]Control the Call Detail Record generation for different call types." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.2 - maxCallDurationMO OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MO Max Call Duration - Remark:Define the permitted maximum call duration for MO call. Any ongoing call reaching this threshold will be compulsively cut off.

- Set 0 to disable this function." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.3 - maxCallDurationMT OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MT Max Call Duration - Remark:Define the permitted maximum call duration for MT call. Any incoming call reaching this threshold will be compulsively cut off.

- Set 0 to disable this function." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.4 - locationNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Location Number - Remark:Specify the location routing number for MNP service." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.5 - suspendTimer OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Suspend Timer - Remark:If receives ISUP SUSPEND message in an ISUP call, then start the suspend timer to wait for the ISUP RESUME message. If time out, then send RELEASE to ISUP. Unit is second." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.6 - emlppPciOption OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:eMLPP PCI Option - OPAQUE DECODE RULE: - [unit]Reserved[u]00.0-00.0[u]select - [unit]Level A[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level B[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 0[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 1[u]00.4-00.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 2[u]00.5-00.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 3[u]00.6-00.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 4[u]00.7-00.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [remark] - The enhanced Multi-Level Precedence and Preemption (eMLPP) service provides the capability to classify the mobile subscribers according to a subscriber specific priority.

The Preemption Capability Indicator (PCI) is set when the traffic channel to be assigned may preempt (forced release) an existing connection with a lower priority level (active preemption)." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.7 - emlppPviOption OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:eMLPP PVI Option - OPAQUE DECODE RULE: - [unit]Reserved[u]00.0-00.0[u]select - [unit]Level A[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level B[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 0[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 1[u]00.4-00.4[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 2[u]00.5-00.5[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 3[u]00.6-00.6[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Level 4[u]00.7-00.7[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [remark] - The enhanced Multi-Level Precedence and Preemption (eMLPP) service provides the capability to classify the mobile subscribers according to a subscriber specific priority.

The Preemption Vulnerability Indicator (PVI) is set when the traffic channel to be assigned can be preempted by another connection that might be established later with a higher priority level (passive preemption)." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.8 - assignmentTimer OBJECT-TYPE - SYNTAX INTEGER (10..250) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Assignment Timer - Remark:Specify the maximum waiting time for receiving Assignment Complete message after the Assignment Request message has been sent. Unit is 100ms." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.9 - pagingTimer OBJECT-TYPE - SYNTAX INTEGER (10..40) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Paging Timer - Remark:Specify the maximum waiting time for receiving Paging Response message after the Paging message has been sent. Unit is 1 second." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.1.10 - splitEtcNumber OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Split ETC Number - Remark:Allow or forbid splitting the Correlation ID and SCF ID in the Establish Temporary Connection message." - ::= { system 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2 - routingZoneSet OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1 - routingZoneSetTable OBJECT-TYPE - SYNTAX SEQUENCE OF RoutingZoneSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routingZoneSet 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1 - routingZoneSetEntry OBJECT-TYPE - SYNTAX RoutingZoneSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { rzsIndex } - ::= { routingZoneSetTable 1 } - - - RoutingZoneSetEntry ::= - SEQUENCE { - rzsIndex - INTEGER, - rzsTitle - DisplayString16, - rzsCreateTimeStamp - TimeStamp, - rzsDialingPrefixSetID - INTEGER, - rzsAnnouncementSetID - INTEGER, - rzsMSRNRangeStart - DisplayString16, - rzsMSRNRangeEnd - DisplayString16, - rzsSRFNumber0 - DisplayString16, - rzsSRFNumber1 - DisplayString16, - rzsCreateEntryRoutingSelection - INTEGER, - rzsRoutingSelectionEntries - INTEGER, - rzsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.1 - rzsIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing Zone Set index number ranges from 1 to 31." - ::= { routingZoneSetEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.2 - rzsTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing Zone Set name for identification purpose only." - DEFVAL { "RZS#" } - ::= { routingZoneSetEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.3 - rzsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Routing Zone Set." - ::= { routingZoneSetEntry 3 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.4 - rzsDialingPrefixSetID OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Dialing Prefix Set ID - Remark:Specify the Dialing Prefix Set to this Routing Zone Set." - DEFVAL { 0 } - ::= { routingZoneSetEntry 4 } - - --- Announcement(CUA) Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.5 - rzsAnnouncementSetID OBJECT-TYPE - SYNTAX INTEGER (0..256) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Announcement Set ID - Remark:Specify the Announcement Set to this Routing Zone Set." - ::= { routingZoneSetEntry 5 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.6 - rzsMSRNRangeStart OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSRN Start - Remark:The beginning of the MSRN range for this Routing Zone Set." - ::= { routingZoneSetEntry 6 } - - --- MSRN Range End --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.7 - rzsMSRNRangeEnd OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSRN End - Remark:The end of the MSRN range for this Routing Zone Set." - ::= { routingZoneSetEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.8 - rzsSRFNumber0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SRF 0 Number - Remark:The E.164 node address of the SRF connecting to MSS platform 0." - ::= { routingZoneSetEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.9 - rzsSRFNumber1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SRF 1 Number - Remark:The E.164 node address of the SRF connecting to MSS platform 1." - ::= { routingZoneSetEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.10 - rzsCreateEntryRoutingSelection OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { routingZoneSetEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.11 - rzsRoutingSelectionEntries OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Routing Selection Entries - Remark:The total number of configured Routing Selections in this Routing Zone Set." - ::= { routingZoneSetEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.1.1.12 - rzsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { routingZoneSetEntry 12 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2 - routingSelectionTable OBJECT-TYPE - SYNTAX SEQUENCE OF RoutingSelectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routingZoneSet 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1 - routingSelectionEntry OBJECT-TYPE - SYNTAX RoutingSelectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { rsIndex, rsRZSIndex } - ::= { routingSelectionTable 1 } - - - RoutingSelectionEntry ::= - SEQUENCE { - rsRZSIndex - INTEGER, - rsIndex - INTEGER, - rsTitle - DisplayString16, - rsCreateTimeStamp - TimeStamp, - rsTrunkGroup - INTEGER, - rsAlternativeTrunkGroupOption - INTEGER, - rsAlternativeTrunkGroup - INTEGER, - rsNAIForOutgoingCall - INTEGER, - rsNumberOfDigitDeletion - INTEGER, - rsInsertionNumber - DisplayString16, - rsRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.1 - rsRZSIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:RSZ Index - Remark:Routing Zone Set Index for the Routing Selection." - ::= { routingSelectionEntry 1 } - - --- Route Selection Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.2 - rsIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing Selection index number range from 1 to 31." - ::= { routingSelectionEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.3 - rsTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing Selection name for identification purpose only." - DEFVAL { "RS#" } - ::= { routingSelectionEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.4 - rsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Routing Selection." - ::= { routingSelectionEntry 4 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.5 - rsTrunkGroup OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Group - Remark:Select the Trunk Group for the outgoing routing." - DEFVAL { 0 } - ::= { routingSelectionEntry 5 } - - --- Alternative Trunk Group Option --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.6 - rsAlternativeTrunkGroupOption OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative TG Flag - Remark:Enable or disable alternative Trunk Group when the primary Trunk Group is unavailable." - DEFVAL { disable } - ::= { routingSelectionEntry 6 } - - --- Alternative Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.7 - rsAlternativeTrunkGroup OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative TG - Remark:Specify the alternative Trunk Group. It's available only when the previous Alternative TG Flag is enabled." - DEFVAL { 0 } - ::= { routingSelectionEntry 7 } - - --- NAI For Outgoing Call --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.8 - rsNAIForOutgoingCall OBJECT-TYPE - SYNTAX INTEGER - { - sub(1), - unknown(2), - ndd(3), - idd(4), - UKSpecific(126) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NAI for Outgoing Call - Remark:Select the required Network Address Identifier (NAI). The NAI option enables the MSC to perform call routing." - ::= { routingSelectionEntry 8 } - - --- Number Of Digit Deletion --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.9 - rsNumberOfDigitDeletion OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Deletion Count - Remark:Number of digits to be deleted from the beginning of the dialed number." - DEFVAL { 0 } - ::= { routingSelectionEntry 9 } - - --- Insertion Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.10 - rsInsertionNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Inserted Digits - Remark:The digits to be inserted to the front of the dialed number." - DEFVAL { "FFFFFFFFFFFFFFFF" } - ::= { routingSelectionEntry 10 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.2.2.1.11 - rsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { routingSelectionEntry 11 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3 - dialingPrefixSet OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1 - dialingPrefixSetTable OBJECT-TYPE - SYNTAX SEQUENCE OF DialingPrefixSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { dialingPrefixSet 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1 - dialingPrefixSetEntry OBJECT-TYPE - SYNTAX DialingPrefixSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { dpsIndex } - ::= { dialingPrefixSetTable 1 } - - - DialingPrefixSetEntry ::= - SEQUENCE { - dpsIndex - INTEGER, - dpsTitle - DisplayString16, - dpsCreateTimeStamp - TimeStamp, - dpsCC - DisplayString8, - dpsNDC - DisplayString8, - dpsInternationalPrefix - DisplayString8, - dpsNationalPrefix - DisplayString8, - dpsHPLMNCC0 - DisplayString16, - dpsHPLMNCC1 - DisplayString16, - dpsHPLMNCC2 - DisplayString16, - dpsHPLMNCC3 - DisplayString16, - dpsHPLMNCC4 - DisplayString16, - dpsHPLMNCC5 - DisplayString16, - dpsHPLMNCC6 - DisplayString16, - dpsHPLMNCC7 - DisplayString16, - dpsNumberPlanArea - DisplayString8, - dpsCreateEntryDialingPrefix - INTEGER, - dpsDialingPrefixEntries - INTEGER, - dpsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.1 - dpsIndex OBJECT-TYPE - SYNTAX INTEGER (1..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Dialing Prefix Set index number ranges from 1 to 15." - ::= { dialingPrefixSetEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.2 - dpsTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Dialing Prefix Set name for identification purpose only." - DEFVAL { "DPS#" } - ::= { dialingPrefixSetEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.3 - dpsCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Dialing Prefix Set." - ::= { dialingPrefixSetEntry 3 } - - --- Country Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.4 - dpsCC OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CC - Remark:Country Code identifies the country's network." - ::= { dialingPrefixSetEntry 4 } - - --- National Destination Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.5 - dpsNDC OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NDC - Remark:National Destination Code defines the national calling area or national network to which the subscriber belongs." - ::= { dialingPrefixSetEntry 5 } - - --- International Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.6 - dpsInternationalPrefix OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:International Prefix - Remark:Access code for international network." - ::= { dialingPrefixSetEntry 6 } - - --- National Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.7 - dpsNationalPrefix OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:National Prefix - Remark:National prefix for the operating country to make a national call." - DEFVAL { "0" } - ::= { dialingPrefixSetEntry 7 } - - --- HPLMN CC0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.8 - dpsHPLMNCC0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 0 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 8 } - - --- HPLMN CC1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.9 - dpsHPLMNCC1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 1 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 9 } - - --- HPLMN CC2 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.10 - dpsHPLMNCC2 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 2 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 10 } - - --- HPLMN CC3 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.11 - dpsHPLMNCC3 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 3 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 11 } - - --- HPLMN CC4 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.12 - dpsHPLMNCC4 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 4 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 12 } - - --- HPLMN CC5 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.13 - dpsHPLMNCC5 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 5 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 13 } - - --- HPLMN CC6 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.14 - dpsHPLMNCC6 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 6 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 14 } - - --- HPLMN CC7 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.15 - dpsHPLMNCC7 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:HPLMN CC 7 - Remark:Assign up to 8 Country Code to the home PLMN." - ::= { dialingPrefixSetEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.16 - dpsNumberPlanArea OBJECT-TYPE - SYNTAX DisplayString8 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Number Plan Area - Remark:Specify number plan area number for MNP outbound." - ::= { dialingPrefixSetEntry 16 } - - --- Dialing Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.17 - dpsCreateEntryDialingPrefix OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { dialingPrefixSetEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.18 - dpsDialingPrefixEntries OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Dialing Prefix Entries - Remark:The total number of the configured Dialing Prefixes in this Dialing Prefix Set." - ::= { dialingPrefixSetEntry 18 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.17 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.1.1.19 - dpsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { dialingPrefixSetEntry 19 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2 - dialingPrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF DialingPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { dialingPrefixSet 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1 - dialingPrefixEntry OBJECT-TYPE - SYNTAX DialingPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { dpIndex, dpDPSIndex } - ::= { dialingPrefixTable 1 } - - - DialingPrefixEntry ::= - SEQUENCE { - dpDPSIndex - INTEGER, - dpIndex - INTEGER, - dpTitle - DisplayString16, - dpLookupMethod - INTEGER, - dpCallNumberPrefix - DisplayString16, - dpStartNumber - DisplayString16, - dpEndNumber - DisplayString16, - dpCallNumberAttribute - INTEGER, - dpAdministrationState - AdminStateChoices, - dpCallNumberLength - INTEGER, - dpServiceType - INTEGER, - dpEmergencyType - INTEGER, - dpServiceKey - INTEGER, - dpNumberType - INTEGER, - dpCLIType - INTEGER, - dpRSC - INTEGER, - dpCDRFlag - INTEGER, - dpOptionForSRFMNP - INTEGER, - dpMSCOptionForINMNP - INTEGER, - dpGMSCOptionForINMNP - INTEGER, - dpPremiumCall - INTEGER, - dpOSB1Flag - INTEGER, - dpOSB2Flag - INTEGER, - dpNAIForOutgoingCall - INTEGER, - dpPSTNNumberOfDigitDeletion - INTEGER, - dpPSTNInsertionNumber - DisplayString16, - dpE164NumberOfDigitDeletion - INTEGER, - dpE164InsertionNumber - DisplayString16, - dpRowStatus - RowStatus - } - --- DP DPS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.1 - dpDPSIndex OBJECT-TYPE - SYNTAX INTEGER (1..15) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:DPS Index - Remark:Dialing Prefix Set index number for this Dialing Prefix." - ::= { dialingPrefixEntry 1 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.2 - dpIndex OBJECT-TYPE - SYNTAX INTEGER (1..1024) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Dialing Prefix index number ranges from 1 to 1024." - ::= { dialingPrefixEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.3 - dpTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Dialing Prefix name for identification purpose only." - ::= { dialingPrefixEntry 3 } - - --- Lookup Method --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.4 - dpLookupMethod OBJECT-TYPE - SYNTAX INTEGER - { - prefixLookup(0), - groupLookup(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Lookup Method - Remark:Select a dialing plan lookup method. Group Lookup Method has a higher priority than Prefix Lookup Method." - DEFVAL { prefix } - ::= { dialingPrefixEntry 4 } - - --- Call Number Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.5 - dpCallNumberPrefix OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:A combination digits that dial to originate a call. It's only valid when the lookup method selected Prefix." - ::= { dialingPrefixEntry 5 } - - --- Start Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.6 - dpStartNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Group Prefix Start - Remark:The beginning of the group prefix range. It's only valid when the lookup method selected Group." - ::= { dialingPrefixEntry 6 } - - --- End Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.7 - dpEndNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Group Prefix End - Remark:The end of the group prefix range. Start prefix and end prefix must have the same length." - ::= { dialingPrefixEntry 7 } - - --- Call Number Attribute --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.8 - dpCallNumberAttribute OBJECT-TYPE - SYNTAX INTEGER - { - sub(1), - unknown(2), - ndd(3), - idd(4), - UKSpecific(126) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Attribute - Remark:The original type of the incoming number. It is specified by originating node for terminating node to route this call with proper dialed number manipulation." - ::= { dialingPrefixEntry 8 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.9 - dpAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:The state of the current Dialing Prefix entry." - ::= { dialingPrefixEntry 9 } - - --- Call Number Length --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.10 - dpCallNumberLength OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Number Length - Remark:The length of the dialed number. Set 0 for uncertain length." - DEFVAL { 0 } - ::= { dialingPrefixEntry 10 } - - --- Service Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.11 - dpServiceType OBJECT-TYPE - SYNTAX INTEGER - { - normalCall(0), - emergencyCall(1), - intelligentCall(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Type - Remark:Service type of the outgoing call:

- Normal = No verification for MT
- Emergency Call = No verification for MO (free call)
- Intelligent Call = Calls to intelligent peripheral" - DEFVAL { normalCall } - ::= { dialingPrefixEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.12 - dpEmergencyType OBJECT-TYPE - SYNTAX INTEGER - { - zero(0), - one(1), - two(2), - three(3), - four(4), - five(5), - six(6), - seven(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Type - Remark:Specify index number which associated with the 8 emergency call numbers in Location Area or Cell setting." - DEFVAL { zero } - ::= { dialingPrefixEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.13 - dpServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Service Key - Remark:Specify service hot key which associated with the service key configuration in the PPS SRF setting." - ::= { dialingPrefixEntry 13 } - - --- Number Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.14 - dpNumberType OBJECT-TYPE - SYNTAX INTEGER - { - msisdn(0), - msrn(1), - pstn(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Type - Remark:It determines how the numbers are sent out." - DEFVAL { msisdn } - ::= { dialingPrefixEntry 14 } - - --- CLI Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.15 - dpCLIType OBJECT-TYPE - SYNTAX INTEGER - { - sub(0), - ndd(1), - idd(2), - unknownSub(3), - unknownNdd(4), - unknownIdd(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CLI Type - Remark:It determines the format of the Caller Line ID (CLI).

- Sub = Unknown(Sub) = SN
- NDD = NDC+SN
- Unknown(NDD) = Nat Prefix+NDC+SN
- IDD = +CC+NDC+SN
- Unknown(IDD) = Int Prefix+CC+NDC+SN" - DEFVAL { ndd } - ::= { dialingPrefixEntry 15 } - - --- Routing Selection Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.16 - dpRSC OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Routing Selection ID - Remark:Specify the Routing Selection ID to this Dialing Prefix." - DEFVAL { 0 } - ::= { dialingPrefixEntry 16 } - - --- CDR Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.17 - dpCDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable the Call Detail Record generation of this prefix." - DEFVAL { enable } - ::= { dialingPrefixEntry 17 } - - --- MNP Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.18 - dpOptionForSRFMNP OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - portableNumber(1), - portedNumber(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SRF-MNP Flag - Remark:Enable if this prefix relating to SRF MNP service." - DEFVAL { disable } - ::= { dialingPrefixEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.19 - dpMSCOptionForINMNP OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - OQoD(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IN-MNP Flag (MSC) - Remark:Enable or disable IN MNP service when the system performs as an MSC." - ::= { dialingPrefixEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.20 - dpGMSCOptionForINMNP OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - TQoD(1), - QoHR(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IN-MNP Flag (GMSC) - Remark:Enable or disable IN MNP service when the system performs as a GMSC." - ::= { dialingPrefixEntry 20 } - - --- Premium Call --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.21 - dpPremiumCall OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - information(1), - entertainment(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Premium Call Flag - Remark:Enable if this prefix relating to Premium Call service." - DEFVAL { disable } - ::= { dialingPrefixEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.22 - dpOSB1Flag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OSB 1 Flag - Remark:Subscribers with OSB type 1 can only make calls to this dialing prefix with Call Allow Flag enabled." - DEFVAL { disable } - ::= { dialingPrefixEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.23 - dpOSB2Flag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OSB 2 Flag - Remark:Subscribers with OSB type 2 can't make calls to this dialing prefix with Call Bar Flag enabled." - DEFVAL { disable } - ::= { dialingPrefixEntry 23 } - - --- NAI For Outgoing Call --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.24 - dpNAIForOutgoingCall OBJECT-TYPE - SYNTAX INTEGER - { - sub(1), - unknown(2), - ndd(3), - idd(4), - UKSpecific(126) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NAI for Outgoing Call - Remark:Select the required Network Address Identifier (NAI). The transformed incoming number will be routed to the associated trunk group." - ::= { dialingPrefixEntry 24 } - - --- PSTN Number Of Digit Deletion --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.25 - dpPSTNNumberOfDigitDeletion OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PSTN Deletion Count - Remark:Number of digits to be deleted from the beginning of the dialed number." - DEFVAL { 0 } - ::= { dialingPrefixEntry 25 } - - --- PSTN Insertion Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.26 - dpPSTNInsertionNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PSTN Inserted Digits - Remark:Digits of the number to be added to the front of the dialed number." - DEFVAL { 'FFFFFFFFFFFFFFFF'h } - ::= { dialingPrefixEntry 26 } - - --- E164 Number Of Digit Deletion --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.17 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.27 - dpE164NumberOfDigitDeletion OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:E.164 Deletion Count - Remark:Number of digits to be deleted from the beginning of the incoming number." - ::= { dialingPrefixEntry 27 } - - --- E164 Insertion Number --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.18 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.28 - dpE164InsertionNumber OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:E.164 Inserted Digits - Remark:Digits of the number to be added to the front of the incoming number to convert it to an international E.164 format." - DEFVAL { 'FFFFFFFFFFFFFFFF'h } - ::= { dialingPrefixEntry 28 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.19 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.3.2.1.29 - dpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { dialingPrefixEntry 29 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4 - trunkGroup OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1 - trunkGroupTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkGroupEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroup 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1 - trunkGroupEntry OBJECT-TYPE - SYNTAX TrunkGroupEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { tgIndex } - ::= { trunkGroupTable 1 } - - - TrunkGroupEntry ::= - SEQUENCE { - tgIndex - INTEGER, - tgTitle - DisplayString16, - tgCreateTimeStamp - TimeStamp, - tgAdministrationState - AdminStateChoices, - tgOperabilityStatus - OperStateChoices, - tgAvailabilityStatus - AvailStateChoices, - tgOPC - INTEGER, - tgDPC - INTEGER, - tgNetworkIndicator - INTEGER, - tgProtocolType - INTEGER, - tgProtocolVariant - INTEGER, - tgLocalDomain - OCTET STRING, - tgDestDomain - OCTET STRING, - tgDestIP0 - IpAddress, - tgDestIP1 - IpAddress, - tgDestPort - INTEGER, - tgRemoteProcessISUP - INTEGER, - tgTONIncomingSIPCall - INTEGER, - tgCircuitSelectionMode - INTEGER, - tgBackoffFlag - INTEGER, - tgTandemRestriction - INTEGER, - tgCDRFlag - INTEGER, - tgTrunkGroupType - INTEGER, - tgRoutingZoneID - INTEGER, - tgAlternativeRoutingTrigger - INTEGER, - tgIgnoreNumberPortabilityInformation - INTEGER, - tgSignalPortedNumber - INTEGER, - tgNFAS - INTEGER, - tgPrimaryLink - INTEGER, - tgBackupLink - INTEGER, - tgBSCCodec - Opaque, - tgEchoControlDeviceIndicator - INTEGER, - tgSatelliteIndicator - INTEGER, - tgCreateEntryTrunk - INTEGER, - tgTrunkEntries - INTEGER, - tgRowStatus - RowStatus, - tgEventLog - DisplayString - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.1 - tgIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Trunk Group index number ranges from 1 to 255." - ::= { trunkGroupEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.2 - tgTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Trunk Group name for identification purpose only." - DEFVAL { "TG#" } - ::= { trunkGroupEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.3 - tgCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Trunk Group." - ::= { trunkGroupEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.4 - tgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed Trunk Group." - ::= { trunkGroupEntry 4 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.5 - tgOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Oper State - Remark:(Read Only) Indicate the current Trunk Group operation is qualified by Availability State." - ::= { trunkGroupEntry 5 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.6 - tgAvailabilityStatus OBJECT-TYPE - SYNTAX AvailStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Avail State - Remark:(Read Only) Qualify Operation State providing details about the current operational state." - ::= { trunkGroupEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.7 - tgOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:The Originating Point Code of the current TG." - ::= { trunkGroupEntry 7 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.8 - tgDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:The Destination Point Code of the current TG." - ::= { trunkGroupEntry 8 } - - --- Network Indication --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.9 - tgNetworkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - int(0), - intSpare(1), - nat(2), - natSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NI - Remark:Network Indicator specifies the Trunk Group to a network." - DEFVAL { int } - ::= { trunkGroupEntry 9 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.10 - tgProtocolType OBJECT-TYPE - SYNTAX INTEGER - { - aif(0), - isup(1), - bicc(2), - isdn(3), - sip(5), - staticConnection(7), - iuCS(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Protocol Type - Remark:Select the protocol type for this Trunk Group." - ::= { trunkGroupEntry 10 } - - --- Protocol Variant --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.11 - tgProtocolVariant OBJECT-TYPE - SYNTAX INTEGER - { - itu(0), - ansi(1), - etsi(2), - uk(3), - Qsig(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Protocol Variant - Remark:Select the protocol variant for this Trunk Group." - DEFVAL { itu } - ::= { trunkGroupEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.12 - tgLocalDomain OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local Domain - Remark:(For SIP) Define the local domain name for a SIP TG." - ::= { trunkGroupEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.13 - tgDestDomain OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest Domain - Remark:(For SIP) Specify the destination domain name for a SIP TG." - ::= { trunkGroupEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.14 - tgDestIP0 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest IP 0 - Remark:(For SIP) Specify the destination IP address for a SIP TG." - ::= { trunkGroupEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.15 - tgDestIP1 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest IP 1 - Remark:(For SIP) Specify the destination IP address for a SIP TG." - ::= { trunkGroupEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.16 - tgDestPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Dest Port - Remark:(For SIP) Specify the destination port for a SIP TG." - ::= { trunkGroupEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.17 - tgRemoteProcessISUP OBJECT-TYPE - SYNTAX INTEGER - { - notSupport(0), - support(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Remote Process ISUP - Remark:(For SIP) Indicate whether the remote SIP UA is able to process ISUP in SIP-ISUP interworking." - ::= { trunkGroupEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.18 - tgTONIncomingSIPCall OBJECT-TYPE - SYNTAX INTEGER - { - CLIR(0), - Sub(1), - Unknown(2), - NDD(3), - IDD(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Incoming SIP Calls TON - Remark:(For SIP) Manipulate the type of calling number for a SIP TG. It doesn't take effect when the calling number's attribute is International. It is used for Calling Line Identification Presentation (CLIP) of incoming SIP calls." - ::= { trunkGroupEntry 18 } - - --- Circuit Selection Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.19 - tgCircuitSelectionMode OBJECT-TYPE - SYNTAX INTEGER - { - clockwise(0), - antiClockwise(1), - lowToHigh(128), - highToLow(129) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Circuit Selection - Remark:Circuit selection mode of the traffic channel connections." - DEFVAL { clockwise } - ::= { trunkGroupEntry 19 } - - --- Backoff Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.20 - tgBackoffFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Backoff Flag - Remark:Enable or disable back off when simultaneously select the same channel with the opposite side." - DEFVAL { enable } - ::= { trunkGroupEntry 20 } - - --- Tandem Restriction --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.21 - tgTandemRestriction OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tandem Restriction - Remark:Enable or disable Tandem to allow or prohibit transit calls from PSTN to PSTN via this trunk group." - DEFVAL { enable } - ::= { trunkGroupEntry 21 } - - --- CDR Flag --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.22 - tgCDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable the Call Detail Record generation of this Trunk Group." - DEFVAL { enable } - ::= { trunkGroupEntry 22 } - - --- Trunk Group Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.23 - tgTrunkGroupType OBJECT-TYPE - SYNTAX INTEGER - { - normal(0), - interconnectionForMSS0(16), - interconnectionForMSS1(17) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:TG Type - Remark:Application type of this Trunk Group." - DEFVAL { normal } - ::= { trunkGroupEntry 23 } - - --- Routing Zone ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.24 - tgRoutingZoneID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:RZS ID - Remark:Specify the Trunk Group to a Routing Zone Set. Set 255 to apply this TG in all Routing Zone Sets." - DEFVAL { 0 } - ::= { trunkGroupEntry 24 } - - --- Alternative Routing Trigger --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.17 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.25 - tgAlternativeRoutingTrigger OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Alternative RZS Trigger - Remark:Specify the Trunk Group to an alternative Routing Zone Set for backup purpose.

- 0 = Disable Alternative Routing Zone Set" - DEFVAL { 0 } - ::= { trunkGroupEntry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.26 - tgIgnoreNumberPortabilityInformation OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Ignore MNP Info - Remark:(For MNP) In the MNP port-in processing, enable to ignore the optional parameters in the incoming IAM message." - ::= { trunkGroupEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.27 - tgSignalPortedNumber OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Signal Ported Number - Remark:(For MNP) In the MNP port-out processing, enable to ignore the optional parameters in the outgoing IAM message." - ::= { trunkGroupEntry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.28 - tgNFAS OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NFAS Flag - Remark:(For ISDN) Enable or disable Non-Facility Associated Signaling (NFAS) with D Channel Backup feature." - ::= { trunkGroupEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.29 - tgPrimaryLink OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Primary Link - Remark:(For ISDN) Specify the primary D channel to control multiple trunks." - ::= { trunkGroupEntry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.30 - tgBackupLink OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Backup Link - Remark:(For ISDN) Specify a backup D channel for use when the primary NFAS D channel is unavailable." - ::= { trunkGroupEntry 30 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.31 - tgBSCCodec OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Codec 0[u]00.0-00.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 1[u]01.0-01.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 2[u]02.0-02.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 3[u]03.0-03.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 4[u]04.0-04.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 5[u]05.0-05.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 6[u]06.0-06.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 7[u]07.0-07.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 8[u]08.0-08.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 9[u]09.0-09.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 10[u]10.0-10.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 11[u]11.0-11.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 12[u]12.0-12.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 13[u]13.0-13.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 14[u]14.0-14.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [unit]Codec 15[u]15.0-15.7[u]select - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_15 - [v]11[opt]AMR_5_9 - [v]12[opt]AMR_4_75 - [v]255[opt]NULL - [remark] - Specify the codec type of the BSC. It is available only for circuit BSC.

Entry 0 is the highest priority, entry 13 is the lowest." - ::= { trunkGroupEntry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.32 - tgEchoControlDeviceIndicator OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Echo Control Device Indicator - Remark:Indicate including echo control device in outbound IAM message or not." - ::= { trunkGroupEntry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.33 - tgSatelliteIndicator OBJECT-TYPE - SYNTAX INTEGER - { - noSatelliteCircuit(0), - oneSatelliteCircuit(1), - twoSatelliteCircuit(2), - transit(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the bearing value of the Satellite Indicator in the outgoing ISUP IAM message. For Transit, just adopts the same value from incoming ISUP IAM message." - ::= { trunkGroupEntry 33 } - - --- Trunk --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.18 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.34 - tgCreateEntryTrunk OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { trunkGroupEntry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.35 - tgTrunkEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Entries - Remark:The total number of configured Trunks in this Trunk Group." - ::= { trunkGroupEntry 35 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.19 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.36 - tgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { trunkGroupEntry 36 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.1.1.37 - tgEventLog OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroupEntry 37 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2 - trunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroup 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1 - trunkEntry OBJECT-TYPE - SYNTAX TrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { trunkIndex, trunkTGIndex } - ::= { trunkTable 1 } - - - TrunkEntry ::= - SEQUENCE { - trunkTGIndex - INTEGER, - trunkIndex - INTEGER, - trunkTitle - DisplayString16, - trunkCreateTimeStamp - TimeStamp, - trunkAdministrationState - AdminStateChoices, - trunkOperabilityStatus - OperStateChoices, - trunkAvailabilityStatus - AvailStateChoices, - trunkMgID - INTEGER, - trunkPortID - INTEGER, - trunkPortType - INTEGER, - trunkGroupID - INTEGER, - trunkSupervisionMethod - INTEGER, - trunkLinkID - INTEGER, - trunkUserNetworkInterface - INTEGER, - trunkCICValueAssignment - INTEGER, - trunkChannelInUse - INTEGER, - trunkChannelEntries - INTEGER, - trunkRowStatus - RowStatus - } - --- Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.1 - trunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:TG Index - Remark:Trunk Group index number for the Trunk." - ::= { trunkEntry 1 } - - --- Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.2 - trunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Trunk index number ranges from 1 to 32." - ::= { trunkEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.3 - trunkTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Trunk name for identification purpose only." - DEFVAL { "TK#" } - ::= { trunkEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.4 - trunkCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Trunk" - ::= { trunkEntry 4 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.5 - trunkAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed Trunk." - ::= { trunkEntry 5 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.6 - trunkOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Oper State - Remark:(Read Only) Indicate the current Trunk operation is qualified by Availability Status." - ::= { trunkEntry 6 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.7 - trunkAvailabilityStatus OBJECT-TYPE - SYNTAX AvailStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Avail State - Remark:(Read Only) Qualify Operation State providing details about the current operational state." - ::= { trunkEntry 7 } - - --- MG ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.8 - trunkMgID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MG ID - Remark:Specify the Trunk to a Media Gateway. Not applicable to virtual MG." - DEFVAL { 0 } - ::= { trunkEntry 8 } - - --- Port ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.9 - trunkPortID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port ID - Remark:Specify the Trunk to a physical port of the selected Media Gateway. Not applicable to virtual MG." - ::= { trunkEntry 9 } - - --- Port Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.10 - trunkPortType OBJECT-TYPE - SYNTAX INTEGER - { - e1(0), - t1(1), - analogue(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port Type - Remark:Specify the type of MG physical ports." - DEFVAL { enable } - ::= { trunkEntry 10 } - - --- Group ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.11 - trunkGroupID OBJECT-TYPE - SYNTAX INTEGER - { - group0(0), - group1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Group ID - Remark:Select the application group for the Trunk.

- Group0 = Master is MSC 0
- Group1 = Master is MSC1" - DEFVAL { group0 } - ::= { trunkEntry 11 } - - --- Typical CIC Assignment Plan --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.12 - trunkSupervisionMethod OBJECT-TYPE - SYNTAX INTEGER - { - circuitGroup(0), - circuit(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Supervision Method - Remark:Specify the type of block request indication delivered in the ISUP trunk initialization process." - DEFVAL { enable } - ::= { trunkEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.13 - trunkLinkID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Link ID - Remark:(For ISDN) Specify the corresponding IUA link ID which is configured in the MTP3 setting." - ::= { trunkEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.14 - trunkUserNetworkInterface OBJECT-TYPE - SYNTAX INTEGER - { - networkSide(0), - userSide(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:User Network Interface - Remark:(For ISDN) Select Q.931 switch type for ISDN call processing." - ::= { trunkEntry 14 } - - --- Typical CIC Value Assignment --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.15 - trunkCICValueAssignment OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CIC Assignment - Remark:Specify the start CIC to the Trunk for typical mode.

- E1 = 0, 32, 64 ...
- T1 = 0, 24, 48 ..." - ::= { trunkEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.16 - trunkChannelInUse OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Channel in Use - Remark:(Read Only) Display the quantity of occupied channels of this trunk in real-time." - ::= { trunkEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.17 - trunkChannelEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Channel Entries - Remark:The total number of configured Channels in this Trunk." - ::= { trunkEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.2.1.18 - trunkRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { trunkEntry 18 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3 - channelTable OBJECT-TYPE - SYNTAX SEQUENCE OF ChannelEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { trunkGroup 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1 - channelEntry OBJECT-TYPE - SYNTAX ChannelEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3" - INDEX { tsTrunkIndex, tsIndex, tsTrunkTGIndex } - ::= { channelTable 1 } - - - ChannelEntry ::= - SEQUENCE { - tsTrunkTGIndex - INTEGER, - tsTrunkIndex - INTEGER, - tsIndex - INTEGER, - tsType - INTEGER, - tsChannelCIC - INTEGER, - tsChannelStatus - INTEGER, - tsLocalBlock - INTEGER, - tsRemoteBlock - INTEGER - } - --- CIC Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.1 - tsTrunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:TG Index - Remark:Trunk Group index number for this Timeslot." - ::= { channelEntry 1 } - - --- CIC Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.2 - tsTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Trunk Index - Remark:Trunk index number for this Timeslot." - ::= { channelEntry 2 } - - --- CIC Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.3 - tsIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Timeslot index number ranges from 1 to 32." - ::= { channelEntry 3 } - - --- CIC Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.4 - tsType OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - incoming(1), - outgoing(2), - bidirectional(3), - leaseLine(4), - dChannel(5), - xChannel(6) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Type - Remark:Specify the type of the channel." - DEFVAL { bidirectiona } - ::= { channelEntry 4 } - - --- Channel CIC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.5 - tsChannelCIC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CIC - Remark:Assign a Circuit Identity Code (CIC) to the channel." - ::= { channelEntry 5 } - - --- Call Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.6 - tsChannelStatus OBJECT-TYPE - SYNTAX INTEGER - { - outOfService(0), - idle(1), - busy(2), - iPALIMUsed(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Status - Remark:(Read Only) The current status of the serving channel." - ::= { channelEntry 6 } - - --- Local Block --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.7 - tsLocalBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblocked(0), - localBlocked(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Local Block - Remark:(Read Only) Display the local block error if the channel is out of service." - ::= { channelEntry 7 } - - --- Remote Block --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.4.3.1.8 - tsRemoteBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblocked(0), - remoteBlocked(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Remote Block - Remark:(Read Only) Display the remote block error if the channel is out of service." - ::= { channelEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5 - locationArea OBJECT IDENTIFIER ::= { parameter 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1 - locationAreaTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocationAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { locationArea 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1 - locationAreaEntry OBJECT-TYPE - SYNTAX LocationAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { laIndex } - ::= { locationAreaTable 1 } - - - LocationAreaEntry ::= - SEQUENCE { - laIndex - INTEGER, - laTitle - DisplayString16, - laCreateTimeStamp - TimeStamp, - laLAC - INTEGER, - laTrunkGroup - INTEGER, - laPageType - INTEGER, - laNumberOfRepeatPaging - INTEGER, - laNITZ - Opaque, - laLocalEmergencyNumber0 - DisplayString16, - laLocalEmergencyNumber1 - DisplayString16, - laLocalEmergencyNumber2 - DisplayString16, - laLocalEmergencyNumber3 - DisplayString16, - laLocalEmergencyNumber4 - DisplayString16, - laLocalEmergencyNumber5 - DisplayString16, - laLocalEmergencyNumber6 - DisplayString16, - laLocalEmergencyNumber7 - DisplayString16, - laCreateEntryCell - INTEGER, - laCellEntries - INTEGER, - laRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.1 - laIndex OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Location Area index number ranges from 1 to 1023." - ::= { locationAreaEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.2 - laTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Location Area name for identification purpose only." - DEFVAL { "LA#" } - ::= { locationAreaEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.3 - laCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Location Area." - ::= { locationAreaEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.4 - laLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LAC - Remark:Specify the Location Area Code of this location area.

- Range = 1 - 65535" - ::= { locationAreaEntry 4 } - - --- Trunk Group --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.5 - laTrunkGroup OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Group - Remark:Specify the serving Trunk Group of this location area." - ::= { locationAreaEntry 5 } - - --- Page Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.6 - laPageType OBJECT-TYPE - SYNTAX INTEGER - { - byLAC(0), - byAllCell(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Paging Mode - Remark:Paging messages broadcast in the specified location area or in the whole network." - DEFVAL { byLAC } - ::= { locationAreaEntry 6 } - - --- Number Of Repeat Paging --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.7 - laNumberOfRepeatPaging OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Repeat Paging Times - Remark:Specify the subsequent paging times if the initial paging fails." - DEFVAL { 2 } - ::= { locationAreaEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.8 - laNITZ OBJECT-TYPE - SYNTAX Opaque (SIZE (35)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NITZ - Remark:Network Identity and Time Zone" - ::= { locationAreaEntry 8 } - - --- Local Emergency Number0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.9 - laLocalEmergencyNumber0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 0 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 9 } - - --- Local Emergency Number1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.10 - laLocalEmergencyNumber1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 1 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 10 } - - --- Local Emergency Number2 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.11 - laLocalEmergencyNumber2 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 2 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 11 } - - --- Local Emergency Number3 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.12 - laLocalEmergencyNumber3 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 3 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 12 } - - --- Local Emergency Number4 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.13 - laLocalEmergencyNumber4 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 4 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 13 } - - --- Local Emergency Number5 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.14 - laLocalEmergencyNumber5 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 5 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 14 } - - --- Local Emergency Number6 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.15 - laLocalEmergencyNumber6 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 6 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 15 } - - --- Local Emergency Number7 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.16 - laLocalEmergencyNumber7 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 7 - Remark:The emergency number, which subscriber dialed in the specific Location Area, will be transformed to this number and route to the emergency center." - ::= { locationAreaEntry 16 } - - --- Cell --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.17 - laCreateEntryCell OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { locationAreaEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.18 - laCellEntries OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Cell Entries - Remark:The total number of configured Cells in this Location Area." - ::= { locationAreaEntry 18 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.1.1.19 - laRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { locationAreaEntry 19 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2 - cellTable OBJECT-TYPE - SYNTAX SEQUENCE OF CellEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { locationArea 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1 - cellEntry OBJECT-TYPE - SYNTAX CellEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { cellIndex, cellLAIndex } - ::= { cellTable 1 } - - - CellEntry ::= - SEQUENCE { - cellLAIndex - INTEGER, - cellIndex - INTEGER, - cellTitle - DisplayString16, - cellCreateTimeStamp - TimeStamp, - cellRoutingZoneID - INTEGER, - cellRegionalSubscriptionZoneCode - INTEGER, - cellCellID - INTEGER, - cellLatitude - Opaque, - cellLongitude - Opaque, - cellLocalEmergencyNumber0 - DisplayString16, - cellLocalEmergencyNumber1 - DisplayString16, - cellLocalEmergencyNumber2 - DisplayString16, - cellLocalEmergencyNumber3 - DisplayString16, - cellLocalEmergencyNumber4 - DisplayString16, - cellLocalEmergencyNumber5 - DisplayString16, - cellLocalEmergencyNumber6 - DisplayString16, - cellLocalEmergencyNumber7 - DisplayString16, - cellTgId - Integer32, - cellRowStatus - RowStatus - } - --- Cell Location Area Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.1 - cellLAIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:LA Index - Remark:Location Area index number for this Cell." - ::= { cellEntry 1 } - - --- Cell Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.2 - cellIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Cell index number ranges from 1 to 16." - ::= { cellEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.3 - cellTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Cell name for identification purpose only." - DEFVAL { "CELL#" } - ::= { cellEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.4 - cellCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the Cell." - ::= { cellEntry 4 } - - --- Rounting Zone ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.5 - cellRoutingZoneID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:RZS ID - Remark:Specify the Routing Zone Set to this Cell." - DEFVAL { 0 } - ::= { cellEntry 5 } - - --- Regional Subscription Zone Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.6 - cellRegionalSubscriptionZoneCode OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:RSZC - Remark:Assign a Regional Subscription Zone Code (RSZC) to the LAC.

- RSZC = CC + NDC + Zone Code" - DEFVAL { 'FF'h } - ::= { cellEntry 6 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.7 - cellCellID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Cell ID - Remark:Global Cell Identity defined in GSM 03.03.

- Range = 0 - 65535" - ::= { cellEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.8 - cellLatitude OBJECT-TYPE - SYNTAX Opaque (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Latitude[u]00.0-03.7[u]input - [v]toLatitude-formula-pow(2,23)/90 - [remark] - Specify the latitude of this cell for a location service use.

- Range = -90.00 - 90.00" - ::= { cellEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.9 - cellLongitude OBJECT-TYPE - SYNTAX Opaque (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Longitude[u]00.0-03.7[u]input - [v]toLongitude-formula-pow(2,24)/360 - [remark] - Specify the longitude of this cell for a location service use.

- Range = -180.00 - 180.00" - ::= { cellEntry 9 } - - --- Cell Local Emergency Number0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.10 - cellLocalEmergencyNumber0 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 0 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 10 } - - --- Cell Local Emergency Number1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.11 - cellLocalEmergencyNumber1 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 1 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 11 } - - --- Cell Local Emergency Number2 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.12 - cellLocalEmergencyNumber2 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 2 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 12 } - - --- Cell Local Emergency Number3 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.13 - cellLocalEmergencyNumber3 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 3 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 13 } - - --- Cell Local Emergency Number4 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.14 - cellLocalEmergencyNumber4 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 4 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 14 } - - --- Cell Local Emergency Number5 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.15 - cellLocalEmergencyNumber5 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 5 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 15 } - - --- Cell Local Emergency Number6 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.16 - cellLocalEmergencyNumber6 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 6 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 16 } - - --- Cell Local Emergency Number7 --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.17 - cellLocalEmergencyNumber7 OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Emergency Number 7 - Remark:The emergency number, which subscriber dialed in the specific Cell, will be transformed to this number and route to the emergency center." - ::= { cellEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.18 - cellTgId OBJECT-TYPE - SYNTAX Integer32 (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:TG ID" - ::= { cellEntry 18 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.5.2.1.19 - cellRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cellEntry 19 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6 - mediaGateway OBJECT IDENTIFIER ::= { parameter 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1 - mediaGatewayTable OBJECT-TYPE - SYNTAX SEQUENCE OF MediaGatewayEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mediaGateway 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1 - mediaGatewayEntry OBJECT-TYPE - SYNTAX MediaGatewayEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { mgIndex } - ::= { mediaGatewayTable 1 } - - - MediaGatewayEntry ::= - SEQUENCE { - mgIndex - INTEGER, - mgTitle - DisplayString16, - mgCreateTimeStamp - TimeStamp, - mgAdministrationState - AdminStateChoices, - mgIP - IpAddress, - mgDomainName - DisplayString16, - mgSwitchingMode - INTEGER, - mgEndPoint - INTEGER, - mgToneGenCapability - INTEGER, - mgType - INTEGER, - mgMaxPhysicalPorts - INTEGER, - mgMaxChannels - INTEGER, - mgPacketizationPeriod - INTEGER, - mgPriorityLevel - INTEGER, - mgCodecType - Opaque, - mgAuditTimer - INTEGER, - mgPhysicalPortEntries - INTEGER, - mgRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.1 - mgIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Media Gateway index number ranges from 1 to 255." - ::= { mediaGatewayEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.2 - mgTitle OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Media Gateway name for identification purpose only." - DEFVAL { "MG#" } - ::= { mediaGatewayEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.3 - mgCreateTimeStamp OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Creation date and time of the MG entry." - ::= { mediaGatewayEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.4 - mgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed Media Gateway." - ::= { mediaGatewayEntry 4 } - - --- IP --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.5 - mgIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP - Remark:IP address of the Media Gateway." - ::= { mediaGatewayEntry 5 } - - --- Domain Name --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.6 - mgDomainName OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Domain Name - Remark:Specify a domain name to the Media Gateway." - ::= { mediaGatewayEntry 6 } - - --- Switching Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.7 - mgSwitchingMode OBJECT-TYPE - SYNTAX INTEGER - { - mgcp(0), - eightECP(1), - megaco(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Switching Mode - Remark:Select the switching mode of the specific Media Gateway.

- 8ECP = Circuit Switch (8KE1 Card)
- MGCP = Soft Switch" - DEFVAL { mgcp } - ::= { mediaGatewayEntry 7 } - - --- End Point Description --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.8 - mgEndPoint OBJECT-TYPE - SYNTAX INTEGER - { - structured(1), - unStructured(2), - unStructuredHex(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Endpoint - Remark:Specify the method of MGCP endpoint description." - DEFVAL { structured } - ::= { mediaGatewayEntry 8 } - - --- Tone Gen Capability --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.9 - mgToneGenCapability OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tone Generation Capacity - Remark:Enable if the Media Gateway has tone generation capability." - DEFVAL { enable } - ::= { mediaGatewayEntry 9 } - - --- MG Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.10 - mgType OBJECT-TYPE - SYNTAX INTEGER - { - audioCodes(1), - lgcMG(2), - lgcCS(3), - ipBSS(4), - analogLine(11), - vim(19), - tandem(20), - announcementServer(21), - iuupGW(23), - interactiveVoiceResponse(31), - conferenceBridge(41), - packetRelay(51), - wiretap(61), - atm(71) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Type - Remark:Select the type of Media Gateway endpoint." - DEFVAL { digitalChannel } - ::= { mediaGatewayEntry 10 } - - --- Max Physical Ports --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.11 - mgMaxPhysicalPorts OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Ports - Remark:The total physical port number of the Media Gateway. Not applicable to virtual MG." - ::= { mediaGatewayEntry 11 } - - --- Max Channels --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.12 - mgMaxChannels OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Channels - Remark:The total channel number of the virtual Media Gateway. Applicable to virtual MG only." - ::= { mediaGatewayEntry 12 } - - --- Packetization Period --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.13 - mgPacketizationPeriod OBJECT-TYPE - SYNTAX INTEGER - { - x20ms(20), - x40ms(40), - x60ms(60), - x80ms(80) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Packetization Period - Remark:The period over which encoded voice bits are collected for encapsulation in." - DEFVAL { x20ms } - ::= { mediaGatewayEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.14 - mgPriorityLevel OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Priority Level - Remark:Set the priority level of the MG codec table:

- 0 = Lowest priority level
- 255 = Highest priority level" - ::= { mediaGatewayEntry 14 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.15 - mgCodecType OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Codec 0[u]00.0-00.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 1[u]01.0-01.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 2[u]02.0-02.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 3[u]03.0-03.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 4[u]04.0-04.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 5[u]05.0-05.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 6[u]06.0-06.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 7[u]07.0-07.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 8[u]08.0-08.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 9[u]09.0-09.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 10[u]10.0-10.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 11[u]11.0-11.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 12[u]12.0-12.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 13[u]13.0-13.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 14[u]14.0-14.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 15[u]15.0-15.7[u]select - [v]0[opt]aLaw - [v]1[opt]uLaw - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [remark] - Specify the codec type of the Media Gateway. Entry 0 is the highest priority, entry 13 is the lowest." - ::= { mediaGatewayEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.16 - mgAuditTimer OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Audit Timer - Remark:The time interval between sending AUEP message from MGC to MGW to check the trunk status. Unit is second." - ::= { mediaGatewayEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.17 - mgPhysicalPortEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Port Entries - Remark:The total number of the configured physical Ports of this Media Gateway." - ::= { mediaGatewayEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.1.1.18 - mgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mediaGatewayEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2 - physicalPortTable OBJECT-TYPE - SYNTAX SEQUENCE OF PhysicalPortEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mediaGateway 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1 - physicalPortEntry OBJECT-TYPE - SYNTAX PhysicalPortEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { ppIndex, ppMGIndex } - ::= { physicalPortTable 1 } - - - PhysicalPortEntry ::= - SEQUENCE { - ppMGIndex - INTEGER, - ppIndex - INTEGER, - ppUsedFlag - INTEGER, - ppStatus - INTEGER, - ppSeizure - OCTET STRING - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.1 - ppMGIndex OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:MG Index - Remark:Media Gateway index number for this physical Port." - ::= { physicalPortEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.2 - ppIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Port index number ranges from 1 to 32." - ::= { physicalPortEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.3 - ppUsedFlag OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - inUse(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Used Flag - Remark:(Read Only) This field indicates whether the port is in service." - ::= { physicalPortEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.4 - ppStatus OBJECT-TYPE - SYNTAX INTEGER - { - notReady(0), - ready(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Status - Remark:(Read Only) The availability status of the physical port." - ::= { physicalPortEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.2.6.2.1.5 - ppSeizure OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - RelationPoint:2.4.2.1 - Remark:(Read Only) Hyperlink of the related Trunk Group and Trunk." - ::= { physicalPortEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3 - csta OBJECT IDENTIFIER ::= { msc 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3 - tgIncomingTable OBJECT-TYPE - SYNTAX SEQUENCE OF TgIncomingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1 - tgIncomingEntry OBJECT-TYPE - SYNTAX TgIncomingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { tgIncomingTgndex, tgIncomingIndex } - ::= { tgIncomingTable 1 } - - - TgIncomingEntry ::= - SEQUENCE { - tgIncomingTgndex - INTEGER, - tgIncomingIndex - INTEGER, - tgIncomingData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1.1 - tgIncomingTgndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { tgIncomingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1.2 - tgIncomingIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgIncomingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.3.1.3 - tgIncomingData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgIncomingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4 - tgOutgoingTable OBJECT-TYPE - SYNTAX SEQUENCE OF TgOutgoingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1 - tgOutgoingEntry OBJECT-TYPE - SYNTAX TgOutgoingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { tgOutgoingTgIndex, tgOutgoingIndex } - ::= { tgOutgoingTable 1 } - - - TgOutgoingEntry ::= - SEQUENCE { - tgOutgoingTgIndex - INTEGER, - tgOutgoingIndex - INTEGER, - tgOutgoingData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1.1 - tgOutgoingTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { tgOutgoingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1.2 - tgOutgoingIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgOutgoingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.4.1.3 - tgOutgoingData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tgOutgoingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5 - subsToSubsTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubsToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5.1 - subsToSubsEntry OBJECT-TYPE - SYNTAX SubsToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { subsToSubsIndex } - ::= { subsToSubsTable 1 } - - - SubsToSubsEntry ::= - SEQUENCE { - subsToSubsIndex - INTEGER, - subsToSubsData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5.1.1 - subsToSubsIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToSubsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.5.1.2 - subsToSubsData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToSubsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6 - subsToTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubsToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6.1 - subsToTrunkEntry OBJECT-TYPE - SYNTAX SubsToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { subsToTrunkIndex } - ::= { subsToTrunkTable 1 } - - - SubsToTrunkEntry ::= - SEQUENCE { - subsToTrunkIndex - INTEGER, - subsToTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6.1.1 - subsToTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.6.1.2 - subsToTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7 - trunkToSubsTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7.1 - trunkToSubsEntry OBJECT-TYPE - SYNTAX TrunkToSubsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { trunkToSubsIndex } - ::= { trunkToSubsTable 1 } - - - TrunkToSubsEntry ::= - SEQUENCE { - trunkToSubsIndex - INTEGER, - trunkToSubsData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7.1.1 - trunkToSubsIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToSubsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.7.1.2 - trunkToSubsData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToSubsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8 - trunkToTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8.1 - trunkToTrunkEntry OBJECT-TYPE - SYNTAX TrunkToTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { trunkToTrunkIndex } - ::= { trunkToTrunkTable 1 } - - - TrunkToTrunkEntry ::= - SEQUENCE { - trunkToTrunkIndex - INTEGER, - trunkToTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8.1.1 - trunkToTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.8.1.2 - trunkToTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9 - intraconnectionTable OBJECT-TYPE - SYNTAX SEQUENCE OF IntraconnectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9.1 - intraconnectionEntry OBJECT-TYPE - SYNTAX IntraconnectionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { intraconnectionIndex } - ::= { intraconnectionTable 1 } - - - IntraconnectionEntry ::= - SEQUENCE { - intraconnectionIndex - INTEGER, - intraconnectionData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9.1.1 - intraconnectionIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { intraconnectionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.9.1.2 - intraconnectionData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { intraconnectionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10 - subsToIpTable OBJECT-TYPE - SYNTAX SEQUENCE OF SubsToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10.1 - subsToIpEntry OBJECT-TYPE - SYNTAX SubsToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { subsToIpIndex } - ::= { subsToIpTable 1 } - - - SubsToIpEntry ::= - SEQUENCE { - subsToIpIndex - INTEGER, - subsToIpData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10.1.1 - subsToIpIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToIpEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.10.1.2 - subsToIpData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { subsToIpEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11 - trunkToIpTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11.1 - trunkToIpEntry OBJECT-TYPE - SYNTAX TrunkToIpEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { trunkToIpIndex } - ::= { trunkToIpTable 1 } - - - TrunkToIpEntry ::= - SEQUENCE { - trunkToIpIndex - INTEGER, - trunkToIpData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11.1.1 - trunkToIpIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToIpEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.11.1.2 - trunkToIpData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { trunkToIpEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12 - mobileOriginatedTable OBJECT-TYPE - SYNTAX SEQUENCE OF MobileOriginatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12.1 - mobileOriginatedEntry OBJECT-TYPE - SYNTAX MobileOriginatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mobileOriginatedIndex } - ::= { mobileOriginatedTable 1 } - - - MobileOriginatedEntry ::= - SEQUENCE { - mobileOriginatedIndex - INTEGER, - mobileOriginatedData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12.1.1 - mobileOriginatedIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileOriginatedEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.12.1.2 - mobileOriginatedData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileOriginatedEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13 - mobileTerminatedTable OBJECT-TYPE - SYNTAX SEQUENCE OF MobileTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13.1 - mobileTerminatedEntry OBJECT-TYPE - SYNTAX MobileTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mobileTerminatedIndex } - ::= { mobileTerminatedTable 1 } - - - MobileTerminatedEntry ::= - SEQUENCE { - mobileTerminatedIndex - INTEGER, - mobileTermiginatedData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13.1.1 - mobileTerminatedIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileTerminatedEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.13.1.2 - mobileTermiginatedData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mobileTerminatedEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14 - inTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF InTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14.1 - inTrunkEntry OBJECT-TYPE - SYNTAX InTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { inTrunkIndex } - ::= { inTrunkTable 1 } - - - InTrunkEntry ::= - SEQUENCE { - inTrunkIndex - INTEGER, - inTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14.1.1 - inTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { inTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.14.1.2 - inTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { inTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15 - outTrunkTable OBJECT-TYPE - SYNTAX SEQUENCE OF OutTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15.1 - outTrunkEntry OBJECT-TYPE - SYNTAX OutTrunkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { outTrunkIndex } - ::= { outTrunkTable 1 } - - - OutTrunkEntry ::= - SEQUENCE { - outTrunkIndex - INTEGER, - outTrunkData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15.1.1 - outTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { outTrunkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.15.1.2 - outTrunkData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { outTrunkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16 - ipTerminatedTable OBJECT-TYPE - SYNTAX SEQUENCE OF IpTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16.1 - ipTerminatedEntry OBJECT-TYPE - SYNTAX IpTerminatedEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ipTermiginatedIndex } - ::= { ipTerminatedTable 1 } - - - IpTerminatedEntry ::= - SEQUENCE { - ipTermiginatedIndex - INTEGER, - ipTermiginatedData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16.1.1 - ipTermiginatedIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ipTerminatedEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.3.16.1.2 - ipTermiginatedData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ipTerminatedEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4 - cdr OBJECT IDENTIFIER ::= { msc 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.1.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - - END - --- --- LGC-SS-MSC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-MTP3-MIB.my b/omc/bin/mib/LGC-SS-MTP3-MIB.my deleted file mode 100644 index ae2f601..0000000 --- a/omc/bin/mib/LGC-SS-MTP3-MIB.my +++ /dev/null @@ -1,2414 +0,0 @@ --- --- LGC-SS-MTP3-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, April 29, 2011 at 11:05:40 --- - - LGC-SS-MTP3-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, AdminStateChoices - FROM LGC-MIB - IpAddress, Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.2.2 - mtp3 MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { platplatform 2 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.2 - platplatform OBJECT IDENTIFIER ::= { wxc2 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2 - parameter OBJECT IDENTIFIER ::= { mtp3 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.1.1 - tCPPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:TCP Port - Remark:Specify a TCP port for the SCCP-Lite protocol." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.1.2 - systemCommand OBJECT-TYPE - SYNTAX INTEGER { reset(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2 - intNetwork OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.1 - intOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Assign a default Point Code to the local MSC. This OPC is applicable only to the international signaling network." - ::= { intNetwork 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.2 - intPointCodeLength OBJECT-TYPE - SYNTAX INTEGER - { - bit14(0), - bit24(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Length - Remark:Specify the length of Point Code using in the international signaling network. It can be 14 bits or 24 bits." - ::= { intNetwork 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.3 - intPointCodeType OBJECT-TYPE - SYNTAX INTEGER - { - itu(0), - ansi(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Type - Remark:Specify the protocol stack using in the international signaling network. It can be ITU or ANSI." - ::= { intNetwork 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.4 - intLocalACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define the default application context version for each MAP operation which is supported by the local MSC in the international signaling network." - ::= { intNetwork 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5 - intRoutingTable OBJECT-TYPE - SYNTAX SEQUENCE OF IntRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { intNetwork 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1 - intRoutingEntry OBJECT-TYPE - SYNTAX IntRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { intIndex } - ::= { intRoutingTable 1 } - - - IntRoutingEntry ::= - SEQUENCE { - intIndex - INTEGER, - intTitle - OCTET STRING, - intDPC - INTEGER, - intOPCMultiple - INTEGER, - intNormalLinkset - INTEGER, - intAlternativeLinkset - INTEGER, - intM3uaRoutingContext - INTEGER, - intACN - Opaque, - intRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.1 - intIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing entry index number ranges from 0 to 1023." - ::= { intRoutingEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.2 - intTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing destination name for identification purpose only." - DEFVAL { "-" } - ::= { intRoutingEntry 2 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.3 - intDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:Decimal Point Code of the routing destination node." - ::= { intRoutingEntry 3 } - - --- MSRN Range End --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.4 - intOPCMultiple OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Specify a virtual Point Code to the local MSC. This OPC will be transmitted between the local MSC and the destination node.
From the destination node's perspective, it's the unique Point Code of the local MSC.
The compulsory OPC makes the system more compatible with other networks by means of supporting multiple point codes.
Set 0 to use the default OPC for this routing entry." - ::= { intRoutingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.5 - intNormalLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Normal Linkset - Remark:Specify the primary linkset to the routing entry for signaling addressing." - ::= { intRoutingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.6 - intAlternativeLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative Linkset - Remark:Specify a secondary linkset to the routing entry for signaling addressing when the primary linkset is unavailable." - ::= { intRoutingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.7 - intM3uaRoutingContext OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:M3UA Routing Context - Remark:Define routing context to identify M3UA traffic transmitted between the local MSC and the destination node.
The routing context must be unique for each M3UA application defined." - ::= { intRoutingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.8 - intACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define specific application context version for each MAP operation which is applying between the local MSC and the destination node.

The compulsory application context version makes the system more compatible with other networks by means of flexible MAP version adjustment." - ::= { intRoutingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.2.5.1.9 - intRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { intRoutingEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3 - intSNetwork OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.1 - intsOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Assign a default Point Code to the local MSC. This OPC is applicable only to the international-spare signaling network." - ::= { intSNetwork 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.2 - intsPointCodeLength OBJECT-TYPE - SYNTAX INTEGER - { - bit14(0), - bit24(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Length - Remark:Specify the length of Point Code using in the international-spare signaling network. It can be 14 bits or 24 bits." - ::= { intSNetwork 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.3 - intsPointCodeType OBJECT-TYPE - SYNTAX INTEGER - { - itu(0), - ansi(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Type - Remark:Specify the protocol stack using in the international-spare signaling network. It can be ITU or ANSI." - ::= { intSNetwork 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.4 - intsLocalACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define the default application context version for each MAP operation which is supported by the local MSC in the international-spare signaling network." - ::= { intSNetwork 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5 - intSRoutingTable OBJECT-TYPE - SYNTAX SEQUENCE OF IntSRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { intSNetwork 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1 - intSRoutingEntry OBJECT-TYPE - SYNTAX IntSRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { intsIndex } - ::= { intSRoutingTable 1 } - - - IntSRoutingEntry ::= - SEQUENCE { - intsIndex - INTEGER, - intsTitle - OCTET STRING, - intsDPC - INTEGER, - intsOPCMultiple - INTEGER, - intsNormalLinkset - INTEGER, - intsAlternativeLinkset - INTEGER, - intsM3uaRoutingContext - INTEGER, - intsACN - Opaque, - intsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.1 - intsIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing entry index number ranges from 0 to 1023." - ::= { intSRoutingEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.2 - intsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing destination name for identification purpose only." - DEFVAL { "-" } - ::= { intSRoutingEntry 2 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.3 - intsDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:Decimal Point Code of the routing destination node." - ::= { intSRoutingEntry 3 } - - --- MSRN Range End --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.4 - intsOPCMultiple OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Specify a virtual Point Code to the local MSC. This OPC will be transmitted between the local MSC and the destination node.
From the destination node's perspective, it's the unique Point Code of the local MSC.
The compulsory OPC makes the system more compatible with other networks by means of supporting multiple point codes.
Set 0 to use the default OPC for this routing entry." - ::= { intSRoutingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.5 - intsNormalLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Normal Linkset - Remark:Specify the primary linkset to the routing entry for signaling addressing." - ::= { intSRoutingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.6 - intsAlternativeLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative Linkset - Remark:Specify a secondary linkset to the routing entry for signaling addressing when the primary linkset is unavailable." - ::= { intSRoutingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.7 - intsM3uaRoutingContext OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:M3UA Routing Context - Remark:Define routing context to identify M3UA traffic transmitted between the local MSC and the destination node.
The routing context must be unique for each M3UA application defined." - ::= { intSRoutingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.8 - intsACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define specific application context version for each MAP operation which is applying between the local MSC and the destination node.

The compulsory application context version makes the system more compatible with other networks by means of flexible MAP version adjustment." - ::= { intSRoutingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.3.5.1.9 - intsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { intSRoutingEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4 - natNetwork OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.1 - natOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Assign a default Point Code to the local MSC. This OPC is applicable only to the national signaling network." - ::= { natNetwork 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.2 - natPointCodeLength OBJECT-TYPE - SYNTAX INTEGER - { - bit14(0), - bit24(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Length - Remark:Specify the length of Point Code using in the national signaling network. It can be 14 bits or 24 bits." - ::= { natNetwork 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.3 - natPointCodeType OBJECT-TYPE - SYNTAX INTEGER - { - itu(0), - ansi(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Type - Remark:Specify the protocol stack using in the national signaling network. It can be ITU or ANSI." - ::= { natNetwork 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.4 - natLocalACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define the default application context version for each MAP operation which is supported by the local MSC in the national signaling network." - ::= { natNetwork 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5 - natRoutingTable OBJECT-TYPE - SYNTAX SEQUENCE OF NatRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { natNetwork 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1 - natRoutingEntry OBJECT-TYPE - SYNTAX NatRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { natIndex } - ::= { natRoutingTable 1 } - - - NatRoutingEntry ::= - SEQUENCE { - natIndex - INTEGER, - natTitle - OCTET STRING, - natDPC - INTEGER, - natOPCMultiple - INTEGER, - natNormalLinkset - INTEGER, - natAlternativeLinkset - INTEGER, - natM3uaRoutingContext - INTEGER, - natACN - Opaque, - natRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.1 - natIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing entry index number ranges from 0 to 1023." - ::= { natRoutingEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.2 - natTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing destination name for identification purpose only." - DEFVAL { "-" } - ::= { natRoutingEntry 2 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.3 - natDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:Decimal Point Code of the routing destination node." - ::= { natRoutingEntry 3 } - - --- MSRN Range End --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.4 - natOPCMultiple OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Specify a virtual Point Code to the local MSC. This OPC will be transmitted between the local MSC and the destination node.
From the destination node's perspective, it's the unique Point Code of the local MSC.
The compulsory OPC makes the system more compatible with other networks by means of supporting multiple point codes.
Set 0 to use the default OPC for this routing entry." - ::= { natRoutingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.5 - natNormalLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Normal Linkset - Remark:Specify the primary linkset to the routing entry for signaling addressing." - ::= { natRoutingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.6 - natAlternativeLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative Linkset - Remark:Specify a secondary linkset to the routing entry for signaling addressing when the primary linkset is unavailable." - ::= { natRoutingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.7 - natM3uaRoutingContext OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:M3UA Routing Context - Remark:Define routing context to identify M3UA traffic transmitted between the local MSC and the destination node.
The routing context must be unique for each M3UA application defined." - ::= { natRoutingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.8 - natACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define specific application context version for each MAP operation which is applying between the local MSC and the destination node.

The compulsory application context version makes the system more compatible with other networks by means of flexible MAP version adjustment." - ::= { natRoutingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.4.5.1.9 - natRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { natRoutingEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5 - natSNetwork OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.1 - natSpareOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Assign a default Point Code to the local MSC. This OPC is applicable only to the national-spare signaling network." - ::= { natSNetwork 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.2 - natSparePointCodeLength OBJECT-TYPE - SYNTAX INTEGER - { - bit14(0), - bit24(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Length - Remark:Specify the length of Point Code using in the national-spare signaling network. It can be 14 bits or 24 bits." - ::= { natSNetwork 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.3 - natSparePointCodeType OBJECT-TYPE - SYNTAX INTEGER - { - itu(0), - ansi(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PC Type - Remark:Specify the protocol stack using in the national-spare signaling network. It can be ITU or ANSI." - ::= { natSNetwork 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.4 - natSpareLocalACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define the default application context version for each MAP operation which is supported by the local MSC in the national-spare signaling network." - ::= { natSNetwork 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5 - natSRoutingTable OBJECT-TYPE - SYNTAX SEQUENCE OF NatSRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { natSNetwork 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1 - natSRoutingEntry OBJECT-TYPE - SYNTAX NatSRoutingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { natsIndex } - ::= { natSRoutingTable 1 } - - - NatSRoutingEntry ::= - SEQUENCE { - natsIndex - INTEGER, - natsTitle - OCTET STRING, - natsDPC - INTEGER, - natsOPCMultiple - INTEGER, - natsNormalLinkset - INTEGER, - natsAlternativeLinkset - INTEGER, - natsM3uaRoutingContext - INTEGER, - natsACN - Opaque, - natsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.1 - natsIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing entry index number ranges from 0 to 1023." - ::= { natSRoutingEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.2 - natsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Routing destination name for identification purpose only." - DEFVAL { "-" } - ::= { natSRoutingEntry 2 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.3 - natsDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:Decimal Point Code of the routing destination node." - ::= { natSRoutingEntry 3 } - - --- MSRN Range End --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.4 - natsOPCMultiple OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Specify a virtual Point Code to the local MSC. This OPC will be transmitted between the local MSC and the destination node.
From the destination node's perspective, it's the unique Point Code of the local MSC.
The compulsory OPC makes the system more compatible with other networks by means of supporting multiple point codes.
Set 0 to use the default OPC for this routing entry." - ::= { natSRoutingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.5 - natsNormalLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Normal Linkset - Remark:Specify the primary linkset to the routing entry for signaling addressing." - ::= { natSRoutingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.6 - natsAlternativeLinkset OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Alternative Linkset - Remark:Specify a secondary linkset to the routing entry for signaling addressing when the primary linkset is unavailable." - ::= { natSRoutingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.7 - natsM3uaRoutingContext OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:M3UA Routing Context - Remark:Define routing context to identify M3UA traffic transmitted between the local MSC and the destination node.
The routing context must be unique for each M3UA application defined." - ::= { natSRoutingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.8 - natsACN OBJECT-TYPE - SYNTAX Opaque (SIZE (36)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Updating[u]0.0-0.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Cancellation[u]1.0-1.7[u]select - [v]3[opt]Version 3 - [unit]Roaming Number Enquiry[u]2.0-2.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Location Info Retrieval[u]3.0-3.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Reset Context[u]4.0-4.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Handover Control[u]5.0-5.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Equipment Management[u]6.0-6.7[u]select - [v]2[opt]Version 2 - [unit]Info Retrieval[u]7.0-7.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Inter-VLR Info Retrieval[u]8.0-8.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Subscriber Data Management[u]9.0-9.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Tracing[u]10.0-10.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Functional SS[u]11.0-11.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Network Unstructured SS[u]12.0-12.7[u]select - [v]2[opt]Version 2 - [unit]Short Message Gateway[u]13.0-13.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MO Short Message Relay[u]14.0-14.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Short Message Alert[u]15.0-15.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [unit]Short Message Waiting Data Management[u]16.0-16.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]MT Short Message Relay[u]17.0-17.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]IMSI Retrieval[u]18.0-18.7[u]select - [v]2[opt]Version 2 - [unit]MS Purging[u]19.0-19.7[u]select - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Subscriber Info Enquiry[u]20.0-20.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Any Time Info Enquiry[u]21.0-21.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Control Transfer[u]22.0-22.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]SS Invocation Notification[u]23.0-23.7[u]select - [v]3[opt]Version 3 - [unit]Group Call Control[u]25.0-25.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Updating[u]26.0-26.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Location Info Retrieval[u]27.0-27.7[u]select - [v]3[opt]Version 3 - [unit]Failure Reporting[u]28.0-28.7[u]select - [v]3[opt]Version 3 - [unit]GPRS Notifying[u]29.0-29.7[u]select - [v]3[opt]Version 3 - [unit]Reporting[u]30.0-30.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Call Completion[u]31.0-31.7[u]select - [v]1[opt]Version 1 - [v]2[opt]Version 2 - [v]3[opt]Version 3 - [unit]Internal SIWFS Allocation[u]24.0-24.7[u]select - [v]3[opt]Version 3 - [unit]Internal Security Triplets[u]32.0-32.7[u]select - [v]2[opt]Version 2 - [unit]Internal Subscriber Interrogating[u]33.0-33.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Subscriber Management[u]34.0-34.7[u]select - [v]2[opt]Version 2 - [unit]Internal HLR Ping AUC[u]35.0-35.7[u]select - [v]2[opt]Version 2 - [remark] - Define specific application context version for each MAP operation which is applying between the local MSC and the destination node.

The compulsory application context version makes the system more compatible with other networks by means of flexible MAP version adjustment." - ::= { natSRoutingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.5.5.1.9 - natsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { natSRoutingEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6 - linkSet OBJECT IDENTIFIER ::= { parameter 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1 - linkSetTable OBJECT-TYPE - SYNTAX SEQUENCE OF LinkSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { linkSet 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1 - linkSetEntry OBJECT-TYPE - SYNTAX LinkSetEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { lsIndex } - ::= { linkSetTable 1 } - - - LinkSetEntry ::= - SEQUENCE { - lsIndex - INTEGER, - lsTitle - OCTET STRING, - lsAdministrationState - AdminStateChoices, - lsStatus - INTEGER, - lsNetworkIndicate - INTEGER, - lsDPC - INTEGER, - lsLoopbackOption - INTEGER, - lsOPCMultiple - INTEGER, - lsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.1 - lsIndex OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Linkset index number ranges from 0 to 511." - ::= { linkSetEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.2 - lsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Linkset destination name for identification purpose only." - DEFVAL { "-" } - ::= { linkSetEntry 2 } - - --- Country Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.3 - lsAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed linkset by lock and unlock commands." - ::= { linkSetEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.4 - lsStatus OBJECT-TYPE - SYNTAX INTEGER - { - offline(0), - online(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Linkset Status - Remark:(Read Only) The current status of the serving linkset." - ::= { linkSetEntry 4 } - - --- National Destination Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.5 - lsNetworkIndicate OBJECT-TYPE - SYNTAX INTEGER - { - international(0), - internationalSpare(1), - national(2), - nationalSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NI - Remark:Identify the Network Indicator of this linkset." - ::= { linkSetEntry 5 } - - --- International Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.6 - lsDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:Decimal Point Code of the linkset destination node." - ::= { linkSetEntry 6 } - - --- National Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.7 - lsLoopbackOption OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Loopback Flag - Remark:Enable to loop all data on this linkset from transmit side back to receive side.
Enable it on the linksets connected between two MSS platforms." - ::= { linkSetEntry 7 } - - --- HPLMN CC0 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.8 - lsOPCMultiple OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Specify a virtual Point Code to the local MSC. This OPC will be transmitted between the local MSC and the destination node.
From the destination node's perspective, it's the unique Point Code of the local MSC.
The compulsory OPC makes the system more compatible with other networks by means of supporting multiple point codes.
Set 0 to use the default OPC of the specific signaling network." - ::= { linkSetEntry 8 } - - --- HPLMN CC1 --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.6.1.1.9 - lsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { linkSetEntry 9 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7 - link OBJECT IDENTIFIER ::= { parameter 7 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1 - linkTable OBJECT-TYPE - SYNTAX SEQUENCE OF LinkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { link 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1 - linkEntry OBJECT-TYPE - SYNTAX LinkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { lkIndex } - ::= { linkTable 1 } - - - LinkEntry ::= - SEQUENCE { - lkIndex - INTEGER, - lkTitle - OCTET STRING, - lkAdministrationState - AdminStateChoices, - lkLinkStatus - INTEGER, - lkType - INTEGER, - lkLinkSetID - INTEGER, - lkSLC - INTEGER, - lkHostIP - IpAddress, - lkAlternativeHostIP - IpAddress, - lkSgID - INTEGER, - lkM2uaInterfaceID - INTEGER, - lkMTP3LiteApplicationMode - INTEGER, - lkMTP3LiteRemoteIP - IpAddress, - lkMTP3LiteInactivityTimeout - INTEGER, - lkMTP3LiteAllowedTimeoutTimes - INTEGER, - lkRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.1 - lkIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Link index number ranges from 0 to 1023." - ::= { linkEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.2 - lkTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Link destination name for identification purpose only." - DEFVAL { "-" } - ::= { linkEntry 2 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.3 - lkAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed link by lock and unlock commands." - ::= { linkEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.4 - lkLinkStatus OBJECT-TYPE - SYNTAX INTEGER - { - offline(0), - online(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Link Status - Remark:(Read Only) The current status of the serving link." - ::= { linkEntry 4 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.5 - lkType OBJECT-TYPE - SYNTAX INTEGER - { - circuit-8ecp(0), - m2ua(1), - mtp3-lite(2), - iua(3), - m3ua(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Signaling Type - Remark:Specify the signaling type of this link.

- ECP = 8KE1 Control Protocol defined for circuit switch applications.
- M2UA = Signaling transport over MTP2 User Adaptation Layer.
- M3UA = Signaling transport over MTP3 User Adaptation Layer.
- IUA = Signaling transport over ISDN User Adaptation Layer.
- MTP3-Lite = Protocol definded for IPA BSS or AMG connections." - DEFVAL { m2ua } - ::= { linkEntry 5 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.6 - lkLinkSetID OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Linkset ID - Remark:Specify the index number of the associated linkset to this link.
- Range = 0 - 511." - ::= { linkEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.7 - lkSLC OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SLC - Remark:Signaling Link Code ranges from 0 to 15. The SLC must be unique for each link within the same linkset." - ::= { linkEntry 7 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.8 - lkHostIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Primary Host IP - Remark:Specify the primary management server of this link. Enter the IP address of MSC-0 or MSC-1." - ::= { linkEntry 8 } - - --- Protocol Variant --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.9 - lkAlternativeHostIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Alternative Host IP - Remark:Specify a secondary mangement server of this link just in case the primary server is unavailable. Enter the IP address of MSC-1 or MSC-0." - ::= { linkEntry 9 } - - --- Network Indication --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.10 - lkSgID OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SG ID - Remark:Specify the index number of the relevant signaling gateway to this link.
- Range = 0 - 255." - ::= { linkEntry 10 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.11 - lkM2uaInterfaceID OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:M2UA IID - Remark:Specify the M2UA Interface Identifier (IID) to this link. The IID must be unique for each link connected to the same signaling gateway." - ::= { linkEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.12 - lkMTP3LiteApplicationMode OBJECT-TYPE - SYNTAX INTEGER - { - server(0), - client(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MTP3-Lite Application Mode - Remark:Specify the application mode of the local MSC when connecting to the IPA BSS or AMG." - ::= { linkEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.13 - lkMTP3LiteRemoteIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MTP3-Lite Remote IP - Remark:IP address of the connected IPA BSS or AMG." - ::= { linkEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.14 - lkMTP3LiteInactivityTimeout OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MTP3-Lite Inactivity Timeout - Remark:Specify the allowable interval of time without receiving a heartbeat from IPA BSS or AMG. Unit is second." - ::= { linkEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.15 - lkMTP3LiteAllowedTimeoutTimes OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MTP3-Lite Allowed Timeout Times - Remark:Define the maximum number of allowed inactivity timeout." - ::= { linkEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.7.1.1.16 - lkRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { linkEntry 16 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8 - sG OBJECT IDENTIFIER ::= { parameter 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1 - signalingGatewayTable OBJECT-TYPE - SYNTAX SEQUENCE OF SignalingGatewayEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sG 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1 - signalingGatewayEntry OBJECT-TYPE - SYNTAX SignalingGatewayEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { sgIndex } - ::= { signalingGatewayTable 1 } - - - SignalingGatewayEntry ::= - SEQUENCE { - sgIndex - INTEGER, - sgAdministrationState - AdminStateChoices, - sgApplicationMode - INTEGER, - sgAckOption - INTEGER, - sgSignalingType - INTEGER, - sgRemoteIP - IpAddress, - sgRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.1 - sgIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Signaling gateway index number ranges from 0 to 255." - ::= { signalingGatewayEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.2 - sgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed SG entry by lock and unlock commands." - ::= { signalingGatewayEntry 2 } - - --- IP --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.3 - sgApplicationMode OBJECT-TYPE - SYNTAX INTEGER - { - client(0), - server(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Application Mode - Remark:Specify the application mode of the connected signaling gateway." - ::= { signalingGatewayEntry 3 } - - --- Domain Name --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.4 - sgAckOption OBJECT-TYPE - SYNTAX INTEGER - { - allow(0), - forbid(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:ACK Option - Remark:Enable or disable ACK message delivery on this SG entry." - ::= { signalingGatewayEntry 4 } - - --- Switching Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.5 - sgSignalingType OBJECT-TYPE - SYNTAX INTEGER - { - m2ua(0), - iua(1), - m3ua(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Signaling Type - Remark:Specify the signaling type of this signaling gateway.

- M2UA = Signaling transport over MTP2 User Adaptation Layer.
- M3UA = Signaling transport over MTP3 User Adaptation Layer.
- IUA = Signaling transport over ISDN User Adaptation Layer." - ::= { signalingGatewayEntry 5 } - - --- End Point Description --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.6 - sgRemoteIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Remote IP - Remark:IP address of the signaling gateway destination." - ::= { signalingGatewayEntry 6 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.2.2.2.8.1.1.7 - sgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { signalingGatewayEntry 7 } - - - - END - --- --- LGC-SS-MTP3-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-OPPS-MIB.my b/omc/bin/mib/LGC-SS-OPPS-MIB.my deleted file mode 100644 index 50b14b2..0000000 --- a/omc/bin/mib/LGC-SS-OPPS-MIB.my +++ /dev/null @@ -1,538 +0,0 @@ --- --- LGC-SS-OPPS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, September 15, 2010 at 17:02:41 --- - - LGC-SS-OPPS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus, DisplayString - FROM LGC-MIB - Opaque, Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.12 - opps MODULE-IDENTITY - LAST-UPDATED "200810201438Z" -- October 20, 2008 at 14:38 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - ::= { application 12 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { opps 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.12.2 - parameter OBJECT IDENTIFIER ::= { opps 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1 - sysControl OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.1 - license OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:License - Remark:(Read Only) The maximum subscriber capacity of OPPS determined by License Control." - DEFVAL { "" } - ::= { sysControl 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.2 - oPRStatus OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:OPR Status - Remark:(Read Only) The administration state of OPR service which determined by License Control." - ::= { sysControl 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.3 - iMDXStatus OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:IMDX Status - Remark:(Read Only) The administration state of IMDX service which determined by License Control." - ::= { sysControl 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.4 - cDROption OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable OPR CDR generation." - ::= { sysControl 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.5 - replaceOption OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Replace Option - Remark:Enable or disable overwrite the existing OPPS subscriber data when create an OPPS subscriber with the same MSISDN." - ::= { sysControl 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.6 - command OBJECT-TYPE - SYNTAX INTEGER { saveUserData(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sysControl 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.1.7 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Progress Report[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Requesting - [v]2[opt]Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total IMEIs[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Imported IMEIs[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { sysControl 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2 - oPR OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.1 - cosID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:COS ID - Remark:Specify index of a Class of Service (COS) to the OPR applications for charging purpose." - ::= { oPR 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.2 - autoRegisterOption OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Auto-Registration Option - Remark:Enable or disable auto-registration function to the OPR subscribers from the PLMN without roaming agreement." - ::= { oPR 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.3 - autoCleanupThreshold OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Auto-Cleanup Threshold - Remark:The OPPS will send a warning alarm and clean up database by deleting the trial accounts when the OPR license utilization level reaches this threshold.

- Range = 0.50 - 0.99" - ::= { oPR 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.4 - welcomeSMS OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..120)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Welcome SMS - Remark:Customize the text format in a welcome short message. It is sent to the user when he successfully registered to the OPR service and informs him his local phone number and PIN." - DEFVAL { "" } - ::= { oPR 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.5 - pLMNListOption OBJECT-TYPE - SYNTAX INTEGER - { - allow(0), - bar(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PLMN List Option - Remark:Allow or reject the mobile subscribers from the specific PLMNs to register to the local network.

- Allow = The following PLMN list is a white-list.
- Bar = The following PLMN list is a black-list." - ::= { oPR 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.20 - pLMNListTable OBJECT-TYPE - SYNTAX SEQUENCE OF PLMNListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:This table is controled by plmnListOption.The MccMnc is not allowed to register OPR service When plmnListOption is allow and MccMnc is not exist in the table;he MccMnc is not allowed to register OPR service When plmnListOption is bar and MccMnc is exist in the table;The MccMnc is allowed to register OPR service When plmnListOption is allow and MccMnc is exist in the table;The MccMnc is allowed to register OPR service When plmnListOption is bar and MccMnc is not exist in the table;" - ::= { oPR 20 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.20.1 - pLMNListEntry OBJECT-TYPE - SYNTAX PLMNListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { plIndex } - ::= { pLMNListTable 1 } - - - PLMNListEntry ::= - SEQUENCE { - plIndex - INTEGER, - plTitle - OCTET STRING, - plMCCAndMNC - OCTET STRING, - plRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.20.1.1 - plIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:PLMN index number ranges from 1 to 32." - ::= { pLMNListEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.20.1.2 - plTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:PLMN name for identification purpose only." - ::= { pLMNListEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.20.1.3 - plMCCAndMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (5)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MCC & MNC - Remark:Mobile Country Code and Mobile Network Code of this PLMN." - ::= { pLMNListEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.2.20.1.4 - plRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { pLMNListEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3 - iMDX OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.1 - exclusiveLevel OBJECT-TYPE - SYNTAX INTEGER - { - normal(0), - exclusiveHalf(1), - exclusiveFull(2), - shutdown(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Exclusive Level - Remark:Exclusive access provides solutions to restrict the IMDX registration from a predefined range of users:

- Normal = Full IMDX functions.
- Exclusive Half = Prohibit the public (roaming) users from registration.
- Exclusive Full = Prohibit both public (roaming) and hybrid users from registration.
- Shutdown = Shutdown IMDX. Forbid all users from registration." - ::= { iMDX 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.2 - exclusiveRejectionCause OBJECT-TYPE - SYNTAX INTEGER - { - c11(0), - c12(1), - c13(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Exclusive Rejection Cause - Remark:In the exclusive access mode, the network sends a Location Area Updating Reject message to MS to indicate the cause of rejection:

- C11 = PLMN not allowed
- C12 = LA not allowed
- C13 = Roaming not allowed in this LA" - ::= { iMDX 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20 - privateDialingPrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF PrivateDialingPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:MT is a private user if any prefix of MT MSISDN is exist in this table." - ::= { iMDX 20 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20.1 - privateDialingPrefixEntry OBJECT-TYPE - SYNTAX PrivateDialingPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { pdpIndex } - ::= { privateDialingPrefixTable 1 } - - - PrivateDialingPrefixEntry ::= - SEQUENCE { - pdpIndex - INTEGER, - pdpTitle - OCTET STRING, - pdpAttribution - OCTET STRING, - pdpPrivateDialingPrefix - OCTET STRING, - pdpRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20.1.1 - pdpIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Private dialing prefix index number ranges from 1 to 16." - ::= { privateDialingPrefixEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20.1.2 - pdpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Private dialing prefix name for identification purpose only." - ::= { privateDialingPrefixEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20.1.3 - pdpAttribution OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Attribution - Remark:Specify number plan of the the incoming private calls.

- 80 = Unknown
- 81 = National number
- 91 = International number" - ::= { privateDialingPrefixEntry 3 } - - --- Call Number Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20.1.4 - pdpPrivateDialingPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:Specify dialing prefix of the incoming private call. Originating call with this prefix will be treated as private call." - ::= { privateDialingPrefixEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.2.3.20.1.5 - pdpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { privateDialingPrefixEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.3 - csta OBJECT IDENTIFIER ::= { opps 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.4 - cdr OBJECT IDENTIFIER ::= { opps 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.5 - userDataOperation OBJECT IDENTIFIER ::= { opps 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.5.1 - index OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { userDataOperation 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.12.5.2 - operationUserData OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { userDataOperation 2 } - - - - END - --- --- LGC-SS-OPPS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-PALIM-MIB.my b/omc/bin/mib/LGC-SS-PALIM-MIB.my deleted file mode 100644 index 9941d65..0000000 --- a/omc/bin/mib/LGC-SS-PALIM-MIB.my +++ /dev/null @@ -1,4985 +0,0 @@ --- --- LGC-SS-PALIM-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, June 21, 2019 at 09:44:52 --- - - LGC-SS-PALIM-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus, DisplayString8, DisplayString, - AdminStateChoices, OperStateChoices - FROM LGC-MIB - IpAddress, Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.14 - palim MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 14 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2 - parameter OBJECT IDENTIFIER ::= { palim 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.5 - idlePeriodToPurge OBJECT-TYPE - SYNTAX INTEGER (0..1440) - UNITS "hours" - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:How long to purge the inactive user." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.10 - maxLicense OBJECT-TYPE - SYNTAX INTEGER (0..200000) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Max number of user in VBSC." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.11 - pagingOptimization OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:If enabled, VBSC will page all pods of the cluster user last logged in." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.12 - lUHandling OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Switch of LU handling function." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.13 - firstPageTimer OBJECT-TYPE - SYNTAX INTEGER (1..30) - UNITS "seconds" - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Paging cluster timer, it is for the first page." - ::= { system 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.14 - secondPageTimer OBJECT-TYPE - SYNTAX INTEGER (0..30) - UNITS "seconds" - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Paging all timer, it is for the second page." - ::= { system 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.15 - timeIntervalBetweenPingpongHandovers OBJECT-TYPE - SYNTAX INTEGER (0..60) - UNITS "seconds" - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Time Interval between Pingpong Handovers." - ::= { system 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.16 - inactivityTestInterval OBJECT-TYPE - SYNTAX INTEGER (0..3600) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Inactivity test interval of altoPOD. Name:altoGateway MF Heart Beat Interval" - ::= { system 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.17 - lIForAllCalls OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:If enabled, VBSC will do call intercept for all calls." - ::= { system 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.18 - switchingMechanism OBJECT-TYPE - SYNTAX INTEGER - { - null(0), - user2UserInSetup(1), - colp(2), - callingSubAddressSetup(3), - user2UserInConnect(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Tagging method for LCP in GCS." - ::= { system 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.19 - resetSrrFlagForMoSms OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Reset SRR Flag for MO SMS - Remark:Reset Status Report Request Flag for MO SMS." - ::= { system 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.23 - multiplexIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { system 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.24 - mocn OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Switch of MO-CN function." - ::= { system 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.1.25 - defaultMocnMscId OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:default MO-CN MSC id." - ::= { system 25 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4 - tGToMSC OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1 - tGToMSCTable OBJECT-TYPE - SYNTAX SEQUENCE OF TGToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:TG to MSC" - ::= { tGToMSC 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1 - tGToMSCEntry OBJECT-TYPE - SYNTAX TGToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:TG to MSC" - INDEX { tgIndex } - ::= { tGToMSCTable 1 } - - - TGToMSCEntry ::= - SEQUENCE { - tgIndex - INTEGER, - tgTitle - OCTET STRING, - tgAdministrationState - AdminStateChoices, - tgOperabilityStatus - OperStateChoices, - tgAvailabilityStatus - INTEGER, - tgOPC - INTEGER, - tgDPC - INTEGER, - tgNetworkIndicator - INTEGER, - tgProtocolType - INTEGER, - tgCircuitSelectionMode - INTEGER, - tgTrunkGroupType - INTEGER, - tgNetworkName - OCTET STRING, - tgMOCNMcc - OCTET STRING, - tgMOCNMnc - OCTET STRING, - tgMOCNLac - INTEGER, - tgCreateEntryTrunkToMSC - INTEGER, - tgTrunkToMSCEntries - INTEGER, - tgRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.1 - tgIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 8." - ::= { tGToMSCEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.2 - tgTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Trunk Group (max 64 characters)." - ::= { tGToMSCEntry 2 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.3 - tgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Control the operation of the managed Trunk Group." - ::= { tGToMSCEntry 3 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.4 - tgOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark: (Read Only) Indicate whether the externalities (such as MSC configuration, MG configuration, physical connection) are qualified." - ::= { tGToMSCEntry 4 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.5 - tgAvailabilityStatus OBJECT-TYPE - SYNTAX INTEGER - { - offLine(0), - onLine(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Indicate whether the internalities (such as Trunk and TG configuration) are qualified." - ::= { tGToMSCEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.6 - tgOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The Originating Point Code of the current TG." - ::= { tGToMSCEntry 6 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.7 - tgDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:The Destination Point Code of the current TG." - ::= { tGToMSCEntry 7 } - - --- Network Indication --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.8 - tgNetworkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - int(0), - intSpare(1), - nat(2), - natSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the Trunk Group to a network." - DEFVAL { int } - ::= { tGToMSCEntry 8 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.9 - tgProtocolType OBJECT-TYPE - SYNTAX INTEGER - { - aif(0), - aoip(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Select the protocol type for this Trunk Group. " - ::= { tGToMSCEntry 9 } - - --- Circuit Selection Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.10 - tgCircuitSelectionMode OBJECT-TYPE - SYNTAX INTEGER - { - clockwise(0), - antiClockwise(1), - odd(2), - even(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Circuit selection mode of the traffic channel connections." - DEFVAL { clockwise } - ::= { tGToMSCEntry 10 } - - --- Trunk Group Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.11 - tgTrunkGroupType OBJECT-TYPE - SYNTAX INTEGER { out(0) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Application type of this Trunk Group." - DEFVAL { normal } - ::= { tGToMSCEntry 11 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.15 - tgNetworkName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Network Name." - ::= { tGToMSCEntry 15 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.16 - tgMOCNMcc OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MOCN MCC - Remark:used for MOCN only." - ::= { tGToMSCEntry 16 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.17 - tgMOCNMnc OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MOCN MNC - Remark:used for MOCN only." - ::= { tGToMSCEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.18 - tgMOCNLac OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MOCN LAC - Remark:used for MOCN only." - ::= { tGToMSCEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.28 - tgCreateEntryTrunkToMSC OBJECT-TYPE - SYNTAX INTEGER (1..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Create Trunk Entry" - ::= { tGToMSCEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.29 - tgTrunkToMSCEntries OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Entries - Remark:The total number of configured Trunks in this Trunk Group." - ::= { tGToMSCEntry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.1.1.30 - tgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tGToMSCEntry 30 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2 - trunkToMSCTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Trunk to MSC" - ::= { tGToMSC 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1 - trunkToMSCEntry OBJECT-TYPE - SYNTAX TrunkToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:Trunk to MSC" - INDEX { trunkIndex, trunkTGIndex } - ::= { trunkToMSCTable 1 } - - - TrunkToMSCEntry ::= - SEQUENCE { - trunkTGIndex - INTEGER, - trunkIndex - INTEGER, - trunkTitle - OCTET STRING, - trunkAdministrationState - AdminStateChoices, - trunkOperabilityStatus - OperStateChoices, - trunkAvailabilityStatus - INTEGER, - trunkMgID - INTEGER, - trunkPortID - INTEGER, - trunkPortType - INTEGER, - trunkGroupID - INTEGER, - trunkCICValueAssignment - INTEGER, - trunkChannelInUse - INTEGER, - trunkChannelToMSCEntries - INTEGER, - trunkRowStatus - RowStatus - } - --- Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.1 - trunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Trunk Group Index for the Trunk." - ::= { trunkToMSCEntry 1 } - - --- Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.2 - trunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..128) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { trunkToMSCEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.3 - trunkTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Trunk (max 64 characters)." - ::= { trunkToMSCEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.4 - trunkAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Control the operation of the managed Trunk." - ::= { trunkToMSCEntry 4 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.5 - trunkOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Indicate whether the externalities (such as MSC configuration, MG configuration, physical connection) are qualified." - ::= { trunkToMSCEntry 5 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.6 - trunkAvailabilityStatus OBJECT-TYPE - SYNTAX INTEGER - { - offLine(0), - onLine(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Indicate whether the internalities (such as Trunk and TG configuration) are qualified." - ::= { trunkToMSCEntry 6 } - - --- MG ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.7 - trunkMgID OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MG ID - Remark:Specify the Trunk to a Media Gateway.
Not applicable to virtual MG." - DEFVAL { 0 } - ::= { trunkToMSCEntry 7 } - - --- Port ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.8 - trunkPortID OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the Trunk to a physical port of the selected Media
Gateway. Not applicable to virtual MG." - ::= { trunkToMSCEntry 8 } - - --- Port Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.9 - trunkPortType OBJECT-TYPE - SYNTAX INTEGER - { - e1(0), - t1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the type of MG physical ports." - DEFVAL { enable } - ::= { trunkToMSCEntry 9 } - - --- Group ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.10 - trunkGroupID OBJECT-TYPE - SYNTAX INTEGER - { - group0(0), - group1(1) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Select the application group of the Trunk
for redundancy backup." - DEFVAL { group0 } - ::= { trunkToMSCEntry 10 } - - --- Typical CIC Value Assignment --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.11 - trunkCICValueAssignment OBJECT-TYPE - SYNTAX INTEGER (0..4096) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the start CIC to the Trunk for typical mode." - ::= { trunkToMSCEntry 11 } - - --- Port ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.12 - trunkChannelInUse OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Channel number in use." - ::= { trunkToMSCEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.17 - trunkChannelToMSCEntries OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Channel Entries" - ::= { trunkToMSCEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.2.1.18 - trunkRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { trunkToMSCEntry 18 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3 - channelToMSCTable OBJECT-TYPE - SYNTAX SEQUENCE OF ChannelToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Channel to MSC" - ::= { tGToMSC 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1 - channelToMSCEntry OBJECT-TYPE - SYNTAX ChannelToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3 Name:Channel to MSC" - INDEX { tsTrunkIndex, tsIndex, tsTrunkTGIndex } - ::= { channelToMSCTable 1 } - - - ChannelToMSCEntry ::= - SEQUENCE { - tsTrunkTGIndex - INTEGER, - tsTrunkIndex - INTEGER, - tsIndex - INTEGER, - tsChannelCIC - INTEGER, - tsChannelStatus - INTEGER, - tsBlock - INTEGER - } - --- CIC Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1.1 - tsTrunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:TG Index - Remark:Trunk Group Index for the Time Slot." - ::= { channelToMSCEntry 1 } - - --- CIC Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1.2 - tsTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..128) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Trunk Index for the Time Slot." - ::= { channelToMSCEntry 2 } - - --- CIC Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1.3 - tsIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { channelToMSCEntry 3 } - - --- Channel CIC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1.4 - tsChannelCIC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Assign a Circuit Identity Code to the channel." - ::= { channelToMSCEntry 4 } - - --- Call Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1.5 - tsChannelStatus OBJECT-TYPE - SYNTAX INTEGER - { - outOfService(0), - idle(1), - busy(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:The status of the channel." - ::= { channelToMSCEntry 5 } - - --- Local Block --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.4.3.1.6 - tsBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblocked(0), - localBlocked(1), - remoteBlocked(2) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Local block." - ::= { channelToMSCEntry 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5 - mGToMSC OBJECT IDENTIFIER ::= { parameter 5 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1 - mGToMSCTable OBJECT-TYPE - SYNTAX SEQUENCE OF MGToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:MG to MSC" - ::= { mGToMSC 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1 - mGToMSCEntry OBJECT-TYPE - SYNTAX MGToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:MG to MSC" - INDEX { mgIndex } - ::= { mGToMSCTable 1 } - - - MGToMSCEntry ::= - SEQUENCE { - mgIndex - INTEGER, - mgTitle - OCTET STRING, - mgAdministrationState - AdminStateChoices, - mgIP - IpAddress, - mgDomainName - DisplayString16, - mgSwitchingMode - INTEGER, - mgEndPoint - INTEGER, - mgType - INTEGER, - mgMaxPhysicalPorts - INTEGER, - mgMaxChannels - INTEGER, - mgPacketizationPeriod - INTEGER, - mgCodecType - Opaque, - mgAuditTimer - INTEGER, - mgPhysicalPortToMSCEntries - INTEGER, - mgRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.1 - mgIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { mGToMSCEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.2 - mgTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Media Gateway (max 64 characters)." - ::= { mGToMSCEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.3 - mgAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Control the operation of the managed Media Gateway." - ::= { mGToMSCEntry 3 } - - --- IP --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.4 - mgIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:IP address of the Media Gateway or 8KE1 Card." - ::= { mGToMSCEntry 4 } - - --- Domain Name --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.5 - mgDomainName OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify a domain name to the Media Gateway." - ::= { mGToMSCEntry 5 } - - --- Switching Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.6 - mgSwitchingMode OBJECT-TYPE - SYNTAX INTEGER { mgcp(0) } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Select the switching mode of the specified MG." - DEFVAL { mgcp } - ::= { mGToMSCEntry 6 } - - --- End Point Description --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.7 - mgEndPoint OBJECT-TYPE - SYNTAX INTEGER - { - structured(1), - unstructured(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the method of MGCP endpoint description." - DEFVAL { structured } - ::= { mGToMSCEntry 7 } - - --- MG Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.9 - mgType OBJECT-TYPE - SYNTAX INTEGER - { - audioCodes(1), - tandem(20), - imptandem(23), - aoip(24) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Select the type of MG endpoint." - DEFVAL { 1 } - ::= { mGToMSCEntry 9 } - - --- Max Physical Ports --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.10 - mgMaxPhysicalPorts OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The total physical port number of the MG.
Not applicable to virtual MG." - ::= { mGToMSCEntry 10 } - - --- Max Channels --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.11 - mgMaxChannels OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The total channel number of the virtual MG.
Applicable to virtual MG only." - ::= { mGToMSCEntry 11 } - - --- Packetization Period --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.12 - mgPacketizationPeriod OBJECT-TYPE - SYNTAX INTEGER - { - x20ms(20), - x40ms(40), - x60ms(60), - x80ms(80) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The period over which encoded voice bits are
collected for encapsulation in." - DEFVAL { x20ms } - ::= { mGToMSCEntry 12 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.14 - mgCodecType OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Codec 0[u]00.0-00.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 1[u]01.0-01.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 2[u]02.0-02.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 3[u]03.0-03.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 4[u]04.0-04.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 5[u]05.0-05.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 6[u]06.0-06.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 7[u]07.0-07.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 8[u]08.0-08.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 9[u]09.0-09.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 10[u]10.0-10.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 11[u]11.0-11.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 12[u]12.0-12.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 13[u]13.0-13.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 14[u]14.0-14.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 15[u]15.0-15.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [remark]Codec Type." - ::= { mGToMSCEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.15 - mgAuditTimer OBJECT-TYPE - SYNTAX INTEGER (0..255) - UNITS "seconds" - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Audit Timer." - ::= { mGToMSCEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.16 - mgPhysicalPortToMSCEntries OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Physical Port Entries - Remark:The total number of the configured Physical
Ports in this Media Gateway." - ::= { mGToMSCEntry 16 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.1.1.17 - mgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mGToMSCEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.2 - physicalPortToMSCTable OBJECT-TYPE - SYNTAX SEQUENCE OF PhysicalPortToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Physical Port to MSC" - ::= { mGToMSC 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.2.1 - physicalPortToMSCEntry OBJECT-TYPE - SYNTAX PhysicalPortToMSCEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:Physical Port to MSC" - INDEX { ppIndex, ppMGIndex } - ::= { physicalPortToMSCTable 1 } - - - PhysicalPortToMSCEntry ::= - SEQUENCE { - ppMGIndex - INTEGER, - ppIndex - INTEGER, - ppUsedFlag - INTEGER, - ppStatus - INTEGER - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.2.1.1 - ppMGIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Media Gateway Index for the Physical Port." - ::= { physicalPortToMSCEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.2.1.2 - ppIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { physicalPortToMSCEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.2.1.3 - ppUsedFlag OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - inUse(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Used flag." - ::= { physicalPortToMSCEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.5.2.1.4 - ppStatus OBJECT-TYPE - SYNTAX INTEGER - { - notReady(0), - ready(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:The status of the physical port." - ::= { physicalPortToMSCEntry 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6 - locationArea OBJECT IDENTIFIER ::= { parameter 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1 - locationAreaTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocationAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { locationArea 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1 - locationAreaEntry OBJECT-TYPE - SYNTAX LocationAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { laIndex } - ::= { locationAreaTable 1 } - - - LocationAreaEntry ::= - SEQUENCE { - laIndex - INTEGER, - laType - INTEGER, - laLAC - INTEGER, - laMCC - OCTET STRING, - laMNC - OCTET STRING, - laNRILength - INTEGER, - laCreateEntryCell - INTEGER, - laCellEntries - INTEGER, - laRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.1 - laIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 256." - ::= { locationAreaEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.2 - laType OBJECT-TYPE - SYNTAX INTEGER { out(1) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Location Area (max 16 characters)." - ::= { locationAreaEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.3 - laLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Local area code." - ::= { locationAreaEntry 3 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.4 - laMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Mobile Country Code,the length is 3." - ::= { locationAreaEntry 4 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.5 - laMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Mobile National Code,the length is 2 to 3." - ::= { locationAreaEntry 5 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.6 - laNRILength OBJECT-TYPE - SYNTAX INTEGER (0..10) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:NRI Length from 0 to 10, NRI routing will be disabled when NRI Length is 0." - ::= { locationAreaEntry 6 } - - --- Cell --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.16 - laCreateEntryCell OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { locationAreaEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.17 - laCellEntries OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Cell or NRI Entries - Key Parameter:Yes - Remark:The total number of configured Cells in this LAC." - ::= { locationAreaEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.1.1.18 - laRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { locationAreaEntry 18 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2 - cellTable OBJECT-TYPE - SYNTAX SEQUENCE OF CellEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Cell or NRI" - ::= { locationArea 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1 - cellEntry OBJECT-TYPE - SYNTAX CellEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { cellIndex, cellLAIndex } - ::= { cellTable 1 } - - - CellEntry ::= - SEQUENCE { - cellLAIndex - INTEGER, - cellIndex - INTEGER, - cellCellID - INTEGER, - cellTgID - INTEGER, - cellNRI - INTEGER, - cellNBMCC - OCTET STRING, - cellNBMNC - OCTET STRING, - cellNBLAC - INTEGER, - cellNRIRouteAdministration - INTEGER, - cellRowStatus - RowStatus - } - --- Cell Location Area Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.1 - cellLAIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Location Area Index for the Cell." - ::= { cellEntry 1 } - - --- Cell Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.2 - cellIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 0 to 255." - ::= { cellEntry 2 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.3 - cellCellID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Global Cell Identity defined in GSM 03.03." - ::= { cellEntry 3 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.4 - cellTgID OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:TG ID - Remark:Trunk Group id configured in TG to MSC." - ::= { cellEntry 4 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.5 - cellNRI OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Network Resource Indication." - ::= { cellEntry 5 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.6 - cellNBMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Non-Broacast MCC, the length is 3." - ::= { cellEntry 6 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.7 - cellNBMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Non-Broacast MNC,the length is 2 to 3." - ::= { cellEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.8 - cellNBLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Non-Broacast LAC." - ::= { cellEntry 8 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.9 - cellNRIRouteAdministration OBJECT-TYPE - SYNTAX INTEGER - { - block(0), - unblock(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Administration State of NRI Routing." - ::= { cellEntry 9 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.6.2.1.10 - cellRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cellEntry 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7 - mocnControl OBJECT IDENTIFIER ::= { parameter 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.1 - status OBJECT-TYPE - SYNTAX INTEGER - { - disabled(0), - blackList(1), - whiteList(2) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:The type of the user registration control table." - ::= { mocnControl 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.2 - lURejectCause OBJECT-TYPE - SYNTAX INTEGER - { - pLMNnotallowed(11), - lACnotallowed(12), - roamingnotallowed(13) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:The LU reject cause returned to MS." - ::= { mocnControl 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.3 - mocnControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF MocnControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mocnControl 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.3.1 - mocnControlEntry OBJECT-TYPE - SYNTAX MocnControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { rcIndex } - ::= { mocnControlTable 1 } - - - MocnControlEntry ::= - SEQUENCE { - rcIndex - INTEGER, - rcIMSIPrefix - OCTET STRING, - rcTgToMsc - INTEGER, - rcRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.3.1.1 - rcIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 256." - ::= { mocnControlEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.3.1.2 - rcIMSIPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:IMSI prefix." - ::= { mocnControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.3.1.3 - rcTgToMsc OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Tg to MSC." - ::= { mocnControlEntry 3 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.7.3.1.10 - rcRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mocnControlEntry 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8 - tGToRGW OBJECT IDENTIFIER ::= { parameter 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1 - tGToRGWTable OBJECT-TYPE - SYNTAX SEQUENCE OF TGToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:TG to RGW" - ::= { tGToRGW 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1 - tGToRGWEntry OBJECT-TYPE - SYNTAX TGToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:TG to RGW" - INDEX { tgmIndex } - ::= { tGToRGWTable 1 } - - - TGToRGWEntry ::= - SEQUENCE { - tgmIndex - INTEGER, - tgmTitle - OCTET STRING, - tgmAdministrationState - AdminStateChoices, - tgmOperabilityStatus - OperStateChoices, - tgmAvailabilityStatus - INTEGER, - tgmOPC - INTEGER, - tgmDPC - INTEGER, - tgmNetworkIndicator - INTEGER, - tgmProtocolType - INTEGER, - tgmCircuitSelectionMode - INTEGER, - tgmTrunkGroupType - INTEGER, - tgmLac - INTEGER, - tgmCellId - INTEGER, - tgmChannelQuench - INTEGER, - tgmIPEndPoint - INTEGER, - tgmQuietTimeInactivityTest - Opaque, - tgmLatitude - OCTET STRING, - tgmLongitude - OCTET STRING, - tgmCreateEntryTrunkToRGW - INTEGER, - tgmTrunkToRGWEntries - INTEGER, - tgmRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.1 - tgmIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 256." - ::= { tGToRGWEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.2 - tgmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Trunk Group (max 64 characters)." - ::= { tGToRGWEntry 2 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.3 - tgmAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Control the operation of the managed Trunk Group." - ::= { tGToRGWEntry 3 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.4 - tgmOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Indicate the current Trunk Group operation
is qualified by Availability Status." - ::= { tGToRGWEntry 4 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.5 - tgmAvailabilityStatus OBJECT-TYPE - SYNTAX INTEGER - { - offLine(0), - onLine(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Qualify Operation State providing details
about the current operational status." - ::= { tGToRGWEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.6 - tgmOPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The Originating Point Code of the current TG." - ::= { tGToRGWEntry 6 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.7 - tgmDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:The Destination Point Code of the current TG." - ::= { tGToRGWEntry 7 } - - --- Network Indication --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.8 - tgmNetworkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - int(0), - intSpare(1), - nat(2), - natSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the Trunk Group to a network." - DEFVAL { int } - ::= { tGToRGWEntry 8 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.9 - tgmProtocolType OBJECT-TYPE - SYNTAX INTEGER - { - aif(0), - mf(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Select the protocol type for this Trunk Group. " - ::= { tGToRGWEntry 9 } - - --- Circuit Selection Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.10 - tgmCircuitSelectionMode OBJECT-TYPE - SYNTAX INTEGER - { - clockwise(0), - antiClockwise(1), - odd(2), - even(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Circuit selection mode of the traffic channel connections." - DEFVAL { clockwise } - ::= { tGToRGWEntry 10 } - - --- Trunk Group Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.11 - tgmTrunkGroupType OBJECT-TYPE - SYNTAX INTEGER { in(1) } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Application type of this Trunk Group." - DEFVAL { normal } - ::= { tGToRGWEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.13 - tgmLac OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Lac." - ::= { tGToRGWEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.14 - tgmCellId OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Cell Id." - ::= { tGToRGWEntry 14 } - - --- Protocol Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.15 - tgmChannelQuench OBJECT-TYPE - SYNTAX INTEGER - { - disabled(0), - enabled(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Channel Quench flag. " - ::= { tGToRGWEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.16 - tgmIPEndPoint OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Stream IP End Point in RtpProxy." - ::= { tGToRGWEntry 16 } - - --- Inactivity Test - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.17 - tgmQuietTimeInactivityTest OBJECT-TYPE - SYNTAX Opaque (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Inactivity Test[u]00.0-00.7[u]select - [v]0[opt]disabled completely - [v]1[opt]disabled specific time - [v]2[opt]enabled completely - [unit]disabled start time[u]01.0-01.7[u]select - [v]0[opt]AM 00:00 - [v]1[opt]AM 00:30 - [v]2[opt]AM 01:00 - [v]3[opt]AM 01:30 - [v]4[opt]AM 02:00 - [v]5[opt]AM 02:30 - [v]6[opt]AM 03:00 - [v]7[opt]AM 03:30 - [v]8[opt]AM 04:00 - [v]9[opt]AM 04:30 - [v]10[opt]AM 05:00 - [v]11[opt]AM 05:30 - [v]12[opt]AM 06:00 - [v]13[opt]AM 06:30 - [v]14[opt]AM 07:00 - [v]15[opt]AM 07:30 - [v]16[opt]AM 08:00 - [v]17[opt]AM 08:30 - [v]18[opt]AM 09:00 - [v]19[opt]AM 09:30 - [v]20[opt]AM 10:00 - [v]21[opt]AM 10:30 - [v]22[opt]AM 11:00 - [v]23[opt]AM 11:30 - [v]24[opt]AM 12:00 - [v]25[opt]PM 00:30 - [v]26[opt]PM 01:00 - [v]27[opt]PM 01:30 - [v]28[opt]PM 02:00 - [v]29[opt]PM 02:30 - [v]30[opt]PM 03:00 - [v]31[opt]PM 03:30 - [v]32[opt]PM 04:00 - [v]33[opt]PM 04:30 - [v]34[opt]PM 05:00 - [v]35[opt]PM 05:30 - [v]36[opt]PM 06:00 - [v]37[opt]PM 06:30 - [v]38[opt]PM 07:00 - [v]39[opt]PM 07:30 - [v]40[opt]PM 08:00 - [v]41[opt]PM 08:30 - [v]42[opt]PM 09:00 - [v]43[opt]PM 09:30 - [v]44[opt]PM 10:00 - [v]45[opt]PM 10:30 - [v]46[opt]PM 11:00 - [v]47[opt]PM 11:30 - [unit]disabled end time[u]02.0-02.7[u]select - [v]0[opt]AM 00:00 - [v]1[opt]AM 00:30 - [v]2[opt]AM 01:00 - [v]3[opt]AM 01:30 - [v]4[opt]AM 02:00 - [v]5[opt]AM 02:30 - [v]6[opt]AM 03:00 - [v]7[opt]AM 03:30 - [v]8[opt]AM 04:00 - [v]9[opt]AM 04:30 - [v]10[opt]AM 05:00 - [v]11[opt]AM 05:30 - [v]12[opt]AM 06:00 - [v]13[opt]AM 06:30 - [v]14[opt]AM 07:00 - [v]15[opt]AM 07:30 - [v]16[opt]AM 08:00 - [v]17[opt]AM 08:30 - [v]18[opt]AM 09:00 - [v]19[opt]AM 09:30 - [v]20[opt]AM 10:00 - [v]21[opt]AM 10:30 - [v]22[opt]AM 11:00 - [v]23[opt]AM 11:30 - [v]24[opt]AM 12:00 - [v]25[opt]PM 00:30 - [v]26[opt]PM 01:00 - [v]27[opt]PM 01:30 - [v]28[opt]PM 02:00 - [v]29[opt]PM 02:30 - [v]30[opt]PM 03:00 - [v]31[opt]PM 03:30 - [v]32[opt]PM 04:00 - [v]33[opt]PM 04:30 - [v]34[opt]PM 05:00 - [v]35[opt]PM 05:30 - [v]36[opt]PM 06:00 - [v]37[opt]PM 06:30 - [v]38[opt]PM 07:00 - [v]39[opt]PM 07:30 - [v]40[opt]PM 08:00 - [v]41[opt]PM 08:30 - [v]42[opt]PM 09:00 - [v]43[opt]PM 09:30 - [v]44[opt]PM 10:00 - [v]45[opt]PM 10:30 - [v]46[opt]PM 11:00 - [v]47[opt]PM 11:30 - [remark]Quiet Time Inactivity test of altoPOD." - ::= { tGToRGWEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.18 - tgmLatitude OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Latitude of altoPod (-90, 90), indicate south if less than 0." - ::= { tGToRGWEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.19 - tgmLongitude OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Longitude of altoPod (0, 360), indicate west when more than 180." - ::= { tGToRGWEntry 19 } - - --- Trunk --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.18 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.28 - tgmCreateEntryTrunkToRGW OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Create Trunk Entry" - ::= { tGToRGWEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.29 - tgmTrunkToRGWEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Trunk Entries - Remark:The total number of configured Trunks in this Trunk Group." - ::= { tGToRGWEntry 29 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.19 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.1.1.30 - tgmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tGToRGWEntry 30 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2 - trunkToRGWTable OBJECT-TYPE - SYNTAX SEQUENCE OF TrunkToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Trunk to RGW" - ::= { tGToRGW 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1 - trunkToRGWEntry OBJECT-TYPE - SYNTAX TrunkToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:Trunk to RGW" - INDEX { trunkmIndex, trunkmTGIndex } - ::= { trunkToRGWTable 1 } - - - TrunkToRGWEntry ::= - SEQUENCE { - trunkmTGIndex - INTEGER, - trunkmIndex - INTEGER, - trunkmTitle - OCTET STRING, - trunkmAdministrationState - AdminStateChoices, - trunkmOperabilityStatus - OperStateChoices, - trunkmAvailabilityStatus - INTEGER, - trunkmMgID - INTEGER, - trunkmPortID - INTEGER, - trunkmPortType - INTEGER, - trunkmGroupID - INTEGER, - trunkmCICValueAssignment - INTEGER, - trunkmChannelInUse - INTEGER, - trunkmChannelToRGWEntries - INTEGER, - trunkmRowStatus - RowStatus - } - --- Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.1 - trunkmTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Trunk Group Index for the Trunk." - ::= { trunkToRGWEntry 1 } - - --- Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.2 - trunkmIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { trunkToRGWEntry 2 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.3 - trunkmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Trunk (max 64 characters)." - ::= { trunkToRGWEntry 3 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.4 - trunkmAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Control the operation of the managed Trunk." - ::= { trunkToRGWEntry 4 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.5 - trunkmOperabilityStatus OBJECT-TYPE - SYNTAX OperStateChoices - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Indicate the current linkset operation
is qualified by Availability Status." - ::= { trunkToRGWEntry 5 } - - --- Availability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.6 - trunkmAvailabilityStatus OBJECT-TYPE - SYNTAX INTEGER - { - offLine(0), - onLine(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:(Read Only) Qualify Operation State providing details
about the current operational status." - ::= { trunkToRGWEntry 6 } - - --- MG ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.7 - trunkmMgID OBJECT-TYPE - SYNTAX INTEGER (0..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Specify the Trunk to a Media Gateway.
Not applicable to virtual MG." - DEFVAL { 0 } - ::= { trunkToRGWEntry 7 } - - --- Port ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.8 - trunkmPortID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the Trunk to a physical port of the selected Media
Gateway. Not applicable to virtual MG." - ::= { trunkToRGWEntry 8 } - - --- Port Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.9 - trunkmPortType OBJECT-TYPE - SYNTAX INTEGER - { - e1(0), - t1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the type of MG physical ports." - DEFVAL { enable } - ::= { trunkToRGWEntry 9 } - - --- Group ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.10 - trunkmGroupID OBJECT-TYPE - SYNTAX INTEGER - { - group0(0), - group1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Select the application group of the Trunk
for redundancy backup." - DEFVAL { group0 } - ::= { trunkToRGWEntry 10 } - - --- Typical CIC Value Assignment --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.11 - trunkmCICValueAssignment OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the start CIC to the Trunk for typical mode." - ::= { trunkToRGWEntry 11 } - - --- Port ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.12 - trunkmChannelInUse OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Channel number in use." - ::= { trunkToRGWEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.17 - trunkmChannelToRGWEntries OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Channel Entries" - ::= { trunkToRGWEntry 17 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.2.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.2.1.18 - trunkmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { trunkToRGWEntry 18 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3 - channelToRGWTable OBJECT-TYPE - SYNTAX SEQUENCE OF ChannelToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Channel to RGW" - ::= { tGToRGW 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1 - channelToRGWEntry OBJECT-TYPE - SYNTAX ChannelToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:3 Name:Channel to RGW" - INDEX { tsmIndex, tsmTrunkIndex, tsmTrunkTGIndex } - ::= { channelToRGWTable 1 } - - - ChannelToRGWEntry ::= - SEQUENCE { - tsmTrunkTGIndex - INTEGER, - tsmTrunkIndex - INTEGER, - tsmIndex - INTEGER, - tsmChannelCIC - INTEGER, - tsmChannelStatus - INTEGER, - tsmBlock - INTEGER - } - --- CIC Trunk TG Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1.1 - tsmTrunkTGIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Trunk Group Index for the Channel." - ::= { channelToRGWEntry 1 } - - --- CIC Trunk Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1.2 - tsmTrunkIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Trunk Index for the Time Slot." - ::= { channelToRGWEntry 2 } - - --- CIC Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1.3 - tsmIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { channelToRGWEntry 3 } - - --- Channel CIC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1.4 - tsmChannelCIC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Assign a Circuit Identity Code to the channel." - ::= { channelToRGWEntry 4 } - - --- Call Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1.5 - tsmChannelStatus OBJECT-TYPE - SYNTAX INTEGER - { - outOfService(0), - idle(1), - busy(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:The status of the channel." - ::= { channelToRGWEntry 5 } - - --- Local Block --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.8.3.1.6 - tsmBlock OBJECT-TYPE - SYNTAX INTEGER - { - unblocked(0), - localBlocked(1), - remoteBlocked(2) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Local block." - ::= { channelToRGWEntry 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9 - mGToRGW OBJECT IDENTIFIER ::= { parameter 9 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1 - mGToRGWTable OBJECT-TYPE - SYNTAX SEQUENCE OF MGToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:MG to RGW" - ::= { mGToRGW 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.5.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1 - mGToRGWEntry OBJECT-TYPE - SYNTAX MGToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:MG to RGW" - INDEX { mgmIndex } - ::= { mGToRGWTable 1 } - - - MGToRGWEntry ::= - SEQUENCE { - mgmIndex - INTEGER, - mgmTitle - OCTET STRING, - mgmAdministrationState - AdminStateChoices, - mgmIP - IpAddress, - mgmDomainName - DisplayString16, - mgmSwitchingMode - INTEGER, - mgmEndPoint - INTEGER, - mgmType - INTEGER, - mgmMaxPhysicalPorts - INTEGER, - mgmMaxChannels - INTEGER, - mgmPacketizationPeriod - INTEGER, - mgmChannelType - INTEGER, - mgmCodecType - Opaque, - mgmSilenceSuppression - INTEGER, - mgmRtpMultiplex - INTEGER, - mgmAuditTimer - INTEGER, - mgmPhysicalPortToRGWEntries - INTEGER, - mgmRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.1 - mgmIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 256." - ::= { mGToRGWEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.2 - mgmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the selected Media Gateway (max 64 characters)." - ::= { mGToRGWEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.3 - mgmAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Control the operation of the managed Media Gateway." - ::= { mGToRGWEntry 3 } - - --- IP --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.4 - mgmIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:IP address of the Media Gateway or 8KE1 Card." - ::= { mGToRGWEntry 4 } - - --- Domain Name --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.5 - mgmDomainName OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Specify a domain name to the Media Gateway." - ::= { mGToRGWEntry 5 } - - --- Switching Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.6 - mgmSwitchingMode OBJECT-TYPE - SYNTAX INTEGER { mgcp(0) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Select the switching mode of the specified MG." - DEFVAL { mgcp } - ::= { mGToRGWEntry 6 } - - --- End Point Description --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.7 - mgmEndPoint OBJECT-TYPE - SYNTAX INTEGER - { - structured(1), - unstructured(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Specify the method of MGCP endpoint description." - DEFVAL { structured } - ::= { mGToRGWEntry 7 } - - --- MG Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.9 - mgmType OBJECT-TYPE - SYNTAX INTEGER - { - internal(0), - audioCodes(1), - lgcMG(2), - lgcCS(3), - ipBSS(4), - rgwMG(5), - analogLine(11), - tandem(20), - announcementServer(21) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Select the type of MG endpoint." - DEFVAL { digitalChannel } - ::= { mGToRGWEntry 9 } - - --- Max Physical Ports --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.10 - mgmMaxPhysicalPorts OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:The total physical port number of the MG.
Not applicable to virtual MG." - ::= { mGToRGWEntry 10 } - - --- Max Channels --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.11 - mgmMaxChannels OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:The total channel number of the virtual MG.
Applicable to virtual MG only." - ::= { mGToRGWEntry 11 } - - --- Packetization Period --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.12 - mgmPacketizationPeriod OBJECT-TYPE - SYNTAX INTEGER - { - x20ms(20), - x40ms(40), - x60ms(60), - x80ms(80), - x100ms(100) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The period over which encoded voice bits are
collected for encapsulation in." - DEFVAL { x20ms } - ::= { mGToRGWEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.13 - mgmChannelType OBJECT-TYPE - SYNTAX INTEGER - { - rtp(0), - udp(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Channel Type." - ::= { mGToRGWEntry 13 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.14 - mgmCodecType OBJECT-TYPE - SYNTAX Opaque (SIZE (16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Codec 0[u]00.0-00.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 1[u]01.0-01.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 2[u]02.0-02.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 3[u]03.0-03.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 4[u]04.0-04.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 5[u]05.0-05.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 6[u]06.0-06.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 7[u]07.0-07.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 8[u]08.0-08.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 9[u]09.0-09.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 10[u]10.0-10.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 11[u]11.0-11.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 12[u]12.0-12.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 13[u]13.0-13.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 14[u]14.0-14.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [unit]Codec 15[u]15.0-15.7[u]select - [v]0[opt]A_Law - [v]1[opt]Mu_Law - [v]2[opt]FR - [v]3[opt]EFR - [v]4[opt]AMR_12_2 - [v]5[opt]G729b - [v]6[opt]AMR_10_2 - [v]7[opt]AMR_7_95 - [v]8[opt]AMR_7_4 - [v]9[opt]AMR_6_7 - [v]10[opt]AMR_5_9 - [v]11[opt]AMR_5_15 - [v]12[opt]AMR_4_75 - [v]13[opt]G729 - [v]255[opt]NULL - [remark]Codec Type." - ::= { mGToRGWEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.15 - mgmSilenceSuppression OBJECT-TYPE - SYNTAX INTEGER - { - enable(0), - disable(1) - } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Silence Suppression." - ::= { mGToRGWEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.16 - mgmRtpMultiplex OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Rtp Multiplex." - ::= { mGToRGWEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.18 - mgmAuditTimer OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The time interval between sending AUEP message from MGC to MGW to check the trunk status. Set 0 to disable." - ::= { mGToRGWEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.19 - mgmPhysicalPortToRGWEntries OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Physical Port Entries - Remark:The total number of the configured Physical
Ports in this Media Gateway." - ::= { mGToRGWEntry 19 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.14 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.1.1.20 - mgmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mGToRGWEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.2 - physicalPortToRGWTable OBJECT-TYPE - SYNTAX SEQUENCE OF PhysicalPortToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Physical Port to RGW" - ::= { mGToRGW 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.2.1 - physicalPortToRGWEntry OBJECT-TYPE - SYNTAX PhysicalPortToRGWEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:Physical Port to RGW" - INDEX { ppmIndex, ppmMGIndex } - ::= { physicalPortToRGWTable 1 } - - - PhysicalPortToRGWEntry ::= - SEQUENCE { - ppmMGIndex - INTEGER, - ppmIndex - INTEGER, - ppmUsedFlag - INTEGER, - ppmStatus - INTEGER - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.2.1.1 - ppmMGIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Media Gateway Index for the Physical Port." - ::= { physicalPortToRGWEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.2.1.2 - ppmIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 32." - ::= { physicalPortToRGWEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.2.1.3 - ppmUsedFlag OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - inUse(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Used flag." - ::= { physicalPortToRGWEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.9.2.1.4 - ppmStatus OBJECT-TYPE - SYNTAX INTEGER - { - notReady(0), - ready(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:The status of the physical port." - ::= { physicalPortToRGWEntry 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10 - localSwitchingArea OBJECT IDENTIFIER ::= { parameter 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1 - localSwitchingAreaTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocalSwitchingAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { localSwitchingArea 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1 - localSwitchingAreaEntry OBJECT-TYPE - SYNTAX LocalSwitchingAreaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { lsaIndex } - ::= { localSwitchingAreaTable 1 } - - - LocalSwitchingAreaEntry ::= - SEQUENCE { - lsaIndex - INTEGER, - lsaTitle - OCTET STRING, - lsaLCPOption - INTEGER, - lsaCreateEntryLsaPod - INTEGER, - lsaLsaPodEntries - INTEGER, - lsaRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1.1 - lsaIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 512." - ::= { localSwitchingAreaEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1.2 - lsaTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of the Local Switching Area (max 64 characters)." - ::= { localSwitchingAreaEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1.3 - lsaLCPOption OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { localSwitchingAreaEntry 3 } - - --- Cell --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1.8 - lsaCreateEntryLsaPod OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { localSwitchingAreaEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1.9 - lsaLsaPodEntries OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:altoPod Entries - Remark:The total number of configured Pods in this LSA." - ::= { localSwitchingAreaEntry 9 } --- Name:altoPod Entries - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.1.1.10 - lsaRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { localSwitchingAreaEntry 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2 - lsaPodTable OBJECT-TYPE - SYNTAX SEQUENCE OF LsaPodEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { localSwitchingArea 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2.1 - lsaPodEntry OBJECT-TYPE - SYNTAX LsaPodEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { lsapodPodIndex, lsapodLSAIndex } - ::= { lsaPodTable 1 } - - - LsaPodEntry ::= - SEQUENCE { - lsapodLSAIndex - INTEGER, - lsapodPodIndex - INTEGER, - lsapodTitle - OCTET STRING, - lsapodTgID - INTEGER, - lsapodRowStatus - RowStatus - } - --- Cell Location Area Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2.1.1 - lsapodLSAIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:LSA Index for the Pod." - ::= { lsaPodEntry 1 } - - --- Cell Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2.1.2 - lsapodPodIndex OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number range from 0 to 511." - ::= { lsaPodEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2.1.3 - lsapodTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of this LSA Pod (max 64 characters)." - ::= { lsaPodEntry 3 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2.1.4 - lsapodTgID OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:altoPod ID - Remark:Tg Index." - ::= { lsaPodEntry 4 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.10.2.1.10 - lsapodRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { lsaPodEntry 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11 - cluster OBJECT IDENTIFIER ::= { parameter 11 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1 - clusterTable OBJECT-TYPE - SYNTAX SEQUENCE OF ClusterEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cluster 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1 - clusterEntry OBJECT-TYPE - SYNTAX ClusterEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { clsIndex } - ::= { clusterTable 1 } - - - ClusterEntry ::= - SEQUENCE { - clsIndex - INTEGER, - clsTitle - OCTET STRING, - clsLUTimeTableId - INTEGER, - clsCreateEntryClusterPod - INTEGER, - clsClusterPodEntries - INTEGER, - clsRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1.1 - clsIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 512." - ::= { clusterEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1.2 - clsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of this Cluster (max 64 characters)." - ::= { clusterEntry 2 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1.3 - clsLUTimeTableId OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:LU time table id." - ::= { clusterEntry 3 } - - --- Cell --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.15 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1.8 - clsCreateEntryClusterPod OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { clusterEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1.9 - clsClusterPodEntries OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:altoPod Entries - Remark:The total number of configured Pods in this Cluster." - ::= { clusterEntry 9 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.1.1.10 - clsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { clusterEntry 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2 - clusterPodTable OBJECT-TYPE - SYNTAX SEQUENCE OF ClusterPodEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Cluster Pod" - ::= { cluster 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2.1 - clusterPodEntry OBJECT-TYPE - SYNTAX ClusterPodEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2 Name:Cluster Pod" - INDEX { clpClusterIndex, clpPodIndex } - ::= { clusterPodTable 1 } - - - ClusterPodEntry ::= - SEQUENCE { - clpClusterIndex - INTEGER, - clpPodIndex - INTEGER, - clpTitle - OCTET STRING, - clpTgID - INTEGER, - clpRowStatus - RowStatus - } - --- Cell Location Area Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2.1.1 - clpClusterIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Cluster Index for the Pod." - ::= { clusterPodEntry 1 } - - --- Cell Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2.1.2 - clpPodIndex OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number range from 0 to 511." - ::= { clusterPodEntry 2 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2.1.3 - clpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title of this Cluster Pod (max 64 characters)." - ::= { clusterPodEntry 3 } - - --- Cell ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2.1.4 - clpTgID OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:altoPod ID - Remark:Tg Index." - ::= { clusterPodEntry 4 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.3.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.11.2.1.10 - clpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { clusterPodEntry 10 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.12 - lUTimeControl OBJECT IDENTIFIER ::= { parameter 12 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.12.1 - lUTimeTableTable OBJECT-TYPE - SYNTAX SEQUENCE OF LUTimeTableEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:LU Time Table" - ::= { lUTimeControl 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.12.1.1 - lUTimeTableEntry OBJECT-TYPE - SYNTAX LUTimeTableEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:LU Time Table" - INDEX { luttIndex } - ::= { lUTimeTableTable 1 } - - - LUTimeTableEntry ::= - SEQUENCE { - luttIndex - INTEGER, - luttTimeSlots - Opaque, - luttRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.12.1.1.1 - luttIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { lUTimeTableEntry 1 } - - --- Creation Time Stamp --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.12.1.1.2 - luttTimeSlots OBJECT-TYPE - SYNTAX Opaque (SIZE (4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]00:00-00:30[u]00.0-00.0[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]00:30-01:00[u]00.1-00.1[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]01:00-01:30[u]00.2-00.2[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]01:30-02:00[u]00.3-00.3[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]02:00-02:30[u]00.4-00.4[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]02:30-03:00[u]00.5-00.5[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]03:00-03:30[u]00.6-00.6[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]03:30-04:00[u]00.7-00.7[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]04:00-04:30[u]01.0-01.0[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]04:30-05:00[u]01.1-01.1[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]05:00-05:30[u]01.2-01.2[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]05:30-06:00[u]01.3-01.3[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]06:00-06:30[u]01.4-01.4[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]06:30-07:00[u]01.5-01.5[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]07:00-07:30[u]01.6-01.6[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]07:30-08:00[u]01.7-01.7[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]08:00-08:30[u]02.0-02.0[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]08:30-09:00[u]02.1-02.1[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]09:00-09:30[u]02.2-02.2[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]09:30-10:00[u]02.3-02.3[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]10:00-10:30[u]02.4-02.4[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]10:30-11:00[u]02.5-02.5[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]11:00-11:30[u]02.6-02.6[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]11:30-12:00[u]02.7-02.7[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]12:00-12:30[u]03.0-03.0[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]12:30-13:00[u]03.1-03.1[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]13:00-13:30[u]03.2-03.2[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]13:30-14:00[u]03.3-03.3[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]14:00-14:30[u]03.4-03.4[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]14:30-15:00[u]03.5-03.5[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]15:00-15:30[u]03.6-03.6[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]15:30-16:00[u]03.7-03.7[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]16:00-16:30[u]04.0-04.0[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]16:30-17:00[u]04.1-04.1[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]17:00-17:30[u]04.2-04.2[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]17:30-18:00[u]04.3-04.3[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]18:00-18:30[u]04.4-04.4[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]18:30-19:00[u]04.5-04.5[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]19:00-19:30[u]04.6-04.6[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]19:30-20:00[u]04.7-04.7[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]20:00-20:30[u]05.0-05.0[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]20:30-21:00[u]05.1-05.1[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]21:00-21:30[u]05.2-05.2[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]21:30-22:00[u]05.3-05.3[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]22:00-22:30[u]05.4-05.4[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]22:30-23:00[u]05.5-05.5[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]23:00-23:30[u]05.6-05.6[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked - [unit]23:30-00:00[u]05.7-05.7[u]select - [v]0[opt]Non Blocked - [v]1[opt]Blocked" - ::= { lUTimeTableEntry 2 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.4.1.1.16 - -- 1.3.6.1.4.1.1373.2.3.3.14.2.12.1.1.10 - luttRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { lUTimeTableEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13 - mocnCellMapping OBJECT IDENTIFIER ::= { parameter 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1 - mocnCellMappingTable OBJECT-TYPE - SYNTAX SEQUENCE OF MocnCellMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:MOCN Cell Mapping" - ::= { mocnCellMapping 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1 - mocnCellMappingEntry OBJECT-TYPE - SYNTAX MocnCellMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:MOCN Cell Mapping" - INDEX { mocnCellMappingIndex } - ::= { mocnCellMappingTable 1 } - - - MocnCellMappingEntry ::= - SEQUENCE { - mocnCellMappingIndex - INTEGER, - mocnCellMappingTitle - OCTET STRING, - mocnCellMappingLacMSC1 - INTEGER, - mocnCellMappingCellIdMSC1 - INTEGER, - mocnCellMappingLacMSC2 - INTEGER, - mocnCellMappingCellIdMSC2 - INTEGER, - mocnCellMappingLacMSC3 - INTEGER, - mocnCellMappingCellIdMSC3 - INTEGER, - mocnCellMappingRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.1 - mocnCellMappingIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number range from 1 to 256." - ::= { mocnCellMappingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.2 - mocnCellMappingTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Title of the selected Trunk Group (max 64 characters)." - ::= { mocnCellMappingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.3 - mocnCellMappingLacMSC1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSC 1 Lac" - ::= { mocnCellMappingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.4 - mocnCellMappingCellIdMSC1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSC 1 Cell Id" - ::= { mocnCellMappingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.5 - mocnCellMappingLacMSC2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSC 2 Lac" - ::= { mocnCellMappingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.6 - mocnCellMappingCellIdMSC2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSC 2 Cell Id" - ::= { mocnCellMappingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.7 - mocnCellMappingLacMSC3 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSC 3 Lac" - ::= { mocnCellMappingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.8 - mocnCellMappingCellIdMSC3 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSC 3 Cell Id" - ::= { mocnCellMappingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.2.13.1.1.20 - mocnCellMappingRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mocnCellMappingEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3 - csta OBJECT IDENTIFIER ::= { palim 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.1 - luTable OBJECT-TYPE - SYNTAX SEQUENCE OF LuEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.1.1 - luEntry OBJECT-TYPE - SYNTAX LuEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { luTgIndex, luIndex } - ::= { luTable 1 } - - - LuEntry ::= - SEQUENCE { - luTgIndex - INTEGER, - luIndex - INTEGER, - luData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.1.1.1 - luTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { luEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.1.1.2 - luIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { luEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.1.1.3 - luData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { luEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.2 - moTable OBJECT-TYPE - SYNTAX SEQUENCE OF MoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.2.1 - moEntry OBJECT-TYPE - SYNTAX MoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { moTgIndex, moIndex } - ::= { moTable 1 } - - - MoEntry ::= - SEQUENCE { - moTgIndex - INTEGER, - moIndex - INTEGER, - moData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.2.1.1 - moTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { moEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.2.1.2 - moIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { moEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.2.1.3 - moData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { moEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.3 - mtTable OBJECT-TYPE - SYNTAX SEQUENCE OF MtEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.3.1 - mtEntry OBJECT-TYPE - SYNTAX MtEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mtTgIndex, mtIndex } - ::= { mtTable 1 } - - - MtEntry ::= - SEQUENCE { - mtTgIndex - INTEGER, - mtIndex - INTEGER, - mtData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.3.1.1 - mtTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mtEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.3.1.2 - mtIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mtEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.3.1.3 - mtData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mtEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.4 - smoTable OBJECT-TYPE - SYNTAX SEQUENCE OF SmoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.4.1 - smoEntry OBJECT-TYPE - SYNTAX SmoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { smoTgIndex, smoIndex } - ::= { smoTable 1 } - - - SmoEntry ::= - SEQUENCE { - smoTgIndex - INTEGER, - smoIndex - INTEGER, - smoData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.4.1.1 - smoTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { smoEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.4.1.2 - smoIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { smoEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.4.1.3 - smoData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { smoEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.5 - smtTable OBJECT-TYPE - SYNTAX SEQUENCE OF SmtEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.5.1 - smtEntry OBJECT-TYPE - SYNTAX SmtEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { smtTgIndex, smtIndex } - ::= { smtTable 1 } - - - SmtEntry ::= - SEQUENCE { - smtTgIndex - INTEGER, - smtIndex - INTEGER, - smtData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.5.1.1 - smtTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { smtEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.5.1.2 - smtIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { smtEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.5.1.3 - smtData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { smtEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.6 - bscTable OBJECT-TYPE - SYNTAX SEQUENCE OF BscEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.6.1 - bscEntry OBJECT-TYPE - SYNTAX BscEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { bscTgIndex, bscIndex } - ::= { bscTable 1 } - - - BscEntry ::= - SEQUENCE { - bscTgIndex - INTEGER, - bscIndex - INTEGER, - bscData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.6.1.1 - bscTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..256) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { bscEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.6.1.2 - bscIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { bscEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.6.1.3 - bscData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { bscEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.7 - intraHOTable OBJECT-TYPE - SYNTAX SEQUENCE OF IntraHOEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.7.1 - intraHOEntry OBJECT-TYPE - SYNTAX IntraHOEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { intraHoTgIndex, intraHoIndex } - ::= { intraHOTable 1 } - - - IntraHOEntry ::= - SEQUENCE { - intraHoTgIndex - INTEGER, - intraHoIndex - INTEGER, - intraHoData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.7.1.1 - intraHoTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { intraHOEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.7.1.2 - intraHoIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { intraHOEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.7.1.3 - intraHoData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { intraHOEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.8 - emergencyCallTable OBJECT-TYPE - SYNTAX SEQUENCE OF EmergencyCallEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.8.1 - emergencyCallEntry OBJECT-TYPE - SYNTAX EmergencyCallEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { emergencyCallTgIndex, emergencyCallIndex } - ::= { emergencyCallTable 1 } - - - EmergencyCallEntry ::= - SEQUENCE { - emergencyCallTgIndex - INTEGER, - emergencyCallIndex - INTEGER, - emergencyCallData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.8.1.1 - emergencyCallTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { emergencyCallEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.8.1.2 - emergencyCallIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { emergencyCallEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.8.1.3 - emergencyCallData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { emergencyCallEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.9 - mscStatsTable OBJECT-TYPE - SYNTAX SEQUENCE OF MscStatsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.9.1 - mscStatsEntry OBJECT-TYPE - SYNTAX MscStatsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mscStatsTgIndex, mscStatsIndex } - ::= { mscStatsTable 1 } - - - MscStatsEntry ::= - SEQUENCE { - mscStatsTgIndex - INTEGER, - mscStatsIndex - INTEGER, - mscStatsData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.9.1.1 - mscStatsTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mscStatsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.9.1.2 - mscStatsIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mscStatsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.9.1.3 - mscStatsData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { mscStatsEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.10 - lsPerRgwTable OBJECT-TYPE - SYNTAX SEQUENCE OF LsPerRgwEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.10.1 - lsPerRgwEntry OBJECT-TYPE - SYNTAX LsPerRgwEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lsPerRgwTgIndex, lsPerRgwIndex } - ::= { lsPerRgwTable 1 } - - - LsPerRgwEntry ::= - SEQUENCE { - lsPerRgwTgIndex - INTEGER, - lsPerRgwIndex - INTEGER, - lsPerRgwData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.10.1.1 - lsPerRgwTgIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerRgwEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.10.1.2 - lsPerRgwIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerRgwEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.10.1.3 - lsPerRgwData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerRgwEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.11 - lsPerClusterTable OBJECT-TYPE - SYNTAX SEQUENCE OF LsPerClusterEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.11.1 - lsPerClusterEntry OBJECT-TYPE - SYNTAX LsPerClusterEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lsPerClusterClusterIndex, lsPerClusterIndex } - ::= { lsPerClusterTable 1 } - - - LsPerClusterEntry ::= - SEQUENCE { - lsPerClusterClusterIndex - INTEGER, - lsPerClusterIndex - INTEGER, - lsPerClusterData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.11.1.1 - lsPerClusterClusterIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerClusterEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.11.1.2 - lsPerClusterIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerClusterEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.11.1.3 - lsPerClusterData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerClusterEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.12 - lsPerLsaTable OBJECT-TYPE - SYNTAX SEQUENCE OF LsPerLsaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.12.1 - lsPerLsaEntry OBJECT-TYPE - SYNTAX LsPerLsaEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lsPerLsaLsaIndex, lsPerLsaIndex } - ::= { lsPerLsaTable 1 } - - - LsPerLsaEntry ::= - SEQUENCE { - lsPerLsaLsaIndex - INTEGER, - lsPerLsaIndex - INTEGER, - lsPerLsaData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.12.1.1 - lsPerLsaLsaIndex OBJECT-TYPE - SYNTAX INTEGER (1..512) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerLsaEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.12.1.2 - lsPerLsaIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerLsaEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.14.3.12.1.3 - lsPerLsaData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { lsPerLsaEntry 3 } - - - - END - --- --- LGC-SS-PALIM-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-PPS-MIB.my b/omc/bin/mib/LGC-SS-PPS-MIB.my deleted file mode 100644 index c4cea56..0000000 --- a/omc/bin/mib/LGC-SS-PPS-MIB.my +++ /dev/null @@ -1,5116 +0,0 @@ --- --- LGC-SS-PPS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, June 20, 2012 at 14:00:43 --- - - LGC-SS-PPS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus, DisplayString - FROM LGC-MIB - IpAddress, Opaque, Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.6 - pps MODULE-IDENTITY - LAST-UPDATED "200811241438Z" -- November 24, 2008 at 14:38 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - ::= { application 6 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { pps 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.6.2 - parameter OBJECT IDENTIFIER ::= { pps 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1 - serviceControl OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1 - license OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Max License - Remark:(Read Only) The maximum subscriber capacity of PPS determined by License Control." - ::= { serviceControl 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2 - cDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable the Call Detail Record generation of the prepaid calls." - ::= { serviceControl 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3 - blackListThreshold OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Black List Threshold - Remark:Mark subscriber in black list and suspend service when the recharge fail times cross this threshold." - ::= { serviceControl 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.4 - maxBalance OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Balance - Remark:Specify the permitted maximum balance for the prepaid accounts. This value is for overflow prevention. Unit the minimum currency unit." - ::= { serviceControl 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.5 - currencySymbol OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Currency Symbol - Remark:Symbol of local currency for short message display, such as $." - ::= { serviceControl 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.6 - cOSOption OBJECT-TYPE - SYNTAX INTEGER - { - group64(0), - group4(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:COS Option - Remark:Select the maximum quantity of COSs supported by PPS." - ::= { serviceControl 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.7 - mNPChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MNP Charge Flag - Remark:Enable or disable charging for MNP calls." - ::= { serviceControl 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.8 - oprAccountValidity OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPR Account Validity - Remark:Specify the retention period of a fresh OPR account without recharging balance.

- Range = 0 - 127 days" - ::= { serviceControl 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.9 - language0SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Language 0 SMS Encoding Type - Remark:Specify the coding scheme of PPS notification short message." - ::= { serviceControl 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.10 - language1SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Language 1 SMS Encoding Type - Remark:Specify the coding scheme of PPS notification short message." - ::= { serviceControl 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.11 - language2SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Language 2 SMS Encoding Type - Remark:Specify the coding scheme of PPS notification short message." - ::= { serviceControl 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.12 - language3SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Language 3 SMS Encoding Type - Remark:Specify the coding scheme of PPS notification short message." - ::= { serviceControl 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.13 - language4SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Language 4 SMS Encoding Type - Remark:Specify the coding scheme of PPS notification short message." - ::= { serviceControl 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.14 - externalRCM OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:External RCMS - Remark:Enable or disable external Recharge Card Management System (RCMS) support." - ::= { serviceControl 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.15 - chargeByCellFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:It is only available when the prepaid users are charged by location. Enable = Only Cell ID is used to determined Tariff Table ID; Disable = [LAC+Cell ID] is used to determined Tariff Table ID." - ::= { serviceControl 15 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.16 - notChangeExpiryForTransfer OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:To change or not change expiry date when doing Balance Transfer." - ::= { serviceControl 16 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.17 - ussdCallbackSerivceKey OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:USSD-Callback Service Key - Remark:The service key defined for USSD-Callback serive" - ::= { serviceControl 17 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.18 - ucbcNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:UCBC Number - Remark:The E.164 node address of the USSD-Callback Center." - ::= { serviceControl 18 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20 - promptResolutionTable OBJECT-TYPE - SYNTAX SEQUENCE OF PromptResolutionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1 - promptResolutionEntry OBJECT-TYPE - SYNTAX PromptResolutionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { prIndex } - ::= { promptResolutionTable 1 } - - - PromptResolutionEntry ::= - SEQUENCE { - prIndex - INTEGER, - prTitle - OCTET STRING, - prCurrencyResolution - INTEGER, - prDateFormat - INTEGER, - prCurrencySymbolPosition - INTEGER, - prRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1.1 - prIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Prompt Resolution index number." - ::= { promptResolutionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1.2 - prTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Prompt Resolution name for identification purpose only." - ::= { promptResolutionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1.3 - prCurrencyResolution OBJECT-TYPE - SYNTAX INTEGER - { - n1(0), - n10(1), - n100(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Currency Resolution - Remark:Specify the number of decimal place in the PPS notification short message balance display and audio prompt.

For example, balance=1234:
- 1 = 1234
- 10 = 123.4
- 100 = 12.34" - ::= { promptResolutionEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1.4 - prDateFormat OBJECT-TYPE - SYNTAX INTEGER - { - yyyymmdd(0), - ddmmyyyy(1), - mmddyyyy(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Date Format - Remark:Specify date format in PPS notification short message and audio prompt." - ::= { promptResolutionEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1.5 - prCurrencySymbolPosition OBJECT-TYPE - SYNTAX INTEGER - { - front(0), - rear(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Currency Symbol Position - Remark:Specify the position of the currency symbol in PPS notification short message.

- At the front of the balance: $5
- At the rear of the balance: 5$" - ::= { promptResolutionEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.20.1.6 - prRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { promptResolutionEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.21 - mNPPrefixesTable OBJECT-TYPE - SYNTAX SEQUENCE OF MNPPrefixesEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.21.1 - mNPPrefixesEntry OBJECT-TYPE - SYNTAX MNPPrefixesEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mnpIndex } - ::= { mNPPrefixesTable 1 } - - - MNPPrefixesEntry ::= - SEQUENCE { - mnpIndex - INTEGER, - mnpTitle - OCTET STRING, - mnpPrefix - OCTET STRING, - mnpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.21.1.1 - mnpIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:MNP prefix index number ranges from 0 to 31." - ::= { mNPPrefixesEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.21.1.2 - mnpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:MNP prefix name for identification purpose only." - ::= { mNPPrefixesEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.21.1.3 - mnpPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:Add the MNP related prefixes in this list if the MNP charging is enabled." - ::= { mNPPrefixesEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.21.1.4 - mnpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mNPPrefixesEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22 - sMSSentenceTable OBJECT-TYPE - SYNTAX SEQUENCE OF SMSSentenceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1 - sMSSentenceEntry OBJECT-TYPE - SYNTAX SMSSentenceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ssIndex } - ::= { sMSSentenceTable 1 } - - - SMSSentenceEntry ::= - SEQUENCE { - ssIndex - INTEGER, - ssTitle - OCTET STRING, - ssEnglish - OCTET STRING, - ssLanguage0Content - OCTET STRING, - ssLanguage1Content - OCTET STRING, - ssLanguage2Content - OCTET STRING, - ssLanguage3Content - OCTET STRING, - ssLanguage4Content - OCTET STRING, - ssRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.1 - ssIndex OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number for identification purpose only." - ::= { sMSSentenceEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.2 - ssTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Notification short message element name for identification purpose only." - ::= { sMSSentenceEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.3 - ssEnglish OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:English - Remark:Notification short message element in English description." - ::= { sMSSentenceEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.4 - ssLanguage0Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..99)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Language 0 Content - Remark:Customize the notification short message contents according to local language manner." - ::= { sMSSentenceEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.5 - ssLanguage1Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..99)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Language 1 Content - Remark:Customize the notification short message contents according to local language manner." - ::= { sMSSentenceEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.6 - ssLanguage2Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..99)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Language 2 Content - Remark:Customize the notification short message contents according to local language manner." - ::= { sMSSentenceEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.7 - ssLanguage3Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..99)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Language 3 Content - Remark:Customize the notification short message contents according to local language manner." - ::= { sMSSentenceEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.8 - ssLanguage4Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..99)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Language 4 Content - Remark:Customize the notification short message contents according to local language manner." - ::= { sMSSentenceEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.22.1.9 - ssRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSSentenceEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24 - thirdPartyInfoTable OBJECT-TYPE - SYNTAX SEQUENCE OF ThirdPartyInfoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24.1 - thirdPartyInfoEntry OBJECT-TYPE - SYNTAX ThirdPartyInfoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { tpiIndex } - ::= { thirdPartyInfoTable 1 } - - - ThirdPartyInfoEntry ::= - SEQUENCE { - tpiIndex - INTEGER, - tpiTitle - OCTET STRING, - tpiServiceID - OCTET STRING, - tpiServicePassword - OCTET STRING, - tpiRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24.1.1 - tpiIndex OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Third party system index number ranges from 0 to 7." - ::= { thirdPartyInfoEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24.1.2 - tpiTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Third party system name for identification purpose only." - ::= { thirdPartyInfoEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24.1.3 - tpiServiceID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service ID - Remark:Service ID in the third party billing request." - ::= { thirdPartyInfoEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24.1.4 - tpiServicePassword OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Password - Remark:Service Password in the third party billing request." - ::= { thirdPartyInfoEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.24.1.5 - tpiRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { thirdPartyInfoEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25 - basicTariffZoneTable OBJECT-TYPE - SYNTAX SEQUENCE OF BasicTariffZoneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1 - basicTariffZoneEntry OBJECT-TYPE - SYNTAX BasicTariffZoneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { btzIndex } - ::= { basicTariffZoneTable 1 } - - - BasicTariffZoneEntry ::= - SEQUENCE { - btzIndex - INTEGER, - btzTitle - OCTET STRING, - btzMCC - OCTET STRING, - btzMNC - OCTET STRING, - btzLAC - INTEGER, - btzCellID - INTEGER, - btzMOTariffID - INTEGER, - btzMTTariffID - INTEGER, - btzRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.1 - btzIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Basic tariff zone index number ranges from 0 to 63." - ::= { basicTariffZoneEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.2 - btzTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Basic tariff zone name for identification purpose only." - ::= { basicTariffZoneEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.3 - btzMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MCC - Remark:Mobile Country Code" - ::= { basicTariffZoneEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.4 - btzMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MNC - Remark:Mobile Network Code" - ::= { basicTariffZoneEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.5 - btzLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LAC - Remark:Location Area Code.

- LAC = 65535: All location areas in the network use the same basic tariff." - ::= { basicTariffZoneEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.6 - btzCellID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Cell ID - Remark:Global Cell Identity defined in GSM03.03.

- Cell ID = 65535: All cells in the LAC use the same basic tariff." - ::= { basicTariffZoneEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.7 - btzMOTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MO Tariff ID - Remark:Assign MO Tariff ID to this billing zone." - ::= { basicTariffZoneEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.8 - btzMTTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MT Tariff Zone - Remark:Assign MT Tariff ID to the billing zone." - ::= { basicTariffZoneEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.25.1.9 - btzRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31 - radiusGGSNTable OBJECT-TYPE - SYNTAX SEQUENCE OF RadiusGGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1 - radiusGGSNEntry OBJECT-TYPE - SYNTAX RadiusGGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { rgIndex } - ::= { radiusGGSNTable 1 } - - - RadiusGGSNEntry ::= - SEQUENCE { - rgIndex - INTEGER, - rgTitle - OCTET STRING, - rgNasIP - IpAddress, - rgNASKey - OCTET STRING, - rgNASPassword - OCTET STRING, - rgRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1.1 - rgIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:GGSN index number ranges from 0 to 63." - ::= { radiusGGSNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1.2 - rgTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:GGSN name for identification purpose only." - ::= { radiusGGSNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1.6 - rgNasIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NAS IP - Remark:Specify IP address to identify the Network Access Server, which can be gateway GPRS support node or MMS Charging Agent (MCA)." - ::= { radiusGGSNEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1.7 - rgNASKey OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NAS Key - Remark:Specify the cryptographic key used between PPS and the Network Access Server." - ::= { radiusGGSNEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1.8 - rgNASPassword OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NAS Password - Remark:Specify the password used between PPS and the Network Access Server." - ::= { radiusGGSNEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.31.1.9 - rgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusGGSNEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32 - radiusSGSNTable OBJECT-TYPE - SYNTAX SEQUENCE OF RadiusSGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1 - radiusSGSNEntry OBJECT-TYPE - SYNTAX RadiusSGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { rsIndex } - ::= { radiusSGSNTable 1 } - - - RadiusSGSNEntry ::= - SEQUENCE { - rsIndex - INTEGER, - rsTitle - OCTET STRING, - rsSgsnIP - IpAddress, - rsCOSID - INTEGER, - rsAPNName - OCTET STRING, - rsTariffID - INTEGER, - rsRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.1 - rsIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:SGSN index number ranges from 0 to 63." - ::= { radiusSGSNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.2 - rsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:SGSN name for identification purpose only." - ::= { radiusSGSNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.3 - rsSgsnIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN IP - Remark:Specify IP address to identify the service GPRS support node." - ::= { radiusSGSNEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.4 - rsCOSID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:COS ID - Remark:Specify a tariff ID to this SGSN." - ::= { radiusSGSNEntry 4 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.5 - rsAPNName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:APN Name - Remark:APN of the SCSCF" - ::= { radiusSGSNEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.6 - rsTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Tariff ID - Remark:Specify a tariff ID to this APN." - ::= { radiusSGSNEntry 6 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.32.1.7 - rsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusSGSNEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33 - bundlePlanTable OBJECT-TYPE - SYNTAX SEQUENCE OF BundlePlanEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1 - bundlePlanEntry OBJECT-TYPE - SYNTAX BundlePlanEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { bpIndex } - ::= { bundlePlanTable 1 } - - BundlePlanEntry ::= - SEQUENCE { - bpIndex - INTEGER, - bpTitle - OCTET STRING, - bpCharge - INTEGER, - bpData - INTEGER, - bpMOVoice - INTEGER, - bpMTVoice - INTEGER, - bpSMS - INTEGER, - bpValidity - INTEGER, - bpApplyFlag - INTEGER, - bpApplyCode - INTEGER, - bpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.1 - bpIndex OBJECT-TYPE - SYNTAX INTEGER (1..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:BundlePlan index number ranges from 1 to 15." - ::= { bundlePlanEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.2 - bpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:BunlePlan name for identification purpose only." - ::= { bundlePlanEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.3 - bpCharge OBJECT-TYPE - SYNTAX INTEGER (0..100000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Charge - Remark:How much to charge for this plan." - ::= { bundlePlanEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.4 - bpData OBJECT-TYPE - SYNTAX INTEGER (0..102400) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Data Volume - Remark: Data Volume for this plan." - ::= { bundlePlanEntry 4 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.5 - bpMOVoice OBJECT-TYPE - SYNTAX INTEGER (0..10000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MO Voice Mins - Remark:Mo Voice minutes of this plan" - ::= { bundlePlanEntry 5 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.6 - bpMTVoice OBJECT-TYPE - SYNTAX INTEGER (0..10000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MT Voice Mins - Remark:MT Voice minutes of this plan" - ::= { bundlePlanEntry 6 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.7 - bpSMS OBJECT-TYPE - SYNTAX INTEGER (0..5000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SMS - Remark:MO SMS of this plan" - ::= { bundlePlanEntry 7 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.8 - bpValidity OBJECT-TYPE - SYNTAX INTEGER (0..300) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Validity - Remark:Validity of this plan" - ::= { bundlePlanEntry 8 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.9 - bpApplyFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - mifiPlan(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Apply Flag - Remark:The plan is applied or not" - ::= { bundlePlanEntry 9 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.10 - bpApplyCode OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Apply Code - Remark:The code to apply Bundle Plan, 0 means # is used" - ::= { bundlePlanEntry 10 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.1.33.1.11 - bpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { bundlePlanEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2 - cOS OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50 - cOSTable OBJECT-TYPE - SYNTAX SEQUENCE OF COSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 50 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1 - cOSEntry OBJECT-TYPE - SYNTAX COSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { cosIndex } - ::= { cOSTable 1 } - - - COSEntry ::= - SEQUENCE { - cosIndex - INTEGER, - cosTitle - OCTET STRING, - cosTariffEntries - INTEGER, - cosServiceControlEntries - INTEGER, - cosAccountValidityEntries - INTEGER, - cosSMSNotificationInquiryEntries - INTEGER, - cosRechargeCardValidityEntries - INTEGER, - cosRechargePromotionEntries - INTEGER, - cosCAPPlanEntries - INTEGER, - cosPoolAccountEntries - INTEGER, - cosGprsControlEntries - INTEGER, - cosRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.1 - cosIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:COS index number ranges from 0 to 63." - ::= { cOSEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.2 - cosTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:COS name for identification purpose only." - ::= { cOSEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.3 - cosTariffEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.4 - cosServiceControlEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.5 - cosAccountValidityEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.6 - cosSMSNotificationInquiryEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.7 - cosRechargeCardValidityEntries OBJECT-TYPE - SYNTAX INTEGER (4) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.8 - cosRechargePromotionEntries OBJECT-TYPE - SYNTAX INTEGER (4) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.9 - cosCAPPlanEntries OBJECT-TYPE - SYNTAX INTEGER (2) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.10 - cosPoolAccountEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.11 - cosGprsControlEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.50.1.12 - cosRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51 - tariffTable OBJECT-TYPE - SYNTAX SEQUENCE OF TariffEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 51 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1 - tariffEntry OBJECT-TYPE - SYNTAX TariffEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { tariffIndex, tariffCOSIndex } - ::= { tariffTable 1 } - - - TariffEntry ::= - SEQUENCE { - tariffCOSIndex - INTEGER, - tariffIndex - INTEGER, - tariffTitle - OCTET STRING, - tariffMOTariffID - INTEGER, - tariffMTTariffID - INTEGER, - tariffChargeBy - INTEGER, - tariffRechargePromotionStartDate - OCTET STRING, - tariffRechargePromotionEndDate - OCTET STRING, - tariffCAPPlanResetDay - INTEGER, - tariffPromotionIddMoCall - INTEGER, - tariffPromotionNddMoCall - INTEGER, - tariffPromotionLocalMoCall - INTEGER, - tariffPromotionIddMoSMS - INTEGER, - tariffPromotionNddMoSMS - INTEGER, - tariffPromotionLocalMoSMS - INTEGER, - tariffPromotionGprs - INTEGER, - tariffPromotionTransfer - INTEGER, - tariffPromotionTransferPriority - INTEGER, - tariffPromotionDebit - INTEGER, - tariffRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.1 - tariffCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.2 - tariffIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tariffEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.3 - tariffTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tariffEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.4 - tariffMOTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MO Tariff ID - Remark:Select an MO tariff for this COS." - ::= { tariffEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.5 - tariffMTTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MT Tariff ID - Remark:Select an MT tariff for this COS." - ::= { tariffEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.6 - tariffChargeBy OBJECT-TYPE - SYNTAX INTEGER - { - tariffSetInSubscriberProfile(0), - parameterBasicTariffZone(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Charge By - Remark:PPS basic tariff may be applied on either area (parameter Basic tariff zone) or subscriber (Tariff ID in subscriber profile) basis. This parameter defines which one is preference when debiting a subscriber." - ::= { tariffEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.7 - tariffRechargePromotionStartDate OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Start Date - Remark:The promotion period is the period of time in which the recharge promotion is valid. Operator defines the promotion period by specifying the start date. Each COS may have its own promotion period. Subscriber recharges his account within the promotion period of his COS will receive a promotion bonus." - ::= { tariffEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.8 - tariffRechargePromotionEndDate OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:End Date - Remark:The promotion period is the period of time in which the recharge promotion is valid. Operator defines the promotion period by specifying the end date. Each COS may have its own promotion period. Subscriber recharges his account within the promotion period of his COS will receive a promotion bonus." - ::= { tariffEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.9 - tariffCAPPlanResetDay OBJECT-TYPE - SYNTAX INTEGER (1..28) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Reset Date - Remark:All PPS subscribers' capped call and GPRS accumulation data will be cleared on the monthly date." - ::= { tariffEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.10 - tariffPromotionIddMoCall OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IDD MO Call - Remark:Specify whether the promotion bonus can be used to pay for international MO call." - ::= { tariffEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.11 - tariffPromotionNddMoCall OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NDD MO Call - Remark:Specify whether the promotion bonus can be used to pay for national MO call." - ::= { tariffEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.12 - tariffPromotionLocalMoCall OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local MO Call - Remark:Specify whether the promotion bonus can be used to pay for local MO call." - ::= { tariffEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.13 - tariffPromotionIddMoSMS OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IDD MO SMS - Remark:Specify whether the promotion bonus can be used to pay for international MO short message." - ::= { tariffEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.14 - tariffPromotionNddMoSMS OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NDD MO SMS - Remark:Specify whether the promotion bonus can be used to pay for national MO short message." - ::= { tariffEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.15 - tariffPromotionLocalMoSMS OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local MO SMS - Remark:Specify whether the promotion bonus can be used to pay for local MO short message." - ::= { tariffEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.16 - tariffPromotionGprs OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:GPRS - Remark:Specify whether the promotion bonus can be used to pay for GPRS applications." - ::= { tariffEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.17 - tariffPromotionTransfer OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Transfer - Remark:Specify whether the promotion bonus can be transferred to other accounts." - ::= { tariffEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.18 - tariffPromotionTransferPriority OBJECT-TYPE - SYNTAX INTEGER - { - inferiorToBalance(0), - superiorToBalance(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Transfer Priority - Remark:If the promotion bonus can be transferred to other accounts, specify which has priority between bonus and balance." - ::= { tariffEntry 18 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.19 - tariffPromotionDebit OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Debit - Remark:Specify whether the promotion bonus can be used for Debit procedures." - ::= { tariffEntry 19 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.51.1.20 - tariffRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52 - serviceControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF ServiceControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 52 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1 - serviceControlEntry OBJECT-TYPE - SYNTAX ServiceControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { scIndex, scCOSIndex } - ::= { serviceControlTable 1 } - - - ServiceControlEntry ::= - SEQUENCE { - scCOSIndex - INTEGER, - scIndex - INTEGER, - scTitle - OCTET STRING, - scMOThresholdSet - INTEGER, - scMOMinimumBalance - INTEGER, - scMTChargeFlag - INTEGER, - scMTBalanceControl - INTEGER, - scMTBalanceThreshold - INTEGER, - scCloseUserGroupService - INTEGER, - scRechargeViaCreditCard - INTEGER, - scCreditVault - INTEGER, - scCreditVaultAmount - INTEGER, - scPoolAccountFlag - INTEGER, - scPoolAccountChangeChargeFlag - INTEGER, - scPoolAccountFreeChangeTimes - INTEGER, - scFreeSmsRelatedCOS - INTEGER, - scFreeSmsActiveDays - INTEGER, - scFreeSmsRentType - INTEGER, - scfCallMeBackThreshold - INTEGER, - scCallMeBackMaxTimes - INTEGER, - scMTSMSCharge - INTEGER, - scBundleDataWarnThreshold - INTEGER, - scBundleDataWarnThresholdLow - INTEGER, - scEventChargingFlag - INTEGER, - scCapBundleControl - INTEGER, - scBundlePlanControl - INTEGER, - scRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.1 - scCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.2 - scIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.3 - scTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.4 - scMOThresholdSet OBJECT-TYPE - SYNTAX INTEGER - { - notSet(0), - set(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Threshold Flag - Remark:Enable or disable minimum balance validation for the MO call." - ::= { serviceControlEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.5 - scMOMinimumBalance OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Minimum Balance - Remark:Specify a minimum balance for MO call. The subscriber whose balance is below this threshold cannot make MO call. Unit is the smallest currency unit." - ::= { serviceControlEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.6 - scMTChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Charged Flag - Remark:Enable or disable MT call charge for prepaid subscriber." - ::= { serviceControlEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.7 - scMTBalanceControl OBJECT-TYPE - SYNTAX INTEGER - { - noLimitation(0), - thresholdUsed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Balance Control - Remark:Enable or disable MT call when balance reaches the following threshold." - ::= { serviceControlEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.8 - scMTBalanceThreshold OBJECT-TYPE - SYNTAX INTEGER (-1000000..1000000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Balance Threshold - Remark:Set threshold for balance control, can be positive or negative. Unit is the smallest currency unit." - ::= { serviceControlEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.9 - scCloseUserGroupService OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CUG Service Flag - Remark:Enable or disable Closed User Group service of this COS." - ::= { serviceControlEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.10 - scRechargeViaCreditCard OBJECT-TYPE - SYNTAX INTEGER - { - support(0), - unsupport(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Recharge via Credit Card - Remark:Enable or disable recharge balance by credit card." - ::= { serviceControlEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.11 - scCreditVault OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Credit Vault - Remark:Enable or disable overdraft and define its quota when a COS subscriber makes call with insufficient balance. The system will deduct the overdraft by debiting his account balance at the next recharge." - ::= { serviceControlEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.12 - scCreditVaultAmount OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Credit Vault Amount - Remark:The amount of the credit vault. Unit is the minimum currency unit." - ::= { serviceControlEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.13 - scPoolAccountFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Pool Account Flag - Remark:Enable or disable the parent and children number service." - ::= { serviceControlEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.14 - scPoolAccountChangeChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Charge for Change - Remark:Enable or disable charge for changing child number." - ::= { serviceControlEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.15 - scPoolAccountFreeChangeTimes OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Changes - Remark:Define the free change times of child number if charge is enabled." - ::= { serviceControlEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.16 - scFreeSmsRelatedCOS OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Switch COS - Remark:Specify the index number of the relevant COS which configured particular rent and SMS tariff. The new COS will take effect when the Free SMS service is activated by customer." - ::= { serviceControlEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.17 - scFreeSmsActiveDays OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Active Days - Remark:Specify the period of validity for the activated free SMS service. At the expiration of this service, the COS will be automatically switched back to the customer original COS. Unit is day.

- Set 255 to prolong validity period indefinitely till the customer deactivates it manually." - ::= { serviceControlEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.18 - scFreeSmsRentType OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent Type - Remark:Specify the Rent ID (1-8) in the relevant MO tariff rent table.

- 0 = Rent Free" - ::= { serviceControlEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.19 - scfCallMeBackThreshold OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Call Me Back Threshold - Remark:Subscriber is only allowed to apply call me back service when his remaining balance is less than this value. Unit is minimum currency unit.

- 0 = No limitation" - ::= { serviceControlEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.20 - scCallMeBackMaxTimes OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.21 - scMTSMSCharge OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MT SMS Charge - Remark:Specify charging amount for per prepaid MT SMS. Unit is the smallest currency unit." - ::= { serviceControlEntry 21 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.22 - scBundleDataWarnThreshold OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Bundle Data Warning Threshold - Remark:Specify the threshold below which a warning SMS will be sent." - ::= { serviceControlEntry 22 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.23 - scBundleDataWarnThresholdLow OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Bundle Data Warning Threshold Low - Remark:Specify the threshold below which a warning SMS will be sent." - ::= { serviceControlEntry 23 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.24 - scEventChargingFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Event Charing Flag - Remark:Enable or disable event charge procedure." - ::= { serviceControlEntry 24 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.25 - scCapBundleControl OBJECT-TYPE - SYNTAX INTEGER - { - CAP(0), - Bundle(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CAP Bundle Control - Remark:To enable CAP or Bundle function in this COS." - ::= { serviceControlEntry 25 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.26 - scBundlePlanControl OBJECT-TYPE - SYNTAX INTEGER - { - BundlePlan(0), - DataPlan(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Bundle Plan Control - Remark:To enable Bundle or Data Plan function in this COS." - ::= { serviceControlEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.52.1.30 - scRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53 - accountValidityTable OBJECT-TYPE - SYNTAX SEQUENCE OF AccountValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 53 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1 - accountValidityEntry OBJECT-TYPE - SYNTAX AccountValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { avIndex, avCOSIndex } - ::= { accountValidityTable 1 } - - - AccountValidityEntry ::= - SEQUENCE { - avCOSIndex - INTEGER, - avIndex - INTEGER, - avTitle - OCTET STRING, - avMaxAccountValidityDays - INTEGER, - avActionWhenAccountExpires - INTEGER, - avDaysKeepingAnExpiredAccount - INTEGER, - avActionAfterDaysKeepingAnExpiredAccount - INTEGER, - avActionAfterRecharge - INTEGER, - avActionAfterBalanceDepleted - INTEGER, - avValidDaysChangeTo - INTEGER, - avActivationByInquiryIs - INTEGER, - avValidDaysActivatedByInquiringAccountWithZeroBalance - INTEGER, - avExpiredWhen - INTEGER, - avBundlePlanId - INTEGER, - avRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.1 - avCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.2 - avIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { accountValidityEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.3 - avTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { accountValidityEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.4 - avMaxAccountValidityDays OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Max Account Validity - Remark:Specify the maximum account validity for prepaid subscriber. Unit is day. The account validity can't be extended by recharging once it reaches this threshold." - ::= { accountValidityEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.5 - avActionWhenAccountExpires OBJECT-TYPE - SYNTAX INTEGER - { - notClearBalance(0), - clearBalance(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:When account expires - Remark:Enable this option to clear balance off an expired account. The balance can't be reused after cleared." - ::= { accountValidityEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.6 - avDaysKeepingAnExpiredAccount OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Keep expired account for - Remark:Number of days to reserve an expired prepaid account in the system. The expired account will be released if the subscriber doesn't recharge it in this period. After released, the MSISDN of the released account can be reused by other subscribers." - ::= { accountValidityEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.7 - avActionAfterDaysKeepingAnExpiredAccount OBJECT-TYPE - SYNTAX INTEGER - { - notClearBalance(0), - clearBalance(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:After that - Remark:Enable this option to clear balance off a released account. The balance can't be reused after cleared." - ::= { accountValidityEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.8 - avActionAfterRecharge OBJECT-TYPE - SYNTAX INTEGER - { - accumulateValidity(0), - replaceValidity(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:After recharge, account validity - Remark:Select the period of account validity increment mode after a successful recharge.

- Accumulate = the period of validity will be accumulated to the recharged account.

- Replace = If the validity of the recharged money is more than the current account validity, the account validity will be replaced by the validity of recharged money. If the validity of the recharged money is less than the current account validity, the account validity will not be changed after a successful recharge." - ::= { accountValidityEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.9 - avActionAfterBalanceDepleted OBJECT-TYPE - SYNTAX INTEGER - { - notChangeAccountValidity(0), - changeAccountValidity(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:When balance is depleted, account validity - Remark:Enable or disable account validity adjustment when balance reaches zero.

- Change = Change the validity to the preset period.
- Not Change = No change on validity." - ::= { accountValidityEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.10 - avValidDaysChangeTo OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Change validity to - Remark:Preset a validity adjustment period for a zero balance account." - ::= { accountValidityEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.11 - avActivationByInquiryIs OBJECT-TYPE - SYNTAX INTEGER - { - disabled(0), - enabled(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Activation by inquiring - Remark:Enable or disable activate a fresh account by dialing the balance inquiring number." - ::= { accountValidityEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.12 - avValidDaysActivatedByInquiringAccountWithZeroBalance OBJECT-TYPE - SYNTAX INTEGER (0..1100) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Initial validity of activated account - Remark:Define an initial validity for an account who is activated from fresh status by dialing the inquiry number." - ::= { accountValidityEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.13 - avExpiredWhen OBJECT-TYPE - SYNTAX INTEGER - { - mo(0), - mt(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Expired When - Remark:Expired when MO or MT expiration day reaches." - ::= { accountValidityEntry 13 } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.14 - avBundlePlanId OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Bundle Plan Actived - Remark:Define the bundle plan when account is activated." - ::= { accountValidityEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.53.1.20 - avRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54 - sMSNotificationInquiryTable OBJECT-TYPE - SYNTAX SEQUENCE OF SMSNotificationInquiryEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 54 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1 - sMSNotificationInquiryEntry OBJECT-TYPE - SYNTAX SMSNotificationInquiryEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { smsIndex, smsCOSIndex } - ::= { sMSNotificationInquiryTable 1 } - - - SMSNotificationInquiryEntry ::= - SEQUENCE { - smsCOSIndex - INTEGER, - smsIndex - INTEGER, - smsTitle - OCTET STRING, - smsNotificationWhenRecharge - INTEGER, - smsNotificationWhenInquiry - INTEGER, - smsNotificationWhenExpired - INTEGER, - smsTheDaysSendingSMSBeforeExpiredDay - INTEGER, - smsNotificationWhenBalanceInsufficient - INTEGER, - smsInsufficientBalanceThreshold - INTEGER, - smsChargeWhenInquiryBySMS - INTEGER, - smsFreeInquiryPerDay - INTEGER, - smsNotificationWhenCleanBalance - INTEGER, - smsNotificationWhenCapPlanChanged - INTEGER, - smsNotificationWhenApplyOverdraft - INTEGER, - smsNotificationWhenRentCharge - INTEGER, - smsNotificationWhenFFRegistration - INTEGER, - smsNotificationWhenFFSuspended - INTEGER, - smsNotificationWhenFFExceedThreshold - INTEGER, - smsNotificationWhenFFRemoved - INTEGER, - smsRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.1 - smsCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.2 - smsIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.3 - smsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.4 - smsNotificationWhenRecharge OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Successful Recharge - Remark:Enable or disable feedback short message of recharge result." - ::= { sMSNotificationInquiryEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.5 - smsNotificationWhenInquiry OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Account Inquiry - Remark:Enable or disable feedback short message of balance inquiry." - ::= { sMSNotificationInquiryEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.6 - smsNotificationWhenExpired OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Expiration - Remark:Enable or disable notification short message sending when an account is going to expire." - ::= { sMSNotificationInquiryEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.7 - smsTheDaysSendingSMSBeforeExpiredDay OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:before expiration - Remark:Define the sending days before account expires." - ::= { sMSNotificationInquiryEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.8 - smsNotificationWhenBalanceInsufficient OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Insufficient Balance - Remark:Enable or disable notification short message sending when the account's balance is too low." - ::= { sMSNotificationInquiryEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.9 - smsInsufficientBalanceThreshold OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:When balance reaches - Remark:Define the low balance level to send notification short message. Unit is the minimum currency unit." - ::= { sMSNotificationInquiryEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.10 - smsChargeWhenInquiryBySMS OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Charge Flag - Remark:Enable or disable charge for inquiry short message." - ::= { sMSNotificationInquiryEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.11 - smsFreeInquiryPerDay OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Inquiry per Day - Remark:Define the quantity of free inquiry short messages on a daily basis if charge flag is enabled." - ::= { sMSNotificationInquiryEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.12 - smsNotificationWhenCleanBalance OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Clear Balance - Remark:Enable or disable notification short message sending when the balance is cleared from an expired account." - ::= { sMSNotificationInquiryEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.13 - smsNotificationWhenCapPlanChanged OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CAP Plan Upgrade - Remark:Enable or disable notification short message sending when the predefined CAP threshold is about to grade up." - ::= { sMSNotificationInquiryEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.14 - smsNotificationWhenApplyOverdraft OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Overdraw Balance - Remark:Enable or disable notification short message sending when the account takes out an overdraft to pay for the charge." - ::= { sMSNotificationInquiryEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.15 - smsNotificationWhenRentCharge OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent Charge - Remark:Enable or disable notification short message when rent charge is applied." - ::= { sMSNotificationInquiryEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.16 - smsNotificationWhenFFRegistration OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Friends and Family Registration - Remark:Enable or disable notification short message when friends and family plan is registered." - ::= { sMSNotificationInquiryEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.17 - smsNotificationWhenFFSuspended OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Friends and Family Suspended - Remark:Enable or disable notification short message when friends and family plan is suspended." - ::= { sMSNotificationInquiryEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.18 - smsNotificationWhenFFExceedThreshold OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Friends and Family Exceed Threshold - Remark:Enable or disable notification short message when friends and family plan exceed the free voice call duration or free sms threshold." - ::= { sMSNotificationInquiryEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.19 - smsNotificationWhenFFRemoved OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Friends and Family Removed - Remark:Enable or disable notification short message when friends and family plan is removed." - ::= { sMSNotificationInquiryEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.54.1.20 - smsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55 - rechargeCardValidityTable OBJECT-TYPE - SYNTAX SEQUENCE OF RechargeCardValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 55 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1 - rechargeCardValidityEntry OBJECT-TYPE - SYNTAX RechargeCardValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { rcvIndex, rcvCOSIndex } - ::= { rechargeCardValidityTable 1 } - - - RechargeCardValidityEntry ::= - SEQUENCE { - rcvCOSIndex - INTEGER, - rcvIndex - INTEGER, - rcvTitle - OCTET STRING, - rcvCardCredit - INTEGER, - rcvMOValidity - INTEGER, - rcvMTValidity - INTEGER, - rcvRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.1 - rcvCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargeCardValidityEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.2 - rcvIndex OBJECT-TYPE - SYNTAX INTEGER (0..3) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.3 - rcvTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.4 - rcvCardCredit OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Face Value - Remark:Recharge card face value. Unit is the basic currency unit." - ::= { rechargeCardValidityEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.5 - rcvMOValidity OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MO Validity - Remark:Account validity. This validity will be added to the account validity after a successful recharge." - ::= { rechargeCardValidityEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.6 - rcvMTValidity OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MT Validity - Remark:Legal MT period. Subscriber can make MT call in this period. Normally the legal MT period is longer than the account validity." - ::= { rechargeCardValidityEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.55.1.7 - rcvRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargeCardValidityEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56 - rechargePromotionTable OBJECT-TYPE - SYNTAX SEQUENCE OF RechargePromotionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 56 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1 - rechargePromotionEntry OBJECT-TYPE - SYNTAX RechargePromotionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { rpIndex, rpCOSIndex } - ::= { rechargePromotionTable 1 } - - - RechargePromotionEntry ::= - SEQUENCE { - rpCOSIndex - INTEGER, - rpIndex - Integer32, - rpTitle - OCTET STRING, - rpRechargeCardCredit - Integer32, - rpPromotionBonus - Integer32, - rpPromotionValidity - Integer32, - rpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.1 - rpCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargePromotionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.2 - rpIndex OBJECT-TYPE - SYNTAX Integer32 (0..3) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.3 - rpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.4 - rpRechargeCardCredit OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Face Value - Remark:The face value of the chosen recharge card. Unit is the basic currency unit." - ::= { rechargePromotionEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.5 - rpPromotionBonus OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Promotion Bonus - Remark:The amount of the bonus binding with the specific recharge card." - ::= { rechargePromotionEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.6 - rpPromotionValidity OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Bonus Validity - Remark:Specify the period of time that the bonus is valid. Bonus over the validity period will be obsolete and deleted from account." - ::= { rechargePromotionEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.56.1.7 - rpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargePromotionEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57 - cAPPlanTable OBJECT-TYPE - SYNTAX SEQUENCE OF CAPPlanEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 57 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1 - cAPPlanEntry OBJECT-TYPE - SYNTAX CAPPlanEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { cpIndex, cpCOSIndex } - ::= { cAPPlanTable 1 } - - - CAPPlanEntry ::= - SEQUENCE { - cpCOSIndex - INTEGER, - cpIndex - INTEGER, - cpTitle - OCTET STRING, - cpFlag - INTEGER, - cpType - INTEGER, - cpThreshold0 - INTEGER, - cpThreshold1 - INTEGER, - cpThreshold2 - INTEGER, - cpTariffID0 - INTEGER, - cpTariffID1 - INTEGER, - cpTariffID2 - INTEGER, - cpTariffID3 - INTEGER, - cpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.1 - cpCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { cAPPlanEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.2 - cpIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.3 - cpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.4 - cpFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - capCallOnly(1), - capSMOnly(2), - capSMAndCall(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Flag - Remark:Disable or select the cap call function mode for the specified CAP Plan." - ::= { cAPPlanEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.5 - cpType OBJECT-TYPE - SYNTAX INTEGER - { - capByAmount(0), - capByCharge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Type - Remark:There are two types of CAP Call measurements adopted in the market:

- By Amount = Accumulated call duration or accumulated number of SM.

- By Charge = Accumulated call charge or accumulated SM charge." - ::= { cAPPlanEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.6 - cpThreshold0 OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Threshold 1 - Remark:Define the trigger to activate the tariff for the next CAP segment. Definition in the basic count unit of time or balance." - ::= { cAPPlanEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.7 - cpThreshold1 OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Threshold 2 - Remark:Define the trigger to activate the tariff for the next CAP segment. Definition in the basic count unit of time or balance." - ::= { cAPPlanEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.8 - cpThreshold2 OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Threshold 3 - Remark:Define the trigger to activate the tariff for the next CAP segment. Definition in the basic count unit of time or balance." - ::= { cAPPlanEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.9 - cpTariffID0 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Tariff 0 - Remark:Specify the tariff ID to the relevant CAP segment." - ::= { cAPPlanEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.10 - cpTariffID1 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Tariff 1 - Remark:Specify the tariff ID to the relevant CAP segment." - ::= { cAPPlanEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.11 - cpTariffID2 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Tariff 2 - Remark:Specify the tariff ID to the relevant CAP segment." - ::= { cAPPlanEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.12 - cpTariffID3 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Tariff 3 - Remark:Specify the tariff ID to the relevant CAP segment." - ::= { cAPPlanEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.57.1.13 - cpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { cAPPlanEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58 - poolAccountTable OBJECT-TYPE - SYNTAX SEQUENCE OF PoolAccountEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 58 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1 - poolAccountEntry OBJECT-TYPE - SYNTAX PoolAccountEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { paIndex, paCOSIndex } - ::= { poolAccountTable 1 } - - - PoolAccountEntry ::= - SEQUENCE { - paCOSIndex - INTEGER, - paIndex - INTEGER, - paTitle - OCTET STRING, - paRole - INTEGER, - paParentChosenCosA - INTEGER, - paParentChosenCosB - INTEGER, - paChildAllowSelfRecharge - INTEGER, - paChildAllowSelfTransfer - INTEGER, - paChildCreditFrom - INTEGER, - paChildMaxCallsPerDay - INTEGER, - paChildMaxSMSPerDay - INTEGER, - paChildMaxConsumedFee - INTEGER, - paRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.1 - paCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { poolAccountEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.2 - paIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.3 - paTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.4 - paRole OBJECT-TYPE - SYNTAX INTEGER - { - normal(0), - parent(1), - child(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Role - Remark:Specify the pool account status and role of this COS.

- Normal = The pool account parameters are inactive in this COS.
- Parent = The parameters for parent are active.
- Child = The parameters for child are active." - ::= { poolAccountEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.5 - paParentChosenCosA OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Parent Chosen COS A - Remark:Specify two COS for child accounts with different authority levels when the upper Role is set to Parent. Choose one of the COSs when add child number." - ::= { poolAccountEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.6 - paParentChosenCosB OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Parent Chosen COS B - Remark:Specify two COS for child accounts with different authority levels when the upper Role is set to Parent. Choose one of the COSs when add child number." - ::= { poolAccountEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.7 - paChildAllowSelfRecharge OBJECT-TYPE - SYNTAX INTEGER - { - no(0), - yes(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Child Recharge Flag - Remark:Enable or disable the child account charge balance by recharge card." - ::= { poolAccountEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.8 - paChildAllowSelfTransfer OBJECT-TYPE - SYNTAX INTEGER - { - no(0), - yes(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Child Transfer Flag - Remark:Enable or disable the child account transfer balance privately." - ::= { poolAccountEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.9 - paChildCreditFrom OBJECT-TYPE - SYNTAX INTEGER - { - autoPeriodicRechargeFromParent(0), - parentTransfer(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Child Credit From - Remark:Specify the mode that the parent account replenishes child accounts.

- Auto Replenish = Parent account automatically replenishes the child accounts to the Child Max Consumed Credit on a daily basis.

- Manually Transfer = When the credit in the child account reaches the Child Max Consumed Credit, a short message will be sent to notify his parent to transfer credit manually." - ::= { poolAccountEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.10 - paChildMaxCallsPerDay OBJECT-TYPE - SYNTAX INTEGER (0..1000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Child Max Calls per Day - Remark:Specify the limit of calls that the child account can make on a daily basis." - ::= { poolAccountEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.11 - paChildMaxSMSPerDay OBJECT-TYPE - SYNTAX INTEGER (0..1000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Child Max SMS per Day - Remark:Specify the limit of short messages that the child account can send on a daily basis." - ::= { poolAccountEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.12 - paChildMaxConsumedFee OBJECT-TYPE - SYNTAX INTEGER (0..100000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Child Max Consumption - Remark:This parameter is affiliated with the Child Credit From parameter. Unit is the minimum currency unit.

- For Auto Replenish, it is the ceiling credit.

- For Manually Transfer, it is the lower credit limit to trigger notification short message." - ::= { poolAccountEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.58.1.13 - paRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { poolAccountEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59 - gprsControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF GprsControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 59 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1 - gprsControlEntry OBJECT-TYPE - SYNTAX GprsControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { gcIndex, gcCOSIndex } - ::= { gprsControlTable 1 } - - - GprsControlEntry ::= - SEQUENCE { - gcCOSIndex - INTEGER, - gcIndex - INTEGER, - gcTitle - OCTET STRING, - gcGprsChargeStatus - INTEGER, - gcMiniBalanceForGprs - INTEGER, - gcInactiveSessionLimit - INTEGER, - gcGprsNotificationWhenTerminate - INTEGER, - gcMaxSmsForGprsNotificationPerDay - INTEGER, - gcMaxVolumeQuotaEachTime - INTEGER, - gcVolumeThresholdDiff - INTEGER, - gcMaxDurationQuotaEachTime - INTEGER, - gcDurationThresholdDiff - INTEGER, - gcChargeBy - INTEGER, - gcGprsCapPlanType - INTEGER, - gcGprsCapPlanThreshold0 - INTEGER, - gcGprsCapPlanThreshold1 - INTEGER, - gcGprsCapPlanThreshold2 - INTEGER, - gcGprsCapPlanTariffID0 - INTEGER, - gcGprsCapPlanTariffID1 - INTEGER, - gcGprsCapPlanTariffID2 - INTEGER, - gcGprsCapPlanTariffID3 - INTEGER, - gcRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.1 - gcCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.2 - gcIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.3 - gcTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.4 - gcGprsChargeStatus OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Charge Flag - Remark:Enable or disable charge for GPRS service." - ::= { gprsControlEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.5 - gcMiniBalanceForGprs OBJECT-TYPE - SYNTAX INTEGER (0..100000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Minimum Balance - Remark:Specify a minimum balance for GPRS service. The subscriber whose balance is below this threshold can't apply GPRS service. Unit is the minimum currency unit.

- 0 means no balance limitation." - ::= { gprsControlEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.6 - gcInactiveSessionLimit OBJECT-TYPE - SYNTAX INTEGER (0..36000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Inactive Session Limit - Remark:Specify a timer to avoid seizing GPRS link in inactivity state for a long time. When the timer reaches 0, the system will disconnect the GPRS session.

- 0 means no limitation." - ::= { gprsControlEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.7 - gcGprsNotificationWhenTerminate OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Notification SMS Flag - Remark:Enable or disable send notification SMS after a GPRS session to inform user the data amount and charge." - ::= { gprsControlEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.8 - gcMaxSmsForGprsNotificationPerDay OBJECT-TYPE - SYNTAX INTEGER (0..1000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Max Notification SMS per Day - Remark:Set the maximum number of GPRS notification SMS allowed per day.

- Range = 0 - 1000" - ::= { gprsControlEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.9 - gcMaxVolumeQuotaEachTime OBJECT-TYPE - SYNTAX INTEGER (1..1024000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Max Volume Quota Each Time - Remark:Specify data quota allocation for GPRS session per each GGSN request.

- Range = 1 - 1024000 KB" - ::= { gprsControlEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.10 - gcVolumeThresholdDiff OBJECT-TYPE - SYNTAX INTEGER (1..102400) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Volume Threshold Diff - Remark:This parameter is associated with the upper Volume Quota parameter. When the remaining data amount reaches to this value, the GGSN will initiate a new request to ask for another data quota allocation.

- Range = 1 - 102400 KB" - ::= { gprsControlEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.11 - gcMaxDurationQuotaEachTime OBJECT-TYPE - SYNTAX INTEGER (60..6000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.12 - gcDurationThresholdDiff OBJECT-TYPE - SYNTAX INTEGER (30..90) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.13 - gcChargeBy OBJECT-TYPE - SYNTAX INTEGER - { - cosDefined(0), - sgsnLocation(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Charge By - Remark:Specify the way to charge GPRS service.

- By COS = Charge by the tariff set in this COS.
- By SGSN Location = Charge by the tariff set in the RADIUS SGSN table." - ::= { gprsControlEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.14 - gcGprsCapPlanType OBJECT-TYPE - SYNTAX INTEGER - { - volume(0), - chargedFee(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type - Remark:There are two types of CAP GPRS measurements adopted in the market:

- By volume = Accumulated data amount (KB)
- By charge = Accumulated service charge." - ::= { gprsControlEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.15 - gcGprsCapPlanThreshold0 OBJECT-TYPE - SYNTAX INTEGER (0..1073741824) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Threshold 1 - Remark:Define the CAP trigger point to activate the new tariff of the next CAP segment.

The CAP counting unit is in data amount (KB) if the tariff charging unit is volume and the CAP counting unit is minimum currency unit if the charge type is charge." - ::= { gprsControlEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.16 - gcGprsCapPlanThreshold1 OBJECT-TYPE - SYNTAX INTEGER (0..1073741824) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Threshold 2 - Remark:Define the CAP trigger point to activate the new tariff of the next CAP segment." - ::= { gprsControlEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.17 - gcGprsCapPlanThreshold2 OBJECT-TYPE - SYNTAX INTEGER (0..1073741824) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Threshold 3 - Remark:Define the CAP trigger point to activate the new tariff of the next CAP segment." - ::= { gprsControlEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.18 - gcGprsCapPlanTariffID0 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tariff 0 - Remark:Specify the tariff ID to the CAP segment." - ::= { gprsControlEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.19 - gcGprsCapPlanTariffID1 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tariff 1 - Remark:Specify the tariff ID to the CAP segment." - ::= { gprsControlEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.20 - gcGprsCapPlanTariffID2 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tariff 2 - Remark:Specify the tariff ID to the CAP segment." - ::= { gprsControlEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.21 - gcGprsCapPlanTariffID3 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Tariff 3 - Remark:Specify the tariff ID to the CAP segment." - ::= { gprsControlEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.59.1.22 - gcRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60 - friendAndFamilyControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF FriendAndFamilyControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 60 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1 - friendAndFamilyControlEntry OBJECT-TYPE - SYNTAX FriendAndFamilyControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { ffCOSIndex, ffIndex } - ::= { friendAndFamilyControlTable 1 } - - - FriendAndFamilyControlEntry ::= - SEQUENCE { - ffCOSIndex - INTEGER, - ffIndex - INTEGER, - ffTitle - OCTET STRING, - ffFlag - INTEGER, - ffChangeChargeFlag - INTEGER, - ffFreeChangeTimes - INTEGER, - ffNumberTypeLocal - INTEGER, - ffNumberTypeNDD - INTEGER, - ffNumberTypeIDD - INTEGER, - ffBalanceThresholdForFriendFamilyCall - INTEGER, - ffKeepOrRemoveFriendFamilyNumber - INTEGER, - ffBalanceThresholdToKeepFriendFamilyNumber - INTEGER, - ff0RentCharge - INTEGER, - ff0MaxNumbers - INTEGER, - ff0FreeCallDuration - INTEGER, - ff0FreeSMS - INTEGER, - ff0RentID - INTEGER, - ff1RentCharge - INTEGER, - ff1MaxNumbers - INTEGER, - ff1FreeCallDuration - INTEGER, - ff1FreeSMS - INTEGER, - ff1RentID - INTEGER, - ff2RentCharge - INTEGER, - ff2MaxNumbers - INTEGER, - ff2FreeCallDuration - INTEGER, - ff2FreeSMS - INTEGER, - ff2RentID - INTEGER, - ff3RentCharge - INTEGER, - ff3MaxNumbers - INTEGER, - ff3FreeCallDuration - INTEGER, - ff3FreeSMS - INTEGER, - ff3RentID - INTEGER, - ff4RentCharge - INTEGER, - ff4MaxNumbers - INTEGER, - ff4FreeCallDuration - INTEGER, - ff4FreeSMS - INTEGER, - ff4RentID - INTEGER, - ff5RentCharge - INTEGER, - ff5MaxNumbers - INTEGER, - ff5FreeCallDuration - INTEGER, - ff5FreeSMS - INTEGER, - ff5RentID - INTEGER, - fAndFRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.1 - ffCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { friendAndFamilyControlEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.2 - ffIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { friendAndFamilyControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.3 - ffTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { friendAndFamilyControlEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.4 - ffFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Flag - Remark:Enable or disable friends and family service." - ::= { friendAndFamilyControlEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.5 - ffChangeChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Charge for Change - Remark:Enable or disable charge for changing friends and family number." - ::= { friendAndFamilyControlEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.6 - ffFreeChangeTimes OBJECT-TYPE - SYNTAX INTEGER (0..36000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Changes - Remark:Define the free change times of changing friends and family numbers." - ::= { friendAndFamilyControlEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.7 - ffNumberTypeLocal OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Local Number - Remark:Enable or disable friends and family number to be local number." - ::= { friendAndFamilyControlEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.8 - ffNumberTypeNDD OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NDD Number - Remark:Enable or disable the friends and family number to be NDD number." - ::= { friendAndFamilyControlEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.9 - ffNumberTypeIDD OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IDD Number - Remark:Enable or disable the friends and family number to be IDD number." - ::= { friendAndFamilyControlEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.10 - ffBalanceThresholdForFriendFamilyCall OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Balance Threshold to Call FF Number - Remark:Balance threshold to allow calls to friends and family number." - ::= { friendAndFamilyControlEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.11 - ffKeepOrRemoveFriendFamilyNumber OBJECT-TYPE - SYNTAX INTEGER - { - remove(0), - keep(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Keep or Remove FF Number - Remark:Keep or remove friends and family number to next month." - ::= { friendAndFamilyControlEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.12 - ffBalanceThresholdToKeepFriendFamilyNumber OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Balance Threshold to Keep FF Number - Remark:Balance threshold to carry its friends and family number to next month." - ::= { friendAndFamilyControlEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.13 - ff0RentCharge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type Name:Registration Fee - Remark:Registration fee for the first month of friends and family plan activation." - ::= { friendAndFamilyControlEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.14 - ff0MaxNumbers OBJECT-TYPE - SYNTAX INTEGER (0..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Numbers - Remark:Maximum friends and family members per subscriber." - ::= { friendAndFamilyControlEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.15 - ff0FreeCallDuration OBJECT-TYPE - SYNTAX INTEGER (0..20000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Call Duration - Remark:Free call duration of calling for friends and family members." - ::= { friendAndFamilyControlEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.16 - ff0FreeSMS OBJECT-TYPE - SYNTAX INTEGER (0..60000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free SMS - Remark:Free SMS of calling for friends and family members." - ::= { friendAndFamilyControlEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.17 - ff0RentID OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent ID - Remark:The rent ID for friends and family plan registration fee." - ::= { friendAndFamilyControlEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.18 - ff1RentCharge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type Name:Registration Fee - Remark:Registration fee for the first month of friends and family plan activation." - ::= { friendAndFamilyControlEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.19 - ff1MaxNumbers OBJECT-TYPE - SYNTAX INTEGER (0..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Numbers - Remark:Maximum friends and family members per subscriber." - ::= { friendAndFamilyControlEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.20 - ff1FreeCallDuration OBJECT-TYPE - SYNTAX INTEGER (0..20000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Call Duration - Remark:Free call duration of calling for friends and family members." - ::= { friendAndFamilyControlEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.21 - ff1FreeSMS OBJECT-TYPE - SYNTAX INTEGER (0..60000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free SMS - Remark:Free SMS of calling for friends and family members." - ::= { friendAndFamilyControlEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.22 - ff1RentID OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent ID - Remark:The rent ID for friends and family plan registration fee." - ::= { friendAndFamilyControlEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.23 - ff2RentCharge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type Name:Registration Fee - Remark:Registration fee for the first month of friends and family plan activation." - ::= { friendAndFamilyControlEntry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.24 - ff2MaxNumbers OBJECT-TYPE - SYNTAX INTEGER (0..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Numbers - Remark:Maximum friends and family members per subscriber." - ::= { friendAndFamilyControlEntry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.25 - ff2FreeCallDuration OBJECT-TYPE - SYNTAX INTEGER (0..20000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Call Duration - Remark:Free call duration of calling for friends and family members." - ::= { friendAndFamilyControlEntry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.26 - ff2FreeSMS OBJECT-TYPE - SYNTAX INTEGER (0..60000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free SMS - Remark:Free SMS of calling for friends and family members." - ::= { friendAndFamilyControlEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.27 - ff2RentID OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent ID - Remark:The rent ID for friends and family plan registration fee." - ::= { friendAndFamilyControlEntry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.28 - ff3RentCharge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type Name:Registration Fee - Remark:Registration fee for the first month of friends and family plan activation." - ::= { friendAndFamilyControlEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.29 - ff3MaxNumbers OBJECT-TYPE - SYNTAX INTEGER (0..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Numbers - Remark:Maximum friends and family members per subscriber." - ::= { friendAndFamilyControlEntry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.30 - ff3FreeCallDuration OBJECT-TYPE - SYNTAX INTEGER (0..20000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Call Duration - Remark:Free call duration of calling for friends and family members." - ::= { friendAndFamilyControlEntry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.31 - ff3FreeSMS OBJECT-TYPE - SYNTAX INTEGER (0..60000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free SMS - Remark:Free SMS of calling for friends and family members." - ::= { friendAndFamilyControlEntry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.32 - ff3RentID OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent ID - Remark:The rent ID for friends and family plan registration fee." - ::= { friendAndFamilyControlEntry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.33 - ff4RentCharge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type Name:Registration Fee - Remark:Registration fee for the first month of friends and family plan activation." - ::= { friendAndFamilyControlEntry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.34 - ff4MaxNumbers OBJECT-TYPE - SYNTAX INTEGER (0..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Numbers - Remark:Maximum friends and family members per subscriber." - ::= { friendAndFamilyControlEntry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.35 - ff4FreeCallDuration OBJECT-TYPE - SYNTAX INTEGER (0..20000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Call Duration - Remark:Free call duration of calling for friends and family members." - ::= { friendAndFamilyControlEntry 35 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.36 - ff4FreeSMS OBJECT-TYPE - SYNTAX INTEGER (0..60000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free SMS - Remark:Free SMS of calling for friends and family members." - ::= { friendAndFamilyControlEntry 36 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.37 - ff4RentID OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent ID - Remark:The rent ID for friends and family plan registration fee." - ::= { friendAndFamilyControlEntry 37 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.38 - ff5RentCharge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Type Name:Registration Fee - Remark:Registration fee for the first month of friends and family plan activation." - ::= { friendAndFamilyControlEntry 38 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.39 - ff5MaxNumbers OBJECT-TYPE - SYNTAX INTEGER (0..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Numbers - Remark:Maximum friends and family members per subscriber." - ::= { friendAndFamilyControlEntry 39 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.40 - ff5FreeCallDuration OBJECT-TYPE - SYNTAX INTEGER (0..20000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free Call Duration - Remark:Free call duration of calling for friends and family members." - ::= { friendAndFamilyControlEntry 40 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.41 - ff5FreeSMS OBJECT-TYPE - SYNTAX INTEGER (0..60000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Free SMS - Remark:Free SMS of calling for friends and family members." - ::= { friendAndFamilyControlEntry 41 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.42 - ff5RentID OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Rent ID - Remark:The rent ID for friends and family plan registration fee." - ::= { friendAndFamilyControlEntry 42 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.2.60.1.43 - fAndFRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { friendAndFamilyControlEntry 43 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3 - srfParameters OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26 - iVRSourceTable OBJECT-TYPE - SYNTAX SEQUENCE OF IVRSourceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26.1 - iVRSourceEntry OBJECT-TYPE - SYNTAX IVRSourceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ivrIndex } - ::= { iVRSourceTable 1 } - - - IVRSourceEntry ::= - SEQUENCE { - ivrIndex - INTEGER, - ivrTitle - OCTET STRING, - ivrInquiry - INTEGER, - ivrRecharge - INTEGER, - ivrRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26.1.1 - ivrIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { iVRSourceEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26.1.2 - ivrTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { iVRSourceEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26.1.3 - ivrInquiry OBJECT-TYPE - SYNTAX INTEGER - { - localSRF(0), - externalIVR(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Inquiry - Remark:Specify the Interactive Voice Response source for inquiry prompt." - ::= { iVRSourceEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26.1.4 - ivrRecharge OBJECT-TYPE - SYNTAX INTEGER - { - localSRF(0), - externalIVR(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Recharge - Remark:Specify the Interactive Voice Response source for recharge prompt." - ::= { iVRSourceEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.26.1.5 - ivrRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { iVRSourceEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.27 - sRFNumberTable OBJECT-TYPE - SYNTAX SEQUENCE OF SRFNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.27.1 - sRFNumberEntry OBJECT-TYPE - SYNTAX SRFNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { srfIndex } - ::= { sRFNumberTable 1 } - - - SRFNumberEntry ::= - SEQUENCE { - srfIndex - INTEGER, - srfTitle - OCTET STRING, - srfNumber - OCTET STRING, - srfRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.27.1.1 - srfIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sRFNumberEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.27.1.2 - srfTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sRFNumberEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.27.1.3 - srfNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:E.164 Number - Remark:The E.164 node address of the specific SRF." - ::= { sRFNumberEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.27.1.4 - srfRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sRFNumberEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.28 - serviceNumberTable OBJECT-TYPE - SYNTAX SEQUENCE OF ServiceNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.28.1 - serviceNumberEntry OBJECT-TYPE - SYNTAX ServiceNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { snIndex } - ::= { serviceNumberTable 1 } - - - ServiceNumberEntry ::= - SEQUENCE { - snIndex - INTEGER, - snTitle - OCTET STRING, - snServiceNumber - OCTET STRING, - snRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.28.1.1 - snIndex OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceNumberEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.28.1.2 - snTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceNumberEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.28.1.3 - snServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Number - Remark:Define dedicated shortcut number for specific operation." - ::= { serviceNumberEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.28.1.4 - snRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceNumberEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.29 - serviceKeyTable OBJECT-TYPE - SYNTAX SEQUENCE OF ServiceKeyEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.29.1 - serviceKeyEntry OBJECT-TYPE - SYNTAX ServiceKeyEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { skIndex } - ::= { serviceKeyTable 1 } - - - ServiceKeyEntry ::= - SEQUENCE { - skIndex - INTEGER, - skTitle - OCTET STRING, - skServiceKey - INTEGER, - skRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.29.1.1 - skIndex OBJECT-TYPE - SYNTAX INTEGER (0..6) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceKeyEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.29.1.2 - skTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceKeyEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.29.1.3 - skServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..12) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Key - Remark:Define dedicated hot key for specific operation." - ::= { serviceKeyEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.29.1.4 - skRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceKeyEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.61 - ussdServiceNumberTable OBJECT-TYPE - SYNTAX SEQUENCE OF UssdServiceNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 61 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.61.1 - ussdServiceNumberEntry OBJECT-TYPE - SYNTAX UssdServiceNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:USSD Service Number" - INDEX { ussdsnIndex } - ::= { ussdServiceNumberTable 1 } - - - UssdServiceNumberEntry ::= - SEQUENCE { - ussdsnIndex - INTEGER, - ussdsnTitle - OCTET STRING, - ussdsnServiceNumber - OCTET STRING, - ussdsnRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.61.1.1 - ussdsnIndex OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { ussdServiceNumberEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.61.1.2 - ussdsnTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { ussdServiceNumberEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.61.1.3 - ussdsnServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Number - Remark:Define dedicated shortcut number for specific operation." - ::= { ussdServiceNumberEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.61.1.4 - ussdsnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ussdServiceNumberEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.62 - ussdServiceKeyTable OBJECT-TYPE - SYNTAX SEQUENCE OF UssdServiceKeyEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 62 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.62.1 - ussdServiceKeyEntry OBJECT-TYPE - SYNTAX UssdServiceKeyEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:USSD Service Key" - INDEX { ussdskIndex } - ::= { ussdServiceKeyTable 1 } - - - UssdServiceKeyEntry ::= - SEQUENCE { - ussdskIndex - INTEGER, - ussdskTitle - OCTET STRING, - ussdskServiceKey - INTEGER, - ussdskRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.62.1.1 - ussdskIndex OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { ussdServiceKeyEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.62.1.2 - ussdskTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { ussdServiceKeyEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.62.1.3 - ussdskServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..12) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Key - Remark:Define dedicated hot key for specific operation." - ::= { ussdServiceKeyEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.3.62.1.4 - ussdskRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { ussdServiceKeyEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4 - callRouteToVMS OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.1 - pLMNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Service Number - Remark:Subscriber dials this service number by handset to enter and maintain his mailbox or leave message to other subscribers." - ::= { callRouteToVMS 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.2 - pSTNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Service Number (PSTN) - Remark:Subscriber dials this service number from PSTN to enter and maintain his mailbox or leave message to other subscribers following the system prompt." - ::= { callRouteToVMS 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.3 - vMSLeaveMessageNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Leave Message Number - Remark:Dedicated service number for leaving message. User uses either handset or PSTN telephone to call this number to leave message to system subscribers." - ::= { callRouteToVMS 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.4 - routeMethodOption OBJECT-TYPE - SYNTAX INTEGER - { - byPrefix(0), - byWholeNumber(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Route Method - Remark:Define the routing type for the above VMS service number." - ::= { callRouteToVMS 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.5 - routeNumberOption OBJECT-TYPE - SYNTAX INTEGER - { - callerNumber(0), - calledNumber(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Route Number - Remark:Define which number to route for the following VMS User Segments." - ::= { callRouteToVMS 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.6 - isPostpaidAllowed OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Postpaid Flag - Remark:Enable or disable voice mail service for postpaid subscribers." - ::= { callRouteToVMS 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.7 - ringBackServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..12) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Ringback Service Key - Remark:Define a dedicated hot key to ring back the caller." - ::= { callRouteToVMS 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30 - vMSUserSegmentsTable OBJECT-TYPE - SYNTAX SEQUENCE OF VMSUserSegmentsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1 - vMSUserSegmentsEntry OBJECT-TYPE - SYNTAX VMSUserSegmentsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { vusIndex } - ::= { vMSUserSegmentsTable 1 } - - - VMSUserSegmentsEntry ::= - SEQUENCE { - vusIndex - INTEGER, - vusTitle - OCTET STRING, - vusStartMSISDN - OCTET STRING, - vusEndMSISDN - OCTET STRING, - vusPLMNServiceNumber - OCTET STRING, - vusPSTNServiceNumber - OCTET STRING, - vusLeaveMessageDepositNumber - OCTET STRING, - vusRowStatus - Integer32 - } - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.1 - vusIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vMSUserSegmentsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.2 - vusTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vMSUserSegmentsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.3 - vusStartMSISDN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MSISDN Start - Remark:The beginning of the MSISDN range." - ::= { vMSUserSegmentsEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.4 - vusEndMSISDN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MSISDN End - Remark:The end of the MSISDN range." - ::= { vMSUserSegmentsEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.5 - vusPLMNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Service Number - Remark:Specify internal service numbers to route the caller to host VMS." - ::= { vMSUserSegmentsEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.6 - vusPSTNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Service Number (PSTN) - Remark:Specify internal service numbers to route the caller to host VMS." - ::= { vMSUserSegmentsEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.7 - vusLeaveMessageDepositNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Leave Message Number - Remark:Specify internal service numbers to route the caller to host VMS." - ::= { vMSUserSegmentsEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.4.30.1.8 - vusRowStatus OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vMSUserSegmentsEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.5 - fileOperation OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.5.1 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Progress Report[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Requesting - [v]2[opt]Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Subscribers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Imported Subscribers[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { fileOperation 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.5.2 - importRechangeCard OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Progress Report[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Requesting - [v]2[opt]Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Cards[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Imported Cards[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { fileOperation 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.5.3 - newTariffFlag OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes" - ::= { fileOperation 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.5.4 - newTariffStarTime OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (14)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes" - ::= { fileOperation 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.2.5.5 - saveCommand OBJECT-TYPE - SYNTAX INTEGER - { - saveUserData(1), - saveTariff(2), - saveRechargeCard(3), - saveAll(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { fileOperation 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.3 - csta OBJECT IDENTIFIER ::= { pps 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.4 - cdr OBJECT IDENTIFIER ::= { pps 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.6.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - - END - --- --- LGC-SS-PPS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-RCM-MIB.my b/omc/bin/mib/LGC-SS-RCM-MIB.my deleted file mode 100644 index 8aef33e..0000000 --- a/omc/bin/mib/LGC-SS-RCM-MIB.my +++ /dev/null @@ -1,3779 +0,0 @@ --- --- LGC-SS-RCM-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, July 02, 2010 at 17:28:59 --- - - LGC-SS-RCM-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus, DisplayString - FROM LGC-MIB - IpAddress, Opaque, Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.26 - rcm MODULE-IDENTITY - LAST-UPDATED "200811241438Z" -- November 24, 2008 at 14:38 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - ::= { application 26 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { rcm 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.26.2 - parameter OBJECT IDENTIFIER ::= { rcm 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1 - serviceControl OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.1 - license OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.2 - cDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.3 - blackListThreshold OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.4 - maxBalance OBJECT-TYPE - SYNTAX INTEGER (0..1000000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.5 - currencySymbol OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.6 - cOSOption OBJECT-TYPE - SYNTAX INTEGER - { - group64(0), - group4(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.7 - mNPChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.8 - oprAccountValidity OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:OPR initial validity days." - ::= { serviceControl 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.9 - language0SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.10 - language1SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.11 - language2SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.12 - language3SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.13 - language4SMEncodeType OBJECT-TYPE - SYNTAX INTEGER - { - bits7(0), - bits8(1), - unicode(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20 - promptResolutionTable OBJECT-TYPE - SYNTAX SEQUENCE OF PromptResolutionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1 - promptResolutionEntry OBJECT-TYPE - SYNTAX PromptResolutionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { prIndex } - ::= { promptResolutionTable 1 } - - - PromptResolutionEntry ::= - SEQUENCE { - prIndex - INTEGER, - prTitle - OCTET STRING, - prCurrencyResolution - INTEGER, - prDateFormat - INTEGER, - prCurrencySymbolPosition - INTEGER, - prRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1.1 - prIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { promptResolutionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1.2 - prTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { promptResolutionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1.3 - prCurrencyResolution OBJECT-TYPE - SYNTAX INTEGER - { - n1(0), - n10(1), - n100(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { promptResolutionEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1.4 - prDateFormat OBJECT-TYPE - SYNTAX INTEGER - { - yyyymmdd(0), - ddmmyyyy(1), - mmddyyyy(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { promptResolutionEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1.5 - prCurrencySymbolPosition OBJECT-TYPE - SYNTAX INTEGER - { - front(0), - rear(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { promptResolutionEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.20.1.6 - prRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { promptResolutionEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.21 - mNPPrefixesTable OBJECT-TYPE - SYNTAX SEQUENCE OF MNPPrefixesEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.21.1 - mNPPrefixesEntry OBJECT-TYPE - SYNTAX MNPPrefixesEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { mnpIndex } - ::= { mNPPrefixesTable 1 } - - - MNPPrefixesEntry ::= - SEQUENCE { - mnpIndex - INTEGER, - mnpTitle - OCTET STRING, - mnpPrefix - OCTET STRING, - mnpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.21.1.1 - mnpIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mNPPrefixesEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.21.1.2 - mnpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mNPPrefixesEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.21.1.3 - mnpPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mNPPrefixesEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.21.1.4 - mnpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mNPPrefixesEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22 - sMSSentenceTable OBJECT-TYPE - SYNTAX SEQUENCE OF SMSSentenceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1 - sMSSentenceEntry OBJECT-TYPE - SYNTAX SMSSentenceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ssIndex } - ::= { sMSSentenceTable 1 } - - - SMSSentenceEntry ::= - SEQUENCE { - ssIndex - INTEGER, - ssTitle - OCTET STRING, - ssEnglish - OCTET STRING, - ssLanguage0Content - OCTET STRING, - ssLanguage1Content - OCTET STRING, - ssLanguage2Content - OCTET STRING, - ssLanguage3Content - OCTET STRING, - ssLanguage4Content - OCTET STRING, - ssRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.1 - ssIndex OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSSentenceEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.2 - ssTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSSentenceEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.3 - ssEnglish OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSSentenceEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.4 - ssLanguage0Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSSentenceEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.5 - ssLanguage1Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSSentenceEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.6 - ssLanguage2Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSSentenceEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.7 - ssLanguage3Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSSentenceEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.8 - ssLanguage4Content OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..127)) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSSentenceEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.22.1.9 - ssRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSSentenceEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24 - thirdPartyInfoTable OBJECT-TYPE - SYNTAX SEQUENCE OF ThirdPartyInfoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24.1 - thirdPartyInfoEntry OBJECT-TYPE - SYNTAX ThirdPartyInfoEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { tpiIndex } - ::= { thirdPartyInfoTable 1 } - - - ThirdPartyInfoEntry ::= - SEQUENCE { - tpiIndex - INTEGER, - tpiTitle - OCTET STRING, - tpiServiceID - OCTET STRING, - tpiServicePassword - OCTET STRING, - tpiRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24.1.1 - tpiIndex OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { thirdPartyInfoEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24.1.2 - tpiTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { thirdPartyInfoEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24.1.3 - tpiServiceID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { thirdPartyInfoEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24.1.4 - tpiServicePassword OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { thirdPartyInfoEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.24.1.5 - tpiRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { thirdPartyInfoEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25 - basicTariffZoneTable OBJECT-TYPE - SYNTAX SEQUENCE OF BasicTariffZoneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1 - basicTariffZoneEntry OBJECT-TYPE - SYNTAX BasicTariffZoneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { btzIndex } - ::= { basicTariffZoneTable 1 } - - - BasicTariffZoneEntry ::= - SEQUENCE { - btzIndex - INTEGER, - btzTitle - OCTET STRING, - btzMCC - OCTET STRING, - btzMNC - OCTET STRING, - btzLAC - INTEGER, - btzCellID - INTEGER, - btzMOTariffID - INTEGER, - btzMTTariffID - INTEGER, - btzRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.1 - btzIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.2 - btzTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.3 - btzMCC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.4 - btzMNC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (2..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.5 - btzLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.6 - btzCellID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.7 - btzMOTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.8 - btzMTTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.25.1.9 - btzRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { basicTariffZoneEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31 - radiusGGSNTable OBJECT-TYPE - SYNTAX SEQUENCE OF RadiusGGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1 - radiusGGSNEntry OBJECT-TYPE - SYNTAX RadiusGGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { rgIndex } - ::= { radiusGGSNTable 1 } - - - RadiusGGSNEntry ::= - SEQUENCE { - rgIndex - INTEGER, - rgTitle - OCTET STRING, - rgNasIP - IpAddress, - rgNASKey - OCTET STRING, - rgNASPassword - OCTET STRING, - rgRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1.1 - rgIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusGGSNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1.2 - rgTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Title." - ::= { radiusGGSNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1.6 - rgNasIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NAS IP - Remark:NAS IP." - ::= { radiusGGSNEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1.7 - rgNASKey OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:NAS Key." - ::= { radiusGGSNEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1.8 - rgNASPassword OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:NAS Password." - ::= { radiusGGSNEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.31.1.9 - rgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusGGSNEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32 - radiusSGSNTable OBJECT-TYPE - SYNTAX SEQUENCE OF RadiusSGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceControl 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32.1 - radiusSGSNEntry OBJECT-TYPE - SYNTAX RadiusSGSNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { rsIndex } - ::= { radiusSGSNTable 1 } - - - RadiusSGSNEntry ::= - SEQUENCE { - rsIndex - INTEGER, - rsTitle - OCTET STRING, - rsSgsnIP - IpAddress, - rsTariffID - INTEGER, - rsRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32.1.1 - rsIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusSGSNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32.1.2 - rsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusSGSNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32.1.3 - rsSgsnIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SGSN IP - Remark:SGSN IP." - ::= { radiusSGSNEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32.1.4 - rsTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Tariff ID." - ::= { radiusSGSNEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.1.32.1.5 - rsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { radiusSGSNEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2 - cOS OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50 - cOSTable OBJECT-TYPE - SYNTAX SEQUENCE OF COSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 50 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1 - cOSEntry OBJECT-TYPE - SYNTAX COSEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { cosIndex } - ::= { cOSTable 1 } - - - COSEntry ::= - SEQUENCE { - cosIndex - INTEGER, - cosTitle - OCTET STRING, - cosTariffEntries - INTEGER, - cosServiceControlEntries - INTEGER, - cosAccountValidityEntries - INTEGER, - cosSMSNotificationInquiryEntries - INTEGER, - cosRechargeCardValidityEntries - INTEGER, - cosRechargePromotionEntries - INTEGER, - cosCAPPlanEntries - INTEGER, - cosPoolAccountEntries - INTEGER, - cosGprsControlEntries - INTEGER, - cosRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.1 - cosIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.2 - cosTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.3 - cosTariffEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.4 - cosServiceControlEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.5 - cosAccountValidityEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.6 - cosSMSNotificationInquiryEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.7 - cosRechargeCardValidityEntries OBJECT-TYPE - SYNTAX INTEGER (4) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.8 - cosRechargePromotionEntries OBJECT-TYPE - SYNTAX INTEGER (4) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.9 - cosCAPPlanEntries OBJECT-TYPE - SYNTAX INTEGER (2) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.10 - cosPoolAccountEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.11 - cosGprsControlEntries OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cOSEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.50.1.12 - cosRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cOSEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51 - tariffTable OBJECT-TYPE - SYNTAX SEQUENCE OF TariffEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 51 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1 - tariffEntry OBJECT-TYPE - SYNTAX TariffEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { tariffIndex, tariffCOSIndex } - ::= { tariffTable 1 } - - - TariffEntry ::= - SEQUENCE { - tariffCOSIndex - INTEGER, - tariffIndex - INTEGER, - tariffTitle - OCTET STRING, - tariffMOTariffID - INTEGER, - tariffMTTariffID - INTEGER, - tariffChargeBy - INTEGER, - tariffRechargePromotionStartDate - OCTET STRING, - tariffRechargePromotionEndDate - OCTET STRING, - tariffCAPPlanResetDay - INTEGER, - tariffPromotionIddMoCall - INTEGER, - tariffPromotionNddMoCall - INTEGER, - tariffPromotionLocalMoCall - INTEGER, - tariffPromotionIddMoSMS - INTEGER, - tariffPromotionNddMoSMS - INTEGER, - tariffPromotionLocalMoSMS - INTEGER, - tariffPromotionGprs - INTEGER, - tariffPromotionTransfer - INTEGER, - tariffPromotionTransferPriority - INTEGER, - tariffRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.1 - tariffCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.2 - tariffIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tariffEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.3 - tariffTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tariffEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.4 - tariffMOTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tariffEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.5 - tariffMTTariffID OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { tariffEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.6 - tariffChargeBy OBJECT-TYPE - SYNTAX INTEGER - { - tariffSetInSubscriberProfile(0), - parameterBasicTariffZone(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.7 - tariffRechargePromotionStartDate OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.8 - tariffRechargePromotionEndDate OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.9 - tariffCAPPlanResetDay OBJECT-TYPE - SYNTAX INTEGER (1..28) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.10 - tariffPromotionIddMoCall OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.11 - tariffPromotionNddMoCall OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.12 - tariffPromotionLocalMoCall OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.13 - tariffPromotionIddMoSMS OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.14 - tariffPromotionNddMoSMS OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.15 - tariffPromotionLocalMoSMS OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.16 - tariffPromotionGprs OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.17 - tariffPromotionTransfer OBJECT-TYPE - SYNTAX INTEGER - { - notAllowed(0), - allowed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.18 - tariffPromotionTransferPriority OBJECT-TYPE - SYNTAX INTEGER - { - inferiorToBalance(0), - superiorToBalance(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.51.1.19 - tariffRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { tariffEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52 - serviceControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF ServiceControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 52 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1 - serviceControlEntry OBJECT-TYPE - SYNTAX ServiceControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { scIndex, scCOSIndex } - ::= { serviceControlTable 1 } - - - ServiceControlEntry ::= - SEQUENCE { - scCOSIndex - INTEGER, - scIndex - INTEGER, - scTitle - OCTET STRING, - scMOThresholdSet - INTEGER, - scMOMinimumBalance - INTEGER, - scMTChargeFlag - INTEGER, - scMTBalanceControl - INTEGER, - scMTBalanceThreshold - INTEGER, - scFriendFamilyFlag - INTEGER, - scFriendFamilyChangeChargeFlag - INTEGER, - scFriendFamilyFreeChangeTimes - INTEGER, - scCloseUserGroupService - INTEGER, - scRechargeViaCreditCard - INTEGER, - scCreditVault - INTEGER, - scCreditVaultAmount - INTEGER, - scPoolAccountFlag - INTEGER, - scPoolAccountChangeChargeFlag - INTEGER, - scPoolAccountFreeChangeTimes - INTEGER, - scFreeSmsRelatedCOS - INTEGER, - scFreeSmsActiveDays - INTEGER, - scFreeSmsRentType - INTEGER, - scfCallMeBackThreshold - INTEGER, - scRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.1 - scCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.2 - scIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.3 - scTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.4 - scMOThresholdSet OBJECT-TYPE - SYNTAX INTEGER - { - notSet(0), - set(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.5 - scMOMinimumBalance OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.6 - scMTChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.7 - scMTBalanceControl OBJECT-TYPE - SYNTAX INTEGER - { - noLimitation(0), - thresholdUsed(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.8 - scMTBalanceThreshold OBJECT-TYPE - SYNTAX INTEGER (-1000000..1000000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceControlEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.9 - scFriendFamilyFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.10 - scFriendFamilyChangeChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.11 - scFriendFamilyFreeChangeTimes OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.12 - scCloseUserGroupService OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.13 - scRechargeViaCreditCard OBJECT-TYPE - SYNTAX INTEGER - { - support(0), - unsupport(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.14 - scCreditVault OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.15 - scCreditVaultAmount OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.16 - scPoolAccountFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.17 - scPoolAccountChangeChargeFlag OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.18 - scPoolAccountFreeChangeTimes OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.19 - scFreeSmsRelatedCOS OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.20 - scFreeSmsActiveDays OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.21 - scFreeSmsRentType OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.22 - scfCallMeBackThreshold OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.52.1.23 - scRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceControlEntry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53 - accountValidityTable OBJECT-TYPE - SYNTAX SEQUENCE OF AccountValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 53 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1 - accountValidityEntry OBJECT-TYPE - SYNTAX AccountValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { avIndex, avCOSIndex } - ::= { accountValidityTable 1 } - - - AccountValidityEntry ::= - SEQUENCE { - avCOSIndex - INTEGER, - avIndex - INTEGER, - avTitle - OCTET STRING, - avMaxAccountValidityDays - INTEGER, - avActionWhenAccountExpires - INTEGER, - avDaysKeepingAnExpiredAccount - INTEGER, - avActionAfterDaysKeepingAnExpiredAccount - INTEGER, - avActionAfterRecharge - INTEGER, - avActionAfterBalanceDepleted - INTEGER, - avValidDaysChangeTo - INTEGER, - avActivationByInquiryIs - INTEGER, - avValidDaysActivatedByInquiringAccountWithZeroBalance - INTEGER, - avRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.1 - avCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.2 - avIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { accountValidityEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.3 - avTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { accountValidityEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.4 - avMaxAccountValidityDays OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { accountValidityEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.5 - avActionWhenAccountExpires OBJECT-TYPE - SYNTAX INTEGER - { - notClearBalance(0), - clearBalance(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { accountValidityEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.6 - avDaysKeepingAnExpiredAccount OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.7 - avActionAfterDaysKeepingAnExpiredAccount OBJECT-TYPE - SYNTAX INTEGER - { - notClearBalance(0), - clearBalance(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.8 - avActionAfterRecharge OBJECT-TYPE - SYNTAX INTEGER - { - accumulateValidity(0), - replaceValidity(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.9 - avActionAfterBalanceDepleted OBJECT-TYPE - SYNTAX INTEGER - { - notChangeAccountValidity(0), - changeAccountValidity(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.10 - avValidDaysChangeTo OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.11 - avActivationByInquiryIs OBJECT-TYPE - SYNTAX INTEGER - { - disabled(0), - eabled(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.12 - avValidDaysActivatedByInquiringAccountWithZeroBalance OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.53.1.13 - avRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { accountValidityEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54 - sMSNotificationInquiryTable OBJECT-TYPE - SYNTAX SEQUENCE OF SMSNotificationInquiryEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 54 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1 - sMSNotificationInquiryEntry OBJECT-TYPE - SYNTAX SMSNotificationInquiryEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { smsIndex, smsCOSIndex } - ::= { sMSNotificationInquiryTable 1 } - - - SMSNotificationInquiryEntry ::= - SEQUENCE { - smsCOSIndex - INTEGER, - smsIndex - INTEGER, - smsTitle - OCTET STRING, - smsNotificationWhenRecharge - INTEGER, - smsNotificationWhenInquiry - INTEGER, - smsNotificationWhenExpired - INTEGER, - smsTheDaysSendingSMSBeforeExpiredDay - INTEGER, - smsNotificationWhenBalanceInsufficient - INTEGER, - smsInsufficientBalanceThreshold - INTEGER, - smsChargeWhenInquiryBySMS - INTEGER, - smsFreeInquiryPerDay - INTEGER, - smsNotificationWhenCleanBalance - INTEGER, - smsNotificationWhenCapPlanChanged - INTEGER, - smsNotificationWhenApplyOverdraft - INTEGER, - smsRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.1 - smsCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.2 - smsIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.3 - smsTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.4 - smsNotificationWhenRecharge OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.5 - smsNotificationWhenInquiry OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.6 - smsNotificationWhenExpired OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMSNotificationInquiryEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.7 - smsTheDaysSendingSMSBeforeExpiredDay OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.8 - smsNotificationWhenBalanceInsufficient OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.9 - smsInsufficientBalanceThreshold OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.10 - smsChargeWhenInquiryBySMS OBJECT-TYPE - SYNTAX INTEGER - { - notCharge(0), - charge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.11 - smsFreeInquiryPerDay OBJECT-TYPE - SYNTAX INTEGER (0..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.12 - smsNotificationWhenCleanBalance OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Wether or not to send a notification SMS when clear expired account balance." - ::= { sMSNotificationInquiryEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.13 - smsNotificationWhenCapPlanChanged OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Whether or not to send a notification SMS when CAP Plan is to be changed." - ::= { sMSNotificationInquiryEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.14 - smsNotificationWhenApplyOverdraft OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Notification When Apply Overdraft." - ::= { sMSNotificationInquiryEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.54.1.15 - smsRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotificationInquiryEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55 - rechargeCardValidityTable OBJECT-TYPE - SYNTAX SEQUENCE OF RechargeCardValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 55 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1 - rechargeCardValidityEntry OBJECT-TYPE - SYNTAX RechargeCardValidityEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { rcvIndex, rcvCOSIndex } - ::= { rechargeCardValidityTable 1 } - - - RechargeCardValidityEntry ::= - SEQUENCE { - rcvCOSIndex - INTEGER, - rcvIndex - INTEGER, - rcvTitle - OCTET STRING, - rcvCardCredit - INTEGER, - rcvMOValidity - INTEGER, - rcvMTValidity - INTEGER, - rcvRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.1 - rcvCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargeCardValidityEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.2 - rcvIndex OBJECT-TYPE - SYNTAX INTEGER (0..3) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.3 - rcvTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.4 - rcvCardCredit OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.5 - rcvMOValidity OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.6 - rcvMTValidity OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargeCardValidityEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.55.1.7 - rcvRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargeCardValidityEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56 - rechargePromotionTable OBJECT-TYPE - SYNTAX SEQUENCE OF RechargePromotionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 56 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1 - rechargePromotionEntry OBJECT-TYPE - SYNTAX RechargePromotionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { rpIndex, rpCOSIndex } - ::= { rechargePromotionTable 1 } - - - RechargePromotionEntry ::= - SEQUENCE { - rpCOSIndex - INTEGER, - rpIndex - Integer32, - rpTitle - OCTET STRING, - rpRechargeCardCredit - Integer32, - rpPromotionBonus - Integer32, - rpPromotionValidity - Integer32, - rpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.1 - rpCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargePromotionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.2 - rpIndex OBJECT-TYPE - SYNTAX Integer32 (0..3) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.3 - rpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.4 - rpRechargeCardCredit OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.5 - rpPromotionBonus OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.6 - rpPromotionValidity OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { rechargePromotionEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.56.1.7 - rpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rechargePromotionEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57 - cAPPlanTable OBJECT-TYPE - SYNTAX SEQUENCE OF CAPPlanEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 57 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1 - cAPPlanEntry OBJECT-TYPE - SYNTAX CAPPlanEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { cpIndex, cpCOSIndex } - ::= { cAPPlanTable 1 } - - - CAPPlanEntry ::= - SEQUENCE { - cpCOSIndex - INTEGER, - cpIndex - INTEGER, - cpTitle - OCTET STRING, - cpFlag - INTEGER, - cpType - INTEGER, - cpThreshold0 - INTEGER, - cpThreshold1 - INTEGER, - cpThreshold2 - INTEGER, - cpTariffID0 - INTEGER, - cpTariffID1 - INTEGER, - cpTariffID2 - INTEGER, - cpTariffID3 - INTEGER, - cpRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.1 - cpCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { cAPPlanEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.2 - cpIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.3 - cpTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.4 - cpFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - capCallOnly(1), - capSMOnly(2), - capSMAndCall(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.5 - cpType OBJECT-TYPE - SYNTAX INTEGER - { - capByAmount(0), - capByCharge(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.6 - cpThreshold0 OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.7 - cpThreshold1 OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.8 - cpThreshold2 OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.9 - cpTariffID0 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.10 - cpTariffID1 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.11 - cpTariffID2 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.12 - cpTariffID3 OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cAPPlanEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.57.1.13 - cpRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { cAPPlanEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58 - poolAccountTable OBJECT-TYPE - SYNTAX SEQUENCE OF PoolAccountEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 58 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1 - poolAccountEntry OBJECT-TYPE - SYNTAX PoolAccountEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { paIndex, paCOSIndex } - ::= { poolAccountTable 1 } - - - PoolAccountEntry ::= - SEQUENCE { - paCOSIndex - INTEGER, - paIndex - INTEGER, - paTitle - OCTET STRING, - paRole - INTEGER, - paParentChosenCosA - INTEGER, - paParentChosenCosB - INTEGER, - paChildAllowSelfRecharge - INTEGER, - paChildAllowSelfTransfer - INTEGER, - paChildCreditFrom - INTEGER, - paChildMaxCallsPerDay - INTEGER, - paChildMaxSMSPerDay - INTEGER, - paChildMaxConsumedFee - INTEGER, - paRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.1 - paCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { poolAccountEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.2 - paIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.3 - paTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.4 - paRole OBJECT-TYPE - SYNTAX INTEGER - { - normal(0), - parent(1), - child(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.5 - paParentChosenCosA OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.6 - paParentChosenCosB OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { poolAccountEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.7 - paChildAllowSelfRecharge OBJECT-TYPE - SYNTAX INTEGER - { - no(0), - yes(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.8 - paChildAllowSelfTransfer OBJECT-TYPE - SYNTAX INTEGER - { - no(0), - yes(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.9 - paChildCreditFrom OBJECT-TYPE - SYNTAX INTEGER - { - autoPeriodicRechargeFromParent(0), - parentTransfer(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.10 - paChildMaxCallsPerDay OBJECT-TYPE - SYNTAX INTEGER (0..1000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.11 - paChildMaxSMSPerDay OBJECT-TYPE - SYNTAX INTEGER (0..1000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.12 - paChildMaxConsumedFee OBJECT-TYPE - SYNTAX INTEGER (0..100000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { poolAccountEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.58.1.13 - paRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { poolAccountEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59 - gprsControlTable OBJECT-TYPE - SYNTAX SEQUENCE OF GprsControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cOS 59 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1 - gprsControlEntry OBJECT-TYPE - SYNTAX GprsControlEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { gcIndex, gcCOSIndex } - ::= { gprsControlTable 1 } - - - GprsControlEntry ::= - SEQUENCE { - gcCOSIndex - INTEGER, - gcIndex - INTEGER, - gcTitle - OCTET STRING, - gcGprsChargeStatus - INTEGER, - gcMiniBalanceForGprs - INTEGER, - gcInactiveSessionLimit - INTEGER, - gcGprsNotificationWhenTerminate - INTEGER, - gcMaxSmsForGprsNotificationPerDay - INTEGER, - gcMaxVolumeQuotaEachTime - INTEGER, - gcVolumeThresholdDiff - INTEGER, - gcMaxDurationQuotaEachTime - INTEGER, - gcDurationThresholdDiff - INTEGER, - gcChargeBy - INTEGER, - gcGprsCapPlanType - INTEGER, - gcGprsCapPlanThreshold0 - INTEGER, - gcGprsCapPlanThreshold1 - INTEGER, - gcGprsCapPlanThreshold2 - INTEGER, - gcGprsCapPlanTariffID0 - INTEGER, - gcGprsCapPlanTariffID1 - INTEGER, - gcGprsCapPlanTariffID2 - INTEGER, - gcGprsCapPlanTariffID3 - INTEGER, - gcRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.1 - gcCOSIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.2 - gcIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.3 - gcTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.4 - gcGprsChargeStatus OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.5 - gcMiniBalanceForGprs OBJECT-TYPE - SYNTAX INTEGER (0..100000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.6 - gcInactiveSessionLimit OBJECT-TYPE - SYNTAX INTEGER (0..36000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.7 - gcGprsNotificationWhenTerminate OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.8 - gcMaxSmsForGprsNotificationPerDay OBJECT-TYPE - SYNTAX INTEGER (0..1000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.9 - gcMaxVolumeQuotaEachTime OBJECT-TYPE - SYNTAX INTEGER (1..1024000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.10 - gcVolumeThresholdDiff OBJECT-TYPE - SYNTAX INTEGER (1..102400) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.11 - gcMaxDurationQuotaEachTime OBJECT-TYPE - SYNTAX INTEGER (60..6000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.12 - gcDurationThresholdDiff OBJECT-TYPE - SYNTAX INTEGER (30..90) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.13 - gcChargeBy OBJECT-TYPE - SYNTAX INTEGER - { - cosDefined(0), - sgsnLocation(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gprsControlEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.14 - gcGprsCapPlanType OBJECT-TYPE - SYNTAX INTEGER - { - volume(0), - chargedFee(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.15 - gcGprsCapPlanThreshold0 OBJECT-TYPE - SYNTAX INTEGER (0..1073741824) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.16 - gcGprsCapPlanThreshold1 OBJECT-TYPE - SYNTAX INTEGER (0..1073741824) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.17 - gcGprsCapPlanThreshold2 OBJECT-TYPE - SYNTAX INTEGER (0..1073741824) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.18 - gcGprsCapPlanTariffID0 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.19 - gcGprsCapPlanTariffID1 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.20 - gcGprsCapPlanTariffID2 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.21 - gcGprsCapPlanTariffID3 OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.2.59.1.22 - gcRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gprsControlEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3 - srfParameters OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26 - iVRSourceTable OBJECT-TYPE - SYNTAX SEQUENCE OF IVRSourceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26.1 - iVRSourceEntry OBJECT-TYPE - SYNTAX IVRSourceEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ivrIndex } - ::= { iVRSourceTable 1 } - - - IVRSourceEntry ::= - SEQUENCE { - ivrIndex - INTEGER, - ivrTitle - OCTET STRING, - ivrInquiry - INTEGER, - ivrRecharge - INTEGER, - ivrRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26.1.1 - ivrIndex OBJECT-TYPE - SYNTAX INTEGER (0) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { iVRSourceEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26.1.2 - ivrTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { iVRSourceEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26.1.3 - ivrInquiry OBJECT-TYPE - SYNTAX INTEGER - { - localSRF(0), - externalIVR(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { iVRSourceEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26.1.4 - ivrRecharge OBJECT-TYPE - SYNTAX INTEGER - { - localSRF(0), - externalIVR(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { iVRSourceEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.26.1.5 - ivrRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { iVRSourceEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.27 - sRFNumberTable OBJECT-TYPE - SYNTAX SEQUENCE OF SRFNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.27.1 - sRFNumberEntry OBJECT-TYPE - SYNTAX SRFNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { srfIndex } - ::= { sRFNumberTable 1 } - - - SRFNumberEntry ::= - SEQUENCE { - srfIndex - INTEGER, - srfTitle - OCTET STRING, - srfNumber - OCTET STRING, - srfRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.27.1.1 - srfIndex OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sRFNumberEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.27.1.2 - srfTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sRFNumberEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.27.1.3 - srfNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sRFNumberEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.27.1.4 - srfRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { sRFNumberEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.28 - serviceNumberTable OBJECT-TYPE - SYNTAX SEQUENCE OF ServiceNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.28.1 - serviceNumberEntry OBJECT-TYPE - SYNTAX ServiceNumberEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { snIndex } - ::= { serviceNumberTable 1 } - - - ServiceNumberEntry ::= - SEQUENCE { - snIndex - INTEGER, - snTitle - OCTET STRING, - snServiceNumber - OCTET STRING, - snRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.28.1.1 - snIndex OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceNumberEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.28.1.2 - snTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceNumberEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.28.1.3 - snServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceNumberEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.28.1.4 - snRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceNumberEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.29 - serviceKeyTable OBJECT-TYPE - SYNTAX SEQUENCE OF ServiceKeyEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { srfParameters 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.29.1 - serviceKeyEntry OBJECT-TYPE - SYNTAX ServiceKeyEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { skIndex } - ::= { serviceKeyTable 1 } - - - ServiceKeyEntry ::= - SEQUENCE { - skIndex - INTEGER, - skTitle - OCTET STRING, - skServiceKey - INTEGER, - skRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.29.1.1 - skIndex OBJECT-TYPE - SYNTAX INTEGER (0..6) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceKeyEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.29.1.2 - skTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceKeyEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.29.1.3 - skServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..12) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { serviceKeyEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.3.29.1.4 - skRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { serviceKeyEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4 - callRouteToVMS OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.1 - pLMNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.2 - pSTNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.3 - vMSLeaveMessageNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.4 - routeMethodOption OBJECT-TYPE - SYNTAX INTEGER - { - byPrefix(0), - byWholeNumber(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.5 - routeNumberOption OBJECT-TYPE - SYNTAX INTEGER - { - callerNumber(0), - calledNumber(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.6 - isPostpaidAllowed OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.7 - ringBackServiceKey OBJECT-TYPE - SYNTAX INTEGER (0..12) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30 - vMSUserSegmentsTable OBJECT-TYPE - SYNTAX SEQUENCE OF VMSUserSegmentsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { callRouteToVMS 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1 - vMSUserSegmentsEntry OBJECT-TYPE - SYNTAX VMSUserSegmentsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { vusIndex } - ::= { vMSUserSegmentsTable 1 } - - - VMSUserSegmentsEntry ::= - SEQUENCE { - vusIndex - INTEGER, - vusTitle - OCTET STRING, - vusStartMSISDN - OCTET STRING, - vusEndMSISDN - OCTET STRING, - vusPLMNServiceNumber - OCTET STRING, - vusPSTNServiceNumber - OCTET STRING, - vusLeaveMessageDepositNumber - OCTET STRING, - vusRowStatus - Integer32 - } - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.1 - vusIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vMSUserSegmentsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.2 - vusTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vMSUserSegmentsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.3 - vusStartMSISDN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { vMSUserSegmentsEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.4 - vusEndMSISDN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { vMSUserSegmentsEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.5 - vusPLMNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { vMSUserSegmentsEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.6 - vusPSTNServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { vMSUserSegmentsEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.7 - vusLeaveMessageDepositNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { vMSUserSegmentsEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.4.30.1.8 - vusRowStatus OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vMSUserSegmentsEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.5 - fileOperation OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.5.1 - importSubs OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Progress Report[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Requesting - [v]2[opt]Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Subscribers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Imported Subscribers[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { fileOperation 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.5.2 - importRechangeCard OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Progress Report[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Requesting - [v]2[opt]Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Cards[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Imported Cards[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { fileOperation 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.5.3 - newTariffFlag OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes" - ::= { fileOperation 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.5.4 - newTariffStarTime OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (14)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes" - ::= { fileOperation 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.2.5.5 - saveCommand OBJECT-TYPE - SYNTAX INTEGER - { - saveUserData(1), - saveTariff(2), - saveRechargeCard(3), - saveAll(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { fileOperation 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.3 - csta OBJECT IDENTIFIER ::= { rcm 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.4 - cdr OBJECT IDENTIFIER ::= { rcm 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.26.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - - END - --- --- LGC-SS-RCM-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-RCS-MIB.my b/omc/bin/mib/LGC-SS-RCS-MIB.my deleted file mode 100644 index a53f78d..0000000 --- a/omc/bin/mib/LGC-SS-RCS-MIB.my +++ /dev/null @@ -1,1123 +0,0 @@ --- --- LGC-SS-RCS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, October 28, 2019 at 15:02:46 --- - - LGC-SS-RCS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, DisplayString8, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.30 - rcs MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 30 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.30.2 - parameter OBJECT IDENTIFIER ::= { rcs 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.1 - pLMNId OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:PLMN id." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.2 - rNCId OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:RNC id." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.3 - networkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - international(0), - internationalSpare(1), - national(2), - nationalSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Network Indicator." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.4 - opc OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:OPC." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.5 - ssn OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:ssn." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.6 - iuhSCTPPort OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SCTP port of Iuh interface." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.7 - maxUEInactiveTime OBJECT-TYPE - SYNTAX INTEGER (0..2592000) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:max inactive time of UE to deregister." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.8 - mocn OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:MO-CN." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.1.9 - defaultMocnCnId OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:default MO-CN core network Id." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.2 - iuCS OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.2.1 - dpcIuCS OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:DPC of IuCS interface." - ::= { iuCS 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.2.2 - ssnIuCS OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:ssn of IuCS interface." - ::= { iuCS 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.2.3 - rtpIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Rtp IP." - ::= { iuCS 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.2.4 - lSSwitch OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:switch of local swtiching function." - ::= { iuCS 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.3 - iuPS OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.3.1 - dpcIuPS OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:DPC of IuPS interface." - ::= { iuPS 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.3.2 - ssnIuPS OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:ssn of IuPS interface." - ::= { iuPS 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.3.3 - gtpIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:gtp IP." - ::= { iuPS 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4 - podList OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1 - podListTable OBJECT-TYPE - SYNTAX SEQUENCE OF PodListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Pod List Table" - ::= { podList 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1 - podListEntry OBJECT-TYPE - SYNTAX PodListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:Pod List Table" - INDEX { podIndex } - ::= { podListTable 1 } - - - PodListEntry ::= - SEQUENCE { - podIndex - INTEGER, - podIdentity - OCTET STRING, - podAdminState - INTEGER, - podOpState - INTEGER, - podRFTxStatus - INTEGER, - podPodId - INTEGER, - podLsaId - INTEGER, - podPLMNID - OCTET STRING, - podLacRac - OCTET STRING, - podCellID - INTEGER, - podRncID - INTEGER, - podSAC - INTEGER, - podBroadcastSAC - INTEGER, - podBroadcastLAC - INTEGER, - podSaiLac - INTEGER, - podPCPICHPower - OCTET STRING, - podRFCandidateList - OCTET STRING, - podFapIP - IpAddress, - podNTPServer - IpAddress, - podFAPGatewayServer - IpAddress, - podManagementServer - IpAddress, - podSBCRegisterStatus - INTEGER, - podPeriodicInformInterval - INTEGER, - podPodName - OCTET STRING, - podUpdateToPod - INTEGER, - podRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.1 - podIndex OBJECT-TYPE - SYNTAX INTEGER (1..128) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 256." - ::= { podListEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.2 - podIdentity OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:pod identity." - ::= { podListEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.3 - podAdminState OBJECT-TYPE - SYNTAX INTEGER - { - lock(0), - unlock(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:administrative state." - ::= { podListEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.4 - podOpState OBJECT-TYPE - SYNTAX INTEGER - { - disabled(0), - enabled(1), - timeout(2) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:operational state." - ::= { podListEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.5 - podRFTxStatus OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Current status of this FAP RF transmitter." - ::= { podListEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.6 - podPodId OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:MG ID." - ::= { podListEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.7 - podLsaId OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:ID of local switching area." - ::= { podListEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.8 - podPLMNID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (5..6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:PLMN ID." - ::= { podListEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.9 - podLacRac OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..24)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:LAC and RAC." - ::= { podListEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.10 - podCellID OBJECT-TYPE - SYNTAX INTEGER (0..268435455) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Cell ID." - ::= { podListEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.11 - podRncID OBJECT-TYPE - SYNTAX INTEGER (0..4095) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:RNC ID." - ::= { podListEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.12 - podSAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SAC." - ::= { podListEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.13 - podBroadcastSAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SAC." - ::= { podListEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.14 - podBroadcastLAC OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SAC." - ::= { podListEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.15 - podSaiLac OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:SAC." - ::= { podListEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.16 - podPCPICHPower OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..24)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:PCPICH Power." - ::= { podListEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.17 - podRFCandidateList OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..48)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:RF Candidate List." - ::= { podListEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.18 - podFapIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:IP Address of FAP." - ::= { podListEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.19 - podNTPServer OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:NTP Server IP Address." - ::= { podListEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.20 - podFAPGatewayServer OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:IP Address of FAP Gateway Server." - ::= { podListEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.21 - podManagementServer OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Management Server." - ::= { podListEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.22 - podSBCRegisterStatus OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Remark:Whether or not the SBC registers to hnbGw." - ::= { podListEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.23 - podPeriodicInformInterval OBJECT-TYPE - SYNTAX INTEGER (0..90) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:The duration in seconds of the interval for which the CPE MUST attempt to connect with the ACS and call the Inform method if parameter PeriodicInformEnable is true. Range: 0-90. " - ::= { podListEntry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.24 - podPodName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..64)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Pod Name." - ::= { podListEntry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.25 - podUpdateToPod OBJECT-TYPE - SYNTAX INTEGER - { - updateToAgw(0), - updateToPod(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION " " - ::= { podListEntry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.4.1.1.26 - podRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { podListEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5 - imsiPrefix OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5.1 - imsiPrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF ImsiPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:IMSI Prefix Table" - ::= { imsiPrefix 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5.1.1 - imsiPrefixEntry OBJECT-TYPE - SYNTAX ImsiPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:IMSI Prefix Table" - INDEX { isIndex } - ::= { imsiPrefixTable 1 } - - - ImsiPrefixEntry ::= - SEQUENCE { - isIndex - INTEGER, - isPrefix - OCTET STRING, - isCnId - INTEGER, - isRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5.1.1.1 - isIndex OBJECT-TYPE - SYNTAX INTEGER (1..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 64." - ::= { imsiPrefixEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5.1.1.2 - isPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:imsi prefix." - ::= { imsiPrefixEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5.1.1.8 - isCnId OBJECT-TYPE - SYNTAX INTEGER (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Core network id." - ::= { imsiPrefixEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.5.1.1.20 - isRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { imsiPrefixEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6 - coreNetwork OBJECT IDENTIFIER ::= { parameter 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1 - coreNetworkTable OBJECT-TYPE - SYNTAX SEQUENCE OF CoreNetworkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:Core Network Table" - ::= { coreNetwork 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1 - coreNetworkEntry OBJECT-TYPE - SYNTAX CoreNetworkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:Core Network Table" - INDEX { cnIndex } - ::= { coreNetworkTable 1 } - - - CoreNetworkEntry ::= - SEQUENCE { - cnIndex - INTEGER, - cnNetworkName - OCTET STRING, - cnCSDpc - INTEGER, - cnPSDpc - INTEGER, - cnPlmnId - OCTET STRING, - cnLac - INTEGER, - cnRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.1 - cnIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 8." - ::= { coreNetworkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.2 - cnNetworkName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:network name." - ::= { coreNetworkEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.3 - cnCSDpc OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:CS DPC." - ::= { coreNetworkEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.4 - cnPSDpc OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:PS DPC." - ::= { coreNetworkEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.5 - cnPlmnId OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (6)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:PLMN ID." - ::= { coreNetworkEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.6 - cnLac OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:CN Lac." - ::= { coreNetworkEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.6.1.1.10 - cnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { coreNetworkEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7 - mocnCellMapping OBJECT IDENTIFIER ::= { parameter 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1 - cellMappingTable OBJECT-TYPE - SYNTAX SEQUENCE OF CellMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mocnCellMapping 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1 - cellMappingEntry OBJECT-TYPE - SYNTAX CellMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { cellMappingIndex } - ::= { cellMappingTable 1 } - - - CellMappingEntry ::= - SEQUENCE { - cellMappingIndex - INTEGER, - cellMappingTitle - OCTET STRING, - cellMappingLacCN0 - INTEGER, - cellMappingCellIdCN0 - INTEGER, - cellMappingRacCN0 - INTEGER, - cellMappingLacCN1 - INTEGER, - cellMappingCellIdCN1 - INTEGER, - cellMappingRacCN1 - INTEGER, - cellMappingLacCN2 - INTEGER, - cellMappingCellIdCN2 - INTEGER, - cellMappingRacCN2 - INTEGER, - cellMappingRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.1 - cellMappingIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:POD Index - Remark:Index of POD." - ::= { cellMappingEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.2 - cellMappingTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Identify of POD." - ::= { cellMappingEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.3 - cellMappingLacCN0 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 0 Lac" - ::= { cellMappingEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.4 - cellMappingCellIdCN0 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 0 Cell Id" - ::= { cellMappingEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.5 - cellMappingRacCN0 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 0 Rac" - ::= { cellMappingEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.6 - cellMappingLacCN1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 1 Lac" - ::= { cellMappingEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.7 - cellMappingCellIdCN1 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 1 Cell Id" - ::= { cellMappingEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.8 - cellMappingRacCN1 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 1 Rac" - ::= { cellMappingEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.9 - cellMappingLacCN2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 2 Lac" - ::= { cellMappingEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.10 - cellMappingCellIdCN2 OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 2 Cell Id" - ::= { cellMappingEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.11 - cellMappingRacCN2 OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:CN 2 Rac" - ::= { cellMappingEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.2.7.1.1.30 - cellMappingRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cellMappingEntry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3 - csta OBJECT IDENTIFIER ::= { rcs 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.1 - gwTable OBJECT-TYPE - SYNTAX SEQUENCE OF GwEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.1.1 - gwEntry OBJECT-TYPE - SYNTAX GwEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { gwIndex } - ::= { gwTable 1 } - - - GwEntry ::= - SEQUENCE { - gwIndex - INTEGER, - gwData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.1.1.1 - gwIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gwEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.1.1.2 - gwData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gwEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.2 - fapsTable OBJECT-TYPE - SYNTAX SEQUENCE OF FapsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { csta 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.2.1 - fapsEntry OBJECT-TYPE - SYNTAX FapsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { fapsIndex } - ::= { fapsTable 1 } - - - FapsEntry ::= - SEQUENCE { - fapsPodId - INTEGER, - fapsIndex - INTEGER, - fapsData - DisplayString - } - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.2.1.1 - fapsPodId OBJECT-TYPE - SYNTAX INTEGER (1..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { fapsEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.2.1.2 - fapsIndex OBJECT-TYPE - SYNTAX INTEGER (0..95) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { fapsEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.30.3.2.1.3 - fapsData OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { fapsEntry 3 } - - - - END - --- --- LGC-SS-RCS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-RLS-MIB.my b/omc/bin/mib/LGC-SS-RLS-MIB.my deleted file mode 100644 index 7774692..0000000 --- a/omc/bin/mib/LGC-SS-RLS-MIB.my +++ /dev/null @@ -1,588 +0,0 @@ --- --- LGC-SS-RLS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, September 23, 2010 at 11:37:05 --- - - LGC-SS-RLS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, AdminStateChoices - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.15 - rls MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 15 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.15.2 - parameter OBJECT IDENTIFIER ::= { rls 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.1.1 - rLSFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:RLS Flag - Remark:Enable or disable RTP Local Switching function." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.1.2 - saveCommand OBJECT-TYPE - SYNTAX INTEGER { saveParameter(1) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2 - vimMg OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1 - vimMgTable OBJECT-TYPE - SYNTAX SEQUENCE OF VimMgEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:VIM MG" - ::= { vimMg 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1 - vimMgEntry OBJECT-TYPE - SYNTAX VimMgEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:VIM MG" - INDEX { vmIndex } - ::= { vimMgTable 1 } - - - VimMgEntry ::= - SEQUENCE { - vmIndex - INTEGER, - vmTitle - OCTET STRING, - vmAdministrationState - AdminStateChoices, - vmIP - IpAddress, - vmDomainName - OCTET STRING, - vmSwitchingMode - INTEGER, - vmEndPoint - INTEGER, - vmType - INTEGER, - vmMaxPhysicalPorts - INTEGER, - vmMaxChannels - INTEGER, - vmPacketizationPeriod - INTEGER, - vmCodecType - INTEGER, - vmAuditTimer - INTEGER, - vmPhysicalPortEntries - INTEGER, - vmRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.1 - vmIndex OBJECT-TYPE - SYNTAX INTEGER (1..10) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Media gateway index number ranges from 1 to 10." - ::= { vimMgEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.2 - vmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Media gateway name for identification purpose only." - ::= { vimMgEntry 2 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.3 - vmAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed media gateway by lock and unlock commands." - ::= { vimMgEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.4 - vmIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP - Remark:IP address of the connected media gateway." - ::= { vimMgEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.5 - vmDomainName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Domain Name - Remark:Domain name of the connected media gateway." - ::= { vimMgEntry 5 } - - --- Switching Mode --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.6 - vmSwitchingMode OBJECT-TYPE - SYNTAX INTEGER - { - mgcp(0), - eightECP(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Switching Mode - Remark:Switching mode of the media gateway. Select MGCP as default." - DEFVAL { mgcp } - ::= { vimMgEntry 6 } - - --- End Point Description --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.7 - vmEndPoint OBJECT-TYPE - SYNTAX INTEGER - { - structured(1), - unStructured(2), - unStructuredHex(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Endpoint - Remark:Method of MGCP endpoint description. Select Unstructured as default." - DEFVAL { structured } - ::= { vimMgEntry 7 } - - --- MG Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.8 - vmType OBJECT-TYPE - SYNTAX INTEGER - { - audioCodes(1), - lgcMG(2), - lgcCS(3), - ipBSS(4), - analogLine(11), - vim(19), - tandem(20), - announcementServer(21), - interactiveVoiceResponse(31), - conferenceBridge(41), - packetRelay(51), - wiretap(61), - atm(71) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Type - Remark:(Read Only) Type of media gateway endpoint." - DEFVAL { digitalChannel } - ::= { vimMgEntry 8 } - - --- Max Physical Ports --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.9 - vmMaxPhysicalPorts OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Ports - Remark:The total physical port number of the media gateway." - ::= { vimMgEntry 9 } - - --- Max Channels --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.11 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.10 - vmMaxChannels OBJECT-TYPE - SYNTAX INTEGER (0..1024) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Channels - Remark:The total channel number of the virtual media gateway. Applicable to virtual media gateway only." - ::= { vimMgEntry 10 } - - --- Packetization Period --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.11 - vmPacketizationPeriod OBJECT-TYPE - SYNTAX INTEGER - { - x20ms(20), - x40ms(40), - x60ms(60), - x80ms(80) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Packetization Period - Remark:The period over which encoded voice bits are collected for encapsulation in." - DEFVAL { x20ms } - ::= { vimMgEntry 11 } - - --- Codec Type --- 1.3.6.1.4.1.1373.2.3.3.2.2.5.1.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.12 - vmCodecType OBJECT-TYPE - SYNTAX INTEGER - { - aLaw(0), - uLaw(1), - fr(2), - efr(3), - AMR-12-2(4), - g729b(5), - AMR-10-2(6), - AMR-7-95(7), - AMR-7-4(8), - AMR-6-7(9), - AMR-5-15(10), - AMR-5-9(11), - AMR-4-75(12), - g729(13), - null(255) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Codec Type - Remark:(Read Only) Codec type of the media gateway." - ::= { vimMgEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.13 - vmAuditTimer OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Audit Timer - Remark:The time interval between sending AUEP message from MGC to MGW to check the trunk status. Unit is second." - ::= { vimMgEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.14 - vmPhysicalPortEntries OBJECT-TYPE - SYNTAX INTEGER (0..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Port Entries - Remark:The total number of the configured physical ports of this media gateway." - ::= { vimMgEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1.1.15 - vmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { vimMgEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2 - physicalPortTable OBJECT-TYPE - SYNTAX SEQUENCE OF PhysicalPortEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { vimMg 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1 - physicalPortEntry OBJECT-TYPE - SYNTAX PhysicalPortEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:2" - INDEX { ppIndex, ppMGIndex } - ::= { physicalPortTable 1 } - - - PhysicalPortEntry ::= - SEQUENCE { - ppMGIndex - INTEGER, - ppIndex - INTEGER, - ppAdministrationState - AdminStateChoices, - ppUsedFlag - INTEGER, - ppStatus - INTEGER, - ppPlatID - INTEGER - } - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1.1 - ppMGIndex OBJECT-TYPE - SYNTAX INTEGER (1..8) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:MG Index - Remark:(Read Only) Index number of the serving media gateway." - ::= { physicalPortEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1.2 - ppIndex OBJECT-TYPE - SYNTAX INTEGER (1..32) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Port ID - Remark:(Read Only) Physical port index number ranges from 1 to 32." - ::= { physicalPortEntry 2 } - - --- Administration State --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1.3 - ppAdministrationState OBJECT-TYPE - SYNTAX AdminStateChoices - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of the managed physical port by lock and unlock commands." - ::= { physicalPortEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1.4 - ppUsedFlag OBJECT-TYPE - SYNTAX INTEGER - { - idle(0), - inUse(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Used Flag - Remark:The occupancy status of the physical port." - ::= { physicalPortEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1.5 - ppStatus OBJECT-TYPE - SYNTAX INTEGER - { - notReady(0), - ready(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Status - Remark:The current availability status of the physical port." - ::= { physicalPortEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2.1.6 - ppPlatID OBJECT-TYPE - SYNTAX INTEGER (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Platform ID - Remark:Specify the serving MSC platform, either MSC-0 or MSC-1." - ::= { physicalPortEntry 6 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.3 - routingZone OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.3.1 - routingZoneTable OBJECT-TYPE - SYNTAX SEQUENCE OF RoutingZoneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { routingZone 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.3.1.1 - routingZoneEntry OBJECT-TYPE - SYNTAX RoutingZoneEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { rzIndex } - ::= { routingZoneTable 1 } - - - RoutingZoneEntry ::= - SEQUENCE { - rzIndex - INTEGER, - rzSite - INTEGER, - rzRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.3.1.1.1 - rzIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Routing zone index number ranges from 1 to 31." - ::= { routingZoneEntry 1 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.15.2.3.1.1.2 - rzSite OBJECT-TYPE - SYNTAX INTEGER - { - local(0), - remote(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Site - Remark:Determine each Routing Zone which configured in MSC Routing Zone table to Local or Remote. iRLS will not be invocated by the calls within local Routing Zone." - ::= { routingZoneEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.15.2.3.1.1.3 - rzRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { routingZoneEntry 3 } - - - - END - --- --- LGC-SS-RLS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-RTPPROXY-MIB.my b/omc/bin/mib/LGC-SS-RTPPROXY-MIB.my deleted file mode 100644 index 420d477..0000000 --- a/omc/bin/mib/LGC-SS-RTPPROXY-MIB.my +++ /dev/null @@ -1,225 +0,0 @@ --- --- LGC-SS-RTPPROXY-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, February 27, 2012 at 17:18:47 --- - - LGC-SS-RTPPROXY-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.18 - rtpproxy MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 18 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { rtpproxy 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.18.2 - parameter OBJECT IDENTIFIER ::= { rtpproxy 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.1 - rtpProxyFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:RtpProxy Flag - Remark:RtpProxy Flag." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.2 - applicationType OBJECT-TYPE - SYNTAX INTEGER - { - tandem(0), - implicittandem(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Application Type - Remark:Application Type." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.3 - domainName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Domain Name - Remark:Domain Name." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.4 - interBaseUdpPortRGW OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Inter Base Udp Port (RGW) - Remark:Inter Base Udp Port (RGW)." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.5 - intraBaseUdpPortAC OBJECT-TYPE - SYNTAX INTEGER (0..511) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Intra Base Udp Port (AC) - Remark:Intra Base Udp Port (AC)." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.6 - interAddressRGW OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Inter Address (RGW) - Remark:Inter Address (RGW)." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.1.7 - intraAddressAC OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Intra Address (AC) - Remark:Intra Address (AC)." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.2 - voiceStreamIP OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.2.1 - iPEndpoint1 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IP Endpoint 1 - Remark:IP Endpoint 1." - ::= { voiceStreamIP 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.2.2 - iPEndpoint2 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IP Endpoint 2 - Remark:IP Endpoint 2." - ::= { voiceStreamIP 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.2.3 - iPEndpoint3 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IP Endpoint 3 - Remark:IP Endpoint 3." - ::= { voiceStreamIP 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.18.2.2.4 - iPEndpoint4 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IP Endpoint 3 - Remark:IP Endpoint 3." - ::= { voiceStreamIP 4 } - - - - END - --- --- LGC-SS-RTPPROXY-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-SCCP-MIB.my b/omc/bin/mib/LGC-SS-SCCP-MIB.my deleted file mode 100644 index ca1b9dc..0000000 --- a/omc/bin/mib/LGC-SS-SCCP-MIB.my +++ /dev/null @@ -1,1280 +0,0 @@ --- --- LGC-SS-SCCP-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, August 22, 2011 at 13:38:48 --- - - LGC-SS-SCCP-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.2.3 - sccp MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { plat 3 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.2 - plat OBJECT IDENTIFIER ::= { wxc2 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.2.3.2 - parameter OBJECT IDENTIFIER ::= { sccp 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.1.1 - version OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Version - Remark:Version of SCCP software." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.1.2 - systemCommand OBJECT-TYPE - SYNTAX INTEGER { reset(0) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2 - localNode OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1 - localNodeTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocalNodeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { localNode 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.4.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1 - localNodeEntry OBJECT-TYPE - SYNTAX LocalNodeEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { lnIndex } - ::= { localNodeTable 1 } - - - LocalNodeEntry ::= - SEQUENCE { - lnIndex - INTEGER, - lnTitle - OCTET STRING, - lnNetworkIndicator - INTEGER, - lnMSISDN - OCTET STRING, - lnIP0 - IpAddress, - lnIP1 - IpAddress, - acnVersionId - INTEGER, - lnRowStatus - RowStatus - } - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.1 - lnIndex OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:The Sub-System Number (SSN) of this local node." - ::= { localNodeEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.3 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.2 - lnTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Local Node name for identification." - ::= { localNodeEntry 2 } - - --- National Destination Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.3 - lnNetworkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - international(0), - internationalSpare(1), - national(2), - nationalSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NI - Remark:Network Indicator identifies the type of network." - ::= { localNodeEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.4 - lnMSISDN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..18)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSISDN - Remark:The E.164 node address of this local node." - ::= { localNodeEntry 4 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.5 - lnIP0 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP 0 - Remark:The IP address of the local node server 0." - ::= { localNodeEntry 5 } - - --- DPC --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.6 - lnIP1 OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:IP 1 - Remark:The IP address of the local node server 1." - ::= { localNodeEntry 6 } - - --- Route Selection RZS Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.7 - acnVersionId OBJECT-TYPE - SYNTAX INTEGER (1..31) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Routing Zone Set Index for the Routing Selection." - ::= { localNodeEntry 7 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.2.1.1.8 - lnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { localNodeEntry 8 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3 - gTT OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1 - gTTTable OBJECT-TYPE - SYNTAX SEQUENCE OF GTTEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { gTT 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1 - gTTEntry OBJECT-TYPE - SYNTAX GTTEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { gttIndex } - ::= { gTTTable 1 } - - - GTTEntry ::= - SEQUENCE { - gttIndex - INTEGER, - gttGTTState - INTEGER, - gttNumberPlan - INTEGER, - gttTranslationType - INTEGER, - gttStartNumber - OCTET STRING, - gttEndNumber - OCTET STRING, - gttNetworkIndicate - INTEGER, - gttDPC - INTEGER, - gttSSN - INTEGER, - gttRouteIndicator - INTEGER, - gttAddressIndicator - INTEGER, - gttReplaceStartDigit - INTEGER, - gttReplaceEndDigit - INTEGER, - gttReplacingNumberPlan - INTEGER, - gttReplacingDigits - OCTET STRING, - acnVersionID - INTEGER, - gttRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.1 - gttIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:GTT index number ranges from 0 to 1023." - ::= { gTTEntry 1 } - - --- Country Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.2 - gttGTTState OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Admin State - Remark:Control the operation of this Global Title Translation (GTT) entry." - ::= { gTTEntry 2 } - - --- International Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.3 - gttNumberPlan OBJECT-TYPE - SYNTAX INTEGER - { - imsi-or-msisdn-ansi(0), - msisdn(1), - imsi(6), - gt(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Input Numbering Plan - Remark:Type of the input number." - ::= { gTTEntry 3 } - - --- National Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.7 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.4 - gttTranslationType OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Translation Type - Remark:Translation examines the destination address and decides how to identify it over the network." - ::= { gTTEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.5 - gttStartNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Start - Remark:The beginning of the number range for this GTT entry." - ::= { gTTEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.6 - gttEndNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number End - Remark:The end of the number range for this GTT entry." - ::= { gTTEntry 6 } - - --- National Destination Code --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.7 - gttNetworkIndicate OBJECT-TYPE - SYNTAX INTEGER - { - international(0), - internationalSpare(1), - national(2), - nationalSpare(3) - } - UNITS "0" - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Network Indicator - Remark:Network Indicator identifies the type of network." - ::= { gTTEntry 7 } - - --- MSRN Range Start --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.8 - gttDPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DPC - Remark:Destination Point Code in decimal format." - ::= { gTTEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.9 - gttSSN OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SSN - Remark:Sub-System Number in decimal format." - ::= { gTTEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.10 - gttRouteIndicator OBJECT-TYPE - SYNTAX INTEGER - { - onGT(0), - onSSN(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Routing Indicator - Remark:SSN for subsystem, GT for global title.
- For IMSI and MSISDN, select Route on SSN.
- For the connected network, select Route on GT." - ::= { gTTEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.11 - gttAddressIndicator OBJECT-TYPE - SYNTAX INTEGER - { - null(0), - dpcSSN(3), - gtSSN(6), - gtDPCSSN(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Address Indicator - Remark:Contribution of SCCP address." - ::= { gTTEntry 11 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.12 - gttReplaceStartDigit OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Replace Digits Start - Remark:If the number is going to replace digits, start with this digit (position from left to right).
- Range = 0 - 16, 0 means void." - ::= { gTTEntry 12 } - - --- Operability Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.3.1.1.5 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.13 - gttReplaceEndDigit OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Replace Digits End - Remark:If the number is going to replace digits, end on this digit (position from left to right).
- Range = 0 - 16, 0 means void." - ::= { gTTEntry 13 } - - --- International Prefix --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.6 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.14 - gttReplacingNumberPlan OBJECT-TYPE - SYNTAX INTEGER - { - msisdn(1), - imsi(6), - gt(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Output Numbering Plan - Remark:Type of the output number." - ::= { gTTEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.15 - gttReplacingDigits OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Replace Digits - Remark:If the number is going to replace digits, replace them with this string." - ::= { gTTEntry 15 } - - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.16 - acnVersionID OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:ACN Version Index - Remark:Index number range from 0 to 1023." - ::= { gTTEntry 16 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.3.1.1.17 - gttRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { gTTEntry 17 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4 - acnVersion OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1 - acnVersionTable OBJECT-TYPE - SYNTAX SEQUENCE OF AcnVersionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { acnVersion 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1 - acnVersionEntry OBJECT-TYPE - SYNTAX AcnVersionEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:ACN Version" - INDEX { acnIndex } - ::= { acnVersionTable 1 } - - - AcnVersionEntry ::= - SEQUENCE { - acnIndex - INTEGER, - acnVersionState - INTEGER, - acnLocationUpdating - INTEGER, - acnLocationCancellation - INTEGER, - acnRoamingNumberEnquiry - INTEGER, - acnLocationInfoRetrieval - INTEGER, - acnResetContext - INTEGER, - acnHandoverControl - INTEGER, - acnEquipmentManagement - INTEGER, - acnInfoRetrieval - INTEGER, - acnInterVLRInfoRetrieval - INTEGER, - acnSubscriberDataManagement - INTEGER, - acnTracing - INTEGER, - acnNetworkFunctionalSS - INTEGER, - acnNetworkUnstructuredSS - INTEGER, - acnShortMessageGateway - INTEGER, - acnMOShortMessageRelay - INTEGER, - acnShortMessageAlert - INTEGER, - acnShortMessageWDM - INTEGER, - acnMTShortMessageRelay - INTEGER, - acnIMSIRetrieval - INTEGER, - acnMSPurging - INTEGER, - acnSubscriberInfoEnquiry - INTEGER, - acnAnyTimeInfoEnquiry - INTEGER, - acnCallControlTransfer - INTEGER, - acnSSInvocationNotification - INTEGER, - acnGroupCallControl - INTEGER, - acnGPRSLocationUpdating - INTEGER, - acnGPRSLocationInfoRetrieval - INTEGER, - acnFailureReporting - INTEGER, - acnGPRSNotifying - INTEGER, - acnReporting - INTEGER, - acnCallCompletion - INTEGER, - acnInternalSIWFSAllocation - INTEGER, - acnInternalSecurityTriplets - INTEGER, - acnInternalSubscriberInterrogating - INTEGER, - acnInternalHLRSubscriberManagement - INTEGER, - acnInternalHLRPingAUC - INTEGER, - acnSupportedCamelPhases - INTEGER, - acnRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.1 - acnIndex OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 0 to 1023." - ::= { acnVersionEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.2 - acnVersionState OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Version State - Remark:GTT State." - ::= { acnVersionEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.3 - acnLocationUpdating OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Location Updating - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.4 - acnLocationCancellation OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.5 - acnRoamingNumberEnquiry OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Roaming Number Enquiry - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.6 - acnLocationInfoRetrieval OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.7 - acnResetContext OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.8 - acnHandoverControl OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.9 - acnEquipmentManagement OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.10 - acnInfoRetrieval OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.11 - acnInterVLRInfoRetrieval OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.12 - acnSubscriberDataManagement OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.13 - acnTracing OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.14 - acnNetworkFunctionalSS OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.15 - acnNetworkUnstructuredSS OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.16 - acnShortMessageGateway OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.17 - acnMOShortMessageRelay OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.18 - acnShortMessageAlert OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.19 - acnShortMessageWDM OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.20 - acnMTShortMessageRelay OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.21 - acnIMSIRetrieval OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.22 - acnMSPurging OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.23 - acnSubscriberInfoEnquiry OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.24 - acnAnyTimeInfoEnquiry OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.25 - acnCallControlTransfer OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.26 - acnSSInvocationNotification OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.27 - acnGroupCallControl OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.28 - acnGPRSLocationUpdating OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.29 - acnGPRSLocationInfoRetrieval OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.30 - acnFailureReporting OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.31 - acnGPRSNotifying OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.32 - acnReporting OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.33 - acnCallCompletion OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.34 - acnInternalSIWFSAllocation OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.35 - acnInternalSecurityTriplets OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 35 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.36 - acnInternalSubscriberInterrogating OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 36 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.37 - acnInternalHLRSubscriberManagement OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 37 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.38 - acnInternalHLRPingAUC OBJECT-TYPE - SYNTAX INTEGER - { - version1(1), - version2(2), - version3(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 38 } - - - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.39 - acnSupportedCamelPhases OBJECT-TYPE - SYNTAX INTEGER - { - phase1(1), - phase12(3), - phase123(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:VLR Supported Camel Phases - Remark:Numbering Plan. Describe which numbering plan will be used for the global title. The numbering plan chosen will aid the routing system in determining the correct network system to direct the message." - ::= { acnVersionEntry 39 } - - --- Row Status --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4.1.11 - -- 1.3.6.1.4.1.1373.2.3.2.3.2.4.1.1.40 - acnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { acnVersionEntry 40 } - - - - END - --- --- LGC-SS-SCCP-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-SMEG-MIB.my b/omc/bin/mib/LGC-SS-SMEG-MIB.my deleted file mode 100644 index a1d5a28..0000000 --- a/omc/bin/mib/LGC-SS-SMEG-MIB.my +++ /dev/null @@ -1,313 +0,0 @@ --- --- LGC-SS-SMEG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, January 20, 2011 at 10:07:05 --- - - LGC-SS-SMEG-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.11 - smeg MODULE-IDENTITY - LAST-UPDATED "200810151006Z" -- October 15, 2008 at 10:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 11 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { smeg 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.11.2 - parameter OBJECT IDENTIFIER ::= { smeg 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.1 - license OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:License - Remark:(Read Only) The maximum BHSM capacity of SMEG determined by License Control. SMEG will stop transiting SMS once the traffic reaches the maximum BHSM." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.2 - countryCode OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CC - Remark:Country Code identifies the country's network." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.3 - nationalDestinationCode OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NDC - Remark:National Destination Code defines the national calling area or national network to which the subscriber belongs." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.4 - maxSMSPerEmail OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max SMS per Email - Remark:Define the maximum number of SMS can be concatenated per long email." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.5 - localDomainName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local Domain Name - Remark:This name is the domain-part after the @ sign in the email address. This email address is used to transfer emails from email server to SMEG. Normally, it is the SMEG's host name." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.6 - domainNameForEmail OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Domain Name for Email - Remark:The domain name of email server is the domain-part after the @ sign in the email address. This email address is used to communicate emails between external email servers and the email server which connected with SMEG. It is the domain name which can be looked up in the public Domain Name System." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.7 - saveCommand OBJECT-TYPE - SYNTAX INTEGER { saveParameter(1) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.1.8 - flag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Flag - Remark:Open or close SMEG service." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.2 - protocol OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.2.1 - sMPPLinkAlias OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SMPP Link Alias - Remark:Alias of the SMPP link which corresponds to the link configured in EMS > Configuration > NSS > SMPP." - ::= { protocol 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.2.2 - sMTPEmailServerIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SMTP Email Server IP - Remark:IP address of the email server." - ::= { protocol 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.2.3 - sMTPAuthenticationFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SMTP AUTH Flag - Remark:SMTP Authentication provides an access control mechanism. It is used to allow legitimate users to relay mail while denying relay service to unauthorized users, such as spammers. Configure the authentication parameters when it is enabled on the email server side." - ::= { protocol 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.2.4 - sMTPAuthenticationUserName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SMTP AUTH User - Remark:User name for SMTP Authentication." - ::= { protocol 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.2.5 - sMTPAuthenticationPassword OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SMTP AUTH Password - Remark:Password for SMTP Authentication." - ::= { protocol 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.3 - allowedUserPrefix OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.3.1 - allowedUserPrefixTable OBJECT-TYPE - SYNTAX SEQUENCE OF AllowedUserPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { allowedUserPrefix 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.3.1.1 - allowedUserPrefixEntry OBJECT-TYPE - SYNTAX AllowedUserPrefixEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { aupIndex } - ::= { allowedUserPrefixTable 1 } - - - AllowedUserPrefixEntry ::= - SEQUENCE { - aupIndex - INTEGER, - aupPrefix - OCTET STRING, - aupRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.3.1.1.1 - aupIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Allowed user prefix index number ranges from 1 to 16." - ::= { allowedUserPrefixEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.3.1.1.2 - aupPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:Prefix determines the range of subscribers allowed to receive email messages." - ::= { allowedUserPrefixEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.11.2.3.1.1.3 - aupRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { allowedUserPrefixEntry 3 } - - - - END - --- --- LGC-SS-SMEG-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-SMPP-MIB.my b/omc/bin/mib/LGC-SS-SMPP-MIB.my deleted file mode 100644 index 176c788..0000000 --- a/omc/bin/mib/LGC-SS-SMPP-MIB.my +++ /dev/null @@ -1,400 +0,0 @@ --- --- LGC-SS-SMPP-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, September 23, 2010 at 12:15:09 --- - - LGC-SS-SMPP-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16, RowStatus - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.2.18 - smpp MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { platform 18 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.2 - platform OBJECT IDENTIFIER ::= { wxc2 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString16 - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { smpp 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.2.18.2 - parameter OBJECT IDENTIFIER ::= { smpp 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2 - sMPPLink OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1 - sMPPLinkTable OBJECT-TYPE - SYNTAX SEQUENCE OF SMPPLinkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMPPLink 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1 - sMPPLinkEntry OBJECT-TYPE - SYNTAX SMPPLinkEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { slIndex } - ::= { sMPPLinkTable 1 } - - - SMPPLinkEntry ::= - SEQUENCE { - slIndex - INTEGER, - slLinkAlias - OCTET STRING, - slLinkType - INTEGER, - slServerType - INTEGER, - slSessionType - INTEGER, - slSystemID - OCTET STRING, - slPassword - OCTET STRING, - slSystemType - OCTET STRING, - slLocalGTT - OCTET STRING, - slRemoteGTT - OCTET STRING, - slLocalIP - IpAddress, - slRemoteIP - IpAddress, - slSessionInitTimer - INTEGER, - slEnquireLinkTimer - INTEGER, - slInactivityTimer - INTEGER, - slResponseTimer - INTEGER, - slLocalSSN - INTEGER, - slRemoteSSN - INTEGER, - slFlag - INTEGER, - slRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.1 - slIndex OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:SMPP connection index number ranges from 0 to 31." - ::= { sMPPLinkEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.2 - slLinkAlias OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Link Alias - Remark:Name of the SMPP connection. Generally use the name of the remote SMPP entity." - ::= { sMPPLinkEntry 2 } - - --- Dialing Prefix Set ID --- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1.1.4 - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.3 - slLinkType OBJECT-TYPE - SYNTAX INTEGER - { - udp(0), - tcp(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Link Type - Remark:Transport protocol of the SMPP connection." - DEFVAL { udp } - ::= { sMPPLinkEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.4 - slServerType OBJECT-TYPE - SYNTAX INTEGER - { - client(0), - server(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Server Type - Remark:Specify the application type of the local SMPP entity.

- Client = Work as External Short Message Entity (ESME)
- Server = Work as Short Message Center (SMSC)" - DEFVAL { client } - ::= { sMPPLinkEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.5 - slSessionType OBJECT-TYPE - SYNTAX INTEGER - { - bindTX(0), - bindRX(1), - bindTRX(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Session Type - Remark:Specify how the local SMPP entity shall bind to the remote SMPP entity.

- Tx = Work as Transmitter
- Rx = Work as Receiver
- TRx = Work as Transceiver" - ::= { sMPPLinkEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.6 - slSystemID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:System ID - Remark:Specify the user name for the gateway to use when connecting to the remote SMPP entity." - ::= { sMPPLinkEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.7 - slPassword OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Password - Remark:Specify the password for the gateway to use when connecting to the remote SMPP entity." - ::= { sMPPLinkEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.8 - slSystemType OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:System Type - Remark:An optional login parameter that should be set only if required by the remote SMPP entity. The remote SMPP administrator will provide this value, which when required, is usually a short text string." - ::= { sMPPLinkEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.9 - slLocalGTT OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local GTT - Remark:Specify the GTT of local SMPP entity." - ::= { sMPPLinkEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.10 - slRemoteGTT OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Remote GTT - Remark:Specify the GTT of remote SMPP entity." - ::= { sMPPLinkEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.11 - slLocalIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Local IP - Remark:Specify the IP address of local SMPP entity." - ::= { sMPPLinkEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.12 - slRemoteIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Remote IP - Remark:Specify the IP address of remote SMPP entity." - ::= { sMPPLinkEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.13 - slSessionInitTimer OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Session Init Timer - Remark:Specify the maximum time-out value for the time period between an application's network connection setup request and BIND request.
If the time-out value is reached, the connection is terminated." - ::= { sMPPLinkEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.14 - slEnquireLinkTimer OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Enquire Link Timer - Remark:Specify the minimum time-out period between the SMPP service's sending of ENQUIRE LINK requests to an application." - ::= { sMPPLinkEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.15 - slInactivityTimer OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Inactivity Timer - Remark:Specify the maximum time-out period allowed for inactivity between an application's request towards the SMPP service.
If the time-out value is reached, the connection is terminated." - ::= { sMPPLinkEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.16 - slResponseTimer OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Response Timer - Remark:Specify the maximum time-out period allowed between the SMPP service sends a request to an application and a response to the request is received.
If the time-out value is reached, the connection is terminated." - ::= { sMPPLinkEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.17 - slLocalSSN OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Local SSN - Remark:Specify the subsystem number of local SMPP entity." - ::= { sMPPLinkEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.18 - slRemoteSSN OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Remote SSN - Remark:Specify the subsystem number of remote SMPP entity." - ::= { sMPPLinkEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.19 - slFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Flag - Remark:Enable or disable this SMPP connection." - ::= { sMPPLinkEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.2.18.2.2.1.1.20 - slRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMPPLinkEntry 20 } - - - - END - --- --- LGC-SS-SMPP-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-SMSC-MIB.my b/omc/bin/mib/LGC-SS-SMSC-MIB.my deleted file mode 100644 index bc49f36..0000000 --- a/omc/bin/mib/LGC-SS-SMSC-MIB.my +++ /dev/null @@ -1,546 +0,0 @@ --- --- LGC-SS-SMSC-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Tuesday, May 03, 2011 at 09:17:38 --- - - LGC-SS-SMSC-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, DisplayString - FROM LGC-MIB - OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.5 - smsc MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 5 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { smsc 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.5.2 - parameter OBJECT IDENTIFIER ::= { smsc 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.1 - cDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable the Call Detail Record generation of short messages." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.2 - sMValidity OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SM Validity - Remark:Define the maximum duration of a pending message which should be kept in sending array till reaches the called subscriber. Messages can't send out in the validity period will be deleted. The minimum unit is 1 second." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.3 - logFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Log Flag - Remark:Enable or disable SM Log generation of the short message service." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.4 - command OBJECT-TYPE - SYNTAX INTEGER - { - deletePendingSM(5), - reset(6) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.5 - localPollingFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Enable or disable resend pending SMS to unattainable local users." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.6 - localRoamingOutPollingFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Enable or disable resend pending SMS to unattainable outbound roaming users." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.7 - visitorRoamingInPollingFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Enable or disable resend pending SMS to unattainable inbound roaming users." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.8 - otherPollingFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Enable or disable resend pending SMS to other unattainable users." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.9 - pollingNumber OBJECT-TYPE - SYNTAX INTEGER (0..64) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Define the maximum port number that the queue of pending SMS may grow to." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.10 - priorityFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:SM_RP_PRI Flag - Remark:Specify the priority parameter of SM_RP_PRI. Enable = High; Disable = Low." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.1.11 - tpReplyPathFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:TP Reply Path Flag - Remark:Enable or disable TP-Reply-Path parameter in the SMS-DELIVER data unit. Enable = Reply path is available; Disable = Reply path is unavailable." - ::= { system 11 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2 - mSISDNSegment OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2.1 - mSISDNSegmentTable OBJECT-TYPE - SYNTAX SEQUENCE OF MSISDNSegmentEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { mSISDNSegment 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2.1.1 - mSISDNSegmentEntry OBJECT-TYPE - SYNTAX MSISDNSegmentEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { msIndex } - ::= { mSISDNSegmentTable 1 } - - - MSISDNSegmentEntry ::= - SEQUENCE { - msIndex - INTEGER, - msStartNumber - OCTET STRING, - msEndNumber - OCTET STRING, - msRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2.1.1.1 - msIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:MSISDN segment index number ranges from 0 to 15." - ::= { mSISDNSegmentEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2.1.1.2 - msStartNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSISDN Start - Remark:First MSISDN in the range. Only the involved subscribers are allowed to use the short message service." - ::= { mSISDNSegmentEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2.1.1.3 - msEndNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MSISDN End - Remark:Last MSISDN in the range. Only the involved subscribers are allowed to use the short message service." - ::= { mSISDNSegmentEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.2.1.1.4 - msRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { mSISDNSegmentEntry 4 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.8 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3 - sMPP OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.8.1 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1 - sMPPTable OBJECT-TYPE - SYNTAX SEQUENCE OF SMPPEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMPP 1 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.8.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1 - sMPPEntry OBJECT-TYPE - SYNTAX SMPPEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { smppIndex } - ::= { sMPPTable 1 } - - - SMPPEntry ::= - SEQUENCE { - smppIndex - INTEGER, - smppLinkAlias - OCTET STRING, - smppSessionType - INTEGER, - smppServiceNumber - OCTET STRING, - smppDataCodingScheme - INTEGER, - smppPlatformNum - INTEGER, - smppTimeToLive - INTEGER, - smppManipulationFlag - INTEGER, - smppTON - INTEGER, - smppNPI - INTEGER, - smppRowStatus - RowStatus - } - --- Index --- 1.3.6.1.4.1.1373.2.3.3.2.2.8.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.1 - smppIndex OBJECT-TYPE - SYNTAX INTEGER { create(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:SMPP connection index number ranges from 0 to 31." - ::= { sMPPEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.2 - smppLinkAlias OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Link Alias - Remark:Alias of the SMPP link which corresponds to the link configured in EMS > Configuration > NSS > SMPP." - ::= { sMPPEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.3 - smppSessionType OBJECT-TYPE - SYNTAX INTEGER - { - bindTX(0), - bindRX(1), - bindTRX(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Session Type - Remark:Specify how the local SMPP entity shall bind to the remote SMPP entity.

- Tx = Work as Transmitter
- Rx = Work as Receiver
- TRx = Work as Transceiver" - ::= { sMPPEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.4 - smppServiceNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Service Number - Remark:Specify the service center number which will be displayed on the terminating mobile." - ::= { sMPPEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.5 - smppDataCodingScheme OBJECT-TYPE - SYNTAX INTEGER - { - smpp7def7(0), - smpp8dcs4def7(1), - smpp8dcs0def7(2), - smpp7def8(16), - smpp8dcs4def8(17), - smpp8dcs0def8(18) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DCS - Remark:Data Coding Scheme" - ::= { sMPPEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.6 - smppPlatformNum OBJECT-TYPE - SYNTAX INTEGER - { - plat0(0), - plat1(1), - ignore(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Platform ID - Remark:Specify the serving MSC platform." - ::= { sMPPEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.7 - smppTimeToLive OBJECT-TYPE - SYNTAX INTEGER (0..2147483647) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Time to Live - Remark:Define the maximum duration of a pending message which should be kept in sending array till reaches the called subscriber. Messages can't send out in the validity period will be deleted.
- Range = 1 - 604800 seconds" - ::= { sMPPEntry 7 } - - --- - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.8 - smppManipulationFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Manipulation Flag - Remark:Enable or disable CLI Manipulation in XAPP setting." - ::= { sMPPEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.9 - smppTON OBJECT-TYPE - SYNTAX INTEGER - { - unknown(0), - international(1), - national(2), - networkSpecific(3), - subscriberNumber(4), - alphanumeric(5), - abbreviated(6) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:TON - Remark:Indicate Type of Number for destination. If not known set to Unknown." - ::= { sMPPEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.10 - smppNPI OBJECT-TYPE - SYNTAX INTEGER - { - unknown(0), - isdn(1), - data(3), - telex(4), - landMobile(6), - national(8), - private(9), - ermes(10), - internet(14), - wapClientID(18) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:NPI - Remark:Indicate Numbering Plan Indicator for destination. If not known set to Unknown." - ::= { sMPPEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.5.2.3.1.1.11 - smppRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sMPPEntry 11 } - - - - END - --- --- LGC-SS-SMSC-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-SPGW-MIB.my b/omc/bin/mib/LGC-SS-SPGW-MIB.my deleted file mode 100644 index 5c43802..0000000 --- a/omc/bin/mib/LGC-SS-SPGW-MIB.my +++ /dev/null @@ -1,1207 +0,0 @@ --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Sunday, May 27, 2018 at 17:13:04 --- - --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Tuesday, May 01, 2018 at 14:31:01 --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, April 27, 2018 at 17:30:48 --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, April 25, 2018 at 14:46:11 --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, April 19, 2018 at 19:39:14 --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Sunday, April 08, 2018 at 15:35:42 --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Sunday, April 08, 2018 at 15:34:37 --- --- LGC-SS-SPGW-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 22, 2018 at 10:39:37 --- --- LGC-SS-MME-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 21, 2018 at 17:28:26 --- - - LGC-SS-SPGW-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus - FROM LGC-MIB - IpAddress, Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.28 - spgw MODULE-IDENTITY - LAST-UPDATED "200811241438Z" -- November 24, 2008 at 14:38 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - ::= { application 28 } - - - --- --- Type definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.28 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.28 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.28 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.28 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.28 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.38 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.6 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- --- 1.3.6.1.4.1.1373.2.3.3.15 --- November 24, 2008 at 14:38 GMT --- --- Type definitions --- - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- Node definitions --- --- Node definitions --- --- Node definitions --- --- Node definitions --- --- Node definitions --- --- Node definitions --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2 --- 1.3.6.1.4.1.1373.2.3.3.6.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2 - parameter OBJECT IDENTIFIER ::= { spgw 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1 - networkParameter OBJECT IDENTIFIER ::= { parameter 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1 - s11IPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2 - s1UIPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2.3 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3 - s1UPortNumber OBJECT-TYPE - SYNTAX Unsigned32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.4 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.4 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.4 - sgiIPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2.5 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.5 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.5 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.5 - defaultDNSAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.6 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.6 - secondaryDNSAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.2.6 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.6 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.7 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.7 - ueIPAddressPool OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.7 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.8 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.8 - ueIPAddressMask OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 8 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.10 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.9 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.9 - redirectIPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 9 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.1.11 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.1.11 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.1.11 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.11 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.10 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.1.10 - pcscfipAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { networkParameter 10 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.4 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.2 - controlParameter OBJECT IDENTIFIER ::= { parameter 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.2.1 - ueDefaultMTU OBJECT-TYPE - SYNTAX Unsigned32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 1300 } - ::= { controlParameter 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.2.2 - freeServerEnable OBJECT-TYPE - SYNTAX Integer32 (0..1) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { controlParameter 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.3 - freeServerList OBJECT IDENTIFIER ::= { parameter 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1 - freeServerListTable OBJECT-TYPE - SYNTAX SEQUENCE OF FreeServerListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:freeServer List Table" - ::= { freeServerList 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1 - freeServerListEntry OBJECT-TYPE - SYNTAX FreeServerListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:freeServer List Table" - INDEX { freeServerIndex } - ::= { freeServerListTable 1 } - - - FreeServerListEntry ::= - SEQUENCE { - freeServerIndex - INTEGER, - freeServerIP - IpAddress, - freeServerRowStatus - RowStatus - } - --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.0 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.0 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.0 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.1 - freeServerIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { freeServerListEntry 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.2 - freeServerIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:IP." - ::= { freeServerListEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.28.2.3.1.1.3 - freeServerRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { freeServerListEntry 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4 - defaultPCCuleList OBJECT IDENTIFIER ::= { parameter 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1 - defaultPCCuleListTable OBJECT-TYPE - SYNTAX SEQUENCE OF DefaultPCCuleListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Name:defaultPCCule List Table" - ::= { defaultPCCuleList 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1 - defaultPCCuleListEntry OBJECT-TYPE - SYNTAX DefaultPCCuleListEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1 Name:defaultPCCule List Table" - INDEX { defaultPCCuleIndex } - ::= { defaultPCCuleListTable 1 } - - - DefaultPCCuleListEntry ::= - SEQUENCE { - defaultPCCuleIndex - INTEGER, - ruleName - OCTET STRING, - apnAMBRUL - INTEGER, - apnAMBRDL - INTEGER, - defaultPCCuleStatus - RowStatus - } - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.0 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.0 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.0 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.1 - defaultPCCuleIndex OBJECT-TYPE - SYNTAX INTEGER (1..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:Index number range from 1 to 16." - ::= { defaultPCCuleListEntry 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.2 - ruleName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (1..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:rule Name." - ::= { defaultPCCuleListEntry 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.3 - apnAMBRUL OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:apn AMBRUL." - ::= { defaultPCCuleListEntry 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.4 - apnAMBRDL OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - Remark:apn AMBRDL." - ::= { defaultPCCuleListEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.28.2.4.1.1.5 - defaultPCCuleStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { defaultPCCuleListEntry 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.3 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.5 - diameterLocalSetting OBJECT IDENTIFIER ::= { parameter 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.15.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.5.1 - localHostName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { diameterLocalSetting 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.5.2 - localRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { diameterLocalSetting 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.1.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.5.3 - diameterConfigFilePath OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { diameterLocalSetting 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.1.4 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.1.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.5.4 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.5.4 - diameterLogFunction OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { disable } - ::= { diameterLocalSetting 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6 - gxInterfaceSetting OBJECT IDENTIFIER ::= { parameter 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.1 - gxFunctionEnabled OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { disable } - ::= { gxInterfaceSetting 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.2 - dataChargingEnabled OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { disable } - ::= { gxInterfaceSetting 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.3 - primaryPCRFHostName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.4 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.4 - primaryPCRFRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.5 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.5 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.5 - primaryPCRFIPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.6 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.6 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.6 - primaryPCRFPortNumber OBJECT-TYPE - SYNTAX Unsigned32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.7 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.7 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.7 - secondaryPCRFHostName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.8 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.8 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.8 - secondaryPCRFRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 8 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.9 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.9 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.9 - secondaryPCRFIPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gxInterfaceSetting 9 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.2.10 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.2.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.2.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.6.10 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.6.10 - secondaryPCRFPortNumber OBJECT-TYPE - SYNTAX Unsigned32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 0 } - ::= { gxInterfaceSetting 10 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.7 - gyInterfaceSetting OBJECT IDENTIFIER ::= { parameter 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.3.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.7.1 - gyFunctionEnabled OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { disable } - ::= { gyInterfaceSetting 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.3.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.3.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.3.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.7.2 - ocsHostName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gyInterfaceSetting 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.7.3 - ocsRealm OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gyInterfaceSetting 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.3.4 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.3.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.3.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.4 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.7.4 - ocsIPAddress OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { gyInterfaceSetting 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.2.3.5 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.2.3.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.2.3.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.7.5 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.7.5 - ocsPortNumber OBJECT-TYPE - SYNTAX Unsigned32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 0 } - ::= { gyInterfaceSetting 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8 - loggingLevelSetting OBJECT IDENTIFIER ::= { parameter 8 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.1 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.1 - outputPath OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { loggingLevelSetting 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.1 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.1 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.2 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.2 - asyncSystemModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.2 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.2 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.3 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.3 - udpModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.3 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.3 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.4 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.4 - gtpv1UModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 4 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.4 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.4 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.5 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.5 - gtpv2CModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 5 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.5 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.5 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.6 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.6 - spgwAPPModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.6 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.6 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.7 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.7 - s11Module OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 7 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.7 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.7 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.8 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.8 - utilModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 8 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.8 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.8 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.9 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.9 - ittiModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 9 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.9 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.9 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.10 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.10 - gxModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 10 } - - --- 1.3.6.1.4.1.1373.2.3.3.6.2.1.3.1.2.10 --- 1.3.6.1.4.1.1373.2.3.3.38.2.1.3.1.2.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.1.3.1.2.10 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.11 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.11 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.11 --- 1.3.6.1.4.1.1373.2.3.3.28.2.8.11 - -- 1.3.6.1.4.1.1373.2.3.3.28.2.8.11 - gyModule OBJECT-TYPE - SYNTAX Unsigned32 (0..8) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - DEFVAL { 7 } - ::= { loggingLevelSetting 11 } - - - - END - --- --- LGC-SS-SPGW-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-TMG-MIB.my b/omc/bin/mib/LGC-SS-TMG-MIB.my deleted file mode 100644 index c1b0ca5..0000000 --- a/omc/bin/mib/LGC-SS-TMG-MIB.my +++ /dev/null @@ -1,293 +0,0 @@ --- --- LGC-SS-TMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, September 23, 2010 at 13:47:35 --- - --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, March 12, 2010 at 14:15:06 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:05:09 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, March 11, 2010 at 10:04:10 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 14:44:19 --- --- LGC-SS-AMG-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Wednesday, March 10, 2010 at 11:35:26 --- - - LGC-SS-TMG-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString - FROM LGC-MIB - IpAddress, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.20 - tmg MODULE-IDENTITY - LAST-UPDATED "201003101054Z" -- March 10, 2010 at 10:54 GMT - ORGANIZATION - "altobridge" - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - REVISION "201003101055Z" -- March 10, 2010 at 10:55 GMT - DESCRIPTION - "1st Version" - ::= { application 20 } - - - - --- --- Node definitions --- - --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3.3.18 --- March 10, 2010 at 10:54 GMT --- March 10, 2010 at 10:55 GMT --- --- Node definitions --- --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 --- 1.3.6.1.4.1.1373.2.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 --- 1.3.6.1.4.1.1373.2.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 --- 1.3.6.1.4.1.1373.2.3.3.18.1 - -- 1.3.6.1.4.1.1373.2.3.3.20.1 - heartbeat OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { tmg 1 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 --- 1.3.6.1.4.1.1373.2.3.3.18.2 - -- 1.3.6.1.4.1.1373.2.3.3.20.2 - parameter OBJECT IDENTIFIER ::= { tmg 2 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 --- 1.3.6.1.4.1.1373.2.3.3.18.2.1 - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.1 - localIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Local IP - Remark:Specify the IP address of the target Media Gateway." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.2 - netMask OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Netmask - Remark:A netmask is a 32-bit mask used to divide an IP address into subnets and specify the networks available hosts." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.3 - gateway OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Gateway - Remark:Specify the IP address of the gateway used to pass traffic from Media Gateway to other subnets." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.4 - systemID OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:System ID - Remark:Specify the system ID of the target Media Gateway.
- Range = 0 - 31" - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.5 - subSystemID OBJECT-TYPE - SYNTAX INTEGER (0..7) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Sub-System ID - Remark:Specify the subsystem ID of the target Media Gateway.
- Range = 0 - 1" - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.6 - proxyIP OBJECT-TYPE - SYNTAX IpAddress - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Proxy IP - Remark:Specify the IP address of the connected RTP proxy server." - ::= { system 6 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.12 - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.7 - portType OBJECT-TYPE - SYNTAX INTEGER - { - t1(0), - e1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Port Type - Remark:Specify the physical interface type of target Media Gateway." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.8 - interfaceID OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Interface ID - Remark:Specify the interface identifier to the Media Gateway physical interface." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.9 - signalType OBJECT-TYPE - SYNTAX INTEGER - { - m2ua(0), - iua(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Signaling Type - Remark:Specify the signaling type of the Media Gateway physical interface." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.10 - crc4Switch OBJECT-TYPE - SYNTAX INTEGER - { - closed(0), - open(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CRC4 Flag - Remark:Enable or disable Cyclic Redundancy Check on the Media Gateway physical interface." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.11 - isdnType OBJECT-TYPE - SYNTAX INTEGER - { - lt(0), - nt(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:ISDN Type - Remark:Specify termination type of the Media Gateway for ISDN connection." - ::= { system 11 } - - --- 1.3.6.1.4.1.1373.2.3.3.18.2.1.13 - -- 1.3.6.1.4.1.1373.2.3.3.20.2.1.12 - rebootCommand OBJECT-TYPE - SYNTAX INTEGER { reboot(1) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 12 } - - - - END - --- --- LGC-SS-TMG-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-UDM-MIB.my b/omc/bin/mib/LGC-SS-UDM-MIB.my deleted file mode 100644 index 0de1fb9..0000000 --- a/omc/bin/mib/LGC-SS-UDM-MIB.my +++ /dev/null @@ -1,1384 +0,0 @@ --- --- LGC-SS-UDM-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Monday, March 30, 2020 at 10:35:24 --- - - LGC-SS-UDM-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString16 - FROM LGC-MIB - Opaque, Integer32, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.53 - udm MODULE-IDENTITY - LAST-UPDATED "202001090950Z" -- January 09, 2020 at 09:50 GMT - ORGANIZATION - "Organization." - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - ::= { application 53 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2 - parameter OBJECT IDENTIFIER ::= { udm 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.1 - adminState OBJECT-TYPE - SYNTAX INTEGER - { - unlock(0), - lock(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Number of Max eNB." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.2 - label OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Number of Max UE." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.3 - nfInstanceID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Switch of CS fallback function." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.4 - hplmnID OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.5 - sericeIP OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.6 - servicePort OBJECT-TYPE - SYNTAX Integer32 (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.7 - nrf0Path OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.8 - nrf1Path OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.9 - defaultAusfURI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.10 - defaultNrfNotifyURI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.11 - fqdn OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.12 - priority OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.13 - capacity OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.14 - groupID OBJECT-TYPE - SYNTAX Integer32 - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.15 - supRanges OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.16 - gpsiRanges OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.17 - scheme OBJECT-TYPE - SYNTAX INTEGER - { - http(0), - https(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.18 - op0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.19 - op1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.20 - op2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.21 - op3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..31)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.22 - rlist0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..9)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.23 - rlist1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..9)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.24 - rlist2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..9)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.25 - rlist3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..9)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.26 - homeNetworkPrivateKey OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..63)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.27 - snssais OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.1.38 - importData OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Command[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Sending Command - [v]2[opt]In Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Numbers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Success Numbers[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { system 38 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2 - subsUEAMBRTemplate OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1 - ambrTable OBJECT-TYPE - SYNTAX SEQUENCE OF AmbrEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { subsUEAMBRTemplate 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1.1 - ambrEntry OBJECT-TYPE - SYNTAX AmbrEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ambrIndex } - ::= { ambrTable 1 } - - - AmbrEntry ::= - SEQUENCE { - ambrIndex - INTEGER, - ambrName - OCTET STRING, - ambrUplink - OCTET STRING, - ambrDownlink - OCTET STRING, - ambrRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1.1.1 - ambrIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { ambrEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1.1.2 - ambrName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Label" - ::= { ambrEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1.1.3 - ambrUplink OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Uplink" - ::= { ambrEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1.1.4 - ambrDownlink OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Downlink" - ::= { ambrEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.2.1.1.5 - ambrRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { ambrEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3 - subsSNSSAISTemplate OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1 - snssaiTable OBJECT-TYPE - SYNTAX SEQUENCE OF SnssaiEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { subsSNSSAISTemplate 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1 - snssaiEntry OBJECT-TYPE - SYNTAX SnssaiEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { snssaiIndex } - ::= { snssaiTable 1 } - - - SnssaiEntry ::= - SEQUENCE { - snssaiIndex - INTEGER, - snssaiName - OCTET STRING, - snssaiSupportedFeatures - INTEGER, - snssaiDefaultSNSSAIs - OCTET STRING, - snssaiSingleNssais - OCTET STRING, - snssaiRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1.1 - snssaiIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { snssaiEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1.2 - snssaiName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Label" - ::= { snssaiEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1.3 - snssaiSupportedFeatures OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SupportedFeatures" - ::= { snssaiEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1.4 - snssaiDefaultSNSSAIs OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DefaultSNSSAIs" - ::= { snssaiEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1.5 - snssaiSingleNssais OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SingleNSSAIs" - ::= { snssaiEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.3.1.1.6 - snssaiRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { snssaiEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4 - forbiddenAreasTemplate OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1 - arfbTable OBJECT-TYPE - SYNTAX SEQUENCE OF ArfbEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { forbiddenAreasTemplate 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1.1 - arfbEntry OBJECT-TYPE - SYNTAX ArfbEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { arfbIndex } - ::= { arfbTable 1 } - - - ArfbEntry ::= - SEQUENCE { - arfbIndex - INTEGER, - arfbName - OCTET STRING, - arfbTACs - OCTET STRING, - arfbAreaCodes - OCTET STRING, - arfbRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1.1.1 - arfbIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { arfbEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1.1.2 - arfbName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Label" - ::= { arfbEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1.1.3 - arfbTACs OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:TACs" - ::= { arfbEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1.1.4 - arfbAreaCodes OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:AreaCodes" - ::= { arfbEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.4.1.1.5 - arfbRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { arfbEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5 - serviceAreaRestrictionTemplate OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1 - sarTable OBJECT-TYPE - SYNTAX SEQUENCE OF SarEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { serviceAreaRestrictionTemplate 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1 - sarEntry OBJECT-TYPE - SYNTAX SarEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { sarIndex } - ::= { sarTable 1 } - - - SarEntry ::= - SEQUENCE { - sarIndex - INTEGER, - sarName - OCTET STRING, - sarRestrictionType - INTEGER, - sarTACs - OCTET STRING, - sarAreaCodes - OCTET STRING, - sarMaxTAs - INTEGER, - sarRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.1 - sarIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { sarEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.2 - sarName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Label" - ::= { sarEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.3 - sarRestrictionType OBJECT-TYPE - SYNTAX INTEGER - { - allowedAreas(0), - notAllowedAreas(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:RestrictionType" - ::= { sarEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.4 - sarTACs OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:TACs" - ::= { sarEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.5 - sarAreaCodes OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..128)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:AreaCodes" - ::= { sarEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.6 - sarMaxTAs OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:MaxTAs" - ::= { sarEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.5.1.1.7 - sarRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { sarEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6 - subsSmfSelectionTemplate OBJECT IDENTIFIER ::= { parameter 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1 - smfselTable OBJECT-TYPE - SYNTAX SEQUENCE OF SmfselEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { subsSmfSelectionTemplate 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1 - smfselEntry OBJECT-TYPE - SYNTAX SmfselEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { smfselIndex } - ::= { smfselTable 1 } - - - SmfselEntry ::= - SEQUENCE { - smfselIndex - INTEGER, - smfselName - OCTET STRING, - smfselSNSSAI - OCTET STRING, - smfselDnnName - OCTET STRING, - smfselDefaultDnnInd - INTEGER, - smfselLboRoamingAllowed - INTEGER, - smfselIwkEpsInd - INTEGER, - smfselLadnIndicator - INTEGER, - smfselRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.1 - smfselIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { smfselEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.2 - smfselName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Label" - ::= { smfselEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.3 - smfselSNSSAI OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:SNSSAI" - ::= { smfselEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.4 - smfselDnnName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Dnn" - ::= { smfselEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.5 - smfselDefaultDnnInd OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:DefaultDnnInd" - ::= { smfselEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.6 - smfselLboRoamingAllowed OBJECT-TYPE - SYNTAX INTEGER { false(0) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LBO Roaming Allowed" - ::= { smfselEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.7 - smfselIwkEpsInd OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Iwk EPS Ind" - ::= { smfselEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.8 - smfselLadnIndicator OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LADN Ind" - ::= { smfselEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.6.1.1.9 - smfselRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { smfselEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7 - dnnConf OBJECT IDENTIFIER ::= { parameter 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1 - dnnTable OBJECT-TYPE - SYNTAX SEQUENCE OF DnnEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { dnnConf 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1 - dnnEntry OBJECT-TYPE - SYNTAX DnnEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { dnnIndex } - ::= { dnnTable 1 } - - - DnnEntry ::= - SEQUENCE { - dnnIndex - INTEGER, - dnnName - OCTET STRING, - dnnDefaultPDUSessionType - INTEGER, - dnnAllowedPDUSessionTypes - OCTET STRING, - dnnDefaultSSCmode - INTEGER, - dnnAllowedSSCmodes - OCTET STRING, - dnnInterworkingEPSIndicator - INTEGER, - dnnLADNIndicator - INTEGER, - dnn5GSSubscribedQoSprofile - OCTET STRING, - dnnChargingCharacteristics - OCTET STRING, - dnnSubscribedSessionAmbrUL - OCTET STRING, - dnnSubscribedSessionAmbrDL - OCTET STRING, - dnnStaticIPAddress - OCTET STRING, - dnnUserPlaneSecurityPolicy - OCTET STRING, - dnnRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.1 - dnnIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { dnnEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.2 - dnnName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Dnn" - ::= { dnnEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.3 - dnnDefaultPDUSessionType OBJECT-TYPE - SYNTAX INTEGER - { - ipv4(0), - ipv6(1), - ipv4v6(2), - ethernet(3), - unstruction(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Default PDU Session Type" - ::= { dnnEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.4 - dnnAllowedPDUSessionTypes OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Allowed PDU Session Types" - ::= { dnnEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.5 - dnnDefaultSSCmode OBJECT-TYPE - SYNTAX INTEGER - { - sscMode1(0), - sscMode2(1), - sscMode3(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Default SSC Mode" - ::= { dnnEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.6 - dnnAllowedSSCmodes OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Allowed SSC Modes" - ::= { dnnEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.7 - dnnInterworkingEPSIndicator OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Interworking EPS Indicator" - ::= { dnnEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.8 - dnnLADNIndicator OBJECT-TYPE - SYNTAX INTEGER - { - false(0), - true(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:LADN Indicator" - ::= { dnnEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.9 - dnn5GSSubscribedQoSprofile OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:5GS Qos Profile" - ::= { dnnEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.10 - dnnChargingCharacteristics OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Charging Characteristics" - ::= { dnnEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.11 - dnnSubscribedSessionAmbrUL OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { dnnEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.12 - dnnSubscribedSessionAmbrDL OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { dnnEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.13 - dnnStaticIPAddress OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { dnnEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.14 - dnnUserPlaneSecurityPolicy OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { dnnEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.7.1.1.15 - dnnRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { dnnEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8 - qosProfile OBJECT IDENTIFIER ::= { parameter 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1 - qosTable OBJECT-TYPE - SYNTAX SEQUENCE OF QosEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { qosProfile 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1 - qosEntry OBJECT-TYPE - SYNTAX QosEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { qosIndex } - ::= { qosTable 1 } - - - QosEntry ::= - SEQUENCE { - qosIndex - INTEGER, - qosName - OCTET STRING, - qos5qi - INTEGER, - qosNonDynamic5QiPriorityLevel - INTEGER, - qosNonDynamic5QiAverWindow - INTEGER, - qosNonDynamic5QiMaxDataBurstVol - INTEGER, - qosDynamic5QiResourceType - INTEGER, - qosDynamic5QiPriorityLevel - INTEGER, - qosDynamic5QiPacketDelayBudget - INTEGER, - qosDynamic5QiPacketErrRate - OCTET STRING, - qosDynamic5QiAverWindow - INTEGER, - qosDynamic5QiMaxDataBurstVol - INTEGER, - qosArpPriorityLevel - INTEGER, - qosArpPreemptCap - INTEGER, - qosArpPreemptionVuln - INTEGER, - qosRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.1 - qosIndex OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index" - ::= { qosEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.2 - qosName OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Label" - ::= { qosEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.3 - qos5qi OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:5Qi" - ::= { qosEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.4 - qosNonDynamic5QiPriorityLevel OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Priority Level" - ::= { qosEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.5 - qosNonDynamic5QiAverWindow OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.6 - qosNonDynamic5QiMaxDataBurstVol OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.7 - qosDynamic5QiResourceType OBJECT-TYPE - SYNTAX INTEGER - { - nonGBR(0), - nonCriticalGBR(1), - criticalGBR(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.8 - qosDynamic5QiPriorityLevel OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.9 - qosDynamic5QiPacketDelayBudget OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.10 - qosDynamic5QiPacketErrRate OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.11 - qosDynamic5QiAverWindow OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.12 - qosDynamic5QiMaxDataBurstVol OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { qosEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.13 - qosArpPriorityLevel OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:ARP Priority" - ::= { qosEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.14 - qosArpPreemptCap OBJECT-TYPE - SYNTAX INTEGER - { - notPreempt(0), - mayPreempt(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:PreemptCap" - ::= { qosEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.15 - qosArpPreemptionVuln OBJECT-TYPE - SYNTAX INTEGER - { - notPreemptable(0), - preemptable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:PreemptionVuln" - ::= { qosEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.53.2.8.1.1.16 - qosRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { qosEntry 16 } - - - - END - --- --- LGC-SS-UDM-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-VLR-MIB.my b/omc/bin/mib/LGC-SS-VLR-MIB.my deleted file mode 100644 index d0c09a6..0000000 --- a/omc/bin/mib/LGC-SS-VLR-MIB.my +++ /dev/null @@ -1,557 +0,0 @@ --- --- LGC-SS-VLR-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Friday, March 08, 2013 at 11:24:05 --- - - LGC-SS-VLR-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.2 - vlr MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 2 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.2.2 - parameter OBJECT IDENTIFIER ::= { vlr 2 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2.4 - -- 1.3.6.1.4.1.1373.2.3.3.2.2.2 - management OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1 - version OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Version - Remark:(Read Only) Version of VLR software." - ::= { management 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.2.2 - status OBJECT-TYPE - SYNTAX INTEGER - { - abnormal(0), - normal(1) - } - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Name:Status - Remark:(Read Only) The current status of VLR." - ::= { management 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.2.3 - command OBJECT-TYPE - SYNTAX INTEGER { resetVLR(0) } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { management 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.1 - authentication OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Update Location[u]00.0-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable (Power On) - [v]3[opt]Enable (All) - [unit]MO[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MT[u]00.3-00.3[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Reserved[u]00.4-00.7[u]input - [v]toDec-high-0 - [remark] - Enable or disable authentication of the SIM in the mobile. Need AUC support. - - Location Update: - - Power On means only the initial Location Update will be authenticated. - - All Location Update Authentication means all location update processes will be authenticated. - - MO Call: - - MO Authentication ON means authentication is necessary when making a Mobile Originating call. - - MT Call: - - MT Authentication ON means authentication is necessary when making a Mobile Terminating call." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.2 - reuseTriplets OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Reuse Triplets[u]00.0-00.0[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Double Authentication[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Reserved[u]00.2-00.7[u]input - [v]toDec-high-0 - [remark] - Reuse Triplets: - - Setting this parameter permits a mobile to reuse triplets previously assigned to it by the system. - - Double Authentication: - - Enable this parameter to force the system to perform a second authentication processes when the initial authentication fails." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.3 - ciphering OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Ciphering - Remark:Setting this parameter forces the mobile to use ciphering over the air interface." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.4 - cipherAlgorithm OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]No encryption[u]00.0-00.0[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/1[u]00.1-00.1[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/2[u]00.2-00.2[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/3[u]00.3-00.3[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/4[u]00.4-00.4[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/5[u]00.5-00.5[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/6[u]00.6-00.6[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [unit]GSM A5/7[u]00.7-00.7[u]select - [v]0[opt]Not permitted - [v]1[opt]Permitted - [remark] - Select ciphering algorithm from the drop-down menu." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.5 - tMSIAllocation OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - allocateTMSI(1), - reallocateTMSI(2) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:TMSI Allocation - Remark:Allocate TMSI forces the system to allocate a TMSI only the first time a call management service is requested.
Reallocate TMSI forces the system to allocate a new TMSI every time a call management service is requested." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.6 - oSBDefinition OBJECT-TYPE - SYNTAX INTEGER - { - Disable(0), - Dis-CA(1), - CA-Dis(2), - Dis-CB(3), - CB-Dis(4), - CA-CA(5), - CA-CB(6), - CB-CA(7), - CB-CB(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OSB Definition - Remark:These options allow the operator to set whether a call is allowed or barred:

If this option is set to call allow, the call with the called number matched the dialing prefix with the OSB attribute enabled will be allowed to pass through, all other calls will be barred.

If it is set to call bar, the call with the destination number matching the dialing prefix defined with the OSB attribute enabled will be barred while all other calls will be allowed." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.7 - eCSetupAllowed OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:EC Setup Allowed - Remark:Setting this parameter allows a non-registered mobile or a mobile with no SIM to make emergency calls." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.8 - iMEIVerification OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Location Update[u]00.0-00.0[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MO[u]00.1-00.1[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]MT[u]00.2-00.2[u]select - [v]0[opt]Disable - [v]1[opt]Enable - [unit]Spare[u]00.3-00.7[u]input - [v]toDec-high-0 - [remark] - Enable or disable mobile equipment identity. Need EIR support. - - Location Update: - - Setting this parameter forces the system to validate mobile equipment identity in Location Update processes. - - MO Call: - - Setting this parameter forces the system to validate mobile equipment identity when making a Mobile Originating call. - - MT Call: - - Setting this parameter forces the system to validate mobile equipment identity when making a Mobile Terminating call." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.9 - vLRPurge OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:VLR Purge - Remark:Enable or disable the VLR Purging feature. When this feature is on, the system purges numbers from the VLR when they have been idle for the amount of time specified in the Idle Period to Purge fields." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.10 - idlePeriodToPurge OBJECT-TYPE - SYNTAX INTEGER (0..65535) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Idle Period to Purge - Remark:This field determines how long a VLR entry can remain idle before the system purges it.

- Range = 1 - 65535 minutes" - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.11 - cDRFlag OBJECT-TYPE - SYNTAX INTEGER - { - off(0), - on(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CDR Flag - Remark:Enable or disable Call Detail Record generation of VLR." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.12 - updateHLROption OBJECT-TYPE - SYNTAX Opaque (SIZE (1)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Normal LU[u]00.0-00.0[u]select - [v]0[opt]No Request - [v]1[opt]Request - [unit]Periodic LU[u]00.1-00.1[u]select - [v]0[opt]No Request - [v]1[opt]Request - [unit]IMSI Attach[u]00.2-00.2[u]select - [v]0[opt]No Request - [v]1[opt]Request - [unit]Reserved[u]00.3-00.7[u]input - [v]toDec-high-0 - [remark] - Normal Location Update: - - Setting this parameter forces VLR to update subscriber data from HLR in normal location update processes. - - Periodic Location Update: - - Setting this parameter forces VLR to update subscriber data from HLR in periodic location update processes. - - IMSI Attach: - - Setting this parameter forces VLR to update subscriber data from HLR in IMSI attach processes." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.13 - mSRNStart OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MSRN Start - Remark:The beginning of the MSRN range." - ::= { system 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.14 - mSRNEnd OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:MSRN End - Remark:The end of the MSRN range." - ::= { system 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.15 - oPRFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPR Flag - Remark:Enable or disable OPR service." - ::= { system 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.16 - iMDXFlag OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IMDX Flag - Remark:Enable or disable IMDX service." - ::= { system 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.17 - iMSIPrefixForOPPS OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (5)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:IMSI Prefix for OPPS - Remark:OPPS substitutes the IMSI prefix (MCC+MNC) of the inbound OPPS users by the predefined pseudo IMSI prefix for HLR routing purpose. It should be different from the IMSI prefix of the local network or any other roaming partners' networks." - ::= { system 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.18 - defaultPriority OBJECT-TYPE - SYNTAX INTEGER - { - noPriority(0), - callPriorityLevel4(1), - callPriorityLevel3(2), - callPriorityLevel2(3), - callPriorityLevel1(4), - callPriorityLevel0(5), - callPriorityLevelB(6), - callPriorityLevelA(7) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Default Priority - Remark:Default Priority." - ::= { system 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.19 - odbBoicSmsAllowed OBJECT-TYPE - SYNTAX INTEGER - { - disable(0), - enable(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:ODB BOIC SMS Barring - Remark:Enable or disable barring International SMS (or International SMS except to HPLMN) when ODB BOIC (or ODB BOIC-exHPLMN) is checked." - ::= { system 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.20 - nRI OBJECT-TYPE - SYNTAX INTEGER (0..1023) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NRI (Network Resource Identifier) - Remark:is introduced to perform the MSC/VLR routing functionality on BSC side. Each MSC/VLR in the pool area has a dedicated NRI number. NRI is included in TMSI, value is 0~1023" - ::= { system 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.2.1.21 - nRILen OBJECT-TYPE - SYNTAX INTEGER (0..10) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NRI (Network Resource Identifier) Length - Remark:length is 0~10 bits." - ::= { system 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.3 - csta OBJECT IDENTIFIER ::= { vlr 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.3.1 - cstaDataOid OBJECT-TYPE - SYNTAX OCTET STRING - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { csta 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.4 - cdr OBJECT IDENTIFIER ::= { vlr 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.4.1 - cdrHeadOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { cdr 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.4.2 - cdrTailOid OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { cdr 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.2.4.3 - cdrDataOid OBJECT-TYPE - SYNTAX OCTET STRING - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Description." - ::= { cdr 3 } - - - - END - --- --- LGC-SS-VLR-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-VMS-MIB.my b/omc/bin/mib/LGC-SS-VMS-MIB.my deleted file mode 100644 index 4f176cc..0000000 --- a/omc/bin/mib/LGC-SS-VMS-MIB.my +++ /dev/null @@ -1,3877 +0,0 @@ --- --- LGC-SS-VMS-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, September 23, 2010 at 15:19:37 --- - - LGC-SS-VMS-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, RowStatus, DisplayString - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.3.9 - vms MODULE-IDENTITY - LAST-UPDATED "200706291606Z" -- June 29, 2007 at 16:06 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "lcrd - lcrdsupport@lgcwireless.com" - DESCRIPTION - "Description." - REVISION "200706051219Z" -- June 05, 2007 at 12:19 GMT - DESCRIPTION - "This is the first release version of the MSC MIB" - ::= { application 9 } - - - --- --- Type definitions --- - - AvailStateChoices ::= INTEGER - { - inTest(0), - failed(1), - powerOff(2), - offLine(3), - onLine(4), - dependency(5), - degraded(6), - notInstalled(7) - } - - - --- --- Node definitions --- - --- Node definitions --- --- The MIB module for WXC2. --- 1.3.6.1.4.1.1373.1.3 - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - --- 1.3.6.1.4.1.1373.1.3.3 - -- 1.3.6.1.4.1.1373.2.3.3 - application OBJECT IDENTIFIER ::= { wxc2 3 } - - --- 1.3.6.1.4.1.1373.1.3.3.2.2 - -- 1.3.6.1.4.1.1373.2.3.3.9.2 - parameter OBJECT IDENTIFIER ::= { vms 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.1 - cC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:CC - Remark:Country Code. The code that identifies the country's network." - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.2 - nDC OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NDC - Remark:Network Destination Code. Define the national calling area or national network to which the subscriber belongs." - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.3 - vMSNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:VMS Number - Remark:Define the MSISDN and service numbers for voicemail server. This number is used to route notification short message." - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.4 - serviceNumberForPLMN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PLMN Service Number - Remark:Define the service numbers for voicemail server. All numbers must include CC and NDC. Multiple VMS servers may use the same VMS MSISDN but different Service Numbers.
This service number is for the requests from local network. Subscriber dials this dedicated number to enter his mailbox or leave message to other subscribers." - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.5 - serviceNumberForPSTN OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:PSTN Service Number - Remark:This service number is for the requests from PSTN. Subscriber dials this dedicated number from PSTN to access voicemail system. Inputs the mailbox number (MSISDN) and password (if password enabled) according to the system prompt to. After the verification the subscriber may enter his mailbox or leave message to other subscribers." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.6 - leaveMessageNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Leave Message Number - Remark:Dedicated service number for directly leaving message. Subscriber dials this number from either PSTN or local network to leave message to system subscribers." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.7 - checkMessageNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Remark:Dedicated service number for directly checking inbox message. Subscriber dials this number from either PSTN or local network to check his inbox message." - ::= { system 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.8 - internationalPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:International Prefix - Remark:A digit or combination of digits used by a subscriber when making an international call. The international prefix is used to indicate that the following digits represent an international number and should be routed to an international gateway." - ::= { system 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.9 - nationalPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:National Prefix - Remark:A digit or combination of digits used by a subscriber when calling a national destination (within the country) other than that of the local area network." - ::= { system 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.10 - greetNumModify OBJECT-TYPE - SYNTAX INTEGER - { - sub(0), - NDD(1), - IDD(2), - unknownLocal(3), - unknownNDD(4), - unknownIDD(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Greeting Number Modification - Remark:It determines the Number Attribute Identity of the host number which will be announced to the visitors in the greeting announcement.

- Sub = Unknown(Sub) = SN
- NDD = NDC+SN
- IDD = +CC+NDC+SN
- Unknown(NDD) = Nat Prefix+NDC+SN
- Unknown(IDD) = Int Prefix+CC+NDC+SN" - ::= { system 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.11 - ringBackNumModify OBJECT-TYPE - SYNTAX INTEGER - { - sub(0), - NDD(1), - IDD(2), - unknownLocal(3), - unknownNDD(4), - unknownIDD(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Ringback Number Modification - Remark:It determines the NAI (Number Attribute Identity) of the host number which will be sent as the calling number in the direct ringback ISUP messages." - ::= { system 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.12 - linkType OBJECT-TYPE - SYNTAX INTEGER - { - e1(0), - t1(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Link Type - Remark:Type of the VMS links." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.13 - codecType OBJECT-TYPE - SYNTAX INTEGER - { - u-law(0), - fr(3), - a-law(8), - g-729(18), - amr4-75(64), - amr5-15(65), - amr5-9(66), - amr6-7(67), - amr7-4(68), - amr7-95(69), - amr10-2(70), - amr12-2(71), - efr(84), - g-729b(118) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Codec Type - Remark:Codec (compression/decompression) algorithm of the VMS." - ::= { system 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.14 - saveProfileCommand OBJECT-TYPE - SYNTAX INTEGER - { - saveUserProfiles(2), - saveCodec(3), - loadCodec(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Description." - ::= { system 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.15 - import OBJECT-TYPE - SYNTAX Opaque (SIZE (7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Command[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Sending Command - [v]2[opt]In Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Numbers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Success Numbers[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { system 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.1.16 - maxLicense OBJECT-TYPE - SYNTAX INTEGER - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Hidden Flag:Yes - OPAQUE DECODE RULE: - [unit]Command[u]00.0-00.7[u]select - [v]0[opt]Idle - [v]1[opt]Sending Command - [v]2[opt]In Processing - [v]3[opt]Succeeded - [v]4[opt]Failed - [unit]Total Numbers[u]01.0-03.7[u]input - [v]toDec-high-0 - [unit]Success Numbers[u]04.0-06.7[u]input - [v]toDec-high-0" - ::= { system 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2 - trunk OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2.1 - networkIndicator OBJECT-TYPE - SYNTAX INTEGER - { - international(0), - internationalSpare(1), - national(2), - nationalSpare(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:NI - Remark:Network Indicator. Specify the VMS to a network. Choose the same network as MTP3 setting." - ::= { trunk 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2.2 - dPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:DPC - Remark:Point Code of MSC." - ::= { trunk 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2.3 - oPC OBJECT-TYPE - SYNTAX INTEGER (0..16777215) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:OPC - Remark:Assign a unique decimal Point Code to VMS." - ::= { trunk 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2.4 - cIC OBJECT-TYPE - SYNTAX Opaque (SIZE (8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "OPAQUE DECODE RULE: - [unit]Link 0[u]00.0-00.7[u]input - [v]toDec-high-0 - [unit]Link 1[u]01.0-01.7[u]input - [v]toDec-high-0 - [unit]Link 2[u]02.0-02.7[u]input - [v]toDec-high-0 - [unit]Link 3[u]03.0-03.7[u]input - [v]toDec-high-0 - [unit]Link 4[u]04.0-04.7[u]input - [v]toDec-high-0 - [unit]Link 5[u]05.0-05.7[u]input - [v]toDec-high-0 - [unit]Link 6[u]06.0-06.7[u]input - [v]toDec-high-0 - [unit]Link 7[u]07.0-07.7[u]input - [v]toDec-high-0 - [remark] - Specify the beginning Circuit ID Code of each trunk. Support up to 8 BICC trunks. - CIC = 32 x n + 1 ( n = Link No. )" - ::= { trunk 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2.5 - circuitSelection OBJECT-TYPE - SYNTAX INTEGER - { - clockwise(0), - anti-clockwise(1), - odd(2), - even(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Circuit Selection - Remark:Circuit selection mode of the traffic channel connections." - ::= { trunk 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.2.6 - circuitDelay OBJECT-TYPE - SYNTAX INTEGER - { - withoutDelay(0), - oneSecond(1), - twoSeconds(2), - threeSeconds(3), - fourSeconds(4), - fiveSeconds(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Circuit Delay - Remark:Define the interval between sending ACM and ANM messages.

- Range = 0 - 5 seconds" - ::= { trunk 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3 - mailbox OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.1 - minMessageLength OBJECT-TYPE - SYNTAX INTEGER - { - unlimited(0), - oneSecond(1), - twoSeconds(2), - threeSeconds(3), - fourSeconds(4), - fiveSeconds(5) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Min Message Length - Remark:Define the minimum length of a voicemail message. Any voicemail less than preset minimum length will not be recorded and sent to mailbox host." - ::= { mailbox 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.2 - maxMessageLength OBJECT-TYPE - SYNTAX INTEGER - { - twentySeconds(20), - thirtySeconds(30), - fortySeconds(40), - sixtySeconds(60), - eightySeconds(80), - oneHundredSeconds(100), - twoMinutes(120) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Max Message Length - Remark:Define the maximum length of a voicemail message. The surplus part of the voicemail will be ignored." - ::= { mailbox 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.3 - newMessageRetention OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:New Message Validity - Remark:Specify the storage period of an inbox new(unread) message. The message will be deleted after this period. Unit is day." - ::= { mailbox 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.4 - savedMessageRetention OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Saved Message Validity - Remark:Specify the storage period of an inbox saved message. The message will be deleted after this period." - ::= { mailbox 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.5 - messagePlayOrder OBJECT-TYPE - SYNTAX INTEGER - { - firstPlayNewMessage(0), - firstPlayOldMessage(1) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Message Play Order - Remark:Define the play sequence of the inbox messages." - ::= { mailbox 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.6 - passwordRetryTimes OBJECT-TYPE - SYNTAX INTEGER (1..5) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Password Retry Times - Remark:VMS will refuse the access request after the password attempt times reaches this preset value.

- Range = 1 - 5" - ::= { mailbox 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.3.7 - keyPressTimeout OBJECT-TYPE - SYNTAX INTEGER (5..30) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Key-press Timeout - Remark:Timeout for the interval between two continuous key-press. If the interval is longer than the preset timer, the system will regard that the digit collection (key-press) is completed.

- Range = 5 - 30 seconds" - ::= { mailbox 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4 - cLIModification OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1 - cLIModificationTable OBJECT-TYPE - SYNTAX SEQUENCE OF CLIModificationEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { cLIModification 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1 - cLIModificationEntry OBJECT-TYPE - SYNTAX CLIModificationEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { nmIndex } - ::= { cLIModificationTable 1 } - - - CLIModificationEntry ::= - SEQUENCE { - nmIndex - INTEGER, - nmPrefix - OCTET STRING, - nmOriginalNAI - INTEGER, - nmDelNum - INTEGER, - nmInsertDigits - OCTET STRING, - nmModifiedNAI - INTEGER, - nmRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.1 - nmIndex OBJECT-TYPE - SYNTAX INTEGER (0..31) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number ranges from 0 to 31." - ::= { cLIModificationEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.2 - nmPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:The initial digits of the caller number. This number may be any number from PSTN or PLMN." - ::= { cLIModificationEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.3 - nmOriginalNAI OBJECT-TYPE - SYNTAX INTEGER - { - subscriber(1), - unknown(2), - national(3), - international(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Original NAI - Remark:Original Number Attribute Identity of the caller numbers beginning with this prefix." - ::= { cLIModificationEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.4 - nmDelNum OBJECT-TYPE - SYNTAX INTEGER (0..15) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Deletion Count - Remark:The amount of digits to be deleted from the beginning of the calling number.
- Range = 0 - 16" - ::= { cLIModificationEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.5 - nmInsertDigits OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..15)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Inserted Digits - Remark:The digits to be added to the front of the calling number. Numeric max 16 digits." - ::= { cLIModificationEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.6 - nmModifiedNAI OBJECT-TYPE - SYNTAX INTEGER - { - subscriber(1), - unknown(2), - national(3), - international(4) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Modified NAI - Remark:Number Attribute Identity of the caller number after manipulation." - ::= { cLIModificationEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.4.1.1.7 - nmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cLIModificationEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5 - sMSNotification OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1 - newMessageTable OBJECT-TYPE - SYNTAX SEQUENCE OF NewMessageEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotification 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1 - newMessageEntry OBJECT-TYPE - SYNTAX NewMessageEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { newmIndex } - ::= { newMessageTable 1 } - - - NewMessageEntry ::= - SEQUENCE { - newmIndex - INTEGER, - newmTitle - DisplayString, - newmCoding - INTEGER, - newmPreceding - DisplayString, - newmFollowing - OCTET STRING, - newmRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1.1 - newmIndex OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number ranges from 0 to 4. Define the notification short message contents for a new voicemail message." - ::= { newMessageEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1.2 - newmTitle OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..12)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Message name for identification purpose only." - ::= { newMessageEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1.3 - newmCoding OBJECT-TYPE - SYNTAX INTEGER - { - sevenBit(0), - eightBit(4), - unicode(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Coding Type - Remark:The coding scheme must be consistent with the SMPP setting." - ::= { newMessageEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1.4 - newmPreceding OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..47)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Front Part - Remark:Enter the contents of the first half of notification short message, which is seperated by caller number.

- Default = You got a new voice mail from" - ::= { newMessageEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1.5 - newmFollowing OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..47)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Rear Part - Remark:Enter the contents of the second half of notification short message, which is seperated by caller number.

- Default = . Please dial xxx to check." - ::= { newMessageEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.1.1.6 - newmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { newMessageEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2 - unansweredCallCLITable OBJECT-TYPE - SYNTAX SEQUENCE OF UnansweredCallCLIEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotification 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1 - unansweredCallCLIEntry OBJECT-TYPE - SYNTAX UnansweredCallCLIEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "level:1" - INDEX { uaccIndex } - ::= { unansweredCallCLITable 1 } - - - UnansweredCallCLIEntry ::= - SEQUENCE { - uaccIndex - INTEGER, - uaccTitle - DisplayString, - uaccCoding - INTEGER, - uaccPreceding - DisplayString, - uaccPost - OCTET STRING, - uaccRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1.1 - uaccIndex OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number ranges from 0 to 4. Define the notification short message contents for an unanswered incoming call with caller number." - ::= { unansweredCallCLIEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1.2 - uaccTitle OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..12)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Message name for identification purpose only." - ::= { unansweredCallCLIEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1.3 - uaccCoding OBJECT-TYPE - SYNTAX INTEGER - { - sevenBit(0), - eightBit(4), - unicode(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Coding Type - Remark:The coding scheme must be consistent with the SMPP setting." - ::= { unansweredCallCLIEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1.4 - uaccPreceding OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..47)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Front Part - Remark:Enter the contents of the first half of notification short message, which is seperated by caller number.

- Default = You got a missed call from" - ::= { unansweredCallCLIEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1.5 - uaccPost OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..47)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Rear Part - Remark:Enter the contents of the second half of notification short message, which is seperated by caller number.

- Default = ." - ::= { unansweredCallCLIEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.2.1.6 - uaccRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { unansweredCallCLIEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3 - mailboxFullTable OBJECT-TYPE - SYNTAX SEQUENCE OF MailboxFullEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotification 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1 - mailboxFullEntry OBJECT-TYPE - SYNTAX MailboxFullEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { fmbIndex } - ::= { mailboxFullTable 1 } - - - MailboxFullEntry ::= - SEQUENCE { - fmbIndex - INTEGER, - fmbTitle - DisplayString, - fmbCoding - INTEGER, - fmbPreceding - DisplayString, - fmbFollowing - DisplayString, - fmbRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1.1 - fmbIndex OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number ranges from 0 to 4. Define the notification short message contents for an overload mailbox. The notification will be sent to the host when receiving a new message but the mailbox is full." - ::= { mailboxFullEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1.2 - fmbTitle OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..12)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Message name for identification purpose only." - ::= { mailboxFullEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1.3 - fmbCoding OBJECT-TYPE - SYNTAX INTEGER - { - sevenBit(0), - eightBit(4), - unicode(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Coding Type - Remark:The coding scheme must be consistent with the SMPP setting." - ::= { mailboxFullEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1.4 - fmbPreceding OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..47)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Front Part - Remark:Enter the contents of the first half of notification short message, which is seperated by caller number.

- Default = Your mailbox is full." - ::= { mailboxFullEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1.5 - fmbFollowing OBJECT-TYPE - SYNTAX DisplayString (SIZE (0..47)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Rear Part - Remark:Enter the contents of the second half of notification short message, which is seperated by caller number.

- Default = tried to call you." - ::= { mailboxFullEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.3.1.6 - fmbRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { mailboxFullEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4 - unansweredCallNoCLITable OBJECT-TYPE - SYNTAX SEQUENCE OF UnansweredCallNoCLIEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { sMSNotification 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4.1 - unansweredCallNoCLIEntry OBJECT-TYPE - SYNTAX UnansweredCallNoCLIEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { uacncIndex } - ::= { unansweredCallNoCLITable 1 } - - - UnansweredCallNoCLIEntry ::= - SEQUENCE { - uacncIndex - INTEGER, - uacncTitle - OCTET STRING, - uacncCoding - INTEGER, - uacncPreceding - OCTET STRING, - uacncRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4.1.1 - uacncIndex OBJECT-TYPE - SYNTAX INTEGER (0..4) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index number ranges from 0 to 4. Define the notification short message contents for an unanswered incoming call without caller number." - ::= { unansweredCallNoCLIEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4.1.2 - uacncTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Message name for identification purpose only." - ::= { unansweredCallNoCLIEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4.1.3 - uacncCoding OBJECT-TYPE - SYNTAX INTEGER - { - sevenBit(0), - eightBit(4), - unicode(8) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Coding Type - Remark:The coding scheme must be consistent with the SMPP setting." - ::= { unansweredCallNoCLIEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4.1.4 - uacncPreceding OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..95)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Contents - Remark:Enter the contents of the notification short message.

- Default = You got a missed call." - ::= { unansweredCallNoCLIEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.5.4.1.5 - uacncRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { unansweredCallNoCLIEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6 - voiceGroup OBJECT IDENTIFIER ::= { parameter 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1 - publicTable OBJECT-TYPE - SYNTAX SEQUENCE OF PublicEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { voiceGroup 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1 - publicEntry OBJECT-TYPE - SYNTAX PublicEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { pvgIndex } - ::= { publicTable 1 } - - - PublicEntry ::= - SEQUENCE { - pvgIndex - INTEGER, - pvgUnit0 - OCTET STRING, - pvgUnit1 - OCTET STRING, - pvgUnit2 - OCTET STRING, - pvgUnit3 - OCTET STRING, - pvgUnit4 - OCTET STRING, - pvgUnit5 - OCTET STRING, - pvgUnit6 - OCTET STRING, - pvgUnit7 - OCTET STRING, - pvgUnit8 - OCTET STRING, - pvgUnit9 - OCTET STRING, - pvgUnit10 - OCTET STRING, - pvgUnit11 - OCTET STRING, - pvgUnit12 - OCTET STRING, - pvgUnit13 - OCTET STRING, - pvgUnit14 - OCTET STRING, - pvgUnit15 - OCTET STRING, - pvgUnit16 - OCTET STRING, - pvgUnit17 - OCTET STRING, - pvgUnit18 - OCTET STRING, - pvgUnit19 - OCTET STRING, - pvgUnit20 - OCTET STRING, - pvgUnit21 - OCTET STRING, - pvgUnit22 - OCTET STRING, - pvgUnit23 - OCTET STRING, - pvgUnit24 - OCTET STRING, - pvgUnit25 - OCTET STRING, - pvgUnit26 - OCTET STRING, - pvgUnit27 - OCTET STRING, - pvgUnit28 - OCTET STRING, - pvgUnit29 - OCTET STRING, - pvgUnit30 - OCTET STRING, - pvgUnit31 - OCTET STRING, - pvgRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.1 - pvgIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Voice group index number ranges from 0 to 31." - ::= { publicEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.2 - pvgUnit0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 0 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.3 - pvgUnit1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 1 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.4 - pvgUnit2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 2 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.5 - pvgUnit3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 3 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.6 - pvgUnit4 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 4 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.7 - pvgUnit5 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 5 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.8 - pvgUnit6 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 6 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.9 - pvgUnit7 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 7 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.10 - pvgUnit8 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 8 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.11 - pvgUnit9 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 9 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.12 - pvgUnit10 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 10 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.13 - pvgUnit11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 11 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.14 - pvgUnit12 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 12 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.15 - pvgUnit13 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 13 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.16 - pvgUnit14 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 14 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.17 - pvgUnit15 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 15 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.18 - pvgUnit16 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 16 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.19 - pvgUnit17 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 17 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.20 - pvgUnit18 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 18 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.21 - pvgUnit19 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 19 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.22 - pvgUnit20 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 20 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.23 - pvgUnit21 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 21 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.24 - pvgUnit22 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 22 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.25 - pvgUnit23 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 23 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.26 - pvgUnit24 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 24 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.27 - pvgUnit25 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 25 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.28 - pvgUnit26 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 26 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.29 - pvgUnit27 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 27 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.30 - pvgUnit28 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 28 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.31 - pvgUnit29 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 29 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.32 - pvgUnit30 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 30 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.33 - pvgUnit31 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 31 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { publicEntry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.1.1.34 - pvgRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { publicEntry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2 - language0Table OBJECT-TYPE - SYNTAX SEQUENCE OF Language0Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { voiceGroup 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1 - language0Entry OBJECT-TYPE - SYNTAX Language0Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lvgzeroIndex } - ::= { language0Table 1 } - - - Language0Entry ::= - SEQUENCE { - lvgzeroIndex - INTEGER, - lvgzeroUnit0 - OCTET STRING, - lvgzeroUnit1 - OCTET STRING, - lvgzeroUnit2 - OCTET STRING, - lvgzeroUnit3 - OCTET STRING, - lvgzeroUnit4 - OCTET STRING, - lvgzeroUnit5 - OCTET STRING, - lvgzeroUnit6 - OCTET STRING, - lvgzeroUnit7 - OCTET STRING, - lvgzeroUnit8 - OCTET STRING, - lvgzeroUnit9 - OCTET STRING, - lvgzeroUnit10 - OCTET STRING, - lvgzeroUnit11 - OCTET STRING, - lvgzeroUnit12 - OCTET STRING, - lvgzeroUnit13 - OCTET STRING, - lvgzeroUnit14 - OCTET STRING, - lvgzeroUnit15 - OCTET STRING, - lvgzeroUnit16 - OCTET STRING, - lvgzeroUnit17 - OCTET STRING, - lvgzeroUnit18 - OCTET STRING, - lvgzeroUnit19 - OCTET STRING, - lvgzeroUnit20 - OCTET STRING, - lvgzeroUnit21 - OCTET STRING, - lvgzeroUnit22 - OCTET STRING, - lvgzeroUnit23 - OCTET STRING, - lvgzeroUnit24 - OCTET STRING, - lvgzeroUnit25 - OCTET STRING, - lvgzeroUnit26 - OCTET STRING, - lvgzeroUnit27 - OCTET STRING, - lvgzeroUnit28 - OCTET STRING, - lvgzeroUnit29 - OCTET STRING, - lvgzeroUnit30 - OCTET STRING, - lvgzeroUnit31 - OCTET STRING, - lvgzeroRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.1 - lvgzeroIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index from 0 to 255." - ::= { language0Entry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.2 - lvgzeroUnit0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 0 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.3 - lvgzeroUnit1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 1 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.4 - lvgzeroUnit2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 2 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.5 - lvgzeroUnit3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 3 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.6 - lvgzeroUnit4 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 4 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.7 - lvgzeroUnit5 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 5 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.8 - lvgzeroUnit6 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 6 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.9 - lvgzeroUnit7 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 7 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.10 - lvgzeroUnit8 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 8 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.11 - lvgzeroUnit9 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 9 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.12 - lvgzeroUnit10 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 10 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.13 - lvgzeroUnit11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 11 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.14 - lvgzeroUnit12 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 12 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.15 - lvgzeroUnit13 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 13 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.16 - lvgzeroUnit14 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 14 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.17 - lvgzeroUnit15 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 15 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.18 - lvgzeroUnit16 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 16 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.19 - lvgzeroUnit17 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 17 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.20 - lvgzeroUnit18 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 18 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.21 - lvgzeroUnit19 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 19 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.22 - lvgzeroUnit20 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 20 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.23 - lvgzeroUnit21 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 21 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.24 - lvgzeroUnit22 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 22 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.25 - lvgzeroUnit23 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 23 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.26 - lvgzeroUnit24 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 24 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.27 - lvgzeroUnit25 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 25 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.28 - lvgzeroUnit26 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 26 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.29 - lvgzeroUnit27 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 27 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.30 - lvgzeroUnit28 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 28 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.31 - lvgzeroUnit29 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 29 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.32 - lvgzeroUnit30 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 30 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.33 - lvgzeroUnit31 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 31 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language0Entry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.2.1.34 - lvgzeroRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { language0Entry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3 - language1Table OBJECT-TYPE - SYNTAX SEQUENCE OF Language1Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { voiceGroup 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1 - language1Entry OBJECT-TYPE - SYNTAX Language1Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lvgoneIndex } - ::= { language1Table 1 } - - - Language1Entry ::= - SEQUENCE { - lvgoneIndex - INTEGER, - lvgoneUnit0 - OCTET STRING, - lvgoneUnit1 - OCTET STRING, - lvgoneUnit2 - OCTET STRING, - lvgoneUnit3 - OCTET STRING, - lvgoneUnit4 - OCTET STRING, - lvgoneUnit5 - OCTET STRING, - lvgoneUnit6 - OCTET STRING, - lvgoneUnit7 - OCTET STRING, - lvgoneUnit8 - OCTET STRING, - lvgoneUnit9 - OCTET STRING, - lvgoneUnit10 - OCTET STRING, - lvgoneUnit11 - OCTET STRING, - lvgoneUnit12 - OCTET STRING, - lvgoneUnit13 - OCTET STRING, - lvgoneUnit14 - OCTET STRING, - lvgoneUnit15 - OCTET STRING, - lvgoneUnit16 - OCTET STRING, - lvgoneUnit17 - OCTET STRING, - lvgoneUnit18 - OCTET STRING, - lvgoneUnit19 - OCTET STRING, - lvgoneUnit20 - OCTET STRING, - lvgoneUnit21 - OCTET STRING, - lvgoneUnit22 - OCTET STRING, - lvgoneUnit23 - OCTET STRING, - lvgoneUnit24 - OCTET STRING, - lvgoneUnit25 - OCTET STRING, - lvgoneUnit26 - OCTET STRING, - lvgoneUnit27 - OCTET STRING, - lvgoneUnit28 - OCTET STRING, - lvgoneUnit29 - OCTET STRING, - lvgoneUnit30 - OCTET STRING, - lvgoneUnit31 - OCTET STRING, - lvgoneRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.1 - lvgoneIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index from 0 to 4." - ::= { language1Entry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.2 - lvgoneUnit0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 0 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.3 - lvgoneUnit1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 1 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.4 - lvgoneUnit2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 2 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.5 - lvgoneUnit3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 3 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.6 - lvgoneUnit4 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 4 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.7 - lvgoneUnit5 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 5 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.8 - lvgoneUnit6 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 6 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.9 - lvgoneUnit7 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 7 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.10 - lvgoneUnit8 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 8 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.11 - lvgoneUnit9 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 9 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.12 - lvgoneUnit10 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 10 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.13 - lvgoneUnit11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 11 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.14 - lvgoneUnit12 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 12 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.15 - lvgoneUnit13 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 13 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.16 - lvgoneUnit14 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 14 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.17 - lvgoneUnit15 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 15 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.18 - lvgoneUnit16 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 16 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.19 - lvgoneUnit17 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 17 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.20 - lvgoneUnit18 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 18 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.21 - lvgoneUnit19 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 19 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.22 - lvgoneUnit20 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 20 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.23 - lvgoneUnit21 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 21 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.24 - lvgoneUnit22 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 22 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.25 - lvgoneUnit23 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 23 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.26 - lvgoneUnit24 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 24 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.27 - lvgoneUnit25 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 25 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.28 - lvgoneUnit26 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 26 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.29 - lvgoneUnit27 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 27 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.30 - lvgoneUnit28 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 28 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.31 - lvgoneUnit29 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 29 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.32 - lvgoneUnit30 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 30 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.33 - lvgoneUnit31 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 31 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language1Entry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.3.1.34 - lvgoneRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { language1Entry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4 - language2Table OBJECT-TYPE - SYNTAX SEQUENCE OF Language2Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { voiceGroup 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1 - language2Entry OBJECT-TYPE - SYNTAX Language2Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lvgtwoIndex } - ::= { language2Table 1 } - - - Language2Entry ::= - SEQUENCE { - lvgtwoIndex - INTEGER, - lvgtwoUnit0 - OCTET STRING, - lvgtwoUnit1 - OCTET STRING, - lvgtwoUnit2 - OCTET STRING, - lvgtwoUnit3 - OCTET STRING, - lvgtwoUnit4 - OCTET STRING, - lvgtwoUnit5 - OCTET STRING, - lvgtwoUnit6 - OCTET STRING, - lvgtwoUnit7 - OCTET STRING, - lvgtwoUnit8 - OCTET STRING, - lvgtwoUnit9 - OCTET STRING, - lvgtwoUnit10 - OCTET STRING, - lvgtwoUnit11 - OCTET STRING, - lvgtwoUnit12 - OCTET STRING, - lvgtwoUnit13 - OCTET STRING, - lvgtwoUnit14 - OCTET STRING, - lvgtwoUnit15 - OCTET STRING, - lvgtwoUnit16 - OCTET STRING, - lvgtwoUnit17 - OCTET STRING, - lvgtwoUnit18 - OCTET STRING, - lvgtwoUnit19 - OCTET STRING, - lvgtwoUnit20 - OCTET STRING, - lvgtwoUnit21 - OCTET STRING, - lvgtwoUnit22 - OCTET STRING, - lvgtwoUnit23 - OCTET STRING, - lvgtwoUnit24 - OCTET STRING, - lvgtwoUnit25 - OCTET STRING, - lvgtwoUnit26 - OCTET STRING, - lvgtwoUnit27 - OCTET STRING, - lvgtwoUnit28 - OCTET STRING, - lvgtwoUnit29 - OCTET STRING, - lvgtwoUnit30 - OCTET STRING, - lvgtwoUnit31 - OCTET STRING, - lvgtwoRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.1 - lvgtwoIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index from 0 to 255." - ::= { language2Entry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.2 - lvgtwoUnit0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 0 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.3 - lvgtwoUnit1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 1 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.4 - lvgtwoUnit2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 2 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.5 - lvgtwoUnit3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 3 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.6 - lvgtwoUnit4 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 4 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.7 - lvgtwoUnit5 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 5 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.8 - lvgtwoUnit6 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 6 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.9 - lvgtwoUnit7 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 7 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.10 - lvgtwoUnit8 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 8 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.11 - lvgtwoUnit9 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 9 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.12 - lvgtwoUnit10 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 10 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.13 - lvgtwoUnit11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 11 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.14 - lvgtwoUnit12 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 12 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.15 - lvgtwoUnit13 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 13 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.16 - lvgtwoUnit14 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 14 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.17 - lvgtwoUnit15 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 15 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.18 - lvgtwoUnit16 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 16 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.19 - lvgtwoUnit17 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 17 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.20 - lvgtwoUnit18 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 18 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.21 - lvgtwoUnit19 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 19 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.22 - lvgtwoUnit20 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 20 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.23 - lvgtwoUnit21 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 21 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.24 - lvgtwoUnit22 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 22 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.25 - lvgtwoUnit23 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 23 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.26 - lvgtwoUnit24 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 24 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.27 - lvgtwoUnit25 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 25 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.28 - lvgtwoUnit26 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 26 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.29 - lvgtwoUnit27 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 27 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.30 - lvgtwoUnit28 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 28 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.31 - lvgtwoUnit29 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 29 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.32 - lvgtwoUnit30 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 30 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.33 - lvgtwoUnit31 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 31 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language2Entry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.4.1.34 - lvgtwoRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { language2Entry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5 - language3Table OBJECT-TYPE - SYNTAX SEQUENCE OF Language3Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { voiceGroup 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1 - language3Entry OBJECT-TYPE - SYNTAX Language3Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lvgthreeIndex } - ::= { language3Table 1 } - - - Language3Entry ::= - SEQUENCE { - lvgthreeIndex - INTEGER, - lvgthreeUnit0 - OCTET STRING, - lvgthreeUnit1 - OCTET STRING, - lvgthreeUnit2 - OCTET STRING, - lvgthreeUnit3 - OCTET STRING, - lvgthreeUnit4 - OCTET STRING, - lvgthreeUnit5 - OCTET STRING, - lvgthreeUnit6 - OCTET STRING, - lvgthreeUnit7 - OCTET STRING, - lvgthreeUnit8 - OCTET STRING, - lvgthreeUnit9 - OCTET STRING, - lvgthreeUnit10 - OCTET STRING, - lvgthreeUnit11 - OCTET STRING, - lvgthreeUnit12 - OCTET STRING, - lvgthreeUnit13 - OCTET STRING, - lvgthreeUnit14 - OCTET STRING, - lvgthreeUnit15 - OCTET STRING, - lvgthreeUnit16 - OCTET STRING, - lvgthreeUnit17 - OCTET STRING, - lvgthreeUnit18 - OCTET STRING, - lvgthreeUnit19 - OCTET STRING, - lvgthreeUnit20 - OCTET STRING, - lvgthreeUnit21 - OCTET STRING, - lvgthreeUnit22 - OCTET STRING, - lvgthreeUnit23 - OCTET STRING, - lvgthreeUnit24 - OCTET STRING, - lvgthreeUnit25 - OCTET STRING, - lvgthreeUnit26 - OCTET STRING, - lvgthreeUnit27 - OCTET STRING, - lvgthreeUnit28 - OCTET STRING, - lvgthreeUnit29 - OCTET STRING, - lvgthreeUnit30 - OCTET STRING, - lvgthreeUnit31 - OCTET STRING, - lvgthreeRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.1 - lvgthreeIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index from 0 to 255." - ::= { language3Entry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.2 - lvgthreeUnit0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 0 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.3 - lvgthreeUnit1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 1 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.4 - lvgthreeUnit2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 2 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.5 - lvgthreeUnit3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 3 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.6 - lvgthreeUnit4 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 4 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.7 - lvgthreeUnit5 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 5 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.8 - lvgthreeUnit6 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 6 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.9 - lvgthreeUnit7 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 7 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.10 - lvgthreeUnit8 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 8 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.11 - lvgthreeUnit9 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 9 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.12 - lvgthreeUnit10 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 10 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.13 - lvgthreeUnit11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 11 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.14 - lvgthreeUnit12 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 12 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.15 - lvgthreeUnit13 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 13 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.16 - lvgthreeUnit14 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 14 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.17 - lvgthreeUnit15 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 15 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.18 - lvgthreeUnit16 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 16 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.19 - lvgthreeUnit17 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 17 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.20 - lvgthreeUnit18 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 18 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.21 - lvgthreeUnit19 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 19 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.22 - lvgthreeUnit20 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 20 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.23 - lvgthreeUnit21 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 21 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.24 - lvgthreeUnit22 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 22 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.25 - lvgthreeUnit23 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 23 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.26 - lvgthreeUnit24 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 24 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.27 - lvgthreeUnit25 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 25 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.28 - lvgthreeUnit26 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 26 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.29 - lvgthreeUnit27 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 27 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.30 - lvgthreeUnit28 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 28 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.31 - lvgthreeUnit29 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 29 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.32 - lvgthreeUnit30 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 30 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.33 - lvgthreeUnit31 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 31 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language3Entry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.5.1.34 - lvgthreeRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { language3Entry 34 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6 - language4Table OBJECT-TYPE - SYNTAX SEQUENCE OF Language4Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { voiceGroup 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1 - language4Entry OBJECT-TYPE - SYNTAX Language4Entry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lvgfourIndex } - ::= { language4Table 1 } - - - Language4Entry ::= - SEQUENCE { - lvgfourIndex - INTEGER, - lvgfourUnit0 - OCTET STRING, - lvgfourUnit1 - OCTET STRING, - lvgfourUnit2 - OCTET STRING, - lvgfourUnit3 - OCTET STRING, - lvgfourUnit4 - OCTET STRING, - lvgfourUnit5 - OCTET STRING, - lvgfourUnit6 - OCTET STRING, - lvgfourUnit7 - OCTET STRING, - lvgfourUnit8 - OCTET STRING, - lvgfourUnit9 - OCTET STRING, - lvgfourUnit10 - OCTET STRING, - lvgfourUnit11 - OCTET STRING, - lvgfourUnit12 - OCTET STRING, - lvgfourUnit13 - OCTET STRING, - lvgfourUnit14 - OCTET STRING, - lvgfourUnit15 - OCTET STRING, - lvgfourUnit16 - OCTET STRING, - lvgfourUnit17 - OCTET STRING, - lvgfourUnit18 - OCTET STRING, - lvgfourUnit19 - OCTET STRING, - lvgfourUnit20 - OCTET STRING, - lvgfourUnit21 - OCTET STRING, - lvgfourUnit22 - OCTET STRING, - lvgfourUnit23 - OCTET STRING, - lvgfourUnit24 - OCTET STRING, - lvgfourUnit25 - OCTET STRING, - lvgfourUnit26 - OCTET STRING, - lvgfourUnit27 - OCTET STRING, - lvgfourUnit28 - OCTET STRING, - lvgfourUnit29 - OCTET STRING, - lvgfourUnit30 - OCTET STRING, - lvgfourUnit31 - OCTET STRING, - lvgfourRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.1 - lvgfourIndex OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Index from 0 to 255." - ::= { language4Entry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.2 - lvgfourUnit0 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 0 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.3 - lvgfourUnit1 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 1 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.4 - lvgfourUnit2 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 2 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.5 - lvgfourUnit3 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 3 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.6 - lvgfourUnit4 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 4 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.7 - lvgfourUnit5 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 5 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.8 - lvgfourUnit6 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 6 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.9 - lvgfourUnit7 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 7 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.10 - lvgfourUnit8 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Unit 8 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.11 - lvgfourUnit9 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 9 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 11 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.12 - lvgfourUnit10 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 10 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 12 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.13 - lvgfourUnit11 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 11 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 13 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.14 - lvgfourUnit12 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 12 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 14 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.15 - lvgfourUnit13 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 13 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 15 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.16 - lvgfourUnit14 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 14 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 16 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.17 - lvgfourUnit15 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 15 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 17 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.18 - lvgfourUnit16 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 16 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 18 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.19 - lvgfourUnit17 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 17 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 19 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.20 - lvgfourUnit18 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 18 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 20 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.21 - lvgfourUnit19 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 19 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 21 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.22 - lvgfourUnit20 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 20 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 22 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.23 - lvgfourUnit21 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 21 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 23 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.24 - lvgfourUnit22 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 22 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 24 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.25 - lvgfourUnit23 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 23 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 25 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.26 - lvgfourUnit24 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 24 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 26 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.27 - lvgfourUnit25 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 25 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 27 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.28 - lvgfourUnit26 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 26 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 28 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.29 - lvgfourUnit27 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 27 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 29 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.30 - lvgfourUnit28 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 28 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 30 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.31 - lvgfourUnit29 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 29 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 31 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.32 - lvgfourUnit30 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 30 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 32 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.33 - lvgfourUnit31 OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..4)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Name:Unit 31 - Remark:The voice group determines an announcement. Any invalid BCD digit,
such as 0xa000, indicate end of voice group." - ::= { language4Entry 33 } - - - -- 1.3.6.1.4.1.1373.2.3.3.9.2.6.6.1.34 - lvgfourRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { language4Entry 34 } - - - - END - --- --- LGC-SS-VMS-MIB.my --- diff --git a/omc/bin/mib/LGC-SS-XAPP-MIB.my b/omc/bin/mib/LGC-SS-XAPP-MIB.my deleted file mode 100644 index 9a8d25f..0000000 --- a/omc/bin/mib/LGC-SS-XAPP-MIB.my +++ /dev/null @@ -1,689 +0,0 @@ --- --- LGC-SS-XAPP-MIB.my --- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 209 --- Thursday, September 23, 2010 at 15:51:37 --- - - LGC-SS-XAPP-MIB DEFINITIONS ::= BEGIN - - IMPORTS - lgcSS, DisplayString, RowStatus - FROM LGC-MIB - Opaque, OBJECT-TYPE, MODULE-IDENTITY - FROM SNMPv2-SMI; - - - -- 1.3.6.1.4.1.1373.2.3.2.5 - xapp MODULE-IDENTITY - LAST-UPDATED "200709061209Z" -- September 06, 2007 at 12:09 GMT - ORGANIZATION - "LGC Wireless" - CONTACT-INFO - "Contact-info." - DESCRIPTION - "Description." - ::= { platform 5 } - - - - - --- --- Node definitions --- - - -- 1.3.6.1.4.1.1373.2.3 - wxc2 OBJECT IDENTIFIER ::= { lgcSS 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2 - platform OBJECT IDENTIFIER ::= { wxc2 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2 - parameter OBJECT IDENTIFIER ::= { xapp 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1 - system OBJECT IDENTIFIER ::= { parameter 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.1 - mCC OBJECT-TYPE - SYNTAX Opaque (SIZE (2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - OPAQUE DECODE RULE: - [unit]MCC[u]00.0-01.7[u]input - [v]keepHex-low-E - [remark] - Mobile Country Code" - ::= { system 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.2 - mNC OBJECT-TYPE - SYNTAX Opaque (SIZE (2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - OPAQUE DECODE RULE: - [unit]MNC[u]00.0-01.7[u]input - [v]keepHex-low-E - [remark] - Mobile Network Code" - ::= { system 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.3 - cC OBJECT-TYPE - SYNTAX Opaque (SIZE (2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - OPAQUE DECODE RULE: - [unit]CC[u]00.0-01.7[u]input - [v]keepHex-low-E - [remark] - Country Code" - ::= { system 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.4 - nDC OBJECT-TYPE - SYNTAX Opaque (SIZE (3)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - OPAQUE DECODE RULE: - [unit]NDC[u]00.0-02.7[u]input - [v]keepHex-low-E - [remark] - National Destination Code" - ::= { system 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.5 - internationalPrefix OBJECT-TYPE - SYNTAX Opaque (SIZE (2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - OPAQUE DECODE RULE: - [unit]International Prefix[u]00.0-01.7[u]input - [v]keepHex-low-E - [remark] - Access code for international network." - ::= { system 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.6 - nationalPrefix OBJECT-TYPE - SYNTAX Opaque (SIZE (2)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes - OPAQUE DECODE RULE: - [unit]National Prefix[u]00.0-01.7[u]input - [v]keepHex-low-E - [remark] - National prefix for the operating country to make a national call." - ::= { system 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.1.12 - command OBJECT-TYPE - SYNTAX INTEGER { saveParameter(1) } - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { system 12 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2 - prefixManipulation OBJECT IDENTIFIER ::= { parameter 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1 - prefixManipulationTable OBJECT-TYPE - SYNTAX SEQUENCE OF PrefixManipulationEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Convert service number format for MAP applications. Such as prepaid charging, querying and voice mail routing." - ::= { prefixManipulation 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1 - prefixManipulationEntry OBJECT-TYPE - SYNTAX PrefixManipulationEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { pmIndex } - ::= { prefixManipulationTable 1 } - - - PrefixManipulationEntry ::= - SEQUENCE { - pmIndex - INTEGER, - pmTitle - OCTET STRING, - pmPrefix - OCTET STRING, - pmDeletionCount - INTEGER, - pmInsertionCount - INTEGER, - pmInsertedDigits - OCTET STRING, - pmNumberLength - INTEGER, - pmRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.1 - pmIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Prefix index number ranges from 0 to 127." - ::= { prefixManipulationEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.2 - pmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Prefix name for identification purpose only." - ::= { prefixManipulationEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.3 - pmPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:A combination digits that dialed to the destination." - ::= { prefixManipulationEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.4 - pmDeletionCount OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Deletion Count - Remark:The amount of digits to be deleted from the beginning of the incoming number." - DEFVAL { 0 } - ::= { prefixManipulationEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.5 - pmInsertionCount OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Insertion Count - Remark:The amount of digits to be inserted to the front of the dialed number." - DEFVAL { 0 } - ::= { prefixManipulationEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.6 - pmInsertedDigits OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Inserted Digits - Remark:The digits to be added to the front of the dialed number." - ::= { prefixManipulationEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.7 - pmNumberLength OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Length - Remark:The length of the incoming number." - ::= { prefixManipulationEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.2.1.1.8 - pmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { prefixManipulationEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3 - numberGroup OBJECT IDENTIFIER ::= { parameter 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1 - numberGroupTable OBJECT-TYPE - SYNTAX SEQUENCE OF NumberGroupEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { numberGroup 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1 - numberGroupEntry OBJECT-TYPE - SYNTAX NumberGroupEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { ngIndex } - ::= { numberGroupTable 1 } - - - NumberGroupEntry ::= - SEQUENCE { - ngIndex - INTEGER, - ngTitle - OCTET STRING, - ngStartNumber - OCTET STRING, - ngEndNumber - OCTET STRING, - ngReplaceDigitStart - INTEGER, - ngReplaceDigitEnd - INTEGER, - ngReplaceDigitWith - OCTET STRING, - ngRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.1 - ngIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Number group index number ranges from 0 to 127." - ::= { numberGroupEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.2 - ngTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Number group name for identification purpose only." - ::= { numberGroupEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.3 - ngStartNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Start Number - Remark:First number in the group." - ::= { numberGroupEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.4 - ngEndNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:End Number - Remark:Last number in the group." - ::= { numberGroupEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.5 - ngReplaceDigitStart OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Replace Digits From - Remark:First digit to replace (position)." - ::= { numberGroupEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.6 - ngReplaceDigitEnd OBJECT-TYPE - SYNTAX INTEGER (0..255) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Replace Digits To - Remark:Last digit to replace (position)." - ::= { numberGroupEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.7 - ngReplaceDigitWith OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..12)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Replace Digits With - Remark:Replace digits with this string." - ::= { numberGroupEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.3.1.1.9 - ngRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { numberGroupEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4 - cLIManipulation OBJECT IDENTIFIER ::= { parameter 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1 - cLIManipulationTable OBJECT-TYPE - SYNTAX SEQUENCE OF CLIManipulationEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Remark:Customize the presented caller number format for receiving short message." - ::= { cLIManipulation 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1 - cLIManipulationEntry OBJECT-TYPE - SYNTAX CLIManipulationEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { cmIndex } - ::= { cLIManipulationTable 1 } - - - CLIManipulationEntry ::= - SEQUENCE { - cmIndex - INTEGER, - cmTitle - OCTET STRING, - cmOriginalNAI - INTEGER, - cmPrefix - OCTET STRING, - cmDeletionCount - INTEGER, - cmModifiedNAI - INTEGER, - cmInsertionCount - INTEGER, - cmInsertedDigits - OCTET STRING, - cmNumberLength - INTEGER, - cmRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.1 - cmIndex OBJECT-TYPE - SYNTAX INTEGER (0..63) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Prefix index number ranges from 0 to 63." - ::= { cLIManipulationEntry 1 } - - --- Title --- 1.3.6.1.4.1.1373.2.3.3.2.2.2.1.1.2 - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.2 - cmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..8)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Prefix name for identification purpose only." - ::= { cLIManipulationEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.3 - cmOriginalNAI OBJECT-TYPE - SYNTAX INTEGER - { - idd(1), - ndd(2), - unknown(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Original NAI - Remark:Original Number Attribute Identity of the caller numbers beginning with this prefix." - ::= { cLIManipulationEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.4 - cmPrefix OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Prefix - Remark:The initial digits of the caller number." - ::= { cLIManipulationEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.5 - cmDeletionCount OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Deletion Count - Remark:The amount of digits to be deleted from the beginning of the calling number." - DEFVAL { 0 } - ::= { cLIManipulationEntry 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.6 - cmModifiedNAI OBJECT-TYPE - SYNTAX INTEGER - { - idd(1), - ndd(2), - unknown(3) - } - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Modified NAI - Remark:Number Attribute Identity of the caller number after manipulation." - ::= { cLIManipulationEntry 6 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.7 - cmInsertionCount OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Insertion Count - Remark:The amount of digits to be inserted to the front of the calling number." - DEFVAL { 0 } - ::= { cLIManipulationEntry 7 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.8 - cmInsertedDigits OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Inserted Digits - Remark:The digits to be added to the front of the calling number." - ::= { cLIManipulationEntry 8 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.9 - cmNumberLength OBJECT-TYPE - SYNTAX INTEGER (0..16) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Number Length - Remark:The length of the caller number." - ::= { cLIManipulationEntry 9 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.4.1.1.10 - cmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { cLIManipulationEntry 10 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5 - localMSISDN OBJECT IDENTIFIER ::= { parameter 5 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1 - localMSISDNTable OBJECT-TYPE - SYNTAX SEQUENCE OF LocalMSISDNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - ::= { localMSISDN 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1.1 - localMSISDNEntry OBJECT-TYPE - SYNTAX LocalMSISDNEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Description." - INDEX { lmIndex } - ::= { localMSISDNTable 1 } - - - LocalMSISDNEntry ::= - SEQUENCE { - lmIndex - INTEGER, - lmTitle - OCTET STRING, - lmStartNumber - OCTET STRING, - lmEndNumber - OCTET STRING, - lmRowStatus - RowStatus - } - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1.1.1 - lmIndex OBJECT-TYPE - SYNTAX INTEGER (0..127) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Index - Remark:Local MSISDN entry index number ranges from 0 to 127." - ::= { localMSISDNEntry 1 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1.1.2 - lmTitle OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..7)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Title - Remark:Local MSISDN entry name for identification purpose only." - ::= { localMSISDNEntry 2 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1.1.3 - lmStartNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:Start Number - Remark:First number in the local MSISDN range." - ::= { localMSISDNEntry 3 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1.1.4 - lmEndNumber OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..16)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes Name:End Number - Remark:Last number in the local MSISDN range." - ::= { localMSISDNEntry 4 } - - - -- 1.3.6.1.4.1.1373.2.3.2.5.2.5.1.1.5 - lmRowStatus OBJECT-TYPE - SYNTAX RowStatus - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "Key Parameter:Yes" - ::= { localMSISDNEntry 5 } - - - - END - --- --- LGC-SS-XAPP-MIB.my --- diff --git a/omc/bin/mib/change b/omc/bin/mib/change deleted file mode 100644 index 6e9e698..0000000 --- a/omc/bin/mib/change +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -chown root LGC-* -chgrp root LGC-* -chmod 644 LGC-* diff --git a/omc/bin/mib/index b/omc/bin/mib/index deleted file mode 100644 index c499859..0000000 --- a/omc/bin/mib/index +++ /dev/null @@ -1,36 +0,0 @@ -LGC-MIB.my -LGC-SS-MSC-MIB.my -LGC-SS-SMEG-MIB.my -LGC-SS-OPPS-MIB.my -LGC-SS-AAS-MIB.my -LGC-SS-AUC-MIB.my -LGC-SS-EIR-MIB.my -LGC-SS-HLR-MIB.my -LGC-SS-SMPP-MIB.my -LGC-SS-SMSC-MIB.my -LGC-SS-VLR-MIB.my -LGC-SS-XAPP-MIB.my -LGC-SS-MRFC-MIB.my -LGC-SS-VMS-MIB.my -LGC-SS-PALIM-MIB.my -LGC-SS-RLS-MIB.my -LGC-SS-MHC-MIB.my -LGC-SS-MNP-MIB.my -LGC-SS-MTP3-MIB.my -LGC-SS-SCCP-MIB.my -LGC-SS-PPS-MIB.my -LGC-SS-MME-MIB.my -LGC-SS-SPGW-MIB.my -LGC-SS-IMS-MIB.my -LGC-SS-RCS-MIB.my -LGC-SS-UDM-MIB.my -LGC-SS-AUSF-MIB.my -LGC-SS-GRS-MIB.my -LGC-SS-TMG-MIB.my -LGC-SS-AMRMG-MIB.my -LGC-SS-GbC-MIB.my -LGC-SS-MCA-MIB.my -LGC-SS-RCM-MIB.my -LGC-SS-RTPPROXY-MIB.my -SNMPv2-SMI -SNMPv2-TC diff --git a/omc/bin/myipcrm b/omc/bin/myipcrm deleted file mode 100644 index 80534ab..0000000 --- a/omc/bin/myipcrm +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -ipcrm='To delete ipcrm shm' - -#program name -if [ `whoami` != "root" ] ; then - echo "Permission denied!" - exit -fi - -ipcsm=`ipcs -m` -echo "$ipcsm" - -ipcsm=`ipcs -m|grep '0x'|awk '{print $2}'` -for FILE in $ipcsm; do - ipcrm shm $FILE -done - -ipcsm=`ipcs -s` -echo "$ipcsm" - -ipcsm=`ipcs -s|grep '0x'|awk '{print $2}'` -for FILE in $ipcsm; do - ipcrm sem $FILE -done - -ipcsm=`ipcs -q` -echo "$ipcsm" - -ipcsm=`ipcs -q|grep '0x'|awk '{print $2}'` -for FILE in $ipcsm; do - ipcrm msg $FILE -done diff --git a/omc/bin/mysql_OMCmain_Auditlog_filter b/omc/bin/mysql_OMCmain_Auditlog_filter deleted file mode 100644 index 7ad348f..0000000 --- a/omc/bin/mysql_OMCmain_Auditlog_filter +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -service auditd restart -auditctl -A exit,never -S all -F uid=100 -auditctl -A entry,never -S all -F ppid=$(pgrep -x omcMain) diff --git a/omc/bin/nrtrde b/omc/bin/nrtrde deleted file mode 100644 index fd1085e975a9cfe92ad5274eb761d3f057c53b98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802872 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%0DRgv)CDU$j{HiUz^dzc3pcg#My|#e$f# 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

qHa4(`m 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

pN8I-?D20hDgeg> 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�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