
'''simple docstring'''

def 					A       ( UpperCamelCase_   :       Dict  ,		UpperCamelCase_   :       Any )   ->    Optional[int]:







			'''simple docstring'''



			lowerCAmelCase__									=							1
			while b > 0:
						if b & 1:
									res *= a

						a *= a
						b >>= 1

			return res







def 					A       ( UpperCamelCase_   :       List[str]  ,		UpperCamelCase_   :       Union[str, Any]  ,		UpperCamelCase_   :       List[Any] )   ->    Dict:







			'''simple docstring'''



			lowerCAmelCase__									=							1
			while b > 0:
						if b & 1:
									lowerCAmelCase__									=							((res % c) * (a % c)) % c

						a *= a
						b >>= 1

			return res







'''simple docstring'''

# this script builds a small sample spm file tests/fixtures/test_sentencepiece_no_bos.model, with features needed by pegasus

# 1. pip install sentencepiece
#
# 2. wget https://raw.githubusercontent.com/google/sentencepiece/master/data/botchan.txt

# 3. build
import sentencepiece as spm

# pegasus:
# 1. no bos
# 2. eos_id is 1
# 3. unk_id is 2
# build a sample spm file accordingly
spm.SentencePieceTrainer.train(
    "--input=botchan.txt --model_prefix=test_sentencepiece_no_bos --bos_id=-1 --unk_id=2  --eos_id=1  --vocab_size=1000"
)

# 4. now update the fixture
# mv test_sentencepiece_no_bos.model ../../tests/fixtures/





