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

61400|Telstra
61401|Optus
61402|Optus
61403|Optus
61404|Vodafone
61405|Vodafone
61406|Vodafone
61407|Telstra
61408|Telstra
61409|Telstra
61410|Vodafone
61411|Optus
61412|Optus
61413|Optus
61414|Vodafone
61415|Vodafone
61416|Vodafone
61417|Telstra
61418|Telstra
61419|Telstra
61420|Vodafone
61421|Optus
61422|Optus
61423|Optus
61424|Vodafone
61426|Vodafone
61427|Telstra
61428|Telstra
61429|Telstra
61430|3
61431|Optus
61432|Optus
61433|3
61434|Optus
61436|Vodafone
61437|Telstra
61438|Telstra
61439|Telstra
61447|Telstra
61448|Telstra
61449|Vodafone
61450|Vodafone
61451|Vodafone
61457|Telstra
61458|Telstra
614590|Telstra
614591|Telstra
614592|Telstra
61462|Telstra
614660|Optus
614661|Optus
614662|Optus
614663|Optus
614664|Optus
614665|Optus
614666|Optus
614671|Optus
614685|Optus
614686|Optus
614687|Optus
614688|Optus
614689|Optus
61469|Telstra
61483|Optus
61485|Telstra
61488|Telstra
61489|Telstra
