# Copyright (C) 2013 The Libphonenumber Authors

# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0

# 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.

63905|Globe
63906|Globe
63907|Smart
63908|Smart
63909|Smart
63910|Smart
63912|Smart
63915|Globe
63916|Globe
63917|Globe
63918|Smart
63919|Smart
63920|Smart
63921|Smart
63922|Sun
63923|Sun
63926|Globe
63927|Globe
63928|Smart
63929|Smart
63930|Smart
63932|Sun
63933|Sun
63935|Globe
63936|Globe
63937|Globe
63938|Smart
63939|Smart
63942|Sun
63943|Sun
63946|Smart
63947|Smart
63948|Smart
63949|Smart
63999|Smart
