Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zzha zzha
OpenXG-RAN
Commits
c36a1ef4
Commit
c36a1ef4
authored
Oct 20, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/rm_CN_UTILS' into integration_2022_wk42b
parents
b3d4321d
d671d8ad
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
0 additions
and
2103 deletions
+0
-2103
CMakeLists.txt
CMakeLists.txt
+0
-6
openair3/UTILS/conversions.c
openair3/UTILS/conversions.c
+0
-96
openair3/UTILS/conversions.h
openair3/UTILS/conversions.h
+0
-4
openair3/UTILS/enum_string.c
openair3/UTILS/enum_string.c
+0
-84
openair3/UTILS/enum_string.h
openair3/UTILS/enum_string.h
+0
-42
openair3/UTILS/mcc_mnc_itu.c
openair3/UTILS/mcc_mnc_itu.c
+0
-1817
openair3/UTILS/mcc_mnc_itu.h
openair3/UTILS/mcc_mnc_itu.h
+0
-54
No files found.
CMakeLists.txt
View file @
c36a1ef4
...
@@ -2124,12 +2124,6 @@ include_directories("${OPENAIR1_DIR}/SCHED_NR_UE")
...
@@ -2124,12 +2124,6 @@ include_directories("${OPENAIR1_DIR}/SCHED_NR_UE")
# CN libs
# CN libs
##########################
##########################
add_library
(
CN_UTILS
${
OPENAIR3_DIR
}
/UTILS/conversions.c
${
OPENAIR3_DIR
}
/UTILS/enum_string.c
${
OPENAIR3_DIR
}
/UTILS/mcc_mnc_itu.c
)
add_library
(
GTPV1U
add_library
(
GTPV1U
${
NR_RRC_DIR
}
/rrc_gNB_GTPV1U.c
${
NR_RRC_DIR
}
/rrc_gNB_GTPV1U.c
${
RRC_DIR
}
/rrc_eNB_GTPV1U.c
${
RRC_DIR
}
/rrc_eNB_GTPV1U.c
...
...
openair3/UTILS/conversions.c
deleted
100644 → 0
View file @
b3d4321d
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include <stdlib.h>
#include <stdint.h>
#include <ctype.h>
#include "conversions.h"
static
const
char
hex_to_ascii_table
[
16
]
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
,
};
static
const
signed
char
ascii_to_hex_table
[
0x100
]
=
{
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
10
,
11
,
12
,
13
,
14
,
15
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
10
,
11
,
12
,
13
,
14
,
15
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
,
-
1
};
void
hexa_to_ascii
(
uint8_t
*
from
,
char
*
to
,
size_t
length
)
{
int
i
;
for
(
i
=
0
;
i
<
length
;
i
++
)
{
uint8_t
upper
=
(
from
[
i
]
&
0xf0
)
>>
4
;
uint8_t
lower
=
from
[
i
]
&
0x0f
;
to
[
2
*
i
]
=
hex_to_ascii_table
[
upper
];
to
[
2
*
i
+
1
]
=
hex_to_ascii_table
[
lower
];
}
}
int
ascii_to_hex
(
uint8_t
*
dst
,
const
char
*
h
)
{
const
unsigned
char
*
hex
=
(
const
unsigned
char
*
)
h
;
unsigned
i
=
0
;
for
(;;)
{
int
high
,
low
;
while
(
*
hex
&&
isspace
(
*
hex
))
hex
++
;
if
(
!*
hex
)
return
1
;
high
=
ascii_to_hex_table
[
*
hex
++
];
if
(
high
<
0
)
return
0
;
while
(
*
hex
&&
isspace
(
*
hex
))
hex
++
;
if
(
!*
hex
)
return
0
;
low
=
ascii_to_hex_table
[
*
hex
++
];
if
(
low
<
0
)
return
0
;
dst
[
i
++
]
=
(
high
<<
4
)
|
low
;
}
}
openair3/UTILS/conversions.h
View file @
c36a1ef4
...
@@ -560,8 +560,4 @@ do { \
...
@@ -560,8 +560,4 @@ do { \
#define GTP_TEID_TO_ASN1 INT32_TO_OCTET_STRING
#define GTP_TEID_TO_ASN1 INT32_TO_OCTET_STRING
#define OCTET_STRING_TO_TAC OCTET_STRING_TO_INT16
#define OCTET_STRING_TO_TAC OCTET_STRING_TO_INT16
void
hexa_to_ascii
(
uint8_t
*
from
,
char
*
to
,
size_t
length
);
int
ascii_to_hex
(
uint8_t
*
dst
,
const
char
*
h
);
#endif
/* CONVERSIONS_H_ */
#endif
/* CONVERSIONS_H_ */
openair3/UTILS/enum_string.c
deleted
100644 → 0
View file @
b3d4321d
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "common_types.h"
#include "enum_string.h"
enum_to_string_t
rat_to_string
[
NUMBER_OF_RAT_TYPE
]
=
{
{
RAT_WLAN
,
"WLAN"
},
{
RAT_VIRTUAL
,
"VIRUTAL"
},
{
RAT_UTRAN
,
"UTRAN"
},
{
RAT_GERAN
,
"GERAN"
},
{
RAT_GAN
,
"GAN"
},
{
RAT_HSPA_EVOLUTION
,
"HSPA_EVOLUTION"
},
{
RAT_EUTRAN
,
"E-UTRAN"
},
{
RAT_CDMA2000_1X
,
"CDMA2000_1X"
},
{
RAT_HRPD
,
"HRPD"
},
{
RAT_UMB
,
"UMB"
},
{
RAT_EHRPD
,
"EHRPD"
},
};
enum_to_string_t
network_access_mode_to_string
[
NAM_MAX
]
=
{
{
NAM_PACKET_AND_CIRCUIT
,
"PACKET AND CIRCUIT"
},
{
NAM_RESERVED
,
"RESERVED"
},
{
NAM_ONLY_PACKET
,
"ONLY PACKET"
},
};
enum_to_string_t
all_apn_conf_ind_to_string
[
ALL_APN_MAX
]
=
{
{
ALL_APN_CONFIGURATIONS_INCLUDED
,
"ALL APN CONFIGURATIONS INCLUDED"
},
{
MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED
,
"MODIFIED ADDED APN CONFIGURATIONS INCLUDED"
},
};
enum_to_string_t
pdn_type_to_string
[
IP_MAX
]
=
{
{
IPv4
,
"IPv4"
},
{
IPv6
,
"IPv6"
},
{
IPv4_AND_v6
,
"IPv4 and IPv6"
},
{
IPv4_OR_v6
,
"IPv4 or IPv6"
},
};
static
int
compare_values
(
const
void
*
m1
,
const
void
*
m2
)
{
enum_to_string_t
*
mi1
=
(
enum_to_string_t
*
)
m1
;
enum_to_string_t
*
mi2
=
(
enum_to_string_t
*
)
m2
;
return
(
mi1
->
enum_value
-
mi2
->
enum_value
);
}
char
*
enum_to_string
(
int
enum_val
,
enum_to_string_t
*
string_table
,
int
nb_element
)
{
enum_to_string_t
*
res
;
enum_to_string_t
temp
;
temp
.
enum_value
=
enum_val
;
res
=
bsearch
(
&
temp
,
string_table
,
nb_element
,
sizeof
(
enum_to_string_t
),
compare_values
);
if
(
res
==
NULL
)
{
return
"UNKNOWN"
;
}
return
res
->
enum_value_name
;
}
openair3/UTILS/enum_string.h
deleted
100644 → 0
View file @
b3d4321d
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef ENUM_STRING_H_
#define ENUM_STRING_H_
typedef
struct
{
int
enum_value
;
char
*
enum_value_name
;
}
enum_to_string_t
;
extern
enum_to_string_t
network_access_mode_to_string
[
NAM_MAX
];
extern
enum_to_string_t
rat_to_string
[
NUMBER_OF_RAT_TYPE
];
extern
enum_to_string_t
pdn_type_to_string
[
IP_MAX
];
char
*
enum_to_string
(
int
enum_val
,
enum_to_string_t
*
string_table
,
int
nb_element
);
#define ACCESS_MODE_TO_STRING(vAL) \
enum_to_string((int)vAL, network_access_mode_to_string, \
sizeof(network_access_mode_to_string) / sizeof(enum_to_string_t))
#define PDN_TYPE_TO_STRING(vAL) \
enum_to_string((int)vAL, pdn_type_to_string, \
sizeof(pdn_type_to_string) / sizeof(enum_to_string_t))
#endif
/* ENUM_STRING_H_ */
openair3/UTILS/mcc_mnc_itu.c
deleted
100644 → 0
View file @
b3d4321d
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
#include "assertions.h"
#include "mcc_mnc_itu.h"
// From http://www.itu.int/pub/T-SP-E.212B-2014
const
mcc_mnc_list_t
mcc_mnc_list
[]
=
{
{
001
,
"01"
},
{
412
,
"01"
},
{
412
,
"20"
},
{
412
,
"40"
},
{
412
,
"50"
},
{
412
,
"80"
},
{
412
,
"88"
},
{
276
,
"01"
},
{
276
,
"02"
},
{
276
,
"03"
},
{
276
,
"04"
},
{
603
,
"01"
},
{
603
,
"02"
},
{
262
,
"01"
},
{
262
,
"02"
},
{
262
,
"03"
},
{
262
,
"04"
},
{
262
,
"05"
},
{
262
,
"06"
},
{
262
,
"07"
},
{
262
,
"08"
},
{
262
,
"09"
},
{
262
,
"10"
},
{
262
,
"11"
},
{
262
,
"12"
},
{
262
,
"13"
},
{
262
,
"14"
},
{
262
,
"15"
},
{
262
,
"16"
},
{
262
,
"17"
},
{
262
,
"18"
},
{
262
,
"19"
},
{
262
,
"20"
},
{
262
,
"41"
},
{
262
,
"42"
},
{
262
,
"43"
},
{
262
,
"77"
},
{
262
,
"78"
},
{
262
,
"79"
},
{
213
,
"03"
},
{
631
,
"02"
},
{
631
,
"04"
},
{
365
,
"010"
},
{
365
,
"840"
},
{
344
,
"030"
},
{
344
,
"920"
},
{
344
,
"930"
},
{
420
,
"01"
},
{
420
,
"03"
},
{
722
,
"010"
},
{
722
,
"020"
},
{
722
,
"070"
},
{
722
,
"310"
},
{
722
,
"320"
},
{
722
,
"330"
},
{
722
,
"341"
},
{
363
,
"01"
},
{
505
,
"01"
},
{
505
,
"02"
},
{
505
,
"03"
},
{
505
,
"04"
},
{
505
,
"05"
},
{
505
,
"06"
},
{
505
,
"07"
},
{
505
,
"08"
},
{
505
,
"09"
},
{
505
,
"10"
},
{
505
,
"11"
},
{
505
,
"12"
},
{
505
,
"13"
},
{
505
,
"14"
},
{
505
,
"15"
},
{
505
,
"16"
},
{
505
,
"17"
},
{
505
,
"18"
},
{
505
,
"19"
},
{
505
,
"20"
},
{
505
,
"21"
},
{
505
,
"22"
},
{
505
,
"23"
},
{
505
,
"24"
},
{
505
,
"25"
},
{
505
,
"26"
},
{
505
,
"27"
},
{
505
,
"28"
},
{
505
,
"30"
},
{
505
,
"31"
},
{
505
,
"62"
},
{
505
,
"68"
},
{
505
,
"71"
},
{
505
,
"72"
},
{
505
,
"88"
},
{
505
,
"90"
},
{
505
,
"99"
},
{
232
,
"01"
},
{
232
,
"02"
},
{
232
,
"03"
},
{
232
,
"04"
},
{
232
,
"05"
},
{
232
,
"06"
},
{
232
,
"07"
},
{
232
,
"09"
},
{
232
,
"10"
},
{
232
,
"11"
},
{
232
,
"12"
},
{
232
,
"14"
},
{
232
,
"15"
},
{
232
,
"91"
},
{
400
,
"01"
},
{
400
,
"02"
},
{
400
,
"03"
},
{
400
,
"04"
},
{
426
,
"01"
},
{
426
,
"02"
},
{
426
,
"03"
},
{
426
,
"04"
},
{
426
,
"05"
},
{
470
,
"01"
},
{
470
,
"02"
},
{
470
,
"03"
},
{
342
,
"600"
},
{
342
,
"820"
},
{
257
,
"01"
},
{
257
,
"02"
},
{
257
,
"03"
},
{
257
,
"04"
},
{
257
,
"05"
},
{
257
,
"06"
},
{
206
,
"01"
},
{
206
,
"02"
},
{
206
,
"05"
},
{
206
,
"06"
},
{
206
,
"07"
},
{
206
,
"10"
},
{
206
,
"20"
},
{
702
,
"67"
},
{
702
,
"68"
},
{
616
,
"01"
},
{
616
,
"02"
},
{
616
,
"03"
},
{
350
,
"000"
},
{
402
,
"11"
},
{
402
,
"17"
},
{
736
,
"01"
},
{
736
,
"02"
},
{
736
,
"03"
},
{
218
,
"03"
},
{
218
,
"05"
},
{
218
,
"90"
},
{
652
,
"01"
},
{
652
,
"02"
},
{
652
,
"04"
},
{
724
,
"00"
},
{
724
,
"01"
},
{
724
,
"02"
},
{
724
,
"03"
},
{
724
,
"04"
},
{
724
,
"05"
},
{
724
,
"06"
},
{
724
,
"10"
},
{
724
,
"11"
},
{
724
,
"15"
},
{
724
,
"16"
},
{
724
,
"18"
},
{
724
,
"23"
},
{
724
,
"24"
},
{
724
,
"30"
},
{
724
,
"31"
},
{
724
,
"32"
},
{
724
,
"33"
},
{
724
,
"34"
},
{
724
,
"35"
},
{
724
,
"36"
},
{
724
,
"37"
},
{
724
,
"38"
},
{
724
,
"39"
},
{
724
,
"54"
},
{
724
,
"99"
},
{
528
,
"11"
},
{
284
,
"01"
},
{
284
,
"05"
},
{
613
,
"02"
},
{
613
,
"03"
},
{
642
,
"01"
},
{
642
,
"02"
},
{
642
,
"03"
},
{
642
,
"07"
},
{
642
,
"82"
},
{
625
,
"01"
},
{
625
,
"02"
},
{
456
,
"01"
},
{
456
,
"02"
},
{
456
,
"03"
},
{
456
,
"04"
},
{
456
,
"05"
},
{
456
,
"06"
},
{
456
,
"08"
},
{
456
,
"18"
},
{
624
,
"01"
},
{
624
,
"02"
},
{
302
,
"220"
},
{
302
,
"221"
},
{
302
,
"222"
},
{
302
,
"250"
},
{
302
,
"270"
},
{
302
,
"290"
},
{
302
,
"320"
},
{
302
,
"340"
},
{
302
,
"360"
},
{
302
,
"370"
},
{
302
,
"380"
},
{
302
,
"390"
},
{
302
,
"490"
},
{
302
,
"500"
},
{
302
,
"510"
},
{
302
,
"530"
},
{
302
,
"560"
},
{
302
,
"570"
},
{
302
,
"590"
},
{
302
,
"610"
},
{
302
,
"620"
},
{
302
,
"630"
},
{
302
,
"640"
},
{
302
,
"656"
},
{
302
,
"660"
},
{
302
,
"670"
},
{
302
,
"680"
},
{
302
,
"690"
},
{
302
,
"710"
},
{
302
,
"720"
},
{
302
,
"730"
},
{
302
,
"740"
},
{
302
,
"760"
},
{
302
,
"770"
},
{
302
,
"780"
},
{
302
,
"860"
},
{
302
,
"880"
},
{
302
,
"940"
},
{
302
,
"990"
},
{
346
,
"140"
},
{
623
,
"01"
},
{
623
,
"02"
},
{
623
,
"03"
},
{
730
,
"01"
},
{
730
,
"02"
},
{
730
,
"03"
},
{
730
,
"04"
},
{
730
,
"05"
},
{
730
,
"06"
},
{
730
,
"07"
},
{
730
,
"08"
},
{
730
,
"09"
},
{
730
,
"10"
},
{
730
,
"11"
},
{
730
,
"12"
},
{
730
,
"13"
},
{
730
,
"14"
},
{
730
,
"15"
},
{
460
,
"00"
},
{
460
,
"01"
},
{
460
,
"03"
},
{
460
,
"04"
},
{
280
,
"01"
},
{
280
,
"10"
},
{
280
,
"20"
},
{
280
,
"22"
},
{
732
,
"001"
},
{
732
,
"002"
},
{
732
,
"020"
},
{
732
,
"099"
},
{
732
,
"101"
},
{
732
,
"102"
},
{
732
,
"103"
},
{
732
,
"111"
},
{
732
,
"123"
},
{
732
,
"130"
},
{
654
,
"01"
},
{
629
,
"01"
},
{
629
,
"10"
},
{
548
,
"01"
},
{
450
,
"02"
},
{
450
,
"03"
},
{
450
,
"06"
},
{
712
,
"01"
},
{
712
,
"02"
},
{
712
,
"03"
},
{
712
,
"04"
},
{
712
,
"20"
},
{
612
,
"02"
},
{
612
,
"03"
},
{
612
,
"04"
},
{
612
,
"05"
},
{
612
,
"06"
},
{
612
,
"07"
},
{
219
,
"01"
},
{
219
,
"02"
},
{
219
,
"10"
},
{
368
,
"01"
},
{
362
,
"51"
},
{
362
,
"69"
},
{
362
,
"91"
},
{
238
,
"01"
},
{
238
,
"02"
},
{
238
,
"03"
},
{
238
,
"04"
},
{
238
,
"06"
},
{
238
,
"08"
},
{
238
,
"10"
},
{
238
,
"12"
},
{
238
,
"13"
},
{
238
,
"20"
},
{
238
,
"28"
},
{
238
,
"30"
},
{
238
,
"43"
},
{
238
,
"66"
},
{
238
,
"77"
},
{
638
,
"01"
},
{
370
,
"01"
},
{
370
,
"02"
},
{
370
,
"03"
},
{
370
,
"04"
},
{
366
,
"110"
},
{
602
,
"01"
},
{
602
,
"02"
},
{
602
,
"03"
},
{
706
,
"01"
},
{
706
,
"02"
},
{
706
,
"03"
},
{
424
,
"02"
},
{
740
,
"00"
},
{
740
,
"01"
},
{
740
,
"02"
},
{
214
,
"01"
},
{
214
,
"03"
},
{
214
,
"04"
},
{
214
,
"05"
},
{
214
,
"06"
},
{
214
,
"07"
},
{
214
,
"08"
},
{
214
,
"09"
},
{
214
,
"10"
},
{
214
,
"11"
},
{
214
,
"12"
},
{
214
,
"13"
},
{
214
,
"14"
},
{
214
,
"15"
},
{
214
,
"16"
},
{
214
,
"17"
},
{
214
,
"18"
},
{
214
,
"19"
},
{
214
,
"20"
},
{
214
,
"21"
},
{
214
,
"22"
},
{
214
,
"24"
},
{
214
,
"25"
},
{
214
,
"26"
},
{
214
,
"27"
},
{
214
,
"28"
},
{
214
,
"29"
},
{
214
,
"30"
},
{
214
,
"31"
},
{
214
,
"32"
},
{
248
,
"01"
},
{
248
,
"02"
},
{
248
,
"03"
},
{
248
,
"04"
},
{
248
,
"05"
},
{
248
,
"06"
},
{
248
,
"07"
},
{
248
,
"08"
},
{
248
,
"09"
},
{
248
,
"71"
},
{
310
,
"010"
},
{
310
,
"012"
},
{
310
,
"013"
},
{
310
,
"016"
},
{
310
,
"017"
},
{
310
,
"020"
},
{
310
,
"028"
},
// NON ITU, ADDED BY EURECOM
{
310
,
"030"
},
{
310
,
"035"
},
{
310
,
"040"
},
{
310
,
"050"
},
{
310
,
"060"
},
{
310
,
"070"
},
{
310
,
"080"
},
{
310
,
"090"
},
{
310
,
"100"
},
{
310
,
"110"
},
{
310
,
"120"
},
{
310
,
"130"
},
{
310
,
"140"
},
{
310
,
"150"
},
{
310
,
"160"
},
{
310
,
"170"
},
{
310
,
"180"
},
{
310
,
"190"
},
{
310
,
"200"
},
{
310
,
"210"
},
{
310
,
"220"
},
{
310
,
"230"
},
{
310
,
"240"
},
{
310
,
"250"
},
{
310
,
"260"
},
{
310
,
"270"
},
{
310
,
"280"
},
{
310
,
"290"
},
{
310
,
"300"
},
{
310
,
"310"
},
{
310
,
"320"
},
{
310
,
"330"
},
{
310
,
"340"
},
{
310
,
"350"
},
{
310
,
"360"
},
{
310
,
"370"
},
{
310
,
"380"
},
{
310
,
"390"
},
{
310
,
"400"
},
{
310
,
"410"
},
{
310
,
"420"
},
{
310
,
"430"
},
{
310
,
"440"
},
{
310
,
"450"
},
{
310
,
"460"
},
{
310
,
"470"
},
{
310
,
"480"
},
{
310
,
"490"
},
{
310
,
"500"
},
{
310
,
"510"
},
{
310
,
"520"
},
{
310
,
"530"
},
{
310
,
"540"
},
{
310
,
"550"
},
{
310
,
"560"
},
{
310
,
"570"
},
{
310
,
"580"
},
{
310
,
"590"
},
{
310
,
"600"
},
{
310
,
"610"
},
{
310
,
"620"
},
{
310
,
"640"
},
{
310
,
"650"
},
{
310
,
"660"
},
{
310
,
"670"
},
{
310
,
"680"
},
{
310
,
"690"
},
{
310
,
"700"
},
{
310
,
"710"
},
{
310
,
"720"
},
{
310
,
"730"
},
{
310
,
"740"
},
{
310
,
"750"
},
{
310
,
"760"
},
{
310
,
"770"
},
{
310
,
"780"
},
{
310
,
"790"
},
{
310
,
"800"
},
{
310
,
"810"
},
{
310
,
"820"
},
{
310
,
"830"
},
{
310
,
"840"
},
{
310
,
"850"
},
{
310
,
"860"
},
{
310
,
"870"
},
{
310
,
"880"
},
{
310
,
"890"
},
{
310
,
"900"
},
{
310
,
"910"
},
{
310
,
"920"
},
{
310
,
"930"
},
{
310
,
"940"
},
{
310
,
"950"
},
{
310
,
"960"
},
{
310
,
"970"
},
{
310
,
"980"
},
{
310
,
"990"
},
{
311
,
"000"
},
{
311
,
"010"
},
{
311
,
"020"
},
{
311
,
"030"
},
{
311
,
"040"
},
{
311
,
"050"
},
{
311
,
"060"
},
{
311
,
"070"
},
{
311
,
"080"
},
{
311
,
"090"
},
{
311
,
"100"
},
{
311
,
"110"
},
{
311
,
"120"
},
{
311
,
"130"
},
{
311
,
"140"
},
{
311
,
"150"
},
{
311
,
"160"
},
{
311
,
"170"
},
{
311
,
"180"
},
{
311
,
"190"
},
{
311
,
"200"
},
{
311
,
"210"
},
{
311
,
"220"
},
{
311
,
"230"
},
{
311
,
"240"
},
{
311
,
"250"
},
{
311
,
"260"
},
{
311
,
"270"
},
{
311
,
"271"
},
{
311
,
"272"
},
{
311
,
"273"
},
{
311
,
"274"
},
{
311
,
"275"
},
{
311
,
"276"
},
{
311
,
"277"
},
{
311
,
"278"
},
{
311
,
"279"
},
{
311
,
"280"
},
{
311
,
"281"
},
{
311
,
"282"
},
{
311
,
"283"
},
{
311
,
"284"
},
{
311
,
"285"
},
{
311
,
"286"
},
{
311
,
"287"
},
{
311
,
"288"
},
{
311
,
"289"
},
{
311
,
"290"
},
{
311
,
"300"
},
{
311
,
"310"
},
{
311
,
"320"
},
{
311
,
"330"
},
{
311
,
"340"
},
{
311
,
"350"
},
{
311
,
"360"
},
{
311
,
"370"
},
{
311
,
"380"
},
{
311
,
"390"
},
{
311
,
"410"
},
{
311
,
"420"
},
{
311
,
"430"
},
{
311
,
"440"
},
{
311
,
"450"
},
{
311
,
"460"
},
{
311
,
"470"
},
{
311
,
"480"
},
{
311
,
"481"
},
{
311
,
"482"
},
{
311
,
"483"
},
{
311
,
"484"
},
{
311
,
"485"
},
{
311
,
"486"
},
{
311
,
"487"
},
{
311
,
"488"
},
{
311
,
"489"
},
{
311
,
"490"
},
{
311
,
"500"
},
{
311
,
"510"
},
{
311
,
"520"
},
{
311
,
"530"
},
{
311
,
"540"
},
{
311
,
"550"
},
{
311
,
"560"
},
{
311
,
"570"
},
{
311
,
"580"
},
{
311
,
"590"
},
{
311
,
"600"
},
{
311
,
"610"
},
{
311
,
"620"
},
{
311
,
"630"
},
{
311
,
"640"
},
{
311
,
"650"
},
{
311
,
"660"
},
{
311
,
"670"
},
{
311
,
"680"
},
{
311
,
"690"
},
{
311
,
"700"
},
{
311
,
"710"
},
{
311
,
"720"
},
{
311
,
"730"
},
{
311
,
"740"
},
{
311
,
"750"
},
{
311
,
"760"
},
{
311
,
"770"
},
{
311
,
"800"
},
{
311
,
"810"
},
{
311
,
"820"
},
{
311
,
"830"
},
{
311
,
"840"
},
{
311
,
"850"
},
{
311
,
"860"
},
{
311
,
"870"
},
{
311
,
"880"
},
{
311
,
"890"
},
{
311
,
"900"
},
{
311
,
"910"
},
{
311
,
"920"
},
{
311
,
"940"
},
{
311
,
"950"
},
{
311
,
"960"
},
{
311
,
"970"
},
{
311
,
"980"
},
{
311
,
"990"
},
{
312
,
"010"
},
{
312
,
"020"
},
{
312
,
"030"
},
{
312
,
"040"
},
{
312
,
"050"
},
{
312
,
"060"
},
{
312
,
"070"
},
{
312
,
"080"
},
{
312
,
"090"
},
{
312
,
"100"
},
{
312
,
"110"
},
{
312
,
"120"
},
{
312
,
"130"
},
{
312
,
"140"
},
{
312
,
"150"
},
{
312
,
"160"
},
{
312
,
"170"
},
{
312
,
"180"
},
{
312
,
"190"
},
{
312
,
"200"
},
{
313
,
"100"
},
{
316
,
"010"
},
{
316
,
"011"
},
{
636
,
"01"
},
{
750
,
"001"
},
{
250
,
"01"
},
{
250
,
"02"
},
{
250
,
"03"
},
{
250
,
"04"
},
{
250
,
"05"
},
{
250
,
"07"
},
{
250
,
"10"
},
{
250
,
"11"
},
{
250
,
"12"
},
{
250
,
"13"
},
{
250
,
"16"
},
{
250
,
"17"
},
{
250
,
"19"
},
{
250
,
"20"
},
{
250
,
"28"
},
{
250
,
"39"
},
{
250
,
"44"
},
{
250
,
"92"
},
{
250
,
"93"
},
{
250
,
"99"
},
{
274
,
"02"
},
{
288
,
"01"
},
{
288
,
"02"
},
{
542
,
"01"
},
{
542
,
"02"
},
{
542
,
"03"
},
{
244
,
"03"
},
{
244
,
"04"
},
{
244
,
"05"
},
{
244
,
"09"
},
{
244
,
"10"
},
{
244
,
"12"
},
{
244
,
"13"
},
{
244
,
"14"
},
{
244
,
"16"
},
{
244
,
"21"
},
{
244
,
"29"
},
{
244
,
"91"
},
{
208
,
"01"
},
{
208
,
"02"
},
{
208
,
"03"
},
{
208
,
"04"
},
{
208
,
"05"
},
{
208
,
"06"
},
{
208
,
"07"
},
{
208
,
"09"
},
{
208
,
"10"
},
{
208
,
"11"
},
{
208
,
"13"
},
{
208
,
"14"
},
{
208
,
"15"
},
{
208
,
"20"
},
{
208
,
"21"
},
{
208
,
"22"
},
{
208
,
"23"
},
{
208
,
"24"
},
{
208
,
"25"
},
{
208
,
"26"
},
{
208
,
"27"
},
{
208
,
"28"
},
{
208
,
"29"
},
{
208
,
"30"
},
{
208
,
"31"
},
{
208
,
"34"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"88"
},
{
208
,
"89"
},
{
208
,
"90"
},
{
208
,
"91"
},
{
208
,
"92"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"93"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"94"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"95"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"96"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"97"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"98"
},
// NON ITU, ADDED BY EURECOM
{
208
,
"99"
},
// NON ITU, ADDED BY EURECOM
{
647
,
"00"
},
{
647
,
"02"
},
{
647
,
"10"
},
{
628
,
"01"
},
{
628
,
"02"
},
{
628
,
"03"
},
{
628
,
"04"
},
{
628
,
"05"
},
{
607
,
"01"
},
{
607
,
"02"
},
{
607
,
"03"
},
{
607
,
"04"
},
{
282
,
"01"
},
{
282
,
"02"
},
{
282
,
"03"
},
{
282
,
"04"
},
{
282
,
"05"
},
{
282
,
"06"
},
{
282
,
"07"
},
{
620
,
"01"
},
{
620
,
"02"
},
{
620
,
"03"
},
{
620
,
"04"
},
{
620
,
"11"
},
{
266
,
"01"
},
{
266
,
"09"
},
{
202
,
"01"
},
{
202
,
"02"
},
{
202
,
"03"
},
{
202
,
"04"
},
{
202
,
"05"
},
{
202
,
"06"
},
{
202
,
"07"
},
{
202
,
"09"
},
{
202
,
"10"
},
{
352
,
"110"
},
{
290
,
"01"
},
{
340
,
"01"
},
{
340
,
"02"
},
{
340
,
"03"
},
{
340
,
"08"
},
{
340
,
"10"
},
{
340
,
"20"
},
{
704
,
"01"
},
{
704
,
"02"
},
{
704
,
"03"
},
{
611
,
"01"
},
{
611
,
"02"
},
{
611
,
"05"
},
{
627
,
"01"
},
{
632
,
"01"
},
{
632
,
"02"
},
{
738
,
"002"
},
{
738
,
"01"
},
{
340
,
"11"
},
{
372
,
"01"
},
{
372
,
"02"
},
{
372
,
"03"
},
{
708
,
"001"
},
{
708
,
"002"
},
{
708
,
"040"
},
{
454
,
"00"
},
{
454
,
"01"
},
{
454
,
"02"
},
{
454
,
"03"
},
{
454
,
"04"
},
{
454
,
"05"
},
{
454
,
"06"
},
{
454
,
"07"
},
{
454
,
"08"
},
{
454
,
"09"
},
{
454
,
"10"
},
{
454
,
"11"
},
{
454
,
"12"
},
{
454
,
"15"
},
{
454
,
"16"
},
{
454
,
"18"
},
{
454
,
"19"
},
{
454
,
"2X"
},
{
454
,
"3X"
},
{
216
,
"01"
},
{
216
,
"30"
},
{
216
,
"70"
},
{
216
,
"71"
},
{
404
,
"00"
},
{
404
,
"01"
},
{
404
,
"02"
},
{
404
,
"03"
},
{
404
,
"04"
},
{
404
,
"05"
},
{
404
,
"06"
},
{
404
,
"07"
},
{
404
,
"09"
},
{
404
,
"10"
},
{
404
,
"11"
},
{
404
,
"12"
},
{
404
,
"13"
},
{
404
,
"14"
},
{
404
,
"15"
},
{
404
,
"16"
},
{
404
,
"17"
},
{
404
,
"18"
},
{
404
,
"19"
},
{
404
,
"20"
},
{
404
,
"21"
},
{
404
,
"22"
},
{
404
,
"23"
},
{
404
,
"24"
},
{
404
,
"25"
},
{
404
,
"27"
},
{
404
,
"29"
},
{
404
,
"30"
},
{
404
,
"31"
},
{
404
,
"33"
},
{
404
,
"34"
},
{
404
,
"35"
},
{
404
,
"36"
},
{
404
,
"37"
},
{
404
,
"38"
},
{
404
,
"40"
},
{
404
,
"41"
},
{
404
,
"42"
},
{
404
,
"43"
},
{
404
,
"44"
},
{
404
,
"46"
},
{
404
,
"48"
},
{
404
,
"49"
},
{
404
,
"50"
},
{
404
,
"51"
},
{
404
,
"52"
},
{
404
,
"53"
},
{
404
,
"54"
},
{
404
,
"55"
},
{
404
,
"56"
},
{
404
,
"57"
},
{
404
,
"58"
},
{
404
,
"59"
},
{
404
,
"60"
},
{
404
,
"61"
},
{
404
,
"62"
},
{
404
,
"63"
},
{
404
,
"64"
},
{
404
,
"65"
},
{
404
,
"66"
},
{
404
,
"67"
},
{
404
,
"68"
},
{
404
,
"69"
},
{
404
,
"70"
},
{
404
,
"71"
},
{
404
,
"72"
},
{
404
,
"73"
},
{
404
,
"74"
},
{
404
,
"75"
},
{
404
,
"76"
},
{
404
,
"77"
},
{
404
,
"78"
},
{
404
,
"79"
},
{
404
,
"80"
},
{
404
,
"81"
},
{
404
,
"82"
},
{
404
,
"83"
},
{
404
,
"84"
},
{
404
,
"85"
},
{
404
,
"86"
},
{
404
,
"87"
},
{
404
,
"88"
},
{
404
,
"89"
},
{
404
,
"90"
},
{
404
,
"91"
},
{
404
,
"92"
},
{
404
,
"93"
},
{
404
,
"94"
},
{
404
,
"95"
},
{
404
,
"96"
},
{
404
,
"97"
},
{
404
,
"98"
},
{
404
,
"99"
},
{
405
,
"000"
},
{
405
,
"005"
},
{
405
,
"006"
},
{
405
,
"007"
},
{
405
,
"009"
},
{
405
,
"010"
},
{
405
,
"011"
},
{
405
,
"012"
},
{
405
,
"013"
},
{
405
,
"014"
},
{
405
,
"018"
},
{
405
,
"020"
},
{
405
,
"021"
},
{
405
,
"022"
},
{
405
,
"025"
},
{
405
,
"027"
},
{
405
,
"029"
},
{
405
,
"030"
},
{
405
,
"031"
},
{
405
,
"032"
},
{
405
,
"033"
},
{
405
,
"034"
},
{
405
,
"035"
},
{
405
,
"036"
},
{
405
,
"037"
},
{
405
,
"038"
},
{
405
,
"039"
},
{
405
,
"040"
},
{
405
,
"041"
},
{
405
,
"042"
},
{
405
,
"043"
},
{
405
,
"044"
},
{
405
,
"045"
},
{
405
,
"046"
},
{
405
,
"047"
},
{
405
,
"08"
},
{
405
,
"12"
},
{
405
,
"15"
},
{
405
,
"17"
},
{
405
,
"23"
},
{
405
,
"28"
},
{
405
,
"52"
},
{
405
,
"53"
},
{
405
,
"54"
},
{
405
,
"55"
},
{
405
,
"56"
},
{
405
,
"66"
},
{
405
,
"67"
},
{
405
,
"68"
},
{
405
,
"70"
},
{
405
,
"71"
},
{
405
,
"72"
},
{
405
,
"73"
},
{
405
,
"74"
},
{
405
,
"750"
},
{
405
,
"751"
},
{
405
,
"752"
},
{
405
,
"753"
},
{
405
,
"754"
},
{
405
,
"755"
},
{
405
,
"76"
},
{
405
,
"77"
},
{
405
,
"799"
},
{
405
,
"800"
},
{
405
,
"801"
},
{
405
,
"802"
},
{
405
,
"803"
},
{
405
,
"804"
},
{
405
,
"805"
},
{
405
,
"806"
},
{
405
,
"807"
},
{
405
,
"808"
},
{
405
,
"809"
},
{
405
,
"81"
},
{
405
,
"82"
},
{
405
,
"83"
},
{
405
,
"84"
},
{
405
,
"85"
},
{
405
,
"86"
},
{
510
,
"00"
},
{
510
,
"01"
},
{
510
,
"08"
},
{
510
,
"10"
},
{
510
,
"11"
},
{
510
,
"21"
},
{
510
,
"28"
},
{
432
,
"11"
},
{
432
,
"14"
},
{
432
,
"19"
},
{
418
,
"05"
},
{
418
,
"20"
},
{
418
,
"30"
},
{
418
,
"40"
},
{
418
,
"47"
},
{
418
,
"48"
},
{
418
,
"49"
},
{
418
,
"62"
},
{
418
,
"70"
},
{
418
,
"80"
},
{
418
,
"81"
},
{
418
,
"83"
},
{
418
,
"84"
},
{
418
,
"85"
},
{
418
,
"86"
},
{
418
,
"87"
},
{
418
,
"88"
},
{
418
,
"89"
},
{
418
,
"91"
},
{
418
,
"92"
},
{
418
,
"93"
},
{
418
,
"94"
},
{
272
,
"01"
},
{
272
,
"02"
},
{
272
,
"03"
},
{
272
,
"07"
},
{
272
,
"09"
},
{
274
,
"01"
},
{
274
,
"02"
},
{
274
,
"03"
},
{
274
,
"04"
},
{
274
,
"07"
},
{
425
,
"01"
},
{
425
,
"02"
},
{
425
,
"03"
},
{
425
,
"04"
},
{
425
,
"06"
},
{
425
,
"07"
},
{
425
,
"08"
},
{
425
,
"11"
},
{
425
,
"12"
},
{
425
,
"13"
},
{
425
,
"14"
},
{
425
,
"15"
},
{
425
,
"16"
},
{
425
,
"17"
},
{
425
,
"18"
},
{
425
,
"19"
},
{
425
,
"20"
},
{
425
,
"21"
},
{
222
,
"01"
},
{
222
,
"02"
},
{
222
,
"10"
},
{
222
,
"77"
},
{
222
,
"88"
},
{
222
,
"98"
},
{
222
,
"99"
},
{
338
,
"020"
},
{
338
,
"050"
},
{
338
,
"110"
},
{
440
,
"01"
},
{
440
,
"02"
},
{
440
,
"03"
},
{
440
,
"04"
},
{
440
,
"06"
},
{
440
,
"07"
},
{
440
,
"08"
},
{
440
,
"09"
},
{
440
,
"10"
},
{
440
,
"11"
},
{
440
,
"12"
},
{
440
,
"13"
},
{
440
,
"14"
},
{
440
,
"15"
},
{
440
,
"16"
},
{
440
,
"17"
},
{
440
,
"18"
},
{
440
,
"19"
},
{
440
,
"20"
},
{
440
,
"21"
},
{
440
,
"22"
},
{
440
,
"23"
},
{
440
,
"24"
},
{
440
,
"25"
},
{
440
,
"26"
},
{
440
,
"27"
},
{
440
,
"28"
},
{
440
,
"29"
},
{
440
,
"30"
},
{
440
,
"31"
},
{
440
,
"32"
},
{
440
,
"33"
},
{
440
,
"34"
},
{
440
,
"35"
},
{
440
,
"36"
},
{
440
,
"37"
},
{
440
,
"38"
},
{
440
,
"39"
},
{
440
,
"40"
},
{
440
,
"41"
},
{
440
,
"42"
},
{
440
,
"43"
},
{
440
,
"44"
},
{
440
,
"45"
},
{
440
,
"46"
},
{
440
,
"47"
},
{
440
,
"48"
},
{
440
,
"49"
},
{
440
,
"50"
},
{
440
,
"51"
},
{
440
,
"52"
},
{
440
,
"53"
},
{
440
,
"54"
},
{
440
,
"55"
},
{
440
,
"56"
},
{
440
,
"58"
},
{
440
,
"60"
},
{
440
,
"61"
},
{
440
,
"62"
},
{
440
,
"63"
},
{
440
,
"64"
},
{
440
,
"65"
},
{
440
,
"66"
},
{
440
,
"67"
},
{
440
,
"68"
},
{
440
,
"69"
},
{
440
,
"70"
},
{
440
,
"71"
},
{
440
,
"72"
},
{
440
,
"73"
},
{
440
,
"74"
},
{
440
,
"75"
},
{
440
,
"76"
},
{
440
,
"77"
},
{
440
,
"78"
},
{
440
,
"79"
},
{
440
,
"80"
},
{
440
,
"81"
},
{
440
,
"82"
},
{
440
,
"83"
},
{
440
,
"84"
},
{
440
,
"85"
},
{
440
,
"86"
},
{
440
,
"87"
},
{
440
,
"88"
},
{
440
,
"89"
},
{
440
,
"90"
},
{
440
,
"92"
},
{
440
,
"93"
},
{
440
,
"94"
},
{
440
,
"95"
},
{
440
,
"96"
},
{
440
,
"97"
},
{
440
,
"98"
},
{
440
,
"99"
},
{
441
,
"40"
},
{
441
,
"41"
},
{
441
,
"42"
},
{
441
,
"43"
},
{
441
,
"44"
},
{
441
,
"45"
},
{
441
,
"50"
},
{
441
,
"51"
},
{
441
,
"61"
},
{
441
,
"62"
},
{
441
,
"63"
},
{
441
,
"64"
},
{
441
,
"65"
},
{
441
,
"70"
},
{
441
,
"90"
},
{
441
,
"91"
},
{
441
,
"92"
},
{
441
,
"93"
},
{
441
,
"94"
},
{
441
,
"98"
},
{
441
,
"99"
},
{
416
,
"01"
},
{
416
,
"02"
},
{
416
,
"03"
},
{
416
,
"77"
},
{
401
,
"01"
},
{
401
,
"02"
},
{
639
,
"02"
},
{
639
,
"03"
},
{
437
,
"01"
},
{
419
,
"02"
},
{
419
,
"03"
},
{
419
,
"04"
},
{
457
,
"01"
},
{
457
,
"02"
},
{
457
,
"08"
},
{
651
,
"01"
},
{
651
,
"02"
},
{
247
,
"01"
},
{
247
,
"02"
},
{
247
,
"03"
},
{
247
,
"04"
},
{
247
,
"05"
},
{
247
,
"06"
},
{
247
,
"07"
},
{
247
,
"08"
},
{
247
,
"09"
},
{
294
,
"01"
},
{
294
,
"02"
},
{
294
,
"03"
},
{
294
,
"10"
},
{
294
,
"11"
},
{
415
,
"05"
},
{
415
,
"32"
},
{
415
,
"33"
},
{
415
,
"34"
},
{
415
,
"35"
},
{
415
,
"36"
},
{
415
,
"37"
},
{
415
,
"38"
},
{
415
,
"39"
},
{
618
,
"04"
},
{
228
,
"01"
},
{
295
,
"01"
},
{
295
,
"02"
},
{
295
,
"05"
},
{
295
,
"06"
},
{
246
,
"01"
},
{
246
,
"02"
},
{
246
,
"03"
},
{
270
,
"01"
},
{
270
,
"02"
},
{
270
,
"10"
},
{
270
,
"77"
},
{
270
,
"78"
},
{
270
,
"99"
},
{
455
,
"00"
},
{
455
,
"01"
},
{
455
,
"02"
},
{
455
,
"03"
},
{
455
,
"04"
},
{
455
,
"05"
},
{
455
,
"06"
},
{
646
,
"01"
},
{
646
,
"02"
},
{
646
,
"04"
},
{
502
,
"10"
},
{
502
,
"12"
},
{
502
,
"13"
},
{
502
,
"14"
},
{
502
,
"16"
},
{
502
,
"17"
},
{
502
,
"18"
},
{
502
,
"19"
},
{
502
,
"20"
},
{
650
,
"01"
},
{
650
,
"10"
},
{
472
,
"01"
},
{
610
,
"01"
},
{
278
,
"01"
},
{
278
,
"21"
},
{
278
,
"77"
},
{
604
,
"00"
},
{
604
,
"01"
},
{
340
,
"12"
},
{
617
,
"01"
},
{
617
,
"02"
},
{
617
,
"03"
},
{
617
,
"10"
},
{
609
,
"01"
},
{
609
,
"02"
},
{
609
,
"10"
},
{
334
,
"001"
},
{
334
,
"010"
},
{
334
,
"020"
},
{
334
,
"030"
},
{
334
,
"040"
},
{
334
,
"050"
},
{
334
,
"060"
},
{
334
,
"066"
},
{
334
,
"070"
},
{
334
,
"080"
},
{
334
,
"090"
},
{
550
,
"01"
},
{
259
,
"01"
},
{
259
,
"02"
},
{
259
,
"04"
},
{
259
,
"05"
},
{
259
,
"99"
},
{
428
,
"99"
},
{
297
,
"01"
},
{
297
,
"02"
},
{
297
,
"03"
},
{
354
,
"860"
},
{
643
,
"01"
},
{
643
,
"03"
},
{
643
,
"04"
},
{
414
,
"01"
},
{
649
,
"01"
},
{
649
,
"02"
},
{
649
,
"03"
},
{
542
,
"02"
},
{
429
,
"01"
},
{
710
,
"21"
},
{
710
,
"73"
},
{
614
,
"01"
},
{
614
,
"02"
},
{
614
,
"03"
},
{
621
,
"20"
},
{
621
,
"30"
},
{
621
,
"40"
},
{
621
,
"50"
},
{
621
,
"60"
},
{
555
,
"01"
},
{
242
,
"01"
},
{
242
,
"02"
},
{
242
,
"03"
},
{
242
,
"04"
},
{
242
,
"05"
},
{
242
,
"07"
},
{
242
,
"08"
},
{
242
,
"09"
},
{
242
,
"10"
},
{
242
,
"11"
},
{
242
,
"12"
},
{
242
,
"20"
},
{
242
,
"21"
},
{
242
,
"22"
},
{
242
,
"23"
},
{
242
,
"24"
},
{
546
,
"01"
},
{
530
,
"00"
},
{
530
,
"01"
},
{
530
,
"02"
},
{
530
,
"03"
},
{
530
,
"04"
},
{
530
,
"05"
},
{
530
,
"06"
},
{
530
,
"07"
},
{
530
,
"24"
},
{
422
,
"02"
},
{
422
,
"03"
},
{
422
,
"04"
},
{
641
,
"01"
},
{
641
,
"10"
},
{
641
,
"11"
},
{
641
,
"14"
},
{
641
,
"18"
},
{
641
,
"22"
},
{
641
,
"30"
},
{
641
,
"33"
},
{
641
,
"40"
},
{
641
,
"44"
},
{
641
,
"66"
},
{
434
,
"01"
},
{
434
,
"02"
},
{
434
,
"04"
},
{
434
,
"05"
},
{
434
,
"07"
},
{
410
,
"01"
},
{
410
,
"03"
},
{
410
,
"04"
},
{
410
,
"06"
},
{
410
,
"07"
},
{
552
,
"01"
},
{
714
,
"01"
},
{
714
,
"02"
},
{
714
,
"020"
},
{
714
,
"03"
},
{
714
,
"04"
},
{
537
,
"01"
},
{
537
,
"02"
},
{
537
,
"03"
},
{
744
,
"01"
},
{
744
,
"02"
},
{
744
,
"03"
},
{
204
,
"01"
},
{
204
,
"02"
},
{
204
,
"03"
},
{
204
,
"04"
},
{
204
,
"05"
},
{
204
,
"06"
},
{
204
,
"07"
},
{
204
,
"08"
},
{
204
,
"09"
},
{
204
,
"10"
},
{
204
,
"12"
},
{
204
,
"13"
},
{
204
,
"15"
},
{
204
,
"16"
},
{
204
,
"17"
},
{
204
,
"18"
},
{
204
,
"19"
},
{
204
,
"20"
},
{
204
,
"21"
},
{
204
,
"22"
},
{
204
,
"23"
},
{
204
,
"24"
},
{
204
,
"25"
},
{
204
,
"26"
},
{
204
,
"28"
},
{
204
,
"29"
},
{
204
,
"60"
},
{
204
,
"61"
},
{
204
,
"64"
},
{
204
,
"65"
},
{
204
,
"66"
},
{
204
,
"67"
},
{
204
,
"68"
},
{
204
,
"69"
},
{
716
,
"10"
},
{
515
,
"01"
},
{
515
,
"02"
},
{
515
,
"03"
},
{
515
,
"05"
},
{
260
,
"01"
},
{
260
,
"02"
},
{
260
,
"03"
},
{
260
,
"04"
},
{
260
,
"05"
},
{
260
,
"06"
},
{
260
,
"07"
},
{
260
,
"08"
},
{
260
,
"09"
},
{
260
,
"10"
},
{
260
,
"11"
},
{
260
,
"12"
},
{
260
,
"13"
},
{
260
,
"14"
},
{
260
,
"15"
},
{
260
,
"16"
},
{
260
,
"17"
},
{
260
,
"18"
},
{
260
,
"19"
},
{
260
,
"20"
},
{
260
,
"21"
},
{
260
,
"22"
},
{
260
,
"23"
},
{
260
,
"24"
},
{
260
,
"25"
},
{
260
,
"26"
},
{
260
,
"27"
},
{
260
,
"28"
},
{
260
,
"29"
},
{
260
,
"30"
},
{
260
,
"31"
},
{
260
,
"32"
},
{
260
,
"33"
},
{
260
,
"34"
},
{
260
,
"98"
},
{
547
,
"10"
},
{
547
,
"15"
},
{
547
,
"20"
},
{
268
,
"01"
},
{
268
,
"03"
},
{
268
,
"05"
},
{
268
,
"06"
},
{
427
,
"01"
},
{
427
,
"06"
},
{
630
,
"01"
},
{
630
,
"02"
},
{
630
,
"05"
},
{
630
,
"86"
},
{
630
,
"88"
},
{
630
,
"89"
},
{
630
,
"90"
},
{
230
,
"01"
},
{
230
,
"02"
},
{
230
,
"03"
},
{
230
,
"04"
},
{
230
,
"05"
},
{
230
,
"07"
},
{
230
,
"08"
},
{
230
,
"98"
},
{
417
,
"01"
},
{
417
,
"02"
},
{
417
,
"09"
},
{
226
,
"01"
},
{
226
,
"02"
},
{
226
,
"03"
},
{
226
,
"04"
},
{
226
,
"05"
},
{
226
,
"06"
},
{
226
,
"10"
},
{
226
,
"11"
},
{
234
,
"00"
},
{
234
,
"01"
},
{
234
,
"02"
},
{
234
,
"03"
},
{
234
,
"04"
},
{
234
,
"05"
},
{
234
,
"06"
},
{
234
,
"07"
},
{
234
,
"08"
},
{
234
,
"09"
},
{
234
,
"10"
},
{
234
,
"11"
},
{
234
,
"12"
},
{
234
,
"13"
},
{
234
,
"14"
},
{
234
,
"15"
},
{
234
,
"16"
},
{
234
,
"17"
},
{
234
,
"18"
},
{
234
,
"19"
},
{
234
,
"20"
},
{
234
,
"21"
},
{
234
,
"22"
},
{
234
,
"23"
},
{
234
,
"24"
},
{
234
,
"25"
},
{
234
,
"26"
},
{
234
,
"27"
},
{
234
,
"28"
},
{
234
,
"29"
},
{
234
,
"30"
},
{
234
,
"31"
},
{
234
,
"32"
},
{
234
,
"33"
},
{
234
,
"34"
},
{
234
,
"35"
},
{
234
,
"36"
},
{
234
,
"37"
},
{
234
,
"38"
},
{
234
,
"39"
},
{
234
,
"50"
},
{
234
,
"51"
},
{
234
,
"52"
},
{
234
,
"53"
},
{
234
,
"55"
},
{
234
,
"58"
},
{
234
,
"76"
},
{
234
,
"78"
},
{
234
,
"86"
},
{
235
,
"00"
},
{
235
,
"01"
},
{
235
,
"02"
},
{
235
,
"77"
},
{
235
,
"91"
},
{
235
,
"92"
},
{
235
,
"94"
},
{
235
,
"95"
},
{
635
,
"10"
},
{
635
,
"13"
},
{
635
,
"14"
},
{
635
,
"17"
},
{
358
,
"110"
},
{
356
,
"110"
},
{
292
,
"01"
},
{
308
,
"01"
},
{
360
,
"110"
},
{
540
,
"02"
},
{
549
,
"01"
},
{
549
,
"27"
},
{
626
,
"01"
},
{
608
,
"01"
},
{
608
,
"02"
},
{
608
,
"03"
},
{
608
,
"04"
},
{
220
,
"01"
},
{
220
,
"03"
},
{
220
,
"05"
},
{
633
,
"01"
},
{
633
,
"02"
},
{
633
,
"10"
},
{
619
,
"01"
},
{
619
,
"02"
},
{
619
,
"03"
},
{
619
,
"04"
},
{
619
,
"05"
},
{
619
,
"25"
},
{
619
,
"40"
},
{
619
,
"50"
},
{
525
,
"01"
},
{
525
,
"02"
},
{
525
,
"03"
},
{
525
,
"05"
},
{
525
,
"12"
},
{
231
,
"01"
},
{
231
,
"02"
},
{
231
,
"04"
},
{
231
,
"05"
},
{
293
,
"40"
},
{
293
,
"41"
},
{
293
,
"64"
},
{
293
,
"70"
},
{
634
,
"01"
},
{
634
,
"02"
},
{
634
,
"05"
},
{
634
,
"06"
},
{
634
,
"99"
},
{
413
,
"02"
},
{
413
,
"03"
},
{
659
,
"12"
},
{
659
,
"91"
},
{
659
,
"92"
},
{
659
,
"95"
},
{
659
,
"97"
},
{
655
,
"01"
},
{
655
,
"02"
},
{
655
,
"04"
},
{
655
,
"06"
},
{
655
,
"07"
},
{
655
,
"10"
},
{
655
,
"11"
},
{
655
,
"12"
},
{
655
,
"13"
},
{
655
,
"14"
},
{
655
,
"19"
},
{
655
,
"21"
},
{
655
,
"25"
},
{
655
,
"27"
},
{
655
,
"30"
},
{
655
,
"31"
},
{
655
,
"32"
},
{
655
,
"33"
},
{
655
,
"34"
},
{
655
,
"35"
},
{
655
,
"36"
},
{
655
,
"41"
},
{
655
,
"50"
},
{
655
,
"51"
},
{
240
,
"01"
},
{
240
,
"02"
},
{
240
,
"03"
},
{
240
,
"04"
},
{
240
,
"05"
},
{
240
,
"06"
},
{
240
,
"08"
},
{
240
,
"10"
},
{
240
,
"12"
},
{
240
,
"13"
},
{
240
,
"14"
},
{
240
,
"15"
},
{
240
,
"16"
},
{
240
,
"17"
},
{
240
,
"18"
},
{
240
,
"19"
},
{
240
,
"20"
},
{
240
,
"21"
},
{
240
,
"22"
},
{
240
,
"23"
},
{
240
,
"24"
},
{
240
,
"26"
},
{
240
,
"27"
},
{
240
,
"28"
},
{
240
,
"29"
},
{
240
,
"30"
},
{
240
,
"32"
},
{
240
,
"33"
},
{
240
,
"34"
},
{
240
,
"35"
},
{
240
,
"36"
},
{
240
,
"37"
},
{
240
,
"38"
},
{
240
,
"40"
},
{
240
,
"41"
},
{
240
,
"42"
},
{
240
,
"43"
},
{
240
,
"44"
},
{
240
,
"45"
},
{
240
,
"65"
},
{
240
,
"66"
},
{
240
,
"67"
},
{
240
,
"68"
},
{
240
,
"69"
},
{
228
,
"01"
},
{
228
,
"02"
},
{
228
,
"03"
},
{
228
,
"05"
},
{
228
,
"06"
},
{
228
,
"08"
},
{
228
,
"12"
},
{
228
,
"51"
},
{
746
,
"02"
},
{
746
,
"03"
},
{
746
,
"04"
},
{
746
,
"05"
},
{
653
,
"01"
},
{
653
,
"10"
},
{
436
,
"01"
},
{
436
,
"02"
},
{
436
,
"03"
},
{
436
,
"04"
},
{
436
,
"05"
},
{
640
,
"02"
},
{
640
,
"03"
},
{
640
,
"04"
},
{
640
,
"05"
},
{
622
,
"01"
},
{
622
,
"02"
},
{
520
,
"00"
},
{
520
,
"01"
},
{
520
,
"02"
},
{
520
,
"03"
},
{
520
,
"04"
},
{
520
,
"05"
},
{
520
,
"15"
},
{
520
,
"18"
},
{
520
,
"20"
},
{
520
,
"23"
},
{
520
,
"47"
},
{
520
,
"99"
},
{
514
,
"01"
},
{
514
,
"02"
},
{
514
,
"03"
},
{
615
,
"01"
},
{
539
,
"01"
},
{
539
,
"43"
},
{
539
,
"88"
},
{
374
,
"12"
},
{
374
,
"130"
},
{
374
,
"140"
},
{
605
,
"02"
},
{
605
,
"03"
},
{
438
,
"01"
},
{
438
,
"02"
},
{
376
,
"350"
},
{
376
,
"352"
},
{
376
,
"360"
},
{
286
,
"01"
},
{
286
,
"02"
},
{
286
,
"03"
},
{
286
,
"04"
},
{
553
,
"01"
},
{
255
,
"01"
},
{
255
,
"02"
},
{
255
,
"03"
},
{
255
,
"04"
},
{
255
,
"05"
},
{
255
,
"06"
},
{
255
,
"07"
},
{
255
,
"21"
},
{
748
,
"00"
},
{
748
,
"01"
},
{
748
,
"03"
},
{
748
,
"07"
},
{
748
,
"10"
},
{
541
,
"01"
},
{
541
,
"05"
},
{
541
,
"07"
},
{
734
,
"02"
},
{
734
,
"04"
},
{
734
,
"06"
},
{
348
,
"170"
},
{
348
,
"370"
},
{
348
,
"570"
},
{
348
,
"770"
},
{
452
,
"01"
},
{
452
,
"02"
},
{
452
,
"03"
},
{
452
,
"04"
},
{
452
,
"06"
},
{
452
,
"07"
},
{
452
,
"08"
},
{
421
,
"01"
},
{
421
,
"02"
},
{
421
,
"04"
},
{
645
,
"01"
},
{
645
,
"02"
},
{
645
,
"03"
},
{
648
,
"01"
},
{
648
,
"03"
},
{
648
,
"04"
},
{
0
,
"end"
}
// end of list
};
int
find_mnc_length
(
const
char
mcc_digit1P
,
const
char
mcc_digit2P
,
const
char
mcc_digit3P
,
const
char
mnc_digit1P
,
const
char
mnc_digit2P
,
const
char
mnc_digit3P
)
{
int
mcc
=
100
*
(
mcc_digit1P
-
48
)
+
10
*
(
mcc_digit2P
-
48
)
+
(
mcc_digit3P
-
48
);
char
mnc3
[
4
];
char
mnc2
[
3
];
int
index_l
=
0
;
AssertFatal
((
mcc_digit1P
>=
'0'
)
&&
(
mcc_digit1P
<=
'9'
)
&&
(
mcc_digit2P
>=
'0'
)
&&
(
mcc_digit2P
<=
'9'
)
&&
(
mcc_digit3P
>=
'0'
)
&&
(
mcc_digit3P
<=
'9'
)
,
"BAD MCC PARAMETER (%d%d%d)!
\n
"
,
mcc_digit1P
,
mcc_digit2P
,
mcc_digit3P
);
AssertFatal
((
mnc_digit1P
>=
'0'
)
&&
(
mnc_digit1P
<=
'9'
)
&&
(
mnc_digit2P
>=
'0'
)
&&
(
mnc_digit2P
<=
'9'
)
,
"BAD MNC PARAMETER ((%d)%d%d)!
\n
"
,
mnc_digit1P
,
mnc_digit2P
,
mnc_digit3P
);
mnc2
[
0
]
=
mnc_digit1P
;
mnc2
[
1
]
=
mnc_digit2P
;
mnc2
[
2
]
=
'\0'
;
mnc3
[
0
]
=
mnc_digit1P
;
mnc3
[
1
]
=
mnc_digit2P
;
mnc3
[
2
]
=
mnc_digit3P
;
mnc3
[
3
]
=
'\0'
;
do
{
if
(
mcc_mnc_list
[
index_l
].
mcc
==
mcc
)
{
//fprintf(stdout, "Found MCC %d!\n", mcc);
do
{
//fprintf(stdout, "Comparing MNCs %s, %s with %s\n", mnc2, mnc3, mcc_mnc_list[index_l].mnc);
if
(
strcmp
(
mnc2
,
mcc_mnc_list
[
index_l
].
mnc
)
==
0
)
{
return
2
;
}
else
if
(
strcmp
(
mnc3
,
mcc_mnc_list
[
index_l
].
mnc
)
==
0
)
{
return
3
;
}
index_l
+=
1
;
}
while
(
mcc_mnc_list
[
index_l
].
mcc
==
mcc
);
return
0
;
}
index_l
+=
1
;
}
while
(
mcc_mnc_list
[
index_l
].
mcc
!=
0
);
return
0
;
}
openair3/UTILS/mcc_mnc_itu.h
deleted
100644 → 0
View file @
b3d4321d
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*****************************************************************************
Source mcc_mnc.h
Version 0.1
Date {2014/10/02
Product
Subsystem
Author Lionel GAUTHIER
Description Defines the MCC/MNC list delivered by the ITU
*****************************************************************************/
#ifndef __MCC_MNC_H__
#define __MCC_MNC_H__
typedef
struct
mcc_mnc_list_s
{
uint16_t
mcc
;
char
mnc
[
4
];
}
mcc_mnc_list_t
;
int
find_mnc_length
(
const
char
mcc_digit1P
,
const
char
mcc_digit2P
,
const
char
mcc_digit3P
,
const
char
mnc_digit1P
,
const
char
mnc_digit2P
,
const
char
mnc_digit3P
);
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment