API de Go - CRUD con GORM, Gin y PostgreSQL
Cordial saludo, para el grupo encargado de la sección del tutorial de Go, del curso de lenguajes de programación de la Universidad de los Nacional de Colombia, del año 2024 primer semestre. Nos complace presentarles el siguiente aporte, muchas veces en la vida de un programador se necesita realizar operaciones CRUD (Create, Read, Update, Delete) en una base de datos, en este caso se presenta un ejemplo de como realizar estas operaciones en una base de datos PostgreSQL, utilizando el ORM GORM y el framework Gin.
Muchos de los ejemplos que se encuentran en la web, no están actualizados o no son claros, por lo que se presenta este ejemplo, que es claro y conciso, para que puedan entender como realizar estas operaciones en Go, de manera sencilla y rápida.
Las instrucciones para la instalación de las dependencias y la ejecución del código se encuentran en el archivo README.md, ubicado en la carpeta del proyecto.
Pueden descargar el código fuente descargando el archivo zip, ubicado en el siguiente enlace: Descargar código fuente
En este apartado se mostrara paso a paso la instalacion de el lenguaje de programacion GO y que este pueda ser ejecutado por un jupyter notebook a traves del editor de texto visual studio code
Este tutorial se basa en parte al tutorial que brinda la siguiente pagina: https://girishv.hashnode.dev/setting-up-jupyter-notebook-kernels-for-golang-and-nodejs
Tener instalado previamente lo siguiente:
Como se menciono anteriormente esta instalacion se basa en el paso a paso brindado por esta pagina https://girishv.hashnode.dev/setting-up-jupyter-notebook-kernels-for-golang-and-nodejs
Pero en este proceso existe una problematica y es que si bien el metodo es facil y directo ya que son solo lineas de comando, este metodo esta mas enfocado para usuarios de Linux, ya que estos comandos en algun punto suelen tener problemas cuando se ejecutan desde el sistema operativo Windows
En primera instancia pueden intentar el paso a paso que brinda dicha pagina pero no se desesperen si este no funciona ya que a continuacion se les presentara un metodo mucho mas directo para realizar la instalacion del kernel de Go para Jupyter notebooks
Gophernotes es un kernel de Go para Jupyter Notebooks, para esto se va a ejecutar el siguiente comando desde consola
go get github.com/gopherdata/gophernotes
Para los siguientes pasos necesitas saber las rutas donde se instalo el gophernotes y donde esta instalado jupyther notebook por lo que vas a ejecutar los siguientes comandos o codigos para obtenerlas
go env GOPATH
el resultado de este va a ser una ruta que vas a tener que expandir un poco, la salida normalmente seria esta:
C:\Users\YourUsername\go
Dirigete a el explorador de archivos e ingresa la direccion resultante, luego vas a buscar la carpeta bing y revisar si en esta se encuentra alojado el archivo gophernotes.exe, si esto es asi significa que gophernotes se instalo correctamente y posterioremnete guardaras la direccion donde se encuentra el gophernotes.exe pero incluyendolo en el path. Al hacer esto deberia resultar algo muy parecido a esto:
C:\Users\YourUsername\go\bin\gophernotes.exe
Primero debes ejecurtar la siguiente linea de comandos para instalar jupyter core
pip install jupyter_core
Posterioremente debes ejecutar el siguiente codigo de python de manera local a travez de un notebook o un un archivo.py
from jupyter_core.paths import jupyter_data_dir
print(jupyter_data_dir())
Este te devolvera la direccion donde se encuentra alojado el directorio de jupyter notebook, esta direccion deberia ser muy parecida a la siguiente
C:\Users\YourUsername\AppData\Roaming\jupyter
Para este paso te vas a dirigir a traves del explorador de archivos a la direccion que te dio el codigo de python
En esta vas a revisar si existe una carpeta llamada "kernels", de no ser asi creala, dentro de esta crea una carpeta que se llame "gophernotes", y dentro de esta vas a crear un archivo .json que tenga el siguiente contenido
{
"argv": [
"(tu direccion de gophernotes con doble slash)",
"{connection_file}"
],
"display_name": "Go",
"language": "go",
"name": "go"
}
La direccion que debes ingresar es la que conseguimos de gophernotes, donde se le adiciona un slash adicional, y lo cual resultaria en algo como esto
{
"argv": [
"C:\\Users\\YourUsername\\go\\bin\\gophernotes",
"{connection_file}"
],
"display_name": "Go",
"language": "go",
"name": "go"
}
Luego de realizar esto, guardas el contenido del archivo y sales del mismo
Abre visual Studio code y dentro del apartado de extensiones vas a buscar la extencion jupyter e instalarla como se ve en la imagen
Posteriormente vas a buscar y a instalar Go para visual studio code como se ve en la imagen
preciona Ctrl+Shift+P para ingresar a al command Palette e ingresa la palabra create jupyter, posteriormente seleccionas la opcion crear un nuevo jupyter notebook
Al ingresar va a aparecer algo parecido a lo que se ve en la imagen, puede que sin un lenguaje predeterminado como es el caso de python
Aqui tendras que hacer dos cosas, la primera es revisar si se instalo bien el kernel de Go oprimiendo select kernel, luego select other kernels, despues jupyter kernels y finalmente go
Lo siguiente es hacer que el apartado de codigo detecte el lenguaje Go, para ello oprime el texto que esta en la esquina inferior derecha de el bloque de codigo, en la imagen anterior la palabra que se encuentra ahi es python, luego busca si en las opciones aparece el lenguaje Go y seleccionalo, de no ser asi selecciona la primera opcion que te ayudara a detectar automaticamente el lenguaje y dentro del bloque de codigo escribe un fragmento de codigo como el siguiente:
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
main()
Este automaticamente detectara el lenguaje y podras ejecutar el codigo.
Si todo salio como se esperaba y se ejecuto bien el codigo se deberia ver parecido a la siguiente imagen
Este es el programa más simple en GO. Todos los programas en GO deben pertenecer a un paquete, en este caso el paquete main
, que es el punto de entrada de todos los programas ejecutables en GO. La función main
es donde comienza la ejecución del programa. Aquí, utilizamos fmt.Println
para imprimir "Hello, World" en la consola.
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
main()
Hello, World
GO soporta varios tipos de datos básicos:
En este ejemplo, declaramos variables de cada tipo de datos y las imprimimos usando fmt.Println
.
package main
import "fmt"
func main() {
var a int = 10
var b int = 20
fmt.Println("a:", a, "b:", b)
var x float64 = 3.14
var y float64 = 1.618
fmt.Println("x:", x, "y:", y)
var isGoFun bool = true
fmt.Println("isGoFun:", isGoFun)
var message string = "Hello, GO"
fmt.Println("message:", message)
}
main()
a: 10 b: 20 x: 3.14 y: 1.618 isGoFun: true message: Hello, GO
GO ofrece varias estructuras de control de flujo:
if
, else if
, else
para decisiones.for
para iteraciones.Este ejemplo muestra cómo usar cada una de estas estructuras.
package main
import "fmt"
func main() {
number := 10
if number%2 == 0 {
fmt.Println(number, "es par")
} else {
fmt.Println(number, "es impar")
}
for i := 1; i <= 5; i++ {
fmt.Println("i:", i)
}
day := "lunes"
switch day {
case "lunes":
fmt.Println("Hoy es lunes")
case "martes":
fmt.Println("Hoy es martes")
default:
fmt.Println("Hoy no es lunes ni martes")
}
}
main()
10 es par i: 1 i: 2 i: 3 i: 4 i: 5 Hoy es lunes
GO permite definir funciones y métodos. Las funciones se declaran con la palabra clave func
seguida del nombre de la función y los parámetros. Los métodos son funciones asociadas a tipos definidos por el usuario, como structs.
En este ejemplo, definimos una función add
que suma dos números y un método Area
que calcula el área de un rectángulo.
package main
import "fmt"
func add(a int, b int) int {
return a + b
}
type Rect struct {
width, height int
}
func (r *Rect) Area() int {
return r.width * r.height
}
func main() {
result := add(5, 7)
fmt.Println("Resultado de add:", result)
rect := Rect{width: 10, height: 5}
fmt.Println("Área del rectángulo:", rect.Area())
}
main()
Resultado de add: 12 Área del rectángulo: 50
GO utiliza un sistema explícito de manejo de errores. Las funciones pueden devolver múltiples valores, y uno de ellos puede ser un error. Este enfoque obliga a los desarrolladores a manejar los errores explícitamente.
En este ejemplo, la función checkNumber
devuelve un error si el número proporcionado es negativo.
package main
import (
"errors"
"fmt"
)
func checkNumber(num int) (string, error) {
if num < 0 {
return "", errors.New("el número no puede ser negativo")
}
return "Número válido", nil
}
func main() {
number := -5
message, err := checkNumber(number)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Mensaje:", message)
}
}
main()
Error: el número no puede ser negativo
GO soporta la programación orientada a objetos a través del uso de structs y métodos. Aunque GO no tiene clases como otros lenguajes orientados a objetos, los structs y métodos proporcionan funcionalidad similar.
En este ejemplo, definimos un struct Rect
con dos campos width
y height
, y un método Area
que calcula el área del rectángulo.
package main
import "fmt"
type Rect struct {
width, height int
}
func (r *Rect) Area() int {
return r.width * r.height
}
func main() {
rect := Rect{width: 10, height: 5}
fmt.Println("El área del rectángulo es:", rect.Area())
}
main()
El área del rectángulo es: 50
La concurrencia en GO permite ejecutar múltiples tareas al mismo tiempo, aprovechando al máximo los recursos del sistema. GO es conocido por su modelo de concurrencia eficiente, basado en goroutines y canales.
Las goroutines son funciones que se ejecutan de manera concurrente con otras goroutines en el mismo espacio de memoria. Para crear una goroutine, simplemente se usa la palabra clave go
seguida de la llamada a la función.
En este ejemplo, lanzamos una goroutine que imprime "Hello, World". La función main
continúa ejecutándose y también imprime "Goroutine lanzada". Usamos time.Sleep
para asegurarnos de que la goroutine tenga tiempo de ejecutarse antes de que el programa termine.
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Hello, World")
}
func main() {
go sayHello()
fmt.Println("Goroutine lanzada")
time.Sleep(1 * time.Second) // Permite que la goroutine se ejecute
}
main()
Goroutine lanzada Hello, World
Los canales en GO se utilizan para comunicar y sincronizar goroutines. Permiten enviar y recibir valores entre goroutines de manera segura y eficiente. Para crear un canal, se usa la función make
con chan
y el tipo de datos que se enviará a través del canal.
En este ejemplo, creamos un canal de cadenas messages
. La goroutine sayHello
envía un mensaje a través del canal, y la función main
recibe y imprime ese mensaje.
package main
import "fmt"
func sayHello(c chan string) {
c <- "Hello, World"
}
func main() {
messages := make(chan string)
go sayHello(messages)
msg := <-messages
fmt.Println(msg)
}
main()
Hello, World
El select
en GO se utiliza para esperar múltiples operaciones de canales. Permite a una goroutine esperar hasta que uno de varios canales esté listo para realizar una operación de envío o recepción.
En este ejemplo, tenemos dos canales c1
y c2
, y dos goroutines que envían mensajes a estos canales después de diferentes periodos de tiempo. Usamos select
dentro de un bucle for
para esperar y recibir mensajes de los canales.
package main
import (
"fmt"
"time"
)
func main() {
c1 := make(chan string)
c2 := make(chan string)
go func() {
time.Sleep(1 * time.Second)
c1 <- "one"
}()
go func() {
time.Sleep(2 * time.Second)
c2 <- "two"
}()
for i := 0; i < 2; i++ {
select {
case msg1 := <-c1:
fmt.Println("received", msg1)
case msg2 := <-c2:
fmt.Println("received", msg2)
}
}
}
main()
received one received two
En este ejemplo básico, se mostrará cómo utilizar goroutines y canales en GO para realizar una tarea concurrente. El problema consiste en calcular la suma de los elementos de un arreglo de números enteros. La tarea se dividirá en dos goroutines que calcularán la suma de la primera y la segunda mitad del arreglo respectivamente. Luego, los resultados se combinarán para obtener la suma total.
Definición de la Función sum:
Función main:
Goroutines:
Canales:
Eficiencia:
Simplicidad en GO:
package main
import (
"fmt"
)
// sum calcula la suma de un segmento de un arreglo y envía el resultado a un canal
func sum(arr []int, c chan int) {
total := 0
for _, v := range arr {
total += v
}
c <- total // Enviar el resultado al canal
}
func main() {
arr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
c := make(chan int)
// Dividir la tarea en dos goroutines
go sum(arr[:len(arr)/2], c)
go sum(arr[len(arr)/2:], c)
// Recibir los resultados de ambas goroutines
sum1, sum2 := <-c, <-c
// Calcular la suma total
totalSum := sum1 + sum2
fmt.Println("La suma total es:", totalSum)
}
main()
La suma total es: 55
En este ejemplo intermedio, se mostrará cómo utilizar goroutines y canales en GO para realizar un cálculo concurrente más complejo. El problema consiste en calcular la suma de los números primos en un rango dado. La tarea se dividirá en varias goroutines que calcularán si los números en sub-rangos son primos. Luego, los resultados se combinarán para obtener la suma total de los números primos en el rango.
Definición de la Función isPrime:
Definición de la Función sumPrimes:
Función main:
Goroutines:
Canales:
Eficiencia:
Simplicidad en GO:
package main
import (
"fmt"
"math"
)
// isPrime verifica si un número es primo
func isPrime(n int) bool {
if n <= 1 {
return false
}
for i := 2; i <= int(math.Sqrt(float64(n))); i++ {
if n%i == 0 {
return false
}
}
return true
}
// sumPrimes calcula la suma de números primos en un rango y envía el resultado a un canal
func sumPrimes(start, end int, c chan int) {
total := 0
for i := start; i <= end; i++ {
if isPrime(i) {
total += i
}
}
c <- total // Enviar el resultado al canal
}
func main() {
start, end := 1, 10000000
numGoroutines := 10
rangeSize := (end - start + 1) / numGoroutines
c := make(chan int, numGoroutines)
// Dividir la tarea en varias goroutines
for i := 0; i < numGoroutines; i++ {
subStart := start + i*rangeSize
subEnd := subStart + rangeSize - 1
if i == numGoroutines-1 {
subEnd = end
}
go sumPrimes(subStart, subEnd, c)
}
// Recibir los resultados de todas las goroutines
totalSum := 0
for i := 0; i < numGoroutines; i++ {
totalSum += <-c
}
fmt.Println("La suma total de números primos es:", totalSum)
}
main()
La suma total de números primos es: 3203324994356
En este ejemplo avanzado, se demostrará cómo utilizar goroutines y canales en GO para resolver un problema complejo: calcular el producto de múltiples matrices grandes de manera concurrente. Cada multiplicación de matrices se realiza utilizando múltiples goroutines para calcular las filas de la matriz resultante de manera simultánea. La matriz resultante de cada multiplicación se utiliza como entrada para la siguiente multiplicación, formando una cadena de multiplicaciones.
Función multiplyMatrices:
Función generateMatrix:
Función main:
Goroutines:
Canales:
Eficiencia:
Simplicidad en GO:
package main
import (
"fmt"
"math/rand"
"time"
)
// multiplyMatrices calcula el producto de dos matrices y envía la fila calculada al canal
func multiplyMatrices(A, B [][]int, C chan<- []int, startRow, endRow int) {
for i := startRow; i < endRow; i++ {
row := make([]int, len(B[0]))
for j := 0; j < len(B[0]); j++ {
sum := 0
for k := 0; k < len(B); k++ {
sum += A[i][k] * B[k][j]
}
row[j] = sum
}
C <- row
}
}
// generateMatrix genera una matriz de tamaño n x m con valores aleatorios
func generateMatrix(n, m int) [][]int {
rand.Seed(time.Now().UnixNano())
matrix := make([][]int, n)
for i := range matrix {
matrix[i] = make([]int, m)
for j := range matrix[i] {
matrix[i][j] = rand.Intn(10) // Valores aleatorios entre 0 y 9
}
}
return matrix
}
func main() {
// Generar matrices de tamaño 100 x 100
A := generateMatrix(100, 100)
B := generateMatrix(100, 100)
C := generateMatrix(100, 100)
D := generateMatrix(100, 100)
matrices := [][][]int{A, B, C, D}
numMatrices := len(matrices)
result := generateMatrix(100, 100)
for m := 0; m < numMatrices-1; m++ {
current := matrices[m]
next := matrices[m+1]
rows := len(current)
cols := len(next[0])
result = make([][]int, rows)
for i := range result {
result[i] = make([]int, cols)
}
C := make(chan []int, rows)
numGoroutines := 4
rowsPerGoroutine := rows / numGoroutines
// Dividir la tarea en varias goroutines
for i := 0; i < numGoroutines; i++ {
startRow := i * rowsPerGoroutine
endRow := startRow + rowsPerGoroutine
if i == numGoroutines-1 {
endRow = rows
}
go multiplyMatrices(current, next, C, startRow, endRow)
}
// Recibir los resultados de todas las goroutines
for i := 0; i < rows; i++ {
result[i] = <-C
}
close(C)
// Actualizar la matriz actual con el resultado para la próxima multiplicación
matrices[m+1] = result
}
fmt.Println("Matriz resultante:")
for _, row := range result {
fmt.Println(row)
}
}
main()
Matriz resultante: [383970834 475989308 429576934 415013209 435077774 392235297 429732745 380055987 431877869 426622458 429877249 396069097 443999058 380252049 443037225 408759971 423855987 377570540 402912183 424919294 431324246 429553441 385942906 420157703 435162854 399186468 403472927 424110952 417116631 444589384 408747470 416831864 375705989 436522681 440248975 410601117 477161541 454095877 395294232 411386215 388564792 426178272 451185294 405754414 426631186 353657242 433281793 385677532 428646075 445364079 390716673 378365719 394482106 381839355 453184528 415357712 388913795 431745464 459967402 427020125 389565387 427816471 474125824 398827210 375921788 389628155 378310281 386680158 431494807 379074540 390532957 443252428 410130668 399244041 410330328 379695404 386386773 384165726 405929765 441161809 386204851 397110613 415789308 364304817 436461233 391972490 422776751 395201373 400770008 389250374 439823887 431161235 349804776 436927855 337709151 424806264 410140521 424878317 362669792 367962421] [408024080 505546949 456234482 440755903 462039495 416538286 456575712 403704072 458775908 453143294 456609207 420715745 471732057 403704409 470587772 434024765 450246153 401097874 427974931 451309233 458104812 456115552 409867938 446250504 462307810 424036023 428495042 450419539 442873409 472251946 434036925 442718454 399167008 463521983 467630921 435872272 507100467 482338590 419943700 437049836 412624199 452734047 479329728 431012291 453137641 375537583 460283490 409743442 455212292 473287514 415011707 401696077 419085865 405716459 481258216 441063456 412989913 458221350 488269577 453470260 413917629 454322534 503590603 423709730 399133009 414033007 401911824 410766040 458199812 402719235 414634177 470801676 435537053 424255411 435913586 403389832 410503308 407901398 431020294 468667200 410306224 421773067 441494612 387157296 463503686 416325255 449166563 419700033 425634997 413494393 467205945 457969426 371472414 464131215 358886182 451020528 435703517 451352814 385192706 390805834] [393098171 487058436 439516009 424709535 445369803 401286031 439809383 389104697 442144672 436665885 439967309 405235411 454564165 389031757 453525182 418231981 433762325 386462881 412280007 434862088 441475006 439592130 394805807 430018392 445322954 408538726 412865229 433986235 426795814 455057156 418164626 426612330 384576804 446720631 450414980 420169583 488461668 464642499 404751895 421082844 397520894 436414891 461688253 415461342 436590127 361998026 443478675 394795844 438560253 455983071 399807144 387143289 403878841 390915883 463786638 424936767 398029879 441720997 470432258 437132579 398757623 437805362 485176916 408219011 384678664 398914024 387216581 395658372 441410403 387857272 399753503 453739472 419826326 408782852 419844090 388643835 395436878 393014090 415301926 451627278 395342460 406345390 425435561 372916764 446594894 401124986 432915470 404473011 410213533 398263509 450221138 441310950 358035438 447103863 345752904 434750443 419735593 434879855 371127476 376509066] [398596751 493999141 445885440 430762048 451645479 407241566 446227715 394354234 448339303 442742946 446361215 411069008 460753167 394698292 459913658 424337806 439869122 391958019 418166764 441122576 447817234 445891293 400514590 435946861 451669291 414558144 418666892 440309520 433029992 461463447 424337019 432753533 389947772 453079119 457032825 426201568 495450990 471243122 410262283 426978996 403360386 442343377 468274607 421327207 442773212 367155487 449973454 400301721 444968689 462338843 405680762 392831664 409382065 396402564 470334100 431101691 403659348 448144192 477257840 443161814 404376481 443976573 492175677 413922453 390078943 404528195 392625654 401377781 447936325 393575328 405334099 460041677 425849745 414454727 426056020 394182669 401192651 398745627 421261283 457839237 400770586 412043749 431607683 378365325 453029430 406770961 439059324 410173225 416000148 404093504 456686906 447501239 363148466 453521991 350726003 440799892 425798258 441099848 376375039 381907834] [375253781 465035528 419505362 405482481 424981613 383297552 419793237 371255628 421929466 416706804 419907702 386763997 433637453 371430996 432750721 399170770 413982515 368672614 393531784 415054871 421397755 419663090 376871343 410246461 425123760 390026544 393974472 414218113 407355012 434302283 399284684 407305526 366908311 426298325 430045183 400969995 466251468 443410042 386239719 401858862 379655013 416387382 440642899 396435931 416768707 345567850 423358340 376884045 418629455 435333891 381674515 369474591 385410093 372962461 442639624 405534627 379865597 421668017 449040568 417186437 380632266 417752861 463116278 389637769 366965239 380689313 369564875 377557984 421510166 370311196 381499903 432884678 400696712 390211225 400900317 370909995 377487194 375155333 396463589 431036586 377215659 387908702 406027893 355967058 426357729 382780337 413170791 385921711 391535084 380203233 429691908 421302690 341733367 426768328 329943488 414884854 400728844 415067124 354152917 359484447] [379790084 470670439 424746850 410464432 430182815 387857184 424984969 375856216 427074712 421821873 425166212 391640458 439223719 376057770 438094229 404121051 419111320 373424714 398391779 420113110 426398841 424743769 381657252 415441361 430471887 394727262 398967506 419332732 412398521 439553341 404121607 412256340 371493812 431640705 435334296 405876527 472028363 449046490 390840332 406833123 384271102 421535823 446222714 401268134 421966908 349752093 428494751 381437367 423888263 440436459 386344811 374022135 390145322 377598506 448087060 410606971 384573556 426804032 454731659 422239792 385231775 422994818 468890899 394488601 371563169 385303284 374197806 382331010 426617956 374852184 386042923 438205996 405677931 394919167 405711274 375523473 382229231 379773459 401369058 436324150 381804072 392697991 411116639 360271343 431598979 387491815 418196277 390730576 396342020 384857718 434846870 426556787 346008881 431981031 334105883 420005285 405624539 420170578 358586592 363855027] [412141875 510839435 460968767 445350378 467129529 420974720 461328093 407763452 463446604 457810299 461504678 425037318 476452852 407859050 475614400 438637401 454897621 405301538 432546900 456058009 463016566 460976441 414105662 450854293 467001901 428587487 432860664 455226193 447486800 477109806 438692519 447418236 403244642 468478361 472529905 440547732 512336773 487277972 424351463 441619943 417173922 457475758 484208069 435629259 457778648 379611628 465197061 414064576 460011819 478068120 419401780 405975216 423525483 409929512 486279246 445644540 417433528 463349951 493453163 458227383 418099625 459142705 508861283 428061029 403237199 418391010 406077672 415107303 463001343 406804649 418959424 475682901 440436289 428700577 440531373 407608724 414818821 412230552 435451341 473522728 414456417 426244304 446180116 391128596 468447266 420629783 453974104 424106778 430208014 417767937 472143493 462861924 375517360 468875025 362622546 455774657 440387600 456084144 389179633 394928466] [436821289 541239518 488450010 471886318 494799776 445988384 488840296 432374915 491225791 485124910 489048475 450359316 504973414 432315128 503930251 464771239 482011669 429504127 458117821 483204167 490460169 488447682 438791563 477874757 494929725 454007206 458728648 482396103 474226701 505577196 464748249 474036023 427424313 496352901 500640408 466873552 542866117 516432766 449608387 468021845 441804678 484782790 513100946 461477859 485170255 402299159 492837936 438798431 487444844 506640517 444301851 430196207 448762744 434390446 515332675 472162467 442268437 490882977 522858810 485557545 443060413 486488474 539216322 453538685 427341840 443241814 430264327 439763763 490493968 431133657 444052838 504162816 466414854 454180246 466695264 431962610 439493808 436714032 461488417 501850672 439282303 451538930 472741024 414438144 496339069 445767735 480996050 449406016 455797649 442597522 500214119 490469541 397841478 496945018 384308394 483019228 466537567 483321622 412471454 418335349] [364727227 451993725 407866256 394129746 413051078 372556907 408239321 361074826 410188873 405083406 408219998 376092560 421661791 360988234 420767263 388053052 402577714 358626313 382540172 403560831 409780695 407867814 366490501 399112741 413286907 379042899 383021072 402681204 395974740 422265662 388149236 395920514 356864038 414433310 418104872 389939644 453406730 431231978 375516847 390813443 368978042 405004423 428442649 385356101 405178991 336006147 411658511 366408127 406983109 423025953 371061674 359097896 374777305 362623984 430380976 394443777 369308027 409879002 436532665 405494293 370016964 406196508 450225469 378818621 356934927 370125978 359247638 367246839 409726067 360053876 370831178 420849787 389419038 379378097 389705676 360722749 367003095 364682108 385448136 419025558 366764762 377118409 394716341 345952161 414411461 372230814 401645891 375199265 380666107 369611495 417748309 409526967 332280141 414957663 320946987 403424764 389595388 403661899 344426438 349337557] [380886735 472107929 425990257 411480437 431546692 388944934 426210738 377039257 428336100 423053234 426405479 392712359 440386927 376964964 439390020 405348870 420237199 374506857 399482179 421384524 427783570 425933438 382653926 416666002 431520644 395951641 400152782 420612008 413660458 440924244 405319256 413395862 372707972 432970156 436542323 407181360 473254021 450348996 392131219 408193996 385384585 422630035 447398318 402523882 423149376 350874823 429857121 382621024 425125858 441857991 387411527 375220533 391330145 378802397 449413629 411735047 385645078 428184032 455918732 423539583 386395385 424306829 470257194 395410710 372720619 386537870 375268540 383388135 427840291 375900948 387267617 439728389 406806141 396086092 406908047 376781909 383260532 380900672 402361595 437652176 383088366 393792769 412300951 361477718 432873088 388800633 419486823 391989271 397527346 385941012 436320245 427629014 346944739 433352193 335103775 421255442 406768598 421417015 359733755 364934920] [365185734 452469440 408416667 394598049 413616046 373060961 408726702 361223786 410507744 405531578 408728080 376544795 422086565 361436655 421272328 388593469 402897204 358965320 383016457 403950139 410159745 408396955 366817598 399367192 413766736 379663705 383409850 403304343 396502838 422709402 388616566 396333609 357219322 414952143 418589838 390239103 453861225 431600864 375820448 391097867 369399737 405306108 428977320 385767248 405573467 336323263 412080749 366744514 407548662 423471203 371516759 359660443 375095236 363145533 430833206 394818359 369694849 410365034 437191790 405937478 370325463 406705426 450685897 379262733 357247760 370559129 359666349 367654305 410261827 360394555 371172039 421334543 390068559 379796259 390147532 360957208 367420093 365027624 385928470 419457099 367152122 377515760 395297072 346539105 415023567 372568066 402120420 375637244 381084915 370110910 418202277 410124429 332625727 415378723 321279473 403670498 390110612 403957001 344759714 349820834] [379504943 470142844 424295188 410099079 430054977 387599449 424888984 375592296 426872189 421454228 424819358 391216330 438778571 375729696 437901016 403948695 418932974 373028362 398228328 419852137 426261383 424518199 381332571 415259524 429916519 394549651 398613944 419077195 412208258 439295635 403786454 411997734 371383578 431295706 435093745 405672887 471700186 448799512 390709738 406569408 384180609 421227358 445789915 400944306 421493040 349568791 428268806 381305130 423517429 440190811 386151864 373771613 389874761 377235860 447870102 410416462 384400958 426575148 454476581 421907825 384905164 422691382 468603747 394177333 371296524 385156315 373827940 382250607 426204781 374626265 385738677 438122462 405361165 394666410 405558535 375253875 381993097 379591807 401136222 435989363 381651551 392412338 410704551 360007779 431366620 387240358 417824202 390434695 395958339 384655103 434625582 426201697 345683156 431707183 333791445 419702389 405246780 419978999 358383109 363597128] [376070110 466144804 420603293 406525966 426222327 384171648 421034863 372140899 422968625 417755847 421135299 387794682 434780981 372216719 434125001 400194522 415032014 369844138 394666950 416045785 422471712 420527608 377891460 411454985 426146574 391042224 395003440 415394614 408326232 435351612 400285581 408257242 368058145 427387702 431104766 402040852 467386188 444692808 387207122 402967908 380444966 417352881 441894274 397515761 417718732 346352225 424459437 377836271 419642048 436223725 382694067 370563610 386368826 374050822 443869845 406702152 380954521 422744725 450270158 418085381 381503198 418866703 464292575 390544151 368140838 381818388 370451884 378797293 422444238 371208241 382419307 434170535 401714363 391055318 401939670 371899726 378413579 376165992 397291193 432069009 378359638 388876706 407057260 356780131 427429140 383811128 414214855 387071780 392481229 381216997 430905330 422229062 342593538 427878900 331020789 415890770 401725619 416225236 355206664 360338929] [365779625 453263579 408966672 395217128 414255446 373613588 409443778 361856544 411444716 406113511 409378275 377110444 422884651 361984326 421985788 389177026 403831456 359605210 383625806 404679439 410772734 409059375 367378139 400165424 414526992 380224007 384150412 403789365 397165193 423433733 389143804 397064797 358007556 415601747 419392292 390809064 454772489 432443364 376537029 391914793 370035789 405967227 429605779 386462848 406282385 336864720 412858715 367351431 408081940 424268393 372108965 360147996 375910852 363733513 431534391 395355144 370296592 411029844 437822994 406593888 371046792 407373900 451586764 379720693 357842138 371186799 360299648 368226227 410744047 361037830 371808473 422046077 390598198 380475852 390814989 361665799 368003283 365741557 386373797 420348390 367797212 378178563 395753045 347075548 415580469 373122519 402754101 376241677 381606976 370686624 418983028 410771915 333154458 416136753 321679226 404478362 390659952 404783996 345288828 350409864] [367781875 455955540 411330552 397576833 416858652 375651435 411680907 364191869 413864705 408730841 411777451 379409368 425364229 364150062 424574433 391486971 406066278 361743419 385977977 407021206 413307594 411572514 369771385 402485910 416978448 382382708 386443435 406237498 399478675 425851968 391383217 399403656 359899441 417977868 421742927 393225641 457307758 434952382 378698356 394086702 372302646 408509381 432195670 388867582 408656260 338746834 415162266 369579957 410532944 426713028 374263960 362314303 377923704 365822419 434044064 397804899 372683145 413462859 440457979 409093373 373146559 409897187 454239514 382157498 359957222 373340397 362472301 370409092 413285815 363162125 374091061 424652023 392861214 382600807 393128706 363868743 370218525 367925089 388753766 422641829 369962303 380478775 398133193 348937593 418057663 375428112 405180726 378436625 383940438 372885858 421421514 413122967 335112639 418457834 323619285 406930199 392922005 407110540 347354374 352337546] [412712162 511443818 461572829 445975016 467556577 421640202 461939718 408547651 464035428 458421661 462016743 425596086 477280298 408494842 476178647 439216510 455573909 405953846 433051868 456638875 463499506 461658040 414801666 451601936 467667104 429088095 433480966 455860262 448220859 477786587 439216018 448097746 403927791 468968678 473033003 441179671 512920978 488175770 424866128 442213774 417463377 458102238 484906762 436163451 458432855 380156904 465841384 414483228 460611807 478661417 419783120 406414308 423989426 410473902 486939095 446416987 418005986 463762840 494044395 458793450 418598149 459806456 509611556 428539752 404026321 418818862 406612875 415593000 463536706 407374261 419633627 476322199 440846363 429201667 440916825 408093103 415270898 412774910 436162562 474233201 415204140 426647844 446660807 391611567 468950543 421142716 454416807 424666021 430623506 418352459 472811348 463524227 375885331 469544309 363232358 456597826 440727662 456713204 389787273 395374389] [394462425 488832963 441066295 426260566 446708209 402756814 441353875 390341949 443593743 438051623 441477996 406663595 456085770 390409047 455000848 419534391 435325326 387851812 413697204 436445602 442844346 441070523 396173710 431388691 447034278 409964588 414226193 435523276 428121275 456585980 419583066 428101239 385832003 448184430 452068666 421527535 490314644 466258360 405976315 422533713 399030123 437872822 463368470 416724393 438161159 363184206 445021241 396206397 440098206 457542388 401276654 388392640 405284460 392188353 465333673 426310286 399379076 443329544 472119716 438582779 400038619 439299606 486972725 409554211 385851322 400294846 388600730 397048708 443029234 389196184 400981504 455029661 421269755 410138217 421352063 390004203 396861240 394331812 416785786 453180947 396579863 407689797 426997222 374186792 448166084 402550154 434338841 405735187 411568038 399689260 451784737 442891535 359250690 448783744 347028166 436219664 421344555 436369331 372320390 377699690] [393849304 488116561 440430389 425669364 446165223 402324297 440824127 389792823 442821188 437570173 440916440 406265259 455351855 389912316 454278238 419203743 434604504 387215263 413187790 435841372 442404810 440504841 395878519 430895256 446302165 409398833 413682893 435047771 427704731 455958912 419196474 427468673 385252140 447652316 451377277 421129045 489425438 465723856 405382257 422021340 398407465 437193752 462718463 416126508 437521724 362848580 444475791 395501821 439659531 456884514 400690084 388005014 404567893 391686864 464715331 425952868 398769483 442739078 471536586 437885880 399482271 438689317 486166356 409066739 385477757 399638975 387983791 396630798 442406056 388783460 400457015 454572875 420709213 409594313 420801247 389459951 396372239 393868314 416255457 452407865 396120210 407252258 426360485 373773677 447536936 402041092 433672355 405286953 411063522 399237391 451102598 442221054 358727319 448041369 346624191 435607835 420700537 435871089 371914606 377245625] [381074604 472119511 426146184 411535502 431569285 389114346 426486025 377139742 428452174 423093081 426527918 392869541 440537614 377173344 439559551 405539073 420390384 374689939 399700225 421387441 427989616 426084192 382806086 416883735 431714032 396119786 400275719 420800197 413858658 441018997 405627674 413553498 372798324 432892062 436704880 407271062 473459852 450492433 392219318 408336521 385314425 422830498 447440769 402648527 423192674 351007344 430123858 382706147 425294356 442012729 387575395 375246336 391337545 379026837 449499260 411935175 385655199 428251925 455965893 423590626 386548598 424336657 470465336 395548698 372768462 386515915 375365028 383553173 427944125 376173554 387270942 439789741 406867021 396282927 407190555 376861323 383519004 381009175 402515067 437581898 383197769 393720928 412307545 361732228 432898520 388724298 419631891 392009466 397624681 386081253 436470063 427758157 347104963 433540027 335342012 421353367 406860039 421715911 359722624 364913997] [375666032 465491325 419985121 405849507 425575227 383598676 420388848 371650065 422386296 417075299 420389732 387217386 434221834 371754935 433244007 399750435 414522642 369222970 394087393 415622872 421940002 420094633 377258933 410805105 425609958 390544454 394512733 414695001 407846596 434878819 399766414 407666105 367314038 426901554 430652460 401331811 466894630 444129395 386674603 402317509 380125886 416877341 441252503 396860420 417223610 345863647 423841107 377385838 419161391 435810707 382264182 369779010 385883449 373439658 443090910 406120108 380407379 422241197 449674926 417684256 381049117 418402733 463663472 390058987 367400678 381159266 370064965 378188242 421955421 370711296 381832622 433485907 401135711 390722989 401540186 371352961 378013490 375683841 396909259 431532930 377711045 388363207 406621514 356463138 426858524 383195200 413562872 386231734 392138643 380548431 430151032 421739885 342129692 427308415 330325607 415332781 401201931 415587932 354694150 359783141] [348559572 431978615 389775686 376697672 394766066 355949737 390077228 344989065 392075907 387241071 390093818 359387493 402983043 345053726 402206903 370860601 384715333 342664836 365594689 385598292 391440502 389837212 350133883 381255077 395098865 362346325 366184734 384923648 378492456 403494417 370853860 378399605 341107375 396030366 399653702 372478231 433229341 411969629 358809352 373482260 352600922 386891215 409465671 368349284 387203862 320898391 393325837 350155206 388912330 404440226 354520761 343402932 358082235 346683251 411243696 376759555 352842480 391779208 417279197 387581925 353538521 388209073 430344678 362008663 340977378 353795119 343457446 350832640 391480656 344101383 354448186 402364272 372196380 362467439 372371805 344679013 350793659 348519118 368239942 400469322 350645081 360370961 377204737 330699196 396121560 355771805 383796496 358571119 363621541 353262142 399223555 391340988 317463190 396524212 306626229 385436853 372298289 385679099 329036005 333954909] [373923670 463535534 418335847 404073444 423634923 381994113 418519573 370034722 420535900 415472304 418553508 385673598 432408170 370141657 431433428 397905462 412677124 367753653 392283545 413702510 420016773 418198685 375856291 409059151 423793189 388815114 392721942 412900827 406123606 432883105 397922923 405940186 365873176 425002933 428728117 399758850 464775108 442220926 385068498 400718941 378373237 415114490 439369640 395257403 415466685 344481692 422101153 375527631 417466417 433680012 380435484 368326118 384238589 372007472 441170282 404359440 378656372 420297002 447620827 415779770 379337078 416536900 461737631 388360278 366016464 379495329 368397834 376444576 420107369 369164012 380144764 431442314 399577951 388952658 399506972 369873014 376301945 373950128 395141322 429669327 375932420 386764615 404793031 354895067 425016279 381666078 411770912 384822763 390239448 379157215 428410563 420032401 340669933 425416260 329046798 413614373 399439128 413751541 353148573 358349272] [336075331 416534318 375830669 363238775 380656022 343498497 376188210 332478518 377851468 373225180 376263521 346405479 388461482 332709585 387674030 357640369 370864356 330400915 352653680 371794025 377506124 375863919 337675577 367586711 380869224 349407530 353027952 371093020 364851101 389025880 357669805 364870277 328759167 381848673 385171709 359104281 417731912 397218489 345988622 359940798 340013596 373041026 394846926 355166599 373365656 309526529 379354791 337461547 374997461 389908598 342000156 330883191 345206985 334125244 396536012 363336174 340324018 377632461 402238919 373612684 340953498 374313177 414881763 348957918 328790464 340974251 331060748 338411450 377642972 331612067 341750689 387619563 359075423 349631984 359143596 332194957 338158907 336085635 355097105 386103733 337979398 347408634 363767641 318832068 381909267 342794489 370192900 345672711 350774730 340587762 385086538 377414878 306130943 382336607 295784901 371677590 358987655 371844883 317256098 322002835] [345818392 428572107 386633649 373608557 391625620 353131465 387007685 342127612 388944686 384090278 386962534 356482106 399591695 342289067 398873102 367872948 381684551 339776204 362717190 382492938 388258687 386749016 347329697 378198254 391738099 359459448 363151055 381785353 375409194 400353840 368055431 375264585 338313619 392880561 396338696 369602297 429739437 408627734 355928537 370447613 349819001 383617210 406169001 365375747 384082011 318372351 390185580 347265728 385774971 401180779 351674038 340601824 355133437 343820205 407999611 373805637 350148632 388591476 413928602 384371188 350709681 385043391 426991833 358969132 338226660 350921467 340499110 348114505 388322674 341280108 351516363 399075785 369304077 359523771 369492145 341880284 347937462 345832798 365315935 397102838 347776336 357415555 374195677 328087168 392912555 352781956 380666693 355746224 360708116 350420992 396072766 388177442 314840001 393332659 304095634 382326282 369288377 382542376 326425269 331314583] [392861512 486634364 438992314 424280513 444880509 401035482 439551768 388579151 441568841 436197521 439628066 404868715 453934626 388688207 453031816 417859969 433442587 385960105 411972707 434451520 440922903 439356470 394450035 429533762 444922440 408164004 412528940 433639917 426313117 454605213 417870758 426218918 384115635 446203539 450031917 419734089 488123723 464096364 404187356 420743610 397237525 435829602 461260092 414962394 436216071 361677861 443085925 394453135 438200336 455628407 399549891 386810908 403447235 390537572 463367216 424530803 397579638 441402106 470109204 436643568 398447630 437223416 484826798 407719752 384145518 398452618 386769327 395387220 440943439 387647929 399230433 453208320 419463083 408451018 419694216 388265835 395174435 392718901 414982622 451046252 394908577 405932646 425074709 372650534 446258745 400646295 432482523 403989532 409732482 397966328 449738000 440824993 357572992 446771997 345451465 434268963 419385977 434561446 370698324 376248886] [414175099 513214076 463174436 447618666 469184074 423134003 463585093 409685590 465658074 460007790 463712156 427093428 478884097 409913809 477789335 440794170 457022132 407161748 434490898 458303078 465237596 463121165 416167041 452931679 469273983 430556309 434927791 457281823 449733713 479357126 440698811 449522784 405164109 470784305 474725183 442627925 514781239 489776004 426313856 443673499 419105102 459722797 486560317 437682543 460076238 381463456 467375617 415891123 462204112 480360265 421421456 407827886 425492904 411771248 488622702 447794204 419378889 465538105 495777811 460450310 420114555 461261433 511235538 430110979 405349108 420210872 407972830 417041196 465268443 408686528 420994431 477827496 442514419 430787761 442504325 409507659 416720079 414132015 437565839 475836633 416345889 428272641 448320983 392962430 470674202 422581419 456068480 426039733 432294799 419724902 474383975 465167187 377288198 471120983 364383342 458031302 442377818 458258531 391008822 396709593] [333982881 413920044 373469362 360834675 378441077 341164885 373861991 330489065 375593426 370977264 373923029 344347830 386107546 330552661 385412868 355479011 368699588 328409193 350495646 369377365 375189049 373652030 335658620 365583553 378382525 347182887 350841157 368905280 362761650 386575411 355476927 362625637 326872106 379449447 382864069 357064958 415022722 394932915 343897248 357920690 337909481 370607576 392316751 352988818 370983557 307620331 377042809 335480879 372716228 387354224 339677966 328987651 343073638 332230328 394157178 361210725 338238788 375250381 399855196 371276173 338852799 371992740 412349857 346792504 326912056 338848069 328980322 336328115 375222755 329760888 339622846 385511619 356729139 347391814 356978684 330296097 336043738 334135106 352777463 383728042 335997804 345357930 361372838 316933325 379520446 340733035 367937689 343716460 348462170 338607399 382714062 374990283 304216990 379951733 293811029 369468330 356617410 369655360 315305174 319952818] [400809592 496829171 448356005 433181099 454197240 409473400 448663991 396740375 450777551 445235252 448825932 413383525 463532995 396866775 462405869 426688814 442416654 394182854 420490610 443465705 450307312 448379245 402872701 438564829 454250730 416698061 421068984 442665437 435419067 464007820 426654255 435182763 392234610 455599180 459467322 428604949 498199076 474091224 412645238 429496460 405728201 444892592 470852070 423720663 445298211 369311620 452518445 402599616 447476100 464906155 407815902 394840133 411826185 398595776 473003339 433449561 405928838 450653556 479897310 445735047 406653442 446539090 494927427 416311573 392312158 406674495 394866864 403654570 450385672 395690974 407557080 462711993 428289356 416946066 428403034 396443782 403390713 400995077 423581167 460627635 403080599 414526680 433928404 380383273 455586901 409007557 441510583 412466409 418409247 406327821 459217650 450233970 365230567 456049917 352725977 443403548 428046561 443611277 378540672 384013234] [414047665 512972558 462966238 447376898 468979944 422755100 463316361 409625796 465688833 459787998 463386926 426819793 478559472 409750515 477642986 440513078 456891830 406983198 434195610 458185540 465020596 463093824 415765397 452657783 469103114 430436492 434779541 457113942 449540857 479168715 440418769 449286240 405030583 470479095 474595907 442380727 514628899 489378988 426151976 443495255 418918267 459521667 486304974 437448090 459836996 381203652 467109152 415907690 461993919 480186997 421253779 407732026 425372880 411646336 488429977 447575455 419239896 465411307 495607480 460394835 419925340 461099909 511106925 429998142 404886471 420162599 407813361 416741462 465005123 408601014 420772410 477727070 442241040 430568519 442308215 409458094 416564568 413899391 437442848 475546420 416201320 428071344 448054454 392768459 470462183 422520142 455770498 425876048 432008638 419508100 474112270 464923023 377115795 470993151 364109823 457770863 442200574 457953450 390880950 396609194] [394315863 488571546 441032395 426140649 446756139 402829356 441335593 390185406 443454693 437997287 441361193 406584455 455880275 390183898 455033785 419642761 435200146 387766837 413656499 436312971 442940207 440991532 396188851 431318505 446844566 409955339 414000943 435448460 428219887 456413597 419580767 428085665 385993613 448094172 452047286 421454603 490139071 466277611 405887182 422344983 398959842 437780676 463267932 416657149 437964727 363051020 444934221 396100509 440039942 457315279 401111353 388306990 405116724 392073425 465122786 426358207 399339985 443159150 472042100 438372197 399977352 439217862 486704426 409575379 385986338 400195339 388438365 396991018 442938340 389172231 400911824 455011653 421104628 410035954 421308861 389791418 396731141 394344033 416661646 453086769 396538487 407744877 426748558 374016889 448097077 402336957 434196324 405646105 411413426 399732179 451581513 442910467 359162281 448529456 346884099 436134422 421205065 436277560 372313690 377750094] [396657290 491499908 443530921 428610444 449201209 405149118 443930261 392464258 446102497 440527126 443965237 408923721 458472913 392662094 457625835 422058773 437662244 389971023 416040548 438758872 445404222 443651910 398464652 433712255 449524931 412342846 416613458 437959515 430662811 459204703 422120222 430535347 387904659 450685693 454677255 423881656 492939514 468737048 408305024 424858935 401173144 440131262 465903909 419113240 440662630 365337826 447538529 398262413 442630020 460082162 403713979 390716273 407500138 394461210 468079296 428793226 401601838 445829951 474874246 440956947 402381688 441626624 489769193 411777110 388025292 402429152 390678611 399351406 445475287 391583524 403238907 457630852 423691596 412520443 423859924 392188730 399127057 396636583 419248191 455598402 398708447 409997095 429448167 376422797 450786719 404703326 436790601 408048603 413804113 401994294 454334934 445287588 361253778 451271082 348988027 438538080 423601199 438865626 374477751 380045869] [394036178 488196359 440612104 425781523 446338980 402544489 441044867 389750787 443040501 437631672 441124950 406335562 455532902 390020125 454519503 419302071 434840376 387293621 413398405 435868479 442542307 440595917 395873026 430957161 446462790 409722768 413811040 435086125 427872480 456024727 419275341 427750664 385475766 447764471 451586410 421301167 489637498 465777625 405562155 422103800 398623114 437300951 462870100 416348812 437559553 362885857 444691647 395626194 439661088 456957625 400906241 387986663 404770544 391740631 464925382 425991493 398933433 442782265 471685023 437972755 399656831 438773352 486393048 409132657 385502830 399877751 388149767 396760847 442531083 388907615 400525253 454605481 420939405 409783697 421012712 389630366 396509512 394065960 416368992 452607853 396074106 407248094 426425903 373890571 447679853 401970796 433850526 405354204 411164521 399340907 451321479 442413566 358873576 448201105 346630752 435738564 420739701 435996281 371978905 377449996] [420477867 521151852 470243057 454480350 476434372 429634531 470608090 416044731 472859330 467139285 470787050 433662280 486295091 416127510 485287648 447421326 464102317 413502493 441203779 465187160 472269408 470196393 422491437 460038481 476577530 437221103 441667515 464169428 456443228 486710998 447444973 456444693 411396623 477950620 481973578 449519186 522649918 497125835 432921565 450517812 425441768 466855765 494082632 444590758 467158572 387256957 474547168 422372000 469168273 487703913 427980808 414100770 432156828 418149262 496175883 454580436 425976680 472628717 503415446 467541463 426600460 468393007 519028086 436733039 411617911 426868999 414260177 423518159 472233445 414990472 427523883 485259293 449258716 437382229 449327170 415960646 423087452 420478608 444331973 483232936 422783714 434807933 455146908 398946528 477857914 429011240 463148028 432585567 438969024 426189720 481640310 472278550 383122437 478430565 370138733 465091688 449121395 465357118 397100726 402900014] [384797978 476737328 430202904 415702053 435863623 392993309 430613786 380716677 432614771 427232068 430627265 396644899 444634292 380793871 443876546 409421468 424618431 378145238 403770401 425664238 432178540 430289803 386489943 420812549 435836621 400029978 404065598 424781767 417669726 445408447 409444732 417567891 376284223 437275258 441096884 411194271 478055578 454796634 396070243 412099368 389268840 426990372 452030327 406367693 427382011 354312566 434087295 386568220 429146377 446278154 391508074 378844015 395218477 382538081 454073422 416038012 389636623 432398126 460646410 427699398 390262112 428523427 474913123 399517192 376383167 390417787 379034057 387452520 432174461 379832815 391063438 443988718 410922837 400172921 411216349 380408782 387177857 384794501 406567867 441943165 386866543 397760402 416391249 364980416 437284709 392694370 423596687 395743215 401533531 389840756 440635927 431912677 350398467 437643409 338370235 425462267 410916222 425662116 363276064 368600759] [372149527 461279965 416099147 402143602 421517973 380164439 416469488 368293354 418354750 413350807 416465024 383701476 430217513 368289639 429334620 395785582 410671987 365901750 390371589 411671659 417891326 416265378 373898051 407034833 421788770 386910522 390887980 410821026 404015253 430840259 396077422 404022660 363948240 422826113 426534906 397752397 462457483 439825558 383045495 398708220 376467453 413030744 437156594 393402235 413466650 342826743 420007873 373774820 415206952 431651179 378634080 366457256 382291317 370112735 439107275 402247531 376816544 418309914 445375792 413699162 377440113 414359314 459443516 386359840 364172994 377677601 366584966 374696616 417991076 367386250 378381227 429462093 397498410 387045012 397642937 368017180 374406340 372154177 393237526 427536626 374162109 384706963 402827026 353175494 422937744 379618197 409901543 382743013 388368114 377167031 426296033 417868296 338937392 423378450 327483414 411604655 397390916 411917229 351311457 356501991] [358017387 443741905 400415077 386892523 405769318 365796732 400808477 354308025 402749620 397755703 400943676 369258487 414013724 354287564 413286563 381040883 395188448 352095178 375659969 396175788 402222341 400376951 359791861 391782947 405831700 372297582 376181342 395465265 388848453 414497938 380976473 388780281 350450263 406991012 410491806 382711218 445013840 423307954 368661262 383699007 362205757 397550605 420645270 378479748 397752806 329903630 404200564 359696658 399625632 415371586 364328622 352698833 367955054 356138164 422476561 387015076 362646185 402495967 428647261 398172384 363243896 398914851 441981329 371781565 350523515 363557071 352877697 360501770 402147579 353462309 364155492 413266031 382384036 372352928 382536777 354154320 360358074 358036539 378285918 411477248 360127437 370265284 387514327 339765580 406905154 365400981 394495556 368419003 373706211 362982021 410239776 402083111 326218001 407370224 315080260 396041701 382452835 396352384 338193609 342997281] [428739609 531328534 479514233 463277260 485658357 437989975 479888249 424308124 482134535 476276206 479924577 442215379 495707099 424349920 494729747 456389096 473272741 421597347 449732850 474258129 481503779 479650620 430861964 469073375 485873000 445604086 450344960 473509207 465621967 496400784 456336240 465430774 419582810 487139144 491482176 458301348 532899758 506967056 441309152 459316849 433718053 475924611 503702193 453112931 476234024 394891042 483847743 430521378 478563165 497261660 436115535 422316577 440531331 426439114 505776480 463746231 434128480 481829023 513358893 476664769 434981713 477620267 529350305 445262954 419630736 435007564 422334136 431701591 481546143 423263716 435900757 494840091 457919541 446003730 458168739 423913693 431399512 428802181 453175233 492645540 431234078 443342429 464051891 406836862 487250562 437447051 472112584 441142563 447321667 434641682 491074629 481498904 390548094 487801507 377158454 474248285 457904834 474381996 404897336 410779957] [392657503 486507029 438979524 424278276 444802295 400899266 439484529 388492903 441592111 436035993 439444369 404776192 453951264 388614687 452967037 417785834 433331585 385945251 411937901 434463577 440958417 439017661 394395168 429475009 444815012 408206193 412448487 433438429 426346442 454433775 417699728 426123393 384131769 446223039 449985315 419651806 487996202 464118470 404230394 420651549 397238976 435803448 461203100 414864079 436062728 361590957 443060471 394379580 438042153 455431830 399470584 386607573 403320596 390401096 463324115 424446983 397585863 441254792 469998244 436513866 398251042 437265117 484706135 407698967 384101888 398531891 386830248 395352349 440896860 387499879 399075590 453157360 419363446 408301131 419450161 388291875 395110592 392611354 414875801 450997122 394828359 405877910 424900731 372558987 446159712 400650776 432323831 403973570 409675064 397878844 449719142 440787349 357610828 446585857 345439019 434187138 419263537 434443976 370744918 376087929] [430106258 533060847 481075579 464907638 487216608 439444762 481314639 425520078 483665574 477846619 481479079 443566349 497197520 425782183 496217706 457777925 474691565 422784297 451255553 475893348 483026626 480968095 432106923 470409191 487461065 447084317 451697691 474894878 466999229 497857067 457637049 466777249 420793090 488891511 493020483 459711202 534642188 508409849 442687251 460696585 435177711 477451834 505304065 454453300 477740467 396035207 485355846 432032031 479971391 498886420 437699780 423569941 441937257 427589344 507435332 464957008 435517617 483448476 514935356 478296792 436351484 479091073 530967326 446663724 420892583 436444186 423734577 433042025 483123149 424487482 437344859 496191500 459417205 447363406 459589825 425248681 432728417 430091395 454550274 494218539 432434394 444751657 465597816 408068494 488774604 438854906 473665797 442402080 448914515 435959197 492543956 483060557 391751484 489318061 378313356 475761548 459386732 475845389 406029230 412136907] [364827984 452239115 408028149 394191785 413420253 372624487 408362049 361194828 410307686 405310214 408347069 376239562 421870693 361084194 420947483 388336180 402682142 358767818 382717097 403607219 409773765 408160850 366656057 399178864 413477855 379323248 383219721 402830877 396259790 422446510 388355362 396057991 357028370 414647003 418217193 390008459 453472995 431434686 375613638 390895084 369249293 405013898 428519793 385623014 405312363 336195153 411784071 366520846 407289719 423285463 371183449 359312540 374891717 362800398 430451341 394478061 369534254 410117448 436733591 405686007 370126175 406449215 450428573 378863622 357152726 370211400 359440049 367364043 409787159 360147219 370961471 421228161 389652440 379510451 389899321 360851421 367076503 364832285 385632236 419247963 366952744 377297595 394963985 346205400 414673474 372264008 401820767 375405219 380851374 369772856 417865704 409838186 332370463 415119965 320989160 403645797 389641764 403765318 344637567 349517012] [398291690 493670876 445559358 430548966 451356605 406934432 445847495 394161106 447899835 442415516 445973968 410804265 460372001 394355778 459621427 423919079 439695643 391623042 417897961 440740515 447591942 445676045 400207425 435664509 451412479 414101709 418267725 439952582 432490757 461156647 423984867 432385184 389603784 452618381 456773200 425689929 495251075 471017796 410029181 426606768 403157891 442161789 468101395 420939654 442433476 366775514 449617733 400241321 444534987 461916850 405403624 392283120 409215539 396101089 469994144 430858998 403424553 447734684 476877091 442904985 404031296 443742615 491765252 413795044 389637458 404244608 392363056 401177231 447697030 393275894 404989188 459650667 425564882 414405008 425905849 393796451 400870791 398404142 420931194 457694956 400527306 411952431 431232968 377955515 452750791 406489284 438675060 409696643 415834472 403722823 456307952 447351220 362816161 453172051 350325445 440507827 425541391 440720214 376076810 381687210] [367685244 455808641 411373518 397503908 416704150 375650370 411720144 364015464 413511508 408514605 411790749 379335860 425277352 364005756 424428689 391418250 405905145 361820059 385891226 406873305 413156253 411383581 369611595 402382903 416939989 382366421 386288813 406234294 399325094 425766858 391377490 399235808 359771832 417916308 421718540 392991197 457189335 434851856 378566023 393923106 372176020 408325767 432243061 388685424 408597073 338690629 415063197 369525195 410479934 426561804 374298328 362158998 377859163 365820040 433917777 397753329 372447044 413308297 440413984 408888035 373050286 409804573 454010286 382069396 359899875 373312246 362430564 370446939 413328371 363043614 373904170 424421522 392811486 382585706 393093294 363662124 370175933 367749848 388728026 422565839 369904246 380326815 398240023 348921199 418053287 375346382 405065464 378359982 383927352 372740868 421257665 413027930 335057283 418422332 323632326 406715142 392930303 406879035 347391198 352343607] [394516301 488942306 441172646 426255640 446997619 402881690 441548898 390323756 443718717 438251802 441669172 406862906 456115492 390420506 455143986 419788223 435344503 387949403 413830971 436493645 443163536 441207498 396378720 431564451 447140306 410184391 414394757 435611937 428284288 456771039 419790091 428251759 385881268 448367559 452309453 421690524 490360493 466356096 406104889 422617869 398990177 437890558 463494043 416924293 438286275 363293056 445267368 396189593 440260105 457610092 401509466 388651632 405386221 392416195 465552611 426465698 399496425 443445058 472258298 438700786 400245906 439434242 486944421 409679321 386129104 400402638 388664939 397237937 443180984 389446264 401183637 455293997 421328909 410244014 421642032 390203087 396967354 394520432 416846053 453191949 396647210 407886313 427118149 374401115 448232728 402598115 434566314 405862534 411851409 399854751 451921740 442851772 359328964 448826636 347192760 436255588 421403987 436622670 372510536 377902954] [391925856 485600583 438267010 423597438 444033924 400207013 438586679 387880635 440799091 435332519 438743663 404178386 453179366 387971699 452092037 417076843 432466721 385361957 411124200 433633644 440125878 438289297 393671300 428660551 444190059 407392144 411692915 432775395 425542333 453708576 416957968 425428462 383485471 445369698 449254194 418908819 487093243 463387291 403419554 419918015 396403815 434925192 460436567 414199921 435377132 360869924 442212765 393639058 437358481 454572837 398814301 386080559 402772360 389721496 462440404 423763138 396889355 440505763 469214643 435821465 397603247 436615295 483784555 407024321 383453936 397680289 386095301 394663504 440184321 386743976 398515135 452303719 418659840 407516552 418800235 387572536 394284373 391963907 414081074 450342827 394101768 405217860 424196311 371817227 445300138 399946991 431463080 403235052 408925906 397159628 448886689 440092887 356956500 445918769 344869705 433412271 418561540 433597941 370116199 375470119] [373849135 463193824 417981167 403962642 423544754 381828768 418385658 369862954 420388060 415223619 418514817 385443724 432109375 369942035 431226966 397786713 412557703 367506178 392193975 413636557 419978880 418044825 375632389 408881978 423589876 388658034 392502723 412733464 405830043 432743590 397709255 405836771 365704660 424827975 428512940 399503268 464654784 441948278 384940391 400387999 378246615 414994929 439277881 395008375 415245138 344269060 421804380 375430082 417160793 433618038 380442088 368041138 384037848 371714136 440993228 404088728 378563048 420048072 447445871 415624184 379248955 416340645 461309622 388283583 365772101 379353613 368218809 376387275 419951043 368965982 380065114 431223718 399337933 388817160 399509602 369645478 376230857 373855575 394968936 429488666 375847889 386577164 404613186 354721005 424772496 381425996 411663773 384551115 390174211 378871305 428174155 419832298 340466218 425140744 328904143 413315872 399281668 413583678 352953248 358134221] [397442226 492483753 444301562 429477249 450119117 405863246 444815045 393214978 447001554 441475405 444854183 409776655 459398972 393282402 458518489 422943113 438691330 390747155 416892277 439721093 446279002 444389694 399242835 434758408 450379241 413099759 417479324 438809793 431494324 460131872 422834252 431391951 388844015 451665862 455549147 424823573 493908703 469705577 409180001 425799331 401893314 441107340 466897129 419873782 441508132 366144798 448502224 399080335 443429378 461044999 404405738 391430110 408401380 395352141 468909222 429597796 402333589 446628999 475805351 441854747 403235961 442639508 490681101 412577331 388933415 403366452 391498386 400076234 446117292 392292195 404108468 458581508 424473892 413328248 424510791 392905338 399930002 397441810 419969253 456618082 399664107 410847672 430180161 377110018 451588692 405608340 437616552 408978867 414578660 402772312 455271039 446143170 361980121 451974490 349598195 439467568 424414001 439720519 375326431 380803846] [385088907 477175634 430545888 416064646 436174284 393252073 430880974 381036413 432963877 427798408 431033904 397093031 445137402 381114876 444324527 409764448 424911625 378566772 403863998 425914143 432489258 430708079 386943525 421178261 436400382 400206334 404430618 425118575 418018444 445697991 409655503 417982346 376685551 437526065 441327848 411523400 478595651 455209843 396416551 412492418 389568529 427531561 452365705 406941972 427763463 354611014 434510105 386691799 429721089 446736545 391808467 379152495 395606512 382825914 454286669 416310713 389886981 432678419 460892605 428222857 390645419 428838461 475270338 399994868 376838486 390649238 379305560 387607580 432565444 380064491 391558390 444251406 411269754 400584282 411463104 380723800 387392916 385007087 406953554 442417888 387152500 398229162 416782334 365419066 437519656 392787166 424161364 395980019 401989487 390348757 441044767 432456071 350701306 438057219 338790064 425861583 411222484 426032286 363477779 368855075] [394270860 488596297 440840723 426092596 446749486 402666891 441313305 390042201 443474136 437986364 441291704 406538600 455797350 390163325 454962016 419598167 435114518 387528782 413580398 436289452 442674609 440939542 396070753 431314584 446708433 409805025 414148424 435357728 428092623 456450285 419563022 427950183 385831484 448156174 451932612 421472471 490008915 466148086 405826669 422394980 398788114 437555631 463082519 416548985 437923712 363104221 444799048 395890015 440011082 457274570 401052610 388481226 405160089 392072664 465276479 426315745 399349473 443269654 472126559 438377804 399950014 439140907 486706639 409357680 385918248 400163148 388332674 396966158 442615332 389083809 400849688 455128528 421082563 409894229 421167391 389882972 396594183 394279828 416638777 452913416 396561220 407736631 426668807 374023307 448018139 402360675 434036294 405790529 411327806 399629702 451503920 442696980 359039536 448517229 346850138 436105879 421078787 436281743 372349700 377728712] [360229635 446405783 402691331 389246134 408046863 367879375 403147411 356462136 405047382 400000787 403128879 371285352 416506373 356556629 415410966 383243469 397553002 354157514 377915499 398586450 404548785 402938599 361865166 394009687 408233202 374446418 378600668 397649321 391214129 417025992 383351509 391076287 352291668 409381621 412859845 385001380 447643623 425632364 370751749 385917230 364443981 399777096 423114665 380691499 400231274 331862076 406519570 361770008 401986831 417840582 366526529 354765959 370039251 358196914 425117199 389350269 364685723 404923322 431199866 400495860 365410407 401142327 444659531 374006304 352363187 365452240 354969536 362712323 404645614 355583855 366193297 415663371 384805305 374646742 384861090 356188475 362514308 360300030 380608301 413719851 362122971 372424005 389983553 341809152 409369016 367490691 396706836 370615928 375849951 364995577 412612180 404397309 328130710 409756490 316935661 398393613 384668606 398646468 340057295 345080823] [381704769 473029190 426852620 412602229 432327112 390011254 427259529 377700175 429169390 423971634 427328396 393579195 441275872 377883879 440413063 406301868 421221424 375256655 400417545 422266092 428723691 426926760 383552775 417432323 432530474 396802084 400822897 421511796 414537388 441770315 406173062 414360955 373440478 433779692 437423693 407929622 474398414 451357700 392993841 408891806 386217514 423708468 448385535 403371147 423963034 351691980 430780504 383344436 426080633 442787859 388377439 375756169 392158678 379597620 450287461 412722894 386516545 429003428 456867760 424380117 387223674 425127431 471249524 396345821 373502027 387286095 375988005 384271081 428684005 376714721 388046451 440383336 407860120 397136215 407837731 377390254 384053863 381588034 403299165 438608401 383764984 394645825 413134243 362224935 433827103 389412717 420371176 392650717 398368512 386865413 437227855 428776468 347703710 434219296 335781644 422218584 407633325 422328738 360383839 365692194] [378386740 468655513 422933363 408830905 428488588 386446783 423359782 374327806 425376244 420055440 423493279 389938871 437339960 374414904 436384866 402537221 417501444 371822304 396756893 418506196 424970172 423153131 379999398 413635383 428636241 393220188 397277897 417643632 410698027 437936844 402511020 410700298 370017355 429798800 433555092 404200938 470216411 447231322 389354068 405090312 382789326 419898279 444472145 399832575 420232381 348294140 426841717 379862503 422035732 438931890 384971717 372466492 388581351 376031445 446246893 408924876 383064947 425156574 452707780 420628668 383733152 421238033 466960477 392888284 370081084 383778938 372626609 380894704 424947938 373282807 384616931 436506001 404146034 393479160 404372816 373913771 380677419 378363157 399623043 434612792 380296543 391010238 409487823 358893169 429905225 385893018 416602147 388883809 394779050 383300937 433338174 424777333 344529757 430342579 332813532 418280043 403976479 418551850 357017750 362282469] [363390848 450125720 406295845 392630055 411782619 371105293 406652888 359488577 408500841 403544321 406686217 374575810 420174002 359559893 419167494 386674923 400890723 357136896 381236541 401947584 408150874 406340981 365038910 397543845 411632765 377755703 381647237 401191149 394567437 420517551 386656917 394430799 355418327 412958312 416481129 388404671 451437704 429589516 373961587 389175675 367595834 403324246 426880354 383909664 403613228 334501031 409978465 365037510 405397104 421432960 369626145 357802023 373228965 361175826 428733028 392831451 367980785 408354856 434971987 404055044 368573396 404668547 448347963 377399571 355647752 368700534 358038509 365864253 408170988 358562284 369453006 419380763 388028823 377826459 388278454 359278569 365591594 363445214 383886455 417362390 365353546 375604175 393205158 344672957 412890723 370698629 400190369 373750148 379259646 368181489 416053480 407923760 330980122 413289143 319634297 401927984 387952186 402088750 342977623 347956495] [363728209 450596008 406549512 392867187 411981015 371504869 407033427 359887959 409010271 403826900 407143301 374731364 420439887 359906830 419585803 386983300 401384703 357515624 381641405 402292108 408453940 406793778 365313656 397824747 412010140 378114873 382092021 401492466 394926300 420900831 386967822 394840848 355855153 413281499 416845871 388668484 451865132 429856958 374383764 389611322 367974328 403596409 427186936 384373313 404074443 334887729 410417249 365269640 405620556 421900157 369942384 358162526 373534934 361555227 429197299 393124483 368329658 408623142 435325716 404226263 368915036 404974029 448961102 377652876 355799746 368934544 358255319 366176209 408536989 359009812 369772624 419703965 388555795 378262920 388586747 359574330 366008720 363770544 384133644 417772288 365732344 375958946 393527515 344942145 413260146 370977854 400513706 374057026 379446844 368503157 416608502 408376168 331253714 413655149 319962847 402171055 388307681 402382376 343244410 348379509] [368951521 457028790 412585881 398724493 417911586 376866254 412874629 365020199 414897384 409822828 412993682 380527447 426573101 365070665 425469534 392618984 407221417 362654255 386944966 408241589 414327054 412658173 370618099 403517839 418146986 383552782 387500264 407520077 400677718 427146357 392551930 400502375 361026911 419220051 422849918 394400486 458549270 436137285 379631449 395173363 373183831 409457711 433433834 389811377 409776368 339766451 416272968 370509571 411767093 427940010 375393074 363330594 379137620 366833063 435217940 398856770 373574514 414631335 441685975 410248787 374228833 410978688 455479414 383080419 360977650 374341494 363498765 371503831 414279910 364041563 375099083 425710918 394077951 383664339 394202792 364755272 371134292 369061871 389793680 423910309 370870500 381391744 399362570 350011482 419192160 376480631 406217371 379530838 384833391 373913580 422613311 414246145 336010348 419775123 324466477 408042473 393960260 408225889 348309690 353329018] [432141122 535551426 483259722 466900296 489552660 441252969 483676421 427777248 485980654 479967132 483709736 445591279 499590311 427711599 498476483 459871206 476925271 424915819 453360743 478024916 485330110 483289849 434238027 472788650 489672443 449192291 453922239 477245795 469267938 500340820 459940071 469031922 422709628 491018435 495424154 461970660 537005039 510990681 444841703 463038417 437137974 479588946 507680547 456570769 480045027 398061851 487721985 434080631 482315308 501270170 439618945 425658075 444027204 429800716 509824496 467290324 437521558 485709936 517312711 480514952 438366722 481308909 533550071 448683517 422823759 438472809 425756533 435049442 485373399 426666902 439327424 498780427 461494868 449415852 461787929 427348220 434933072 432198724 456641853 496400715 434561956 446813100 467708599 410043885 491117535 441056073 475845886 444637998 450908578 437942313 494981368 485177003 393626387 491600469 380140835 477921624 461532866 478206540 408097649 413887349] [416861105 516707058 466231762 450518524 472245166 425707728 466584116 412532082 468746990 463109804 466681955 429966218 481973942 412628752 480898574 443641024 459980312 409910098 437266632 461326730 468277084 466180989 418845115 455926357 472418234 433392349 437815322 460379634 452676911 482602672 443698517 452437246 407842833 473921982 477824290 445669880 518162061 492918001 429093237 446640711 421874685 462673738 489697679 440588563 463091018 383977001 470477706 418740308 465417332 483569709 424173033 410598648 428276216 414564477 491821237 450774831 422132308 468762414 499040912 463546060 422878355 464351143 514699731 432952332 407958824 423095262 410596952 419731294 468254605 411412886 423815438 481199874 445315198 433519987 445412005 412207311 419501138 416877754 440433363 478917021 419206818 431084239 451413232 395586274 473751505 425466914 459103583 428903508 435170248 422524677 477472548 468106523 379787852 474254331 366814195 461030625 445313507 461333247 393679236 399328315] [431461429 534653494 482593461 466282915 488776360 440799275 482945978 427033263 485171001 479242058 483088320 444995878 498892929 427104875 497900195 459181730 476175607 424353322 452593060 477338424 484586205 482560044 433576383 472034763 488977901 448597634 453097696 476535540 468602469 499430623 459116604 468418425 422320771 490395272 494642814 461239321 536244919 510278983 444190586 462347186 436546971 478966597 506963276 456023428 479308938 397446797 486923223 433451853 481552335 500323100 438986552 424878067 443313199 429143884 509039670 466568182 436893795 484981999 516589168 479617056 437627592 480642113 532695993 447995985 422248829 437842492 425027873 434415534 484612132 425947246 438679651 497853020 460965377 448824673 461009340 426654420 434199990 431563684 455856419 495915518 433875375 446210275 467003578 409446431 490343583 440245592 475125023 443906385 450262293 437314670 494211784 484667203 393060782 490879975 379630934 477210889 460799369 477435868 407447354 413460299] [388081912 480732585 433848970 419261615 439473057 396171457 434299735 383830256 436270766 430900492 434294399 400063560 448616619 384059431 447516178 412821392 428188284 381455406 407026100 429302268 435717351 433918093 389747242 424422919 439599479 403373848 407439649 428397618 421266557 449065122 412767462 421044046 379604236 440931475 444595007 414770854 482314566 458635052 399306381 415612456 392494889 430730779 455820620 409938192 430920551 357246964 437795554 389611468 432893170 449919577 394716520 382095393 398522941 385837637 457810880 419507576 392836977 435929799 464442707 431224336 393556917 432087827 478986184 402990067 379558672 393621786 382148051 390688866 435710297 382938602 394348971 447679247 414510854 403562957 414513818 383577329 390377544 388046510 409939537 445662552 390120910 401127801 419989312 368147389 440782590 395867574 427231333 399169821 404861500 393207042 444393361 435689883 353403605 441302242 341403138 429031514 414325487 429280200 366219344 371586636] [386410999 478688263 431939387 417479922 437621506 394562361 432548027 382229614 434564956 429133526 432513106 398325648 446530105 382398115 445640659 411163730 426427908 379749070 405234302 427642154 433857983 432103054 388025362 422549050 437709134 401629685 405695057 426663304 419468650 447300223 411096276 419248447 378063093 439137883 442787879 413083460 480331831 456647240 397600184 413881218 390908553 428791642 453832482 408237738 429089161 355797169 436033767 388037849 431044177 448116458 393094674 380540072 396908113 384127003 455920833 417753041 391276898 434294580 462511260 429455202 391848803 430348123 477106169 401066724 377888908 392121442 380426540 389107863 433752994 381280698 392766267 445867286 412839240 401873120 412751556 382005288 388714231 386459063 408203291 443806469 388557118 399365512 418183849 366579328 438956329 394240451 425373000 397509296 403099065 391482881 442562917 433794594 351817279 439460856 339942662 427264226 412611861 427469995 364741696 370071693] [373358541 462602919 417496218 403427638 422898117 381234489 417867526 369517133 420018007 414613046 418047432 384891251 431576213 369659348 430714032 397281353 411999981 367096580 391591466 413061736 419334386 417564302 375026461 408400538 422997098 388075503 392127713 412343000 405381183 432195650 397249085 405282090 365249453 424193567 427955813 399096894 464000868 441340316 384355227 399930754 377656472 414368475 438525222 394517394 414663126 343795239 421301372 374920072 416581545 433083746 379760535 367764764 383505108 371248438 440537476 403675453 378012426 419578057 446901598 415092838 378738975 415816324 460982752 387660058 365130797 378837022 367722385 375826169 419395165 368493792 379640231 430831129 398660900 388169890 399002927 369181929 375740615 373412502 394487509 428841203 375419289 385825566 404077380 354217925 424188809 380983266 411137849 384104200 389515907 378283976 427739353 419056435 340021575 424762041 328425348 412841623 398813862 413080079 352462857 357518795] [367381124 455282433 410942135 397066617 416183463 375347961 411200923 363612636 413113659 408120388 411351940 378889804 424737751 363650911 423872726 391048231 405398767 361321932 385438676 406582667 412612775 410850431 369106023 401836408 416425551 381893975 385915773 405731954 398943436 425324913 391052829 398746256 359481700 417633111 421139222 392658912 456709061 434280098 378076966 393522389 371639455 407823593 431711143 388284806 408206275 338371799 414577029 369099422 410070059 426111299 373919861 361803209 377449989 365328059 433416284 397288269 372073122 412957932 439892256 408482040 372767916 409335350 453535273 381514518 359532587 372802837 361928694 369943937 412715764 362591793 373555337 423919527 392478977 382134627 392556703 363221931 369652840 367394776 388202825 422111919 369455542 379912273 397792327 348529820 417582063 374873906 404641532 377971219 383492830 372284043 420707994 412618733 334750517 417960738 323287115 406320202 392460265 406475883 346982236 352051269] [335902274 416286662 375634805 362948323 380534590 343039590 375784356 332296991 377632380 373066991 375970902 346366547 388419634 332371443 387395359 357413940 370661082 330234685 352420402 371637249 377194028 375521245 337531401 367422594 380580306 349094606 352738681 370705908 364635758 388803169 357303129 364597070 328639064 381804072 384887058 358953508 417481335 397110499 345780461 359781522 339903126 372811644 394537382 354970698 373082887 309328782 378994428 337257026 374781500 389554128 341714382 330635135 345042960 333896215 396311444 363062447 340125213 377431052 402025353 373449901 340706698 374183419 414556142 348812729 328743073 340745309 330856801 338152191 377280512 331337672 341433965 387556021 358842640 349298186 358844185 332059073 337759963 335891986 354821956 385938691 337726972 347361060 363586564 318672290 381659824 342641049 369910378 345527274 350631437 340445626 384704740 377286453 305939739 382010143 295542297 371526784 358702004 371619609 317094499 321720865] [402596995 498897188 450262082 435054750 455978202 411182376 450441809 398397714 452692457 447128016 450690025 415167033 465301743 398492369 464462431 428385308 444262386 395850256 422186929 445330778 452121978 450260925 404478056 440367456 456207372 418356868 422700949 444601332 437072175 465969151 428376788 436901545 393868788 457412815 461395641 430222843 500313745 476011302 414387523 431228512 407168446 446829833 472967166 425296266 447223779 370746859 454175279 404319153 449287909 466894539 409577558 396502573 413664288 400357700 474862999 435212315 407673407 452522337 482001628 447638223 408391419 448333169 496971990 418094488 394034187 408362943 396457100 405272740 452165220 397267489 409370862 464493713 429960865 418588606 430188889 397983517 404928778 402583829 425376182 462559079 404750683 416206908 435789935 381910505 457498208 410729211 443361884 414029524 420150953 408052094 461057254 452070671 366708217 457952365 354080763 445179549 429983964 445419440 380060602 385632548] [366665274 454416633 410141075 396307935 415495706 374455009 410450574 362961540 412437550 407362203 410566664 378216721 423980931 363008585 423159138 390286053 404658812 360662936 384730725 405709680 411882058 410103850 368459206 401098817 415609270 381204266 385129270 405098934 398321948 424463424 390286073 397986814 358839012 416756104 420345961 391973353 455821551 433599185 377421756 392882646 370976133 406961445 430801714 387539503 407291671 337691625 413816791 368432150 409388165 425239648 373141894 361198934 376705375 364672917 432642469 396589343 371406209 412173419 439106817 407682418 372015106 408461748 452825999 380821376 358796626 372124377 361256023 369248699 411899066 362006608 372821178 423267001 391630443 381322232 391901841 362580212 369018712 366743576 387480161 421274678 368758768 379213185 397034370 347936808 416744645 374174741 403871158 377303745 382689317 371656397 419953655 411799004 334062585 417175873 322569615 405508501 391670775 405771289 346347472 351290753] [402892632 499154965 450507773 435285429 456466121 411413934 450904412 398567957 453114870 447458926 450982903 415356259 465876276 398680247 464796653 428738649 444616403 396111800 422660741 445657431 452523531 450539592 404677655 440671987 456419343 418864348 423137935 444834224 437514996 466279449 428554374 437300362 394231747 457845674 461788720 430726814 500673892 476292752 414781238 431684268 407650026 447196837 473215650 425782425 447488469 371080456 454735735 404629733 449590389 467235946 409835221 396823674 414032381 400696143 475340462 435576283 407932123 452775874 482253803 447970431 408695845 448757237 497451428 418367078 394150957 408834215 396899344 405610374 452447599 397557209 409498831 464900510 430517629 419112318 430406907 398435663 405423841 402913113 425596844 462938607 405015421 416533526 436020648 382186541 457795498 411160180 443724376 414568039 420346718 408294007 461591398 452388259 367069158 458287830 354351100 445569294 430262097 445725417 380377360 385892111] [372511523 461713500 416528958 402599641 421959880 380486652 416945639 368591055 418874159 413779383 416962898 384113840 430647465 368718969 429687134 396304423 411174776 366175149 390746843 412233218 418245759 416575814 374180454 407422312 422208681 387223765 391250860 411282620 404502679 431205807 396420738 404327552 364438470 423400512 427020706 398105731 462982484 440361436 383466349 399138604 376852144 413412876 437667209 393613950 413804242 343093330 420358922 374206493 415659754 432052074 379001695 366783233 382690367 370462577 439502409 402738012 377273149 418674346 445978636 414058917 377858466 414887878 459877508 386836745 364430960 378101814 366980754 375080243 418330772 367694450 378684291 429812793 397974803 387453242 397930390 368280238 374820925 372542413 393552520 428045334 374575904 385222491 403213140 353400693 423297613 380065147 410127115 383231971 388740926 377505084 426627325 418329466 339295545 423730802 327613193 412004916 397830455 412139614 351791813 356938174] [379921443 470681924 424883327 410468859 430257197 388159596 425181157 375863630 427108661 421760522 425251009 391672372 439251342 376052319 438127925 404221564 419208818 373569161 398407764 420212061 426624064 424812372 381656218 415600581 430531872 394928968 399016546 419451080 412480912 439797870 404350170 412438207 371673060 431701852 435512334 406002049 472118003 449117265 391000139 406986913 384362378 421630979 446249476 401346174 422081737 350061218 428768494 381510858 423971401 440570830 386603460 374117941 390365164 377703607 448254859 410676159 384617219 426968966 454770369 422280074 385325597 423088068 468922563 394485071 371720173 385404274 374242837 382544914 426765501 374904882 386110096 438249358 405845767 395078564 405919090 375619258 382214520 379860910 401481295 436470333 381847872 392673158 411262039 360429561 431703327 387561789 418310758 390741378 396525415 384922010 435131266 426688832 346166162 432245603 334381567 420071709 405769536 420340340 358723597 363921230] [365678948 452994055 408740073 395073187 414245017 373354406 409212796 361659030 411241295 406019338 409239749 376920265 422722790 361845126 421766324 388996107 403552862 359292948 383496038 404527444 410593075 408856685 367151417 399937595 414217962 380057064 384008873 403655188 396945779 423178936 388883612 396883588 357742016 415491369 418999880 390784295 454445571 432125309 376358985 391700860 369882062 405874301 429449813 386284144 406006158 336720678 412609647 367204941 407936581 424098340 371899170 360019578 375684049 363537246 431354703 395085609 370180343 410931038 437599196 406552583 370866848 407212512 451325385 379621675 357648353 371102146 360202486 368042543 410459498 360744814 371637033 421870184 390509862 380215751 390594322 361531077 367890827 365607782 386237942 420034200 367623833 377892928 395642878 346920471 415383514 373039066 402599959 376119185 381464376 370527306 418842788 410534004 332970380 415858866 321552964 404369815 390419613 404557981 345115532 350172153] [427567105 529772272 478056567 461998948 484383344 436602764 478485104 423145746 480958369 474852384 478678015 440809082 494317208 423216904 493417412 454999130 471801965 420447210 448450656 472946808 480264168 478207410 429515295 467726480 484433336 444441486 449045832 472150396 464268281 494858861 454787510 464096009 418322909 485790029 490082791 456997530 531422464 505435304 440152704 457996400 432518161 474629367 502233173 451911080 474910712 393785896 482424727 429432787 477085025 495974680 434984932 421136182 439242086 425225025 504437023 462222768 432941232 480481783 511813893 475440108 433708456 476272757 527798100 443939515 418337126 433897809 421167767 430368809 480199844 421947781 434743751 493481852 456576679 444609406 456867253 422803848 430168327 427505632 451709192 491217181 429938399 441996257 462713535 405656221 485822164 436259201 470920874 439843271 446194477 433216045 489765254 479962839 389441377 486365129 376054468 472775941 456650058 473060517 403711166 409536150] [340125755 421580723 380331345 367632223 385211718 347416860 380685079 336630269 382504357 377775765 380747798 350757856 393299239 336773534 392359613 361864268 375350085 334484562 356724564 376251835 381988377 380445015 341802159 372080921 385563380 353546265 357341961 375567440 369390209 393701229 361976477 369256967 332766776 386422340 389747690 363590666 422673481 402086756 350155904 364524441 343975846 377448319 399458734 359488006 377860196 313459203 383932757 341552336 379719905 394506343 346108639 334977230 349467465 338380964 401336209 367601282 344324773 382354620 407095194 378179360 345034050 378698063 419996311 353075719 332864082 345075241 335002789 342417133 381984218 335756722 345802299 392446957 363290678 353709502 363403946 336373754 342230321 340079061 359343236 390752726 341921736 351564329 368178959 322844872 386447111 347007977 374662074 349984131 354881901 344760787 389751813 381933600 309788127 387029354 299301594 376200713 363195853 376524097 321096145 325803892] [382813623 474559052 428235376 413801715 433580183 390980150 428436154 378922008 430639167 425374003 428586537 394798143 442606598 379061956 441720612 407328179 422451761 376458273 401502256 423650583 429937382 428137499 384598599 418677563 433941431 397993867 402144314 422711915 415685542 443246583 407393457 415492950 374525066 435111979 438943235 409214241 475928849 452570804 394118231 410145003 387322191 424834637 449817420 404710887 425334372 352437767 431998855 384453281 427220713 444111071 389597684 377156137 393333475 380673794 451751393 413989624 387663893 430310009 458385684 425702952 388377229 426399386 472725169 397600991 374554987 388583319 377057477 385390775 430129883 377895271 389352978 441890385 408922378 398120501 409040024 378595042 385142071 382817224 404578255 439889395 385010885 395904165 414482118 363287400 435094090 390723390 421566358 393881707 399538241 387951367 438496518 429876797 348729705 435614066 336811247 423280659 408956679 423533010 361506567 366823076] [360568673 446834006 403173783 389685151 408483318 368229264 403483432 356874282 405561081 400518803 403637666 371708408 416795387 356918470 415993507 383658984 397934139 354473468 378255208 398901469 405039793 403195766 362195618 394345777 408540882 374730928 378665519 398120684 391363230 417496689 383730329 391405443 352702743 409736645 413342766 385419604 448106782 426264675 371278359 386280494 364754999 400175513 423567863 381006932 400464855 332014129 406887578 362140698 402325190 418330256 366814191 355127898 370463476 358466332 425462155 389901034 365142302 405243293 431578359 400947237 365797769 401603134 445106186 374413957 352779460 365995294 355170415 363011520 405029429 355802008 366696775 416105819 385022002 374936139 385321359 356447832 362836168 360591198 381061402 414327070 362679926 372760285 390285746 342035975 409681235 367961670 397050225 370962338 376289078 365355288 413043134 404786443 328366617 410174031 317183522 398737626 385180127 398923094 340529495 345408864] [368998251 457453444 412906188 398872382 418261955 377140430 413090454 365347536 415093764 410043118 413340974 380551341 426800407 365499666 425965581 392899577 407250110 362989345 387293571 408312389 414704396 412877384 370975588 403850077 418200489 383807032 387723529 407686711 400955118 427196967 392885653 400725739 361130214 419614873 423195585 394632562 458627566 436551877 380063203 395469787 373597031 409679470 433694785 390207809 410136979 340005961 416605636 370769953 412029934 428061479 375515842 363584342 379112911 366975149 435600459 399264601 373892610 414876896 441933008 410353911 374377529 411219637 455678480 383325433 361296863 374594863 363634473 371687855 414913812 364338346 375412122 426010834 394359853 383876406 394423517 365091384 371480915 369120613 389997577 424137195 371190927 381717739 399583207 350157080 419547810 376668990 406553250 379806944 385390149 374010468 422809675 414570269 336307074 419940158 324709048 408293378 394289381 408389389 348596660 353692625] [381591152 472906690 426761752 412397903 432320712 389743049 427130639 377814823 429304549 423986885 427232442 393536486 441222631 377791163 440349540 406133020 421144089 375233166 400432691 422192290 428746509 426859055 383510977 417478705 432469024 396748467 400862569 421468959 414453882 441798911 406168025 414276268 373269034 433702329 437512451 408033522 474180133 451228130 392914289 408864635 385945367 423606433 448390583 403276624 423993743 351402011 430713932 383254961 425812457 442597201 388250924 375959485 392034002 379539034 450394259 412784380 386507937 428842678 456939502 424248116 387133760 425033161 471239056 396367370 373484122 387226845 375957962 384237476 428713002 376860461 388169294 440462850 407626450 396859119 407754589 377376322 384163919 381752352 403301398 438377877 383749973 394574521 413053616 362030188 433647653 389535671 420264739 392670726 398198756 386794402 437141678 428442920 347619784 434017244 335741216 422037248 407501589 422296262 360348422 365577432] [351625474 435661918 393341490 380027131 398421381 359319942 393524055 347828871 395383246 390500027 393704028 362566554 406629342 348084509 405722695 374330403 388022131 345770719 368893685 389025444 395014882 393294387 353236235 384611548 398406694 365707237 369379391 388347203 381948445 406913364 374209918 381827229 344138493 399624665 403129147 375872156 436966758 415760532 361978143 376663151 355757054 390223291 413119572 371627692 390596240 323806583 396852123 353109683 392438118 407832720 357762580 346400109 361219988 349674684 414868369 380273148 356117918 395167095 421045475 390967389 356765375 391750333 434035016 365183983 344145936 356864074 346497956 354047474 395014671 347008335 357546570 405794751 375666619 365690073 375748188 347715601 353837867 351746808 371591699 404129537 353658175 363454262 380585267 333628539 399582169 358783259 387233268 361821579 366956189 356360146 402829268 394799213 320355062 400063959 309362636 388869196 375538398 388984750 332093842 336964207] [362171180 448915997 405222406 391474487 410286250 370064428 405409396 358378470 407397267 402278648 405524725 373580468 418724134 358571423 417977853 385568537 399767812 356174579 380008572 400786306 406902376 405145478 363920260 396233219 410508176 376647351 380409065 400058007 393404463 419328525 385490146 393155861 354405607 411731604 415424568 387160952 450202855 428222500 372914698 387986438 366584791 402086568 425551234 382726307 402446009 333606040 408750915 363853086 404191244 420079058 368653795 356809211 372188126 360249319 427429618 391711942 366827447 407164862 433923465 402707571 367420037 403573295 447266286 376247184 354372273 367556172 356836786 364746355 407039881 357568276 368291213 417989286 386983909 376779050 387104931 358171971 364520383 362279386 382840800 416233406 364165363 374568306 392171814 343619869 411736612 369713067 398885417 372615639 378074689 367084459 414907685 406775268 330072917 412101265 318486147 400500082 387004568 400655270 342029897 347040143] [394571473 488866289 441151626 426278206 446838837 402902758 441435453 390346157 443504530 438126641 441580982 406795847 456127816 390374176 455134800 419707907 435377145 387845003 413814273 436288068 442935943 441115494 396293061 431635908 446995572 409889083 414309447 435469271 428146436 456621763 419875763 428019385 385853659 448231277 452069871 421578591 490272935 466353474 406009214 422587291 398984828 437746062 463425243 416876327 438200459 363172555 445117660 396235173 440052394 457502849 401363951 388478358 405282194 392273807 465509470 426514461 399436767 443265674 472257917 438553046 400214733 439294220 486948884 409686651 386088930 400262580 388546183 397267954 443026688 389309649 400952852 455278021 421294025 410222152 421603654 389954277 396813372 394499969 416832610 453212735 396740163 407818459 426950173 374284169 448214981 402425965 434428422 405826576 411700171 399753418 451736363 442946601 359313013 448796088 347141220 436264575 421212191 436442072 372448992 377903587] [404825891 501601004 452679697 437348419 458565266 413281772 453015958 400617621 455244458 449568610 453204538 417464261 468063629 400722942 466894127 430599681 446634838 398019576 424489576 447824084 454533981 452573271 406533490 442804532 458693331 420684585 425099908 447048076 439416365 468559297 430672662 439275265 396043846 459984994 463890766 432737938 503179577 478519157 416654737 433774202 409417640 449283716 475495165 427771530 449562451 372782947 456804155 406609458 451804118 469417423 411810508 398692120 415924573 402577423 477579907 437573411 409790783 454966083 484503202 450044756 410628828 450829137 499729751 420262975 395963620 410764983 398684513 407500982 454593803 399452164 411460671 467082025 432345670 420909545 432522779 400296930 407284110 404786525 427585991 465073173 407038209 418444627 438204533 384132176 459877592 413086188 445783889 416509569 422443824 410209173 463709502 454467413 368728280 460577498 356231312 447588840 432318054 447912436 382191770 387698555] [385825469 478020797 431430690 416930814 436977042 394100152 431819647 381695465 433843573 428445458 431884346 397780963 445955693 381966443 445101573 410653327 425681052 379213253 404702768 426739687 433331735 431460203 387567049 421904442 437046209 401044470 405127621 426084806 418999458 446470586 410526609 418770420 377417862 438352224 442122530 412424812 479344805 456114983 397132763 413272946 390208572 428082487 453130498 407589551 428390039 355277513 435341422 387395951 430522179 447458063 392434836 379976643 396228408 383589916 455202723 417200734 390580034 433568747 461827876 428871177 391345994 429608845 476262657 400565283 377465374 391434545 379953199 388382409 433338886 380787795 392192500 445145885 412037383 401205398 412223057 381444598 388238656 385810080 407703878 443120531 387951949 398686592 417459488 366093499 438322746 393605669 424725676 396960204 402451430 391024190 441890332 433086195 351331413 438882274 339344240 426640446 411955624 426781199 364221382 369601369] [396726591 491399474 443535027 428625299 449323512 405094269 443829991 392387900 445978007 440508026 443899455 409035913 458604714 392492137 457566327 422088940 437715640 389883809 416055401 438906961 445475057 443621577 398383040 433797409 449398622 412393188 416470683 437979518 430729866 459128621 422012406 430491249 388060510 450771555 454623238 423838905 492989180 468971077 408228029 424851288 401267641 440208175 466008495 418990982 440500861 365171878 447460046 398402935 442586750 460043159 403534347 390520881 407438416 394397501 467862613 428803694 401591260 445705328 474787831 440939601 402276974 441760121 489538205 411892659 388086180 402540284 390783213 399312167 445423882 391471250 403138717 457699608 423591192 412552925 423804655 392154520 399080019 396635201 419060055 455734768 398866034 410057468 429291764 376470172 450652070 404758606 436685216 407966359 413869190 401943044 454225104 445422444 361175093 451178424 348794022 438595069 423595562 438800655 374428377 379888367] [413752021 512503461 462577923 447078736 468506396 422657848 462989434 409240733 465166995 459404601 463034140 426481069 478181364 409432457 477196815 440249135 456563450 406592031 433877737 457779506 464645265 462578075 415519734 452348899 468664019 430001947 434385149 456714130 449170916 478817261 440132032 449089682 404821410 470100962 474172031 442044469 514240323 489004822 425837035 443142006 418570096 459172059 485899833 437064528 459455049 381025031 466888113 415482152 461580961 479891298 420815142 407202211 424939502 411249165 487993345 447187358 418791823 464880433 495051763 459951281 419612508 460747055 510663043 429543265 404660703 419826633 407475705 416391178 464576734 408179448 420457449 477234080 441887472 430278091 441903415 408902843 416199952 413565886 437052390 475289708 415931826 427593037 447630660 392500168 470093553 422067062 455476588 425481111 431614549 419224790 473860172 464616572 376771344 470526407 363878043 457469244 441855222 457633489 390530292 396284283] [377317568 467496144 421816182 407488607 427262159 385197040 422132061 373456011 424223486 418901368 422173438 388885063 436153558 373395169 435152975 401318074 416340933 370886195 395800253 417239393 423657457 421922281 378905641 412673166 427475456 392200417 396296498 416550249 409582081 436723367 401593902 409517219 368967351 428553407 432477161 403162335 468824057 445924053 388370758 404177964 381473885 418646089 443150123 398470645 419060805 347341407 425769986 378908650 420912452 437645984 383734135 371484144 387566845 375088168 445090047 407877794 381907855 423787209 451474848 419348770 382717907 419994335 465795189 391709436 368985422 382750154 371707773 379706921 423764130 372485855 383517906 435312272 402748167 392317931 403098965 372988399 379788661 377249510 398674564 433309761 379342195 389812549 408263540 357943462 428591210 384934562 415456160 388064700 393576704 382217765 432098013 423497528 343598429 429163172 331799841 417089821 402944325 417420329 356077379 361279267] [346409996 429221574 387236948 374141557 392347444 353620290 387589814 342707902 389561047 384618520 387595108 357051272 400383211 342726144 399651369 368621752 382306516 340540597 363382999 383167317 389129334 387396506 347971913 378964495 392412029 359956132 363841039 382312266 376060488 400847148 368470680 375868912 338892455 393573301 397019034 370032533 430453067 409513795 356679643 371110740 350464560 384480405 406769123 365887254 384761424 318893252 390791749 347866063 386413280 401820299 352345327 341007306 355879345 344527484 408637088 374409934 350707386 389274628 414680517 385091706 351425956 385759140 427622213 359800989 338870628 351324241 341224231 348674311 388987857 341848540 351995990 399730290 369939186 360316978 370113675 342482705 348480491 346343650 365860355 397849617 348305520 358207229 374773927 328590592 393522984 353453543 381383828 356226189 361502283 351001361 396691495 388894598 315487933 393927703 304605191 383011383 369874658 383167812 326948487 331801905] [335378110 415514770 374988433 362291633 379794555 342501602 375338333 331808004 377119848 372443799 375317305 345676342 387633813 331847098 386952381 356839715 370069781 329789664 351831694 370914099 376527385 374971504 336823002 366774085 380102768 348670771 352216347 370302057 364114720 388193170 356902626 363995647 328108079 381010943 384549901 358381504 416769264 396424774 345231060 359221926 339125336 372059568 394071775 354320010 372605355 308716822 378373356 336844899 374165232 389039094 341322134 330167337 344546508 333552888 395602991 362633609 339580237 376702990 401490185 372787785 340302412 373453407 413956711 348063894 328143218 340332421 330360531 337555968 376634112 331138777 340984364 386841379 358100604 348821247 358386544 331485384 337464149 335443416 354281487 385341294 337252177 346710950 362924716 318187610 381065458 342114714 369262627 344971151 349818974 339823462 384112486 376444174 305355464 381521999 294982180 370776431 358129801 370974902 316680194 321310556] [373504738 462969874 417785902 403686893 423059365 381495707 418193278 369660160 420142794 414922478 418265294 385257682 431811316 369740439 431032055 397619575 412296869 367403778 391771204 413254651 419500965 417768332 375263452 408599911 423411556 388377779 392334861 412486814 405592491 432499150 397553630 405505874 365417198 424581530 428317951 399279243 464328869 441520731 384633397 400144522 377813004 414563612 438847014 394766920 415029570 344119061 421635931 375097098 416839918 433326075 380217830 367919392 383889046 371603392 440784196 403921941 378230156 419772323 447276268 415277309 379021234 416054471 461259943 387821397 365578177 379145850 367940949 376124472 419474253 368802205 379870515 431075131 399066300 388525919 399171713 369326996 375959188 373546779 394827275 429224261 375581458 386053995 404464088 354484114 424519544 381200208 411465285 384383470 389802766 378573997 427909548 419315445 340326695 424924085 328591307 413031579 398978375 413243581 352836337 357954595] [381785188 472930369 426684966 412260820 432306841 389652126 427282709 377735542 429315671 423816790 427154591 393479650 441282154 377604722 440370535 406143474 421203358 375294301 400328203 422189658 428730362 426836939 383411666 417540198 432458016 396754252 400983241 421372084 414398406 441884730 406206738 414189012 373347073 433691227 437484597 407804840 474373604 451205091 392933115 408949003 385966570 423623940 448346445 403296181 424033533 351497445 430686200 383260588 425881796 442836219 388311346 375877193 392199841 379622102 450329916 412677282 386484199 428827328 456832026 424317629 387284063 425016805 471159094 396337254 373432832 387289323 376049889 384280735 428558695 376835208 387926529 440536104 407540446 397044537 407874097 377471242 384158690 381649448 403315453 438358855 383834730 394623716 413008011 362304477 433607735 389391661 420331556 392616807 398302530 386725879 437119264 428481888 347657443 434197741 335836650 421971089 407582493 422343548 360440499 365544965] [331215611 410515460 370340828 357908687 375326736 338187366 370671266 327856444 372594090 367957635 370762577 341502658 383052921 327886466 382262710 352419109 365519726 325694772 347491776 366410274 372046576 370457655 332813984 362389105 375317157 344268787 348060836 365674649 359676345 383453770 352432164 359563324 323997528 376468066 379678125 354060025 411643351 391574056 341078703 354925040 335084364 367663401 389122062 350149917 367945439 305028743 373770793 332643587 369675785 384197957 337037726 326330734 340268116 329403794 390910482 358180721 335450772 372288295 396556633 368311714 336066825 368885577 408923112 343950659 324182494 336185080 326344120 333447261 372005556 327023097 336815185 382382122 353714366 344450103 353945800 327587255 333348869 331295075 350013107 380562457 333170251 342584819 358574637 314316505 376368658 338007414 364848045 340827589 345701487 335698031 379430098 371820994 301698948 376806252 291416285 366303877 353680423 366573243 312810333 317361626] [373776790 463121638 417901903 403859538 423331963 381671111 418302302 369878299 420190926 415101970 418303793 385315223 431944108 369760159 431148792 397647031 412392350 367495473 392014403 413475945 419721682 418079581 375421685 408667919 423576590 388638634 392417293 412663210 405749323 432646614 397579772 405687367 365672134 424628963 428483053 399361235 464531983 441810090 384666048 400313782 378110944 414708563 439048973 394813126 415233810 344167165 421709686 375457829 417020795 433480231 380326377 368024060 384071988 371599975 441033783 404069132 378380160 419979154 447412264 415530554 379030575 416201002 461303087 388111396 365641236 379214243 368054255 376282913 419867958 368925268 380016683 431207745 399204104 388757019 399377617 369494929 375942236 373694113 395020674 429429442 375759593 386463432 404539981 354618998 424738884 381367717 411540192 384483653 389917095 378797362 427988006 419795341 340284151 425141908 328783463 413270607 399176762 413435449 352872290 358061027] [383967664 475742945 429375733 414828088 434858446 392255524 429635876 379795626 431739454 426545392 429762833 395884309 443796687 379889993 442949783 408618157 423700016 377502240 402739792 424733918 431167785 429370963 385799126 419999541 435024703 399113220 403255879 423883927 416785403 444435905 408563135 416681263 375672534 436339736 440082448 410370955 477077851 453795272 395223794 411283742 388379741 426053280 451057063 405750089 426608553 353541602 433185417 385521481 428372825 445406362 390661533 378190309 394424080 381810066 453039466 415151831 388851425 431432032 459722121 426879195 389553624 427683471 473906455 398718138 375824361 389559695 378168534 386581450 431183123 378892555 390358427 443031059 410157576 399273808 410212554 379629421 386169939 383978887 405705220 441090941 386148134 397021273 415561627 364232327 436225079 391754816 422763220 395023012 400707407 389104626 439710832 431047137 349703763 436781331 337893300 424587283 409985215 424684676 362581704 367974456] [369670442 458076502 413512553 399391540 418828897 377572049 413768280 365965991 415733960 410632916 414001773 381247519 427549699 365904339 426621660 393438962 408038539 363698233 387901876 408932489 415290747 413405260 371577661 404492147 418940641 384374290 388288609 408279608 401487165 427830976 393410005 401401721 361862012 420040365 423770012 395179007 459475847 437356465 380626611 396132042 374005629 410381192 434350553 390765898 410637331 340491929 417272444 371288172 412602319 428776075 376082399 364063020 379809652 367660660 436104532 399792158 374357964 415390977 442421896 410916744 375064958 411777723 456478846 383925185 361874157 375067119 364215344 372254308 415293301 364936286 375841628 426632703 394882552 384445315 395070058 365652501 372072439 369747603 390531056 424813931 371725151 382173719 400072002 350744317 420076851 377233232 407153408 380350896 385770148 374677826 423527554 415219679 336804370 420626306 325380103 408887926 394842540 409155129 349051900 354056364] [355361257 440366657 397391226 384002876 402627092 363014275 397670613 351703877 399562388 394612667 397806249 366243700 410832071 351722669 409952181 378203429 391986768 349302849 372863589 393119551 399267013 397359833 356970684 388615965 402503232 369449375 373268982 392360536 385822872 411387923 378353246 385709908 347494568 404015674 407356549 379853073 441508217 420179258 365839090 380609103 359508041 394238907 417468156 375520228 394705596 327214434 401056311 356938403 396635446 412130606 361651163 349971752 365049117 353166177 419396281 384371395 359961140 399432231 425381426 395113700 360503465 395797345 438672464 368910097 347746956 360605961 350021587 357764149 399180363 350713229 361315289 410182564 379528450 369512452 379767374 351305874 357599956 355420172 375484707 408205667 357332618 367376378 384686663 337142790 403834010 362606680 391296896 365597443 370962672 359985598 406985678 398991714 323726708 404240130 312607322 392929639 379477651 393160542 335606901 340449484] [392464709 486399917 438947017 423967380 444679779 400824086 439263025 388339227 441219523 435924854 439376464 404690764 453790665 388375605 452786546 417628442 433081033 385999019 411667476 434190862 440761282 438907582 394265353 429410366 444696657 408135322 412209147 433415909 426152577 454247044 417709082 425970907 383994287 446029360 449928677 419647783 487831477 464002191 403928462 420550936 397078830 435588315 461016289 414798562 435957262 361475842 443031235 394270270 438009836 455180979 399253221 386593479 403241340 390320280 463032733 424393726 397422138 441134179 469852626 436337137 398131615 437160820 484529927 407526042 384075158 398327036 386651496 395150892 440820314 387350182 398998562 453047672 419219742 408182040 419324707 388193347 394833855 392463242 414697017 450932446 394683189 405740482 424800665 372398069 446012497 400465201 432331836 403803765 409729260 397673424 449492264 440682611 357617114 446560883 345412213 434051936 419230263 434300884 370657258 375904054] [402089312 498091162 449631788 434444093 455329853 410652269 449872719 397817527 452004335 446392653 449967311 414499654 464696545 398012403 463768538 427762269 443621189 395247592 421608255 444719175 451540264 449525764 403793149 439659827 455462288 417863886 422069086 443936649 436524195 465359822 427760470 436396590 393335386 456800955 460814689 429667721 499598431 475277331 413850929 430670253 406731992 446176351 472199441 424660838 446427343 370341042 453641267 403852301 448643297 466329547 408982473 395904266 412981915 399705257 474249098 434637735 406943514 451864373 481153810 446980528 407731857 447724313 496227621 417429803 393331753 407953617 396005343 404615597 451577315 396729895 408569399 463813467 429316163 418044131 429566982 397413820 404487512 401904675 424818203 461891585 404241989 415508129 435095449 381446850 456835842 410248748 442613503 413508049 419510021 407378125 460478744 451433181 366202345 457415001 353613695 444556596 429442127 444724727 379570244 385079076] [388563726 481343171 434477944 419811308 439992984 396781997 434744119 384535405 436957955 431527286 434964723 400535064 449111494 384462207 448203654 413371718 428593411 381995827 407429944 429791659 436341009 434433560 390245339 424836945 440261121 403838658 407975808 429006191 421709998 449721506 413291713 421667905 380116367 441421203 445341851 415287137 482785548 459291871 399923767 416167645 392807344 431183386 456495262 410481917 431641769 357674417 438301654 390163190 433480118 450676951 395340535 382649755 399221743 386291117 458369993 420049029 393367481 436550742 465091174 432003887 394124898 432680609 479553792 403366891 380160537 394186579 382595023 391042309 436365291 383405121 395170512 448202696 414880430 403974379 415141840 384071432 390831528 388530078 410495434 446401720 390597732 401585326 420527714 368509744 441431995 396504420 427789618 399619200 405338675 393678667 445020592 436137154 353746770 442005780 341773015 429532469 414977921 429771714 366825597 372116187] [398053621 493299208 445166337 430297294 450982495 406762046 445412679 394034419 447562794 442231145 445637591 410501305 460284561 394064999 459273615 423598779 439268272 391408026 417685984 440388410 447085440 445203361 399998267 435431668 451165779 413752323 418125522 439650659 432250172 460796335 423581786 432093259 389450876 452274547 456255899 425467754 494671627 470635841 409659486 426435855 402653732 441840575 467692589 420695066 442149432 366567064 449264086 399915170 444259779 461815615 404986764 392065655 408900128 395842315 469607274 430355789 403060579 447377885 476480541 442659994 403786193 443438991 491378256 413381070 389574422 403957784 392274539 400791817 447224636 392873275 404801351 459421046 425041937 413935588 425388237 393550648 400516965 398012287 420593064 457421026 400383378 411553177 430865575 377670521 452397628 406239941 438436522 409445835 415427154 403482921 456008788 447014358 362519552 452956175 350287060 440318495 425178171 440525495 375820489 381270123] [352614106 436999290 394294966 381050395 399389024 360314748 394651782 348879708 396510704 391681096 394723411 363593984 407502419 349010124 406878629 375315782 389115261 346546938 369865772 390078756 396105915 394374939 354318226 385576014 399575845 366604606 370255720 389330404 382908614 408167017 375213260 382802196 344960328 400715222 404287641 376965577 438201690 416824859 362998442 377711670 356827531 391417603 414282047 372617596 391692842 324829563 397957433 354144868 393486929 409082903 358828520 347284275 362306783 350575640 415945449 381200553 357057106 396378769 422188678 392065119 357695094 392767089 435266574 366172872 345051666 357828120 347330554 354917041 396093832 348081969 358560405 406838757 376654336 366787408 376762277 348659014 354815180 352563193 372629013 405141481 354438191 364643768 381594021 334515508 400839661 359782267 388249466 362654359 367990360 357400678 403854297 396033180 321213515 401105654 310105380 389917183 376698563 390097568 332949586 337846134] [376244971 466415744 420928436 406816033 426472419 384455289 421154215 372460479 423359319 418129678 421352985 388065406 435151272 372439405 434564067 400538165 415306679 370159241 394874991 416363805 422808248 421020239 378156742 411679697 426540625 391295353 395369037 415629360 408729110 435553526 400406749 408616480 368253555 427659173 431529606 402182669 467682320 444965685 387439461 403106719 380707572 417729407 442139235 397816103 418061422 346434642 424662390 378060920 419928574 436476045 382883413 370863565 386670506 374271066 444171541 407063318 381226327 422973702 450696171 418520911 381768895 419263930 464633382 391026156 368393949 382019574 370836087 378891791 422872219 371535199 382747715 434465563 401858855 391312017 402124297 372191432 378664129 376335743 397746864 432411664 378530044 389247694 407292707 356961193 427706093 384119059 414503005 387314955 392662154 381528041 431076208 422579004 342864105 428184171 331063949 416256296 401969221 416367009 355392715 360643007] [347141506 430157531 388296919 375144124 393220390 354649878 388557321 343516291 390431530 385610568 388542775 358011493 401324046 343501693 400572356 369313550 383156939 341295872 364117335 384067091 389899002 388191447 348712712 379724810 393395233 360894712 364440239 383349518 376853743 401904704 369393309 376840448 339737854 394488105 398005221 371091110 431518849 410415854 357419022 371958441 351184906 385412965 407830999 366791908 385610092 319780514 391760269 348814608 387397247 402605397 353216240 341836102 356821546 345237676 409600885 375355296 351566420 390185633 415586019 385940339 352119215 386681566 428553954 360486731 339679206 352430587 341924106 349566433 389892136 342644052 352894533 400493647 370825343 361094714 370933520 343354931 349285728 347079172 366842246 398935656 349035649 358939301 375692368 329307840 394524437 354316680 382221862 357154638 362237227 351866768 397606782 389895616 316207343 395026906 305382141 383934496 370866992 384099506 327833071 332610043] [345865608 428553362 386675874 373662887 391661320 353130817 387048482 342279657 388997721 384194805 387121496 356638138 399759794 342312931 398995594 367945377 381683988 339917596 362636556 382524466 388252234 386752192 347371010 378210239 391956638 359418072 363308605 381778928 375436606 400435690 368032636 375363240 338347508 392908637 396299866 369662439 429866405 408671441 355944964 370535675 349748616 383745433 406171748 365523412 384107888 318516062 390214797 347283161 385831523 401232266 351891984 340583883 355300016 343885380 408094814 373857719 350119579 388606312 413910035 384450597 350860079 385068466 426969453 358987114 338309508 351033695 340589815 348185596 388281992 341383232 351604010 399157252 369348284 359668579 369516489 341990885 347920219 345803313 365496427 397298725 347783197 357437891 374272063 328229842 392921152 352795089 380810365 355849707 360784602 350433365 396091414 388245869 314905625 393469584 304331306 382399208 369194898 382657731 326578724 331375651] [362396741 449169250 405420528 391637245 410622240 370230456 405640745 358755986 407534117 402626566 405771278 373670927 419021569 358659587 418203479 385764301 399886949 356367092 380218835 401046464 407117463 405367120 364165919 396390750 410637936 376828921 380754689 400333840 393600215 419667279 385809670 393421906 354675399 411971877 415584437 387381803 450375091 428645801 373121172 388282073 366654987 402159077 425877201 383061030 402639461 333777587 408971041 364029218 404657200 420496355 368751811 357138599 372424344 360386747 427568188 392098628 367088955 407441650 433974684 403039949 367703449 403808034 447483526 376369974 354728055 367873220 357036689 364923194 407120377 357738139 368636853 418446553 387062464 376899449 387285930 358344143 364677487 362509684 383021362 416524428 364625973 374843985 392387700 343889714 411981646 369960216 399071301 372922355 378197490 367307348 415135923 406955492 330079737 412443020 318752297 400801204 387231219 401018846 342387819 347295356]