# *************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you 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.
#  
# *************************************************************
# functions which are gpf

rtl_ustr.compare.compare_000
rtl_ustr.compare.compare_000_1

rtl_ustr.compareIgnoreAsciiCase.compare_000
rtl_ustr.compareIgnoreAsciiCase.compare_000_1

rtl_ustr.indexOfChar.indexOfChar_000

rtl_ustr.lastIndexOfChar.lastIndexOfChar_000

rtl_ustr.indexOfStr.indexOfStr_000

rtl_ustr.lastIndexOfStr.lastIndexOfStr_000

rtl_ustr.replaceChar.replaceChar_000

rtl_ustr.replaceChar_WithLength.replaceChar_WithLength_000_1

rtl_ustr.toAsciiLowerCase.toAsciiLowerCase_000

rtl_ustr.toAsciiUpperCase.toAsciiUpperCase_000

rtl_ustr.valueOfChar.valueOfChar_000

rtl_ustr.ascii_compare.ascii_compare_000
rtl_ustr.ascii_compare.ascii_compare_000_1
rtl_ustr.ascii_compareIgnoreAsciiCase.ascii_compareIgnoreAsciiCase_000
rtl_ustr.ascii_compareIgnoreAsciiCase.ascii_compareIgnoreAsciiCase_000_1
rtl_ustr.ascii_compareIgnoreAsciiCase_WithLength.ascii_compareIgnoreAsciiCase_WithLength_000
rtl_ustr.ascii_compareIgnoreAsciiCase_WithLength.ascii_compareIgnoreAsciiCase_WithLength_000_1

