Done as well. Now instead of clicking on the button, I want to press a (valid) number on my keyborad and it should do that same thing....
riahc3 50 Â Team Colleague
why don't you declare those labels and such as instance members? keep the declaration of your variables apart will make your code easier to read, and easier to work with.
And do this how.............?
riahc3 50 Â Team Colleague
Here it is:
package CalculatorGUI;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class CalulatorGUI extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
CalulatorGUI frame = new CalulatorGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public CalulatorGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
panel.setLayout(null);
JButton button1 = new JButton("1");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
button1.setBounds(34, 27, 64, 33);
panel.add(button1);
JButton button4 = new JButton("4");
button4.setBounds(34, 70, 64, 33);
panel.add(button4);
JButton button7 = new JButton("7");
button7.setBounds(34, 114, 64, 33);
panel.add(button7);
JButton button2 = new JButton("2");
button2.setBounds(108, 27, 64, 33);
panel.add(button2);
JButton button5 = new JButton("5");
button5.setBounds(108, 70, 64, 33);
panel.add(button5);
JButton button8 = new JButton("8");
button8.setBounds(108, 114, 64, 33);
panel.add(button8);
JButton button3 = new JButton("3");
button3.setBounds(182, 27, 64, 33);
panel.add(button3);
JButton button6 = new JButton("6");
button6.setBounds(182, 70, 64, 33);
panel.add(button6);
JButton button9 = new JButton("9");
button9.setBounds(182, 114, 64, 33);
panel.add(button9);
JButton button0 = new JButton("0");
button0.setBounds(108, 158, 64, 33);
panel.add(button0);
JButton buttonplus = new JButton("+");
buttonplus.setBounds(34, 203, 64, 33);
panel.add(buttonplus);
JButton buttonminus = new JButton("-");
buttonminus.setBounds(108, 202, 64, 33);
panel.add(buttonminus);
JButton buttontimes = new JButton("*");
buttontimes.setBounds(182, 203, 64, 33);
panel.add(buttontimes);
JButton …
riahc3 50 Â Team Colleague
You mught want to finish that bit first (exit the loop) then yes, you can do the decimal separator in exactly the same way.
(ps got other stuff on my plate right now, won't be able to respond so fast for while)
Basically you are asking me to do a double for loop, typical in two dimensional arrays...
riahc3 50 Â Team Colleague
String price="16,00 €";
char[] symbols = new char[] { '€','$' };
char symbol=' ';
for (int i=0;i<symbols.length;i++)
{
symbol=symbols[i];
if (price.indexOf(symbol) >= 0) //this is the right symbol...
{
}
}
So now what: I have to make another char array for decimalseperator???
riahc3 50 Â Team Colleague
(Lost at "decimalSeparator" and "source")
riahc3 50 Â Team Colleague
So I would have a array called symbols with chars with all the currency symboles possible (huge array but oh well)
Example:
char[] symbols = new char[] { '€','$' };
char symbol=' ';
for (int i=0;i<symbols.length;i++)
{
symbol=symbols[i];
}
But after that I kinda got lost.
riahc3 50 Â Team Colleague
why do you try this: labelinout.text="1";
try labelinout.setText("1"); also, yes, setbounds will work if you work with a null layout, but it'll lead to unwanted results when your user has a different screen resolution. you might want to read up on layoutmanagers and their influence on the location of your swing components.
Those do not work. I can only access button1. Cant access any other button and/or that label.
riahc3 50 Â Team Colleague
OK, my eyesight isn't what it was, the , and . look the same on my screen!
I agree. They are difficult to tell apart on PC.
Parse the input to get a complete format defined by <decimal separator> <currency symbol> < currency prefix or postfix>... it's not difficult. ie: have a list of known decimal separators. Search the input to see which it is, remember that have a list of known currency symbols. Search the input to see which it is, remember that check whether the currency symbol is before or after the number, remember that (extract the digits before & after the decimal to get the numeric value). You now have a complete format definition, so it will be easy to format any results using those 3 items.
Not sure how to parse that individually and then group them together in the correct order/fashion. Id know how to seperate with ONE character but not different ones in different positions.
riahc3 50 Â Team Colleague
Solved. Now when I click a button (buttonone) which has the text "1" on it, I cant add the text to the label
JButton button1 = new JButton("1");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Here labelinout.text="1"; should work
}
});
button1.setBounds(34, 27, 64, 33);
panel.add(button1);
Why?
riahc3 50 Â Team Colleague
just ignore the NetBeans wysiwyg "tutorial", the rest should be able to help you out.Java Swing tutorial
Ive followed that tutorial but I cant place the buttons whereever I feel like it so it seems limiting and/or like Im missing something....
riahc3 50 Â Team Colleague
The timer/thread is the easy part; Syncing the client/server is the hard part.
riahc3 50 Â Team Colleague
OK, you have a fair, decent plan. What holds you back to get started?
No idea where to start, what type of project to make, how to make buttons, actions over those buttons, etc....
VS is so much better and MyEclipse is kind of confusing for this.
riahc3 50 Â Team Colleague
So
no thousands delimiters
decimal delimiter is always . (never ,)
curreency symbol is one of $€
$ is always prefixed, € is always postfixed
?
or are there more possibilities?
???
I gave you two examples:
$999.99
999,99 €
And clearly stated they are both decimal based so the decimal delimiter can be "." "," or others...
Currency symbol can be any currency symbol known; I see over 50 on Wikipedia!
AFAIK, in dollars the $ is always prefixed and in euros the € is always postfixed but again, can change.
riahc3 50 Â Team Colleague
What if I hit the "minus" button after first hitting the "two" button and the "plus" button?
Exception and the program breaks.
The point isnt the calculator; Its a simple application for a GUI program.
riahc3 50 Â Team Colleague
Yeah, something simple like that.
Also a text box saying input/output
Example, if I push the 2 button in the text box a "2" appears, after if I hit the + button "2+" would appear, after if I hit the 2 button "2+2" would be displayed, and if I hit the "=" button "4" would be displayed in that textbox.
riahc3 50 Â Team Colleague
I'm not clear on your requirement. Is it like this...? You have a String containing a formatted number. The formatting may include (arbitrary?) thousands delimiters, (arbitrary?) decimal delimiter, (arbitrary?) pre- or post-fix currency symbol.
You need to extract the numerical value to use in arithmetical calculations.
You then need to convert the result back toa formatted String using the same formatting as the original String.
Some/any of the formatting items (delimieters, symbols) can/cannot be pre-defined
My string as plain english is
"nine hundred ninety nine dollars with ninety nine cents"
So it would contain:
"$999.99"
and it can also be
"nine hundred ninety nine euros with ninety nine cents"
Which would contain:
"999,99 €"
I need to be able to treat BOTH of those numbers and do operations on them and give me resutls and then once again put the symbol in the correct position after/before.
We will never reach a thousand (hell, its going to be difficult to even reach a hundred) so additional decimals is a nonissue.
riahc3 50 Â Team Colleague
Hello
I, like everyone else, has made a text based calculator but Ive never worked with GUI in Java. Im using MyEclipse.
Very simple. Numbers, four symbols (+, *, / and -) and "=" Nothing else
How would I even start with this?
Thank you
riahc3 50 Â Team Colleague
Any ideas?
riahc3 50 Â Team Colleague
Also, that code does not take in count if the symbol is before or after to again put it before or after the calculation...
riahc3 50 Â Team Colleague
Some currencies use dots, others use commas. This is not something up to me.
Regarding the
String exploder= "$€£"; //Add any other currency symbols,chars here.They have to be of the proper encoding
StringTokenizer gen = new StringTokenizer(mon,exploder);
code; You do realize that I would have to add all the currencies known, right?
riahc3 50 Â Team Colleague
I don't know how to do this but I can help you out with the where to look question. You need to look into the concept of CID's also known as content ids. Basically, you create a multipart message and assign a content ID to the image attachment/data which will be used as the src for the image.
http://stackoverflow.com/questions/4312687/how-to-embed-images-in-email
http://stackoverflow.com/questions/5260654/embedding-images-into-html-email-with-java-mail
http://stackoverflow.com/questions/2996514/inline-images-in-email-using-javamail
Ive read these article but I dont understand too well how to implement it.
As you see I only have 2 images: How can I assign this CID to them and use it in the code? Its kinda confusing to me personally.
riahc3 50 Â Team Colleague
Hello
I have this:
String price="10,00 €";
int num=2;
int sum=Integer.valueOf(price)*num;
System.out.println(sum); //Should print out AT LEAST 20,00
But note: That € sign can be $, €, £ or another AND it can come before or after the numeric float amount.
What is the best way to do this?
Thank you
riahc3 50 Â Team Colleague
Any ideas? Maybe wrong headers or something ?
riahc3 50 Â Team Colleague
OK, it made more sense.
Lets say you have example1.xls and example2.xls.
You want to
CREATE TABLE example1;
CREATE TABLE example2;
But now where you have lost me is:
the content of the table would be the types that i read with the first program that i created
Lets say you had
A1: Hi
A2: 2
A3: true
CREATE TABLE example (
a1 VARCHAR(100),
a2 INT(100),
a3 BOOLEAN
);
Is this what you want?
riahc3 50 Â Team Colleague
Its a good excerise, Java or not.
I'd like to hear comments on the way I code, what are my strong points, what should I improve, am I using bad logic?
The way someone code is very personal, for me. Makings lots of classes with no comments is the same as making one big entire class with lots and lots of comments. People are object obsessed and I believe programming is what is easier for you to read, not better organized (Exceptions are using a if 1==1 vs a while(1==1) and at the end change 1 to another number, if its a simple condition; You obviously use the if).
A good thing that is done is to think and write down what to do before you code it. Makes things a lot easier and faster. I dont do it personally but I agree that it is better.
riahc3 50 Â Team Colleague
Lets see because I might not understand some of what you said :)
You have a Excel file. Lets say with the following cells:
A1: How
A2: Are
A3: You
B1: I
B2: Am
B3: Fine
You want to create something like (example purposes)
CREATE TABLE how (
are VARCHAR(100),
you VARCHAR(100)
);
INSERT INTO how (are,you) VALUES ('I','Fine');
Is this something of what you want?
riahc3 50 Â Team Colleague
Anyone have any tips on this?
riahc3 50 Â Team Colleague
You could always use telnet to determine if the destination host is listenting on a target port. Say for instance you want to verify if a target system is running the SMTP service, or if you want to verify that you can reach the destination through a firewall or other filtering device. From a computer within your network, open a command prompt and type...
telnet destination_IP__or_hostName 25
If the destination host is listening on that port, you will get a blinking cursor on the screen. If not, the telnet client will inform you that it was unable to make a connection. Of course, for this to work, you need to have telnet installed on the source computer. The more recent versions of Windows have removed the telnet client. You can add it back through Programs and Features in the Control Panel. Install Telnet Client
Wouldnt I have to telnet/SSH into the web hosting and then from there telnet/SSH back out?
riahc3 50 Â Team Colleague
Wouldn't it be easier to ask your host?
Asked but they say it is open. Highly doubt it...
riahc3 50 Â Team Colleague
if you print the values of your image, what do you get? the path where it is loaded on your local machine? you're not really sending an image, if I'm not mistaken, but that path, and since the server on which you read the mail doesn't have that image on that path ...
I get the URL of the image.
Im using Outlook; In 2013, there is a option that says "View In Web Browser". If I click that, it opens IE and it works perfectly. So, even though I know the links are correct, this shows that it is not a incorrect URL issue.
riahc3 50 Â Team Colleague
The question is SO broad......
I want to state that HTML is NOT a programming language. Having said that, I have no idea what OP ment by "computer language".
Ketsuekiame commented: +1 for the HTML distinction :) I would also like to add that CSS is also not a programming language ;) +0
<M/> commented: i know that the question is broad so i jokefully said HTML +0
riahc3 50 Â Team Colleague
and which is the image that shoud be shown? the bmp file? why are you using bmp anyway? it's not really a good choice for over the web, since of the filesizes and the loading times that can go with it.
Im trying to show both the BMP and the base64 representation of another image. Both do not show.
riahc3 50 Â Team Colleague
Hello
Im trying to send emails from my eCommence site and seems not to work. It works on my local server though so I know it is not a configuration issue. Is there a way I can try out if the port is blocked or not?
Thank you
riahc3 50 Â Team Colleague
public void EnviarCorreo(String CorreoOrigen, String CorreoDestino, String usuario, String contrasena, String asunto, String mensaje, String NombreArchivo, String TipoPastel, String Cantidad,String Calle,String Fecha, String link,String pricolor,String seccolor,String textcolor,String nombrebmp,String nombre_comprador,String precio_producto,String cantidad_producto)
{
try
{
// Propiedades de la conexión
Properties props = new Properties();
String servidorsmtp="smtp.server.com";
props.setProperty("mail.smtp.host", servidorsmtp);
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.port", "25");
props.setProperty("mail.smtp.user", usuario);
props.setProperty("mail.smtp.auth", "true");
// Preparamos la sesion
Session session = Session.getDefaultInstance(props);
// Construimos el mensaje
MimeMessage message = new MimeMessage(session);
message.setHeader("Content-Type", "multipart/mixed");
message.setFrom(new InternetAddress(CorreoOrigen));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(CorreoDestino));
Multipart mp = new MimeMultipart();
BodyPart texto=new MimeBodyPart();
texto.setHeader("Content-Type", "text/html; charset=utf-8");
MimeBodyPart ajunto=new MimeBodyPart();
ajunto.setHeader("Content-Type", "multipart/mixed");
if (NombreArchivo.endsWith(".pdf")) //Para un cliente
{
String imagen=ImageToBase64(nombrebmp+".bmp");
message.setSubject("Felicidades! Has completado tu compra de un "+TipoPastel+" Tu numero de pedido es: " + asunto);
String singularopluralcanti="";
if ((Integer.valueOf(Integer.parseInt(Cantidad))>1))
{
singularopluralcanti = "Has pedido " + Cantidad + " unidades de este producto.";
}
if ((Integer.valueOf(Integer.parseInt(Cantidad))==1))
{
singularopluralcanti = "Has pedido " + Cantidad + " unidad de este producto.";
}
else
{
singularopluralcanti = "Has pedido " + Cantidad + " unidades de este producto.";
}
if (link==null || link.length()<1 || link.isEmpty())
{
link="http://somepage.com/correo/default.png";
}
if (pricolor==null || pricolor.length()<1 || pricolor.isEmpty())
{
pricolor="10B0CA";
}
if (seccolor==null || seccolor.length()<1 || seccolor.isEmpty())
{
seccolor="35A4B5";
}
if (imagen==null || imagen.length()<1 || imagen.isEmpty())
{
imagen="Si";
}
else
{
imagen="<img src='data:image/png;base64,"+imagen+"' />";
}
String htmlcontenido="<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"+
"<html xmlns='http://www.w3.org/1999/xhtml'>"+
"<head>"+
"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"+
"<title>Pedido "+asunto+"</title>"+
"</head>"+
"<body>" +
"" +
"" +
"" +
"<style …
riahc3 50 Â Team Colleague
you expect us to debug your code without seeing your code?
I had two pages open. One was this and another one was one more elaborated (which I closed by accident). Sorry about that.
Give me a second...
riahc3 50 Â Team Colleague
Hello
Im trying to send emails thru Java and they have HTML plus embedded images. Everything shows up except the embedded images. What could be wrong?
My email is a entire String with HTML code.
Thank you
riahc3 50 Â Team Colleague
public void main ()
{
}
Its clean, its a effective. I have NEVER understood why the hell people put { on the same line as the function. Its not clear.
riahc3 50 Â Team Colleague
Programming generally sucks. Period.
Web programming, although it sucks even more, gets better paid. Do note that you have to know A LOT more languages: PHP, JS, HTML, Flash (yes, Flash), etc with others.
riahc3 50 Â Team Colleague
Does he mean bridge it?
riahc3 50 Â Team Colleague
Hello
My hosting company uses AwStats and some of the numbers are conflicting and/or confusing.
What is the difference between "pages" and the other option?
Thank you
riahc3 50 Â Team Colleague
OK, you tried to encode an image and you got an array of bytes. What's the problem and/or question?
Im trying to put that in a
<img src="" />
AFAIK, that output is NOT what I am looking for.
riahc3 50 Â Team Colleague
public static void main(String[] args) throws Exception
{
File file = new File("C:\\Users\\ME\\Pictures\\black.bmp");
FileInputStream imageInFile = new FileInputStream(file);
byte imageData[] = new byte[(int) file.length()];
imageInFile.read(imageData);
byte res1[] = encode(imageData);
System.out.println("The string is: ");
System.out.println("------------------");
System.out.println("");
System.out.println(java.util.Arrays.toString(res1));
System.out.println("");
System.out.println("------------------");
System.out.println("Final string");
}
public static byte[] encode(byte[] b) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream b64os = MimeUtility.encode(baos, "base64");
b64os.write(b);
b64os.close();
return baos.toByteArray();
}
public static byte[] decode(byte[] b) throws Exception {
ByteArrayInputStream bais = new ByteArrayInputStream(b);
InputStream b64is = MimeUtility.decode(bais, "base64");
byte[] tmp = new byte[b.length];
int n = b64is.read(tmp);
byte[] res = new byte[n];
System.arraycopy(tmp, 0, res, 0, n);
return res;
}
Using that I get:
> The string is:
[81, 107, 48, 50, 77, 65, 65, 65, 65, 65, 65, 65, 65, 68, 89, 65, 65, 65, 65, 111, 65, 65, 65, 65, 81, 65, 65, 65, 65, 69, 65, 65, 65, 65, 65, 66, 65, 66, 103, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 118, 55, 43, 80, 106, 52, 56, 102, 68, 119, 55, 43, 122, 116, 55, 117, 118, 115, 55, 43, 118, 115, 55, 117, 122, 116, 55, 101, 51, 116, 56, 80, 68, 119, 56, 102, 72, 120, 43, 80, 106, 52, 13, 10, 47, 80, 122, 56, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 118, 55, 43, 56, 102, 68, 119, 52, 117, 68, 104, 49, 116, 80, 85, 122, 56, 114, 76, 122, 99, 98, 73, 121, 56, 84, 70, 121, 115, 80, 70, 13, 10, 122, 77, 88, 72, 122, 56, 106, 74, 122, 115, 114, 76, 121, 56, 118, 76, 122, 99, 118, 76, 122, 56, 55, 79, 49, 78, 80, 84, 50, 116, 106, 89, 52, 78, 47, 102, 54, 101, 106, 111, 57, 80, 80, 122, 47, 102, 51, 57, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 43, 80, 102, 51, 52, 43, 68, 104, 48, 99, 118, 78, 13, 10, 120, 114, 47, 66, 119, 98, 113, 56, 119, 114, 117, 57, 119, 55, 121, 43, 120, 76, 50, 47, 120, 76, 50, 47, 120, 114, 47, 66, 121, 77, 72, 68, 121, 99, 80, 69, 121, 56, 84, 71, 121, 56, 88, 71, 122, 99, 102, 73, 122, 56, 110, 75, 48, 99, 118, 76, 48, 56, 51, 79, 49, 100, 68, 82, 50, 78, 80, 85, 49, 116, 88, 86, 51, 78, 122, 99, 13, 10, 54, 117, 110, 112, 57, 47, 102, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 43, 80, 106, 52, 51, 78, 106, 97, 120, 76, 50, 47, 118, 98, 87, 52, 118, 114, 101, 53, 118, 114, 101, 53, 118, 76, 87, 51, 118, 76, 87, 51, 118, 76, 87, 51, 118, 76, 87, 51, 118, 76, 87, 51, 118, 114, 101, 53, 119, 76, 109, 55, 119, 98, 113, 56, 119, 55, 121, 43, 120, 98, 55, 65, 120, 114, 47, 66, 13, 10, 121, 99, 76, 69, 121, 115, 80, 70, 122, 99, 98, 73, 48, 99, 114, 76, 49, 77, 55, 80, 48, 116, 72, 82, 48, 57, 80, 84, 49, 100, 88, 86, 50, 116, 114, 97, 53, 43, 102, 110, 57, 47, 102, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 118, 55, 43, 52, 78, 51, 101, 119, 76, 109, 55, 116, 54, 43, 121, 116, 55, 67, 121, 116, 55, 67, 121, 116, 55, 67, 121, 116, 97, 54, 119, 115, 54, 121, 117, 115, 54, 121, 117, 115, 54, 121, 117, 115, 54, 121, 117, 13, 10, 115, 54, 121, 117, 116, 97, 54, 119, 116, 55, 67, 121, 117, 76, 71, 122, 117, 55, 83, 50, 118, 98, 97, 52, 118, 55, 105, 54, 119, 98, 113, 56, 119, 55, 117, 43, 120, 98, 55, 65, 121, 99, 76, 69, 122, 77, 98, 72, 122, 77, 114, 76, 122, 115, 55, 79, 48, 116, 76, 83, 49, 78, 84, 85, 50, 78, 106, 89, 51, 78, 122, 99, 54, 43, 114, 113, 13, 10, 47, 80, 118, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 56, 118, 72, 120, 121, 77, 76, 69, 115, 54, 121, 117, 115, 113, 117, 116, 115, 113, 117, 116, 114, 54, 105, 113, 13, 10, 114, 54, 105, 113, 114, 97, 97, 111, 114, 97, 97, 111, 113, 54, 83, 109, 113, 54, 83, 109, 113, 54, 83, 109, 113, 54, 83, 109, 113, 54, 83, 109, 114, 97, 97, 111, 114, 54, 105, 113, 115, 97, 113, 115, 115, 54, 121, 117, 116, 113, 43, 120, 117, 98, 75, 48, 117, 55, 83, 50, 118, 98, 97, 52, 119, 76, 109, 55, 120, 76, 50, 47, 120, 56, 68, 67, 13, 10, 120, 56, 98, 71, 121, 99, 110, 74, 122, 99, 51, 78, 48, 78, 68, 81, 49, 100, 88, 86, 50, 78, 106, 89, 50, 116, 114, 97, 52, 101, 72, 104, 57, 80, 80, 122, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 52, 43, 68, 104, 117, 98, 79, 48, 115, 75, 109, 114, 115, 75, 109, 114, 114, 75, 87, 110, 113, 54, 83, 109, 113, 75, 71, 106, 112, 54, 67, 105, 112, 90, 54, 103, 112, 90, 54, 103, 112, 112, 43, 104, 112, 112, 43, 104, 112, 112, 43, 104, 112, 112, 43, 104, 112, 112, 43, 104, 113, 75, 71, 106, 113, 113, 79, 108, 113, 54, 83, 109, 114, 97, 97, 111, 13, 10, 115, 75, 109, 114, 115, 54, 121, 117, 116, 55, 67, 121, 117, 98, 75, 48, 118, 76, 87, 51, 118, 55, 105, 54, 119, 55, 121, 43, 119, 56, 76, 67, 120, 99, 98, 71, 121, 99, 110, 74, 122, 99, 51, 78, 48, 78, 68, 81, 49, 78, 84, 85, 50, 78, 106, 89, 50, 116, 114, 97, 51, 78, 122, 99, 55, 117, 55, 117, 47, 118, 55, 43, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 50, 100, 88, 87, 114, 97, 97, 111, 114, 97, 87, 110, 113, 113, 79, 108, 112, 54, 67, 105, 112, 90, 54, 103, 111, 53, 121, 101, 111, 90, 113, 99, 111, 74, 109, 98, 111, 74, 109, 98, 111, 74, 109, 98, 111, 74, 109, 98, 111, 74, 109, 98, 13, 10, 111, 74, 109, 98, 111, 74, 109, 98, 111, 74, 109, 98, 111, 112, 117, 100, 112, 74, 50, 102, 112, 112, 43, 104, 112, 54, 67, 105, 113, 113, 79, 108, 114, 97, 97, 111, 115, 97, 113, 115, 116, 75, 50, 118, 116, 113, 43, 120, 117, 98, 75, 48, 118, 98, 97, 52, 118, 98, 121, 57, 118, 56, 68, 65, 119, 56, 84, 68, 120, 56, 102, 72, 121, 56, 118, 76, 13, 10, 122, 115, 55, 79, 48, 116, 76, 83, 49, 100, 88, 86, 50, 78, 106, 89, 51, 78, 122, 99, 54, 79, 106, 111, 47, 102, 51, 57, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 118, 55, 43, 122, 56, 114, 77, 112, 54, 67, 105, 112, 54, 67, 105, 112, 90, 54, 103, 111, 90, 113, 99, 110, 112, 101, 90, 110, 112, 101, 90, 13, 10, 110, 90, 97, 89, 109, 112, 79, 86, 109, 90, 75, 85, 109, 53, 83, 87, 109, 53, 83, 87, 109, 53, 83, 87, 109, 53, 83, 87, 109, 53, 83, 87, 109, 53, 83, 87, 109, 53, 83, 87, 110, 90, 97, 89, 110, 53, 105, 97, 111, 90, 113, 99, 111, 112, 117, 100, 112, 74, 50, 102, 113, 75, 71, 106, 114, 75, 87, 110, 114, 113, 101, 112, 115, 97, 113, 115, 13, 10, 116, 97, 54, 119, 117, 76, 71, 122, 117, 76, 101, 51, 117, 114, 113, 54, 118, 114, 54, 43, 119, 99, 72, 66, 120, 115, 98, 71, 121, 99, 110, 74, 122, 99, 51, 78, 48, 78, 68, 81, 48, 116, 76, 83, 50, 78, 106, 89, 51, 78, 122, 99, 53, 117, 98, 109, 47, 102, 51, 57, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 77, 47, 82, 13, 10, 112, 112, 54, 104, 112, 54, 67, 105, 112, 74, 50, 102, 111, 74, 109, 98, 110, 74, 87, 88, 109, 74, 71, 84, 109, 90, 75, 85, 109, 74, 71, 84, 109, 74, 71, 84, 109, 74, 71, 84, 109, 74, 71, 84, 109, 74, 71, 84, 109, 74, 71, 84, 109, 90, 75, 85, 109, 112, 79, 86, 109, 112, 79, 86, 109, 112, 79, 86, 110, 74, 87, 88, 110, 112, 101, 90, 13, 10, 111, 74, 109, 98, 111, 112, 117, 100, 112, 74, 50, 102, 112, 112, 43, 104, 113, 75, 71, 106, 113, 113, 79, 108, 114, 97, 97, 111, 115, 75, 109, 114, 116, 75, 50, 118, 116, 55, 71, 122, 117, 114, 83, 50, 118, 114, 105, 54, 119, 98, 117, 57, 120, 76, 55, 65, 121, 99, 80, 70, 122, 115, 110, 75, 122, 56, 51, 78, 48, 78, 68, 81, 49, 116, 98, 87, 13, 10, 50, 57, 118, 98, 51, 100, 51, 100, 53, 117, 88, 108, 47, 102, 118, 56, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 119, 77, 75, 47, 104, 89, 117, 69, 113, 113, 71, 108, 111, 53, 121, 101, 110, 112, 101, 90, 109, 90, 75, 85, 108, 111, 43, 82, 107, 52, 50, 79, 108, 89, 54, 81, 108, 89, 43, 81, 108, 89, 43, 81, 108, 89, 43, 81, 108, 111, 43, 82, 108, 111, 43, 82, 13, 10, 108, 111, 43, 82, 108, 53, 67, 83, 109, 74, 71, 84, 109, 74, 71, 84, 109, 74, 71, 84, 109, 90, 75, 85, 109, 112, 79, 86, 110, 74, 87, 88, 110, 53, 105, 97, 111, 53, 121, 101, 112, 74, 50, 102, 112, 90, 54, 103, 112, 54, 67, 105, 113, 97, 75, 107, 114, 97, 97, 111, 115, 75, 109, 114, 116, 97, 50, 119, 117, 76, 71, 122, 118, 76, 87, 51, 13, 10, 118, 55, 105, 54, 119, 98, 113, 56, 120, 114, 47, 66, 122, 77, 88, 72, 122, 99, 114, 75, 122, 99, 55, 78, 48, 57, 80, 84, 50, 78, 106, 89, 51, 116, 55, 101, 48, 78, 76, 81, 116, 76, 105, 48, 47, 47, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 53, 78, 47, 105, 87, 71, 53, 100, 90, 89, 82, 114, 112, 90, 113, 102, 109, 112, 79, 86, 108, 112, 67, 82, 107, 52, 50, 79, 107, 111, 121, 78, 13, 10, 107, 111, 121, 78, 108, 73, 54, 80, 108, 73, 54, 80, 108, 73, 54, 80, 108, 89, 43, 81, 108, 53, 71, 83, 108, 53, 71, 83, 108, 53, 67, 83, 109, 90, 75, 85, 109, 112, 79, 86, 109, 112, 79, 86, 109, 112, 79, 86, 109, 90, 75, 85, 109, 112, 79, 86, 110, 74, 87, 88, 110, 112, 101, 90, 111, 74, 109, 98, 111, 53, 121, 101, 112, 74, 50, 102, 13, 10, 112, 74, 50, 102, 112, 90, 54, 103, 113, 97, 75, 107, 114, 97, 97, 111, 115, 97, 113, 115, 116, 75, 50, 118, 117, 76, 71, 122, 117, 55, 83, 50, 118, 98, 97, 52, 119, 114, 117, 57, 121, 77, 72, 68, 121, 99, 98, 72, 121, 99, 114, 74, 122, 56, 47, 80, 49, 78, 84, 85, 51, 116, 51, 101, 117, 115, 83, 57, 86, 88, 86, 101, 52, 78, 51, 102, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 57, 102, 84, 48, 110, 53, 97, 90, 13, 10, 81, 109, 100, 77, 83, 110, 53, 87, 109, 112, 79, 85, 108, 89, 54, 81, 107, 111, 121, 78, 107, 111, 121, 78, 107, 52, 50, 79, 108, 73, 54, 80, 108, 53, 67, 83, 108, 53, 67, 83, 108, 53, 67, 83, 109, 90, 75, 85, 110, 74, 87, 88, 110, 74, 87, 88, 110, 74, 87, 88, 110, 112, 101, 90, 110, 53, 105, 97, 110, 53, 105, 97, 110, 53, 105, 97, 13, 10, 110, 90, 97, 89, 110, 90, 97, 89, 111, 74, 109, 98, 111, 74, 109, 98, 110, 53, 105, 97, 111, 90, 113, 99, 111, 53, 121, 101, 111, 112, 117, 100, 111, 53, 121, 101, 112, 112, 43, 104, 113, 97, 75, 107, 114, 113, 101, 112, 115, 97, 113, 115, 116, 97, 54, 119, 117, 76, 71, 122, 117, 114, 79, 49, 118, 55, 105, 54, 120, 114, 55, 66, 120, 115, 80, 69, 13, 10, 120, 115, 102, 71, 122, 77, 122, 77, 48, 100, 72, 82, 51, 57, 118, 102, 106, 75, 97, 84, 77, 50, 82, 65, 116, 55, 101, 50, 43, 102, 106, 53, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 117, 98, 87, 49, 106, 73, 79, 71, 82, 50, 120, 82, 77, 51, 112, 69, 102, 89, 53, 57, 108, 89, 113, 80, 106, 52, 109, 75, 107, 89, 117, 77, 107, 111, 121, 78, 108, 73, 54, 80, 108, 112, 67, 82, 109, 74, 71, 84, 109, 90, 75, 85, 109, 53, 83, 87, 13, 10, 109, 53, 83, 87, 110, 112, 101, 90, 110, 53, 105, 97, 111, 74, 109, 98, 111, 90, 113, 99, 111, 90, 113, 99, 111, 90, 113, 99, 111, 90, 113, 99, 111, 112, 117, 100, 111, 112, 117, 100, 111, 112, 117, 100, 111, 53, 121, 101, 111, 53, 121, 101, 111, 53, 121, 101, 112, 74, 50, 102, 112, 90, 54, 103, 112, 90, 54, 103, 112, 112, 43, 104, 113, 113, 79, 108, 13, 10, 114, 54, 105, 113, 115, 54, 121, 117, 116, 55, 67, 121, 117, 76, 71, 122, 118, 98, 97, 52, 119, 55, 121, 43, 120, 77, 68, 67, 120, 77, 84, 69, 121, 115, 114, 75, 48, 100, 68, 82, 122, 57, 68, 80, 85, 73, 86, 99, 78, 71, 90, 67, 114, 75, 54, 115, 52, 101, 72, 104, 47, 102, 51, 57, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 100, 122, 99, 106, 89, 101, 73, 107, 89, 105, 76, 83, 87, 104, 83, 77, 88, 104, 67, 85, 52, 53, 99, 107, 111, 113, 77, 107, 89, 117, 77, 13, 10, 108, 73, 54, 80, 108, 111, 43, 82, 108, 53, 67, 83, 109, 112, 79, 86, 110, 74, 87, 88, 110, 53, 105, 97, 111, 74, 109, 98, 111, 90, 113, 99, 111, 53, 121, 101, 112, 90, 54, 103, 112, 54, 67, 105, 113, 75, 71, 106, 113, 75, 71, 106, 113, 75, 71, 106, 113, 75, 71, 106, 113, 75, 71, 106, 113, 75, 71, 106, 113, 75, 71, 106, 113, 97, 75, 107, 13, 10, 113, 97, 75, 107, 113, 97, 75, 107, 113, 97, 75, 107, 113, 97, 75, 107, 113, 97, 75, 107, 113, 97, 75, 107, 113, 54, 83, 109, 114, 113, 101, 112, 115, 97, 113, 115, 115, 113, 117, 116, 116, 97, 54, 119, 117, 114, 79, 49, 119, 76, 109, 55, 119, 76, 50, 43, 119, 99, 72, 66, 120, 56, 102, 72, 49, 100, 68, 85, 108, 98, 67, 90, 77, 72, 89, 47, 13, 10, 80, 109, 120, 76, 114, 55, 67, 118, 49, 100, 84, 85, 54, 101, 110, 112, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 43, 47, 118, 55, 111, 112, 50, 101, 13, 10, 105, 52, 87, 71, 107, 52, 113, 78, 87, 50, 57, 103, 77, 51, 82, 68, 79, 53, 70, 75, 100, 53, 86, 52, 109, 111, 54, 85, 108, 53, 67, 83, 109, 90, 75, 85, 109, 112, 79, 86, 111, 74, 109, 98, 111, 53, 121, 101, 112, 74, 50, 102, 112, 112, 43, 104, 113, 97, 75, 107, 113, 54, 83, 109, 114, 97, 97, 111, 114, 54, 105, 113, 115, 75, 109, 114, 13, 10, 115, 75, 109, 114, 114, 54, 105, 113, 115, 75, 109, 114, 115, 75, 109, 114, 115, 75, 109, 114, 115, 75, 109, 114, 114, 113, 101, 112, 114, 113, 101, 112, 114, 113, 101, 112, 114, 97, 97, 111, 114, 97, 97, 111, 114, 97, 97, 111, 114, 97, 97, 111, 114, 97, 97, 111, 114, 97, 97, 111, 114, 97, 97, 111, 114, 113, 101, 112, 115, 97, 113, 115, 116, 113, 43, 120, 13, 10, 118, 76, 87, 51, 118, 98, 113, 54, 118, 76, 54, 57, 120, 115, 84, 71, 118, 56, 79, 47, 84, 90, 74, 90, 77, 88, 100, 66, 83, 72, 74, 85, 118, 76, 101, 53, 49, 116, 72, 83, 50, 57, 98, 88, 43, 118, 110, 53, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 57, 68, 82, 104, 52, 67, 66, 106, 111, 105, 74, 107, 111, 109, 77, 98, 72, 82, 116, 78, 72, 66, 68, 79, 111, 49, 74, 83, 54, 74, 87, 108, 74, 101, 81, 110, 112, 79, 89, 110, 112, 101, 90, 111, 74, 109, 98, 112, 74, 50, 102, 112, 54, 67, 105, 13, 10, 113, 97, 75, 107, 114, 75, 87, 110, 114, 54, 105, 113, 115, 97, 113, 115, 115, 54, 121, 117, 116, 75, 50, 118, 116, 97, 54, 119, 116, 113, 43, 120, 116, 55, 67, 121, 116, 113, 43, 120, 116, 113, 43, 120, 116, 113, 43, 120, 116, 113, 43, 120, 116, 113, 43, 120, 116, 97, 54, 119, 116, 75, 50, 118, 115, 113, 117, 116, 115, 97, 113, 115, 115, 75, 109, 114, 13, 10, 114, 54, 105, 113, 114, 54, 105, 113, 114, 113, 101, 112, 114, 97, 97, 111, 113, 54, 83, 109, 114, 113, 101, 112, 115, 54, 121, 117, 117, 98, 75, 48, 117, 55, 97, 51, 118, 98, 113, 55, 121, 99, 72, 71, 101, 97, 120, 47, 78, 111, 120, 70, 77, 110, 90, 68, 89, 88, 49, 111, 121, 76, 55, 68, 48, 56, 51, 79, 49, 116, 68, 82, 53, 43, 98, 110, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 118, 55, 43, 111, 53, 54, 102, 105, 73, 71, 67, 106, 89, 101, 73, 106, 52, 105, 75, 103, 72, 49, 56, 80, 71, 53, 73, 79, 52, 104, 75, 13, 10, 80, 75, 74, 75, 90, 113, 116, 114, 112, 90, 109, 102, 112, 74, 121, 102, 112, 54, 67, 105, 113, 75, 71, 106, 113, 113, 79, 108, 114, 113, 101, 112, 115, 113, 117, 116, 116, 97, 54, 119, 116, 55, 67, 121, 117, 98, 75, 48, 117, 114, 79, 49, 117, 114, 79, 49, 118, 98, 97, 52, 118, 114, 101, 53, 118, 76, 87, 51, 118, 76, 87, 51, 118, 76, 87, 51, 13, 10, 118, 98, 97, 52, 118, 114, 101, 53, 118, 76, 87, 51, 117, 114, 79, 49, 117, 76, 71, 122, 116, 113, 43, 120, 116, 75, 50, 118, 115, 54, 121, 117, 115, 113, 117, 116, 115, 97, 113, 115, 114, 113, 101, 112, 114, 97, 97, 111, 114, 113, 101, 112, 115, 113, 117, 116, 116, 113, 43, 120, 117, 114, 79, 49, 120, 98, 101, 47, 111, 76, 97, 102, 80, 54, 74, 77, 13, 10, 80, 73, 120, 75, 77, 51, 82, 68, 103, 89, 50, 68, 121, 115, 68, 69, 122, 56, 106, 74, 49, 77, 55, 80, 49, 57, 88, 87, 43, 118, 114, 54, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 100, 47, 102, 13, 10, 104, 52, 71, 67, 105, 52, 87, 71, 106, 89, 101, 73, 107, 73, 113, 76, 107, 89, 101, 76, 84, 50, 57, 88, 78, 111, 70, 72, 81, 90, 120, 79, 81, 98, 82, 78, 102, 113, 121, 69, 114, 90, 54, 109, 113, 113, 79, 108, 114, 97, 97, 111, 115, 75, 109, 114, 115, 54, 121, 117, 116, 55, 67, 121, 117, 55, 83, 50, 118, 76, 87, 51, 118, 114, 101, 53, 13, 10, 119, 76, 109, 55, 119, 114, 117, 57, 120, 76, 50, 47, 120, 114, 47, 66, 120, 76, 50, 47, 119, 55, 121, 43, 119, 55, 121, 43, 119, 55, 121, 43, 119, 55, 121, 43, 119, 98, 113, 56, 119, 76, 109, 55, 118, 114, 101, 53, 118, 76, 87, 51, 117, 114, 79, 49, 117, 76, 71, 122, 116, 113, 43, 120, 116, 97, 54, 119, 115, 113, 117, 116, 115, 97, 113, 115, 13, 10, 115, 97, 113, 115, 115, 54, 121, 117, 116, 75, 50, 118, 117, 114, 67, 49, 116, 76, 83, 120, 86, 98, 82, 103, 80, 97, 66, 75, 79, 111, 104, 74, 80, 51, 86, 78, 111, 54, 67, 103, 120, 114, 55, 66, 121, 56, 84, 71, 48, 115, 122, 78, 48, 77, 47, 80, 54, 43, 118, 114, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 116, 98, 71, 121, 103, 88, 116, 56, 106, 89, 101, 73, 107, 73, 113, 76, 108, 89, 43, 81, 110, 74, 79, 88, 98, 51, 104, 118, 78, 110, 108, 70, 80, 53, 90, 78, 81, 113, 53, 78, 83, 76, 116, 100, 108, 54, 117, 99, 115, 54, 87, 115, 13, 10, 115, 97, 113, 115, 116, 75, 50, 118, 117, 76, 71, 122, 118, 76, 87, 51, 118, 55, 105, 54, 119, 98, 113, 56, 119, 55, 121, 43, 120, 114, 47, 66, 121, 99, 76, 69, 121, 56, 84, 71, 122, 77, 98, 72, 121, 56, 84, 71, 121, 115, 80, 70, 121, 115, 80, 70, 121, 115, 80, 70, 121, 77, 72, 68, 120, 114, 47, 66, 120, 98, 55, 65, 119, 55, 121, 43, 13, 10, 119, 98, 113, 56, 118, 55, 105, 54, 118, 98, 97, 52, 117, 98, 75, 48, 116, 55, 67, 121, 116, 113, 43, 120, 116, 97, 54, 119, 116, 75, 50, 118, 115, 54, 121, 117, 115, 54, 117, 117, 117, 97, 50, 122, 98, 98, 104, 57, 80, 114, 78, 77, 81, 90, 49, 79, 78, 111, 74, 70, 88, 110, 57, 109, 116, 97, 113, 118, 118, 114, 101, 53, 120, 56, 68, 67, 13, 10, 122, 56, 110, 75, 122, 56, 51, 79, 51, 78, 122, 99, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 43, 102, 110, 53, 107, 52, 54, 80, 103, 51, 49, 43, 106, 89, 101, 73, 107, 52, 50, 79, 109, 112, 79, 86, 111, 90, 109, 99, 13, 10, 107, 73, 109, 77, 81, 110, 82, 79, 80, 73, 57, 76, 81, 54, 104, 79, 81, 98, 108, 86, 86, 114, 120, 49, 114, 75, 43, 114, 117, 54, 43, 48, 117, 55, 83, 50, 118, 114, 101, 53, 119, 114, 117, 57, 120, 114, 47, 66, 121, 99, 76, 69, 122, 77, 98, 72, 122, 99, 98, 73, 122, 99, 102, 73, 122, 56, 110, 75, 48, 99, 118, 77, 122, 56, 110, 75, 13, 10, 122, 56, 110, 75, 122, 56, 110, 75, 122, 56, 110, 75, 122, 115, 106, 74, 122, 77, 98, 72, 121, 56, 84, 71, 121, 99, 76, 69, 120, 114, 47, 66, 119, 55, 121, 43, 119, 76, 109, 55, 119, 76, 109, 55, 118, 114, 101, 53, 117, 55, 83, 50, 116, 55, 67, 121, 115, 54, 121, 117, 115, 54, 121, 117, 117, 54, 117, 122, 104, 76, 97, 85, 80, 55, 120, 101, 13, 10, 82, 76, 66, 81, 80, 53, 100, 78, 79, 88, 49, 72, 104, 89, 54, 71, 116, 97, 121, 118, 117, 76, 71, 122, 119, 114, 117, 57, 121, 115, 80, 70, 122, 77, 118, 76, 48, 100, 72, 82, 57, 47, 102, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 52, 101, 68, 104, 103, 51, 49, 43, 104, 52, 71, 67, 106, 111, 105, 74, 108, 73, 50, 80, 109, 112, 79, 86, 110, 53, 105, 97, 112, 112, 113, 102, 89, 110, 100, 108, 78, 52, 90, 72, 81, 113, 70, 79, 82, 98, 86, 84, 80, 55, 49, 106, 90, 98, 54, 72, 118, 76, 97, 52, 119, 55, 105, 56, 119, 55, 121, 43, 120, 56, 68, 67, 121, 56, 84, 71, 13, 10, 122, 56, 110, 75, 48, 115, 122, 78, 48, 56, 51, 79, 48, 56, 51, 79, 49, 99, 47, 81, 49, 57, 72, 83, 49, 99, 47, 81, 49, 77, 55, 80, 49, 77, 55, 80, 49, 99, 47, 80, 48, 56, 51, 79, 48, 99, 118, 77, 48, 77, 114, 76, 122, 115, 102, 74, 121, 56, 88, 71, 121, 77, 72, 68, 120, 76, 50, 47, 120, 98, 55, 65, 119, 55, 121, 43, 13, 10, 118, 55, 105, 54, 117, 114, 79, 49, 116, 97, 54, 119, 118, 75, 50, 122, 108, 55, 97, 106, 82, 99, 66, 119, 82, 76, 112, 98, 81, 54, 112, 79, 79, 111, 57, 73, 85, 72, 57, 97, 112, 74, 117, 102, 114, 54, 101, 113, 115, 113, 117, 116, 118, 76, 87, 51, 120, 76, 50, 47, 121, 77, 102, 72, 121, 56, 118, 76, 55, 79, 122, 115, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 119, 56, 72, 66, 103, 88, 116, 56, 105, 52, 87, 71, 107, 89, 117, 77, 108, 112, 67, 82, 110, 74, 87, 88, 111, 112, 117, 100, 114, 75, 83, 110, 106, 52, 117, 77, 81, 72, 116, 76, 80, 112, 108, 77, 82, 76, 66, 81, 13, 10, 82, 98, 112, 102, 80, 115, 70, 119, 100, 115, 75, 89, 121, 114, 55, 68, 121, 56, 76, 70, 122, 99, 98, 73, 48, 77, 114, 76, 49, 77, 55, 80, 50, 78, 76, 84, 50, 116, 84, 86, 50, 57, 88, 87, 51, 100, 98, 88, 51, 116, 106, 90, 51, 100, 98, 88, 51, 78, 98, 88, 51, 78, 98, 88, 51, 78, 98, 88, 50, 100, 80, 85, 50, 78, 72, 83, 13, 10, 49, 99, 47, 81, 48, 56, 51, 79, 48, 99, 118, 77, 122, 99, 102, 73, 121, 115, 80, 70, 121, 99, 76, 69, 120, 56, 68, 67, 119, 55, 121, 43, 118, 55, 105, 54, 119, 114, 83, 54, 112, 114, 101, 116, 84, 99, 79, 65, 81, 114, 53, 113, 82, 98, 104, 88, 81, 97, 78, 78, 79, 89, 104, 73, 101, 89, 108, 55, 113, 113, 67, 108, 113, 113, 79, 108, 13, 10, 114, 113, 101, 112, 116, 113, 43, 120, 118, 55, 105, 54, 120, 115, 76, 68, 121, 115, 102, 73, 52, 117, 68, 103, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 114, 113, 117, 114, 104, 88, 53, 47, 106, 52, 113, 75, 108, 89, 43, 81, 109, 112, 79, 86, 13, 10, 111, 74, 109, 98, 112, 112, 43, 104, 114, 75, 87, 110, 114, 54, 83, 112, 89, 51, 112, 109, 79, 89, 53, 73, 81, 54, 108, 79, 82, 98, 104, 89, 82, 98, 49, 116, 81, 99, 82, 56, 105, 77, 83, 109, 49, 77, 102, 76, 48, 115, 118, 78, 49, 99, 47, 81, 50, 100, 80, 85, 51, 100, 102, 89, 51, 57, 110, 97, 52, 78, 118, 99, 52, 116, 51, 101, 13, 10, 53, 78, 55, 102, 52, 57, 51, 101, 52, 116, 51, 101, 52, 116, 51, 101, 52, 100, 122, 100, 51, 100, 106, 90, 51, 78, 102, 89, 50, 116, 88, 87, 50, 78, 76, 85, 49, 99, 47, 81, 48, 115, 122, 78, 122, 115, 106, 74, 122, 77, 98, 72, 121, 115, 80, 70, 120, 98, 47, 66, 121, 76, 118, 65, 116, 76, 117, 51, 87, 77, 87, 80, 81, 115, 74, 51, 13, 10, 82, 114, 120, 108, 82, 98, 78, 83, 80, 74, 108, 75, 84, 111, 86, 90, 110, 74, 87, 89, 112, 53, 43, 105, 113, 97, 75, 107, 114, 75, 87, 110, 115, 113, 117, 116, 117, 55, 83, 50, 120, 98, 55, 65, 122, 77, 88, 71, 51, 100, 106, 90, 47, 118, 55, 43, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 109, 90, 83, 86, 105, 111, 83, 70, 107, 52, 50, 79, 109, 74, 71, 84, 110, 90, 97, 89, 112, 90, 54, 103, 113, 54, 83, 109, 114, 113, 101, 112, 117, 98, 71, 48, 108, 112, 75, 84, 80, 51, 57, 76, 81, 74, 57, 77, 82, 98, 82, 83, 82, 98, 116, 108, 82, 99, 70, 51, 81, 56, 101, 71, 108, 115, 117, 49, 13, 10, 51, 116, 88, 90, 51, 78, 114, 98, 52, 78, 55, 102, 52, 117, 72, 105, 53, 79, 76, 106, 53, 101, 84, 107, 53, 43, 88, 109, 53, 43, 98, 109, 53, 43, 98, 109, 53, 101, 84, 107, 52, 43, 80, 106, 52, 117, 72, 104, 52, 78, 47, 102, 51, 116, 51, 100, 51, 78, 122, 99, 50, 78, 102, 89, 48, 57, 80, 84, 48, 77, 47, 80, 122, 99, 122, 77, 13, 10, 122, 115, 110, 75, 122, 77, 98, 72, 122, 77, 68, 69, 118, 98, 121, 57, 89, 115, 101, 98, 81, 115, 101, 68, 82, 55, 57, 122, 82, 98, 112, 101, 81, 54, 116, 79, 79, 52, 57, 74, 101, 89, 112, 54, 112, 53, 121, 104, 112, 112, 54, 104, 113, 75, 71, 106, 113, 113, 79, 108, 115, 75, 109, 114, 117, 114, 79, 49, 119, 55, 121, 43, 121, 56, 84, 71, 13, 10, 49, 116, 68, 82, 43, 47, 114, 54, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 107, 111, 50, 79, 106, 89, 101, 73, 108, 73, 54, 80, 109, 53, 83, 87, 111, 90, 113, 99, 113, 113, 79, 108, 115, 75, 109, 114, 116, 75, 50, 118, 117, 55, 83, 50, 119, 76, 87, 54, 13, 10, 97, 111, 74, 116, 79, 90, 70, 72, 81, 54, 49, 79, 82, 114, 108, 99, 82, 114, 53, 119, 82, 99, 83, 65, 83, 77, 117, 84, 114, 100, 102, 73, 54, 43, 76, 109, 53, 117, 84, 108, 54, 79, 98, 110, 54, 101, 106, 112, 54, 43, 114, 114, 55, 101, 122, 115, 55, 101, 122, 115, 55, 79, 118, 114, 54, 117, 110, 112, 54, 79, 102, 110, 53, 79, 84, 108, 13, 10, 52, 43, 76, 106, 52, 101, 72, 104, 52, 79, 68, 103, 50, 57, 118, 98, 49, 116, 98, 87, 48, 116, 76, 83, 122, 56, 47, 80, 122, 56, 118, 77, 48, 99, 102, 74, 119, 56, 68, 66, 99, 115, 117, 111, 82, 77, 117, 79, 82, 56, 78, 43, 82, 114, 49, 114, 82, 98, 90, 87, 80, 97, 66, 75, 85, 111, 108, 98, 110, 74, 79, 88, 112, 90, 50, 103, 13, 10, 112, 90, 54, 103, 112, 54, 67, 105, 113, 75, 71, 106, 114, 113, 101, 112, 117, 76, 71, 122, 119, 114, 117, 57, 121, 99, 80, 69, 49, 77, 55, 80, 43, 80, 102, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 107, 111, 50, 79, 106, 52, 105, 74, 108, 112, 67, 82, 13, 10, 110, 112, 101, 90, 112, 90, 54, 103, 114, 113, 101, 112, 116, 75, 50, 118, 117, 76, 71, 122, 118, 98, 97, 52, 121, 77, 68, 68, 114, 97, 87, 112, 82, 52, 74, 82, 80, 54, 74, 76, 82, 98, 86, 84, 82, 114, 116, 110, 82, 56, 74, 54, 82, 99, 101, 74, 86, 57, 67, 104, 118, 78, 47, 85, 56, 101, 110, 115, 55, 101, 122, 115, 55, 43, 51, 118, 13, 10, 56, 102, 68, 120, 56, 118, 72, 120, 56, 102, 68, 120, 56, 79, 47, 119, 55, 117, 51, 117, 55, 79, 114, 114, 54, 101, 106, 112, 53, 117, 88, 109, 53, 101, 88, 107, 53, 79, 84, 107, 51, 116, 55, 101, 50, 100, 110, 90, 49, 116, 98, 87, 48, 57, 80, 84, 49, 99, 51, 80, 121, 115, 80, 70, 104, 99, 54, 49, 84, 100, 67, 99, 82, 56, 97, 72, 13, 10, 82, 56, 66, 50, 82, 98, 112, 105, 81, 54, 53, 80, 80, 53, 82, 77, 102, 52, 116, 43, 111, 53, 105, 100, 111, 112, 117, 100, 112, 74, 50, 102, 112, 112, 43, 104, 112, 54, 67, 105, 114, 75, 87, 110, 116, 75, 50, 118, 118, 114, 101, 53, 120, 114, 47, 66, 122, 56, 106, 75, 56, 47, 72, 121, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 107, 52, 50, 79, 107, 89, 117, 77, 108, 53, 71, 83, 111, 90, 113, 99, 113, 75, 71, 106, 115, 97, 113, 115, 116, 55, 67, 121, 117, 55, 83, 50, 119, 76, 109, 55, 120, 56, 68, 67, 48, 99, 98, 76, 103, 53, 71, 68, 79, 90, 66, 71, 81, 54, 49, 79, 82, 114, 108, 100, 13, 10, 82, 114, 53, 120, 82, 56, 83, 67, 83, 99, 117, 84, 97, 116, 101, 119, 121, 117, 88, 99, 43, 80, 68, 122, 57, 80, 80, 48, 57, 118, 88, 50, 57, 118, 88, 49, 57, 118, 88, 49, 57, 80, 80, 48, 56, 102, 68, 120, 55, 43, 55, 118, 55, 101, 118, 114, 54, 117, 110, 112, 53, 43, 102, 111, 53, 101, 88, 109, 52, 117, 76, 105, 51, 116, 55, 101, 13, 10, 50, 116, 114, 97, 50, 100, 102, 88, 122, 115, 114, 76, 107, 116, 75, 43, 88, 116, 97, 113, 83, 115, 113, 82, 82, 56, 78, 47, 82, 114, 120, 116, 82, 98, 90, 89, 80, 97, 74, 74, 88, 111, 116, 107, 110, 53, 83, 90, 111, 74, 109, 98, 111, 90, 113, 99, 111, 53, 121, 101, 112, 90, 54, 103, 112, 112, 43, 104, 113, 113, 79, 108, 115, 113, 117, 116, 13, 10, 117, 55, 83, 50, 119, 55, 121, 43, 121, 56, 88, 71, 55, 101, 118, 114, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 108, 112, 67, 82, 108, 73, 54, 80, 110, 74, 87, 88, 112, 74, 50, 102, 114, 97, 97, 111, 116, 113, 43, 120, 117, 55, 83, 50, 118, 55, 105, 54, 13, 10, 120, 76, 50, 47, 121, 115, 80, 70, 48, 99, 118, 77, 120, 98, 51, 67, 86, 52, 90, 101, 80, 75, 66, 74, 82, 114, 86, 84, 82, 98, 116, 110, 82, 56, 70, 53, 82, 56, 97, 73, 86, 99, 43, 100, 102, 116, 121, 52, 48, 43, 118, 107, 47, 118, 110, 55, 43, 118, 110, 54, 43, 102, 114, 54, 43, 102, 110, 54, 43, 80, 110, 53, 57, 102, 88, 49, 13, 10, 56, 47, 72, 121, 56, 79, 47, 118, 55, 117, 122, 115, 54, 117, 114, 113, 54, 79, 106, 111, 53, 117, 98, 109, 52, 43, 80, 106, 52, 78, 55, 101, 48, 77, 47, 81, 109, 78, 98, 70, 98, 100, 117, 49, 85, 99, 50, 97, 83, 77, 97, 72, 82, 115, 66, 50, 82, 98, 112, 105, 81, 97, 57, 79, 82, 112, 78, 81, 106, 112, 67, 77, 112, 112, 121, 103, 13, 10, 110, 53, 105, 97, 111, 90, 113, 99, 111, 53, 121, 101, 112, 74, 50, 102, 112, 74, 50, 102, 113, 75, 71, 106, 115, 75, 109, 114, 117, 114, 79, 49, 119, 98, 113, 56, 121, 99, 76, 69, 55, 79, 110, 113, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 109, 74, 75, 84, 13, 10, 109, 74, 71, 84, 111, 74, 109, 98, 112, 54, 67, 105, 115, 97, 113, 115, 117, 98, 75, 48, 118, 55, 105, 54, 119, 55, 121, 43, 121, 77, 72, 68, 122, 99, 102, 73, 48, 77, 51, 79, 50, 116, 98, 90, 112, 113, 105, 109, 81, 73, 120, 76, 81, 113, 120, 78, 82, 98, 104, 97, 82, 114, 49, 117, 82, 56, 78, 47, 84, 115, 109, 82, 89, 57, 71, 113, 13, 10, 105, 57, 51, 72, 50, 80, 68, 114, 47, 47, 51, 43, 47, 118, 51, 57, 47, 102, 122, 56, 47, 80, 118, 56, 43, 80, 110, 53, 57, 118, 98, 50, 56, 47, 76, 122, 55, 43, 55, 118, 55, 79, 118, 114, 54, 101, 110, 113, 54, 79, 102, 110, 54, 79, 88, 109, 49, 78, 84, 86, 110, 116, 88, 72, 100, 116, 54, 57, 87, 57, 75, 107, 83, 99, 105, 78, 13, 10, 82, 56, 74, 57, 82, 98, 120, 114, 82, 76, 90, 87, 80, 113, 66, 75, 101, 73, 53, 53, 113, 112, 43, 107, 112, 90, 54, 103, 111, 74, 109, 98, 111, 90, 113, 99, 111, 53, 121, 101, 111, 53, 121, 101, 111, 53, 121, 101, 112, 112, 43, 104, 114, 113, 101, 112, 117, 76, 71, 122, 119, 76, 109, 55, 120, 56, 68, 67, 54, 43, 110, 112, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 109, 90, 83, 86, 109, 112, 79, 86, 111, 90, 113, 99, 114, 75, 87, 110, 116, 97, 54, 119, 118, 98, 97, 52, 119, 55, 121, 43, 120, 56, 68, 67, 122, 77, 88, 71, 48, 77, 122, 78, 49, 78, 72, 84, 50, 78, 98, 88, 51, 100, 98, 98, 13, 10, 102, 74, 82, 43, 79, 112, 108, 71, 82, 76, 78, 81, 82, 55, 112, 106, 82, 55, 57, 49, 83, 77, 87, 70, 84, 56, 113, 89, 97, 116, 83, 120, 106, 78, 47, 75, 49, 43, 47, 113, 47, 118, 51, 43, 57, 102, 47, 53, 43, 47, 55, 54, 47, 80, 122, 56, 43, 102, 110, 53, 57, 118, 88, 50, 56, 118, 72, 121, 55, 117, 51, 116, 54, 43, 118, 114, 13, 10, 55, 117, 114, 114, 49, 57, 102, 88, 109, 57, 118, 76, 102, 101, 76, 66, 90, 100, 87, 113, 83, 56, 117, 84, 82, 56, 87, 67, 82, 114, 53, 121, 82, 98, 108, 101, 80, 113, 116, 75, 88, 90, 66, 106, 112, 112, 113, 103, 114, 97, 87, 110, 112, 54, 67, 105, 112, 74, 50, 102, 111, 74, 109, 98, 110, 53, 105, 97, 111, 53, 121, 101, 112, 90, 54, 103, 13, 10, 112, 54, 67, 105, 114, 97, 97, 111, 117, 76, 71, 122, 119, 76, 109, 55, 121, 77, 72, 68, 55, 43, 51, 117, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 110, 90, 101, 89, 109, 53, 83, 87, 111, 53, 121, 101, 114, 54, 105, 113, 117, 98, 75, 48, 119, 76, 109, 55, 13, 10, 120, 114, 47, 66, 121, 115, 80, 70, 122, 56, 114, 76, 49, 78, 76, 84, 50, 78, 88, 87, 50, 116, 102, 89, 52, 100, 47, 102, 48, 77, 110, 79, 87, 111, 53, 104, 80, 54, 86, 76, 83, 76, 90, 90, 82, 76, 120, 113, 81, 99, 74, 52, 82, 77, 105, 71, 85, 77, 43, 89, 98, 116, 97, 118, 106, 57, 51, 69, 117, 117, 106, 99, 52, 118, 106, 115, 13, 10, 47, 102, 47, 52, 47, 47, 47, 56, 47, 80, 118, 55, 57, 47, 102, 52, 57, 80, 80, 48, 56, 118, 68, 119, 56, 101, 51, 117, 48, 57, 106, 88, 111, 100, 102, 75, 103, 43, 72, 72, 90, 57, 97, 120, 85, 77, 50, 90, 82, 115, 87, 71, 82, 114, 57, 51, 82, 98, 116, 108, 81, 114, 74, 81, 83, 74, 104, 82, 108, 90, 79, 82, 115, 54, 109, 116, 13, 10, 114, 75, 87, 110, 113, 97, 75, 107, 112, 112, 43, 104, 111, 90, 113, 99, 111, 90, 113, 99, 112, 74, 50, 102, 112, 90, 54, 103, 112, 54, 67, 105, 114, 97, 97, 111, 116, 113, 43, 120, 118, 114, 101, 53, 121, 77, 72, 68, 57, 80, 80, 122, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 111, 112, 121, 100, 110, 112, 101, 90, 112, 112, 43, 104, 115, 113, 117, 116, 118, 98, 97, 52, 119, 55, 121, 43, 121, 77, 72, 68, 122, 77, 98, 72, 48, 115, 47, 81, 50, 78, 88, 88, 50, 116, 106, 90, 51, 100, 114, 98, 51, 57, 55, 101, 54, 101, 98, 112, 116, 98, 87, 122, 83, 73, 57, 82, 82, 75, 49, 82, 81, 55, 104, 99, 13, 10, 80, 56, 66, 114, 81, 99, 104, 52, 82, 115, 50, 72, 86, 100, 71, 97, 98, 116, 87, 117, 105, 78, 122, 70, 118, 43, 106, 97, 52, 101, 55, 109, 43, 47, 51, 55, 47, 47, 118, 43, 43, 47, 102, 53, 43, 102, 106, 52, 57, 118, 68, 121, 121, 116, 80, 82, 107, 116, 102, 70, 102, 57, 51, 66, 98, 78, 87, 120, 85, 99, 121, 100, 82, 115, 97, 76, 13, 10, 82, 99, 74, 56, 82, 114, 120, 114, 82, 98, 90, 87, 80, 54, 78, 75, 102, 73, 57, 56, 116, 97, 109, 118, 115, 54, 121, 117, 114, 113, 101, 112, 113, 54, 83, 109, 112, 54, 67, 105, 111, 53, 121, 101, 111, 53, 121, 101, 112, 90, 54, 103, 112, 74, 50, 102, 112, 54, 67, 105, 114, 97, 97, 111, 116, 97, 54, 119, 118, 76, 87, 51, 120, 56, 68, 67, 13, 10, 43, 80, 102, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 116, 76, 67, 120, 110, 53, 101, 90, 113, 75, 71, 106, 116, 97, 54, 119, 119, 98, 113, 56, 120, 114, 47, 66, 121, 56, 84, 71, 48, 77, 114, 76, 49, 57, 88, 87, 50, 116, 106, 90, 51, 100, 118, 99, 13, 10, 51, 57, 51, 101, 52, 117, 68, 104, 53, 117, 84, 108, 55, 101, 102, 114, 108, 75, 79, 83, 82, 90, 74, 76, 82, 98, 66, 83, 81, 98, 112, 100, 81, 99, 78, 116, 81, 56, 108, 55, 82, 77, 121, 72, 84, 99, 117, 87, 88, 116, 71, 118, 108, 78, 110, 73, 116, 57, 122, 86, 49, 101, 51, 114, 56, 80, 118, 57, 56, 102, 110, 43, 54, 117, 55, 119, 13, 10, 119, 57, 76, 81, 107, 78, 114, 72, 100, 116, 50, 57, 89, 78, 75, 115, 85, 99, 50, 97, 83, 77, 105, 75, 82, 115, 78, 43, 83, 98, 53, 119, 83, 55, 104, 101, 81, 97, 104, 75, 89, 52, 57, 110, 115, 97, 83, 114, 117, 98, 71, 48, 115, 113, 117, 116, 114, 97, 97, 111, 113, 54, 83, 109, 113, 97, 75, 107, 112, 90, 54, 103, 112, 90, 54, 103, 13, 10, 112, 90, 54, 103, 112, 90, 54, 103, 112, 54, 67, 105, 114, 75, 87, 110, 115, 54, 121, 117, 117, 114, 79, 49, 121, 115, 88, 71, 47, 80, 118, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 120, 99, 72, 68, 110, 53, 101, 90, 113, 113, 79, 108, 116, 55, 67, 121, 13, 10, 120, 98, 55, 65, 121, 115, 80, 70, 122, 115, 106, 74, 49, 100, 72, 83, 50, 57, 110, 97, 51, 100, 118, 99, 51, 57, 55, 102, 52, 117, 68, 104, 53, 101, 80, 106, 54, 79, 98, 110, 55, 117, 122, 116, 54, 79, 102, 104, 101, 90, 108, 50, 81, 112, 100, 76, 82, 114, 82, 86, 82, 76, 116, 105, 81, 115, 70, 118, 80, 99, 86, 52, 80, 99, 97, 69, 13, 10, 83, 77, 50, 88, 106, 79, 98, 81, 116, 47, 80, 117, 115, 101, 80, 105, 119, 79, 102, 113, 119, 101, 76, 108, 114, 56, 118, 75, 113, 79, 88, 88, 111, 47, 80, 102, 90, 100, 83, 116, 83, 115, 113, 90, 83, 115, 113, 75, 82, 56, 86, 57, 83, 76, 57, 120, 84, 114, 108, 104, 83, 113, 49, 80, 85, 112, 78, 86, 111, 53, 121, 100, 119, 98, 105, 56, 13, 10, 116, 55, 67, 121, 115, 97, 113, 115, 113, 54, 83, 109, 113, 75, 71, 106, 113, 113, 79, 108, 113, 75, 71, 106, 112, 54, 67, 105, 112, 112, 43, 104, 112, 54, 67, 105, 113, 75, 71, 106, 113, 113, 79, 108, 115, 54, 121, 117, 117, 98, 71, 122, 49, 77, 47, 81, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 51, 100, 114, 98, 111, 90, 113, 99, 114, 75, 87, 110, 117, 98, 75, 48, 120, 56, 72, 68, 122, 77, 102, 73, 48, 99, 118, 77, 50, 78, 88, 87, 51, 116, 122, 100, 52, 78, 55, 103, 52, 117, 72, 105, 53, 79, 80, 107, 53, 43, 98, 109, 54, 43, 110, 113, 55, 101, 122, 115, 57, 102, 84, 50, 13, 10, 120, 100, 98, 79, 89, 53, 90, 117, 81, 112, 57, 80, 82, 114, 82, 89, 82, 76, 112, 107, 82, 115, 66, 120, 83, 99, 78, 54, 87, 77, 50, 75, 108, 43, 106, 83, 117, 80, 76, 121, 115, 43, 47, 114, 112, 116, 55, 98, 111, 100, 98, 84, 113, 79, 80, 100, 114, 102, 80, 108, 113, 102, 110, 108, 98, 100, 101, 118, 82, 77, 67, 72, 84, 115, 74, 57, 13, 10, 83, 55, 49, 121, 82, 55, 108, 106, 83, 113, 53, 86, 84, 74, 74, 79, 106, 90, 87, 75, 120, 114, 118, 66, 119, 76, 109, 55, 117, 98, 75, 48, 116, 75, 50, 118, 114, 97, 97, 111, 113, 113, 79, 108, 113, 113, 79, 108, 113, 75, 71, 106, 112, 54, 67, 105, 112, 112, 43, 104, 112, 54, 67, 105, 113, 75, 71, 106, 113, 113, 79, 108, 115, 54, 121, 117, 13, 10, 117, 76, 71, 122, 51, 57, 122, 100, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 56, 102, 68, 119, 113, 75, 71, 106, 113, 54, 83, 109, 117, 76, 83, 49, 120, 115, 88, 71, 121, 56, 114, 75, 48, 78, 68, 81, 50, 57, 110, 97, 51, 57, 51, 101, 13, 10, 52, 117, 68, 104, 53, 79, 80, 107, 53, 43, 98, 109, 54, 117, 106, 112, 55, 117, 122, 116, 56, 79, 51, 118, 56, 101, 47, 119, 57, 102, 88, 50, 117, 115, 97, 53, 85, 111, 108, 86, 81, 97, 108, 79, 81, 98, 108, 86, 81, 55, 57, 105, 82, 55, 49, 116, 100, 99, 50, 86, 117, 79, 98, 102, 116, 43, 114, 110, 112, 102, 76, 97, 106, 43, 122, 78, 13, 10, 105, 43, 110, 82, 109, 101, 51, 108, 110, 43, 122, 110, 112, 102, 84, 110, 104, 117, 83, 47, 82, 114, 120, 52, 84, 98, 120, 118, 83, 76, 112, 105, 82, 76, 82, 86, 80, 112, 82, 81, 97, 112, 78, 48, 119, 114, 54, 43, 121, 99, 72, 68, 119, 76, 109, 55, 117, 55, 83, 50, 116, 97, 54, 119, 114, 54, 105, 113, 113, 54, 83, 109, 113, 113, 79, 108, 13, 10, 113, 75, 71, 106, 112, 54, 67, 105, 112, 112, 43, 104, 112, 54, 67, 105, 113, 75, 71, 106, 113, 113, 79, 108, 115, 113, 117, 116, 117, 98, 75, 48, 55, 117, 122, 115, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 117, 55, 97, 51, 13, 10, 113, 75, 71, 106, 116, 55, 75, 122, 120, 56, 106, 73, 122, 115, 55, 79, 48, 116, 76, 83, 51, 100, 122, 100, 52, 117, 68, 104, 53, 79, 80, 106, 53, 43, 88, 109, 54, 117, 110, 112, 55, 79, 122, 115, 56, 79, 55, 118, 56, 101, 47, 119, 56, 101, 47, 120, 57, 80, 76, 122, 55, 79, 122, 112, 107, 114, 67, 78, 81, 53, 70, 74, 81, 97, 49, 80, 13, 10, 81, 114, 86, 86, 82, 55, 108, 108, 105, 116, 117, 110, 118, 47, 72, 112, 116, 79, 51, 109, 110, 79, 47, 85, 104, 101, 110, 68, 103, 117, 84, 72, 107, 101, 102, 99, 111, 43, 51, 111, 113, 102, 98, 113, 109, 47, 80, 80, 85, 76, 57, 52, 82, 114, 116, 103, 82, 76, 82, 86, 81, 90, 49, 79, 88, 73, 57, 105, 116, 114, 117, 49, 48, 99, 110, 76, 13, 10, 120, 114, 47, 66, 119, 98, 113, 56, 117, 55, 83, 50, 116, 97, 54, 119, 115, 75, 109, 114, 113, 54, 83, 109, 113, 97, 75, 107, 113, 75, 71, 106, 112, 112, 43, 104, 112, 112, 43, 104, 112, 54, 67, 105, 113, 97, 75, 107, 113, 54, 83, 109, 115, 97, 113, 115, 119, 114, 121, 43, 43, 47, 118, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 50, 100, 98, 87, 112, 53, 43, 104, 116, 113, 43, 120, 121, 99, 110, 74, 48, 116, 80, 83, 49, 116, 98, 87, 52, 78, 47, 103, 52, 43, 76, 106, 53, 101, 84, 108, 54, 101, 102, 110, 55, 79, 114, 114, 55, 43, 51, 117, 56, 101, 47, 119, 13, 10, 56, 101, 47, 119, 56, 102, 68, 120, 56, 118, 72, 120, 57, 47, 84, 50, 51, 43, 102, 98, 103, 75, 86, 53, 81, 111, 49, 74, 81, 113, 100, 82, 84, 114, 90, 107, 107, 117, 122, 65, 113, 118, 72, 105, 111, 101, 110, 98, 105, 79, 88, 70, 99, 57, 117, 122, 99, 116, 101, 51, 103, 57, 55, 76, 109, 101, 106, 100, 112, 80, 68, 105, 112, 47, 118, 97, 13, 10, 89, 115, 105, 66, 80, 97, 57, 77, 80, 90, 120, 75, 87, 73, 53, 97, 114, 114, 113, 111, 49, 115, 55, 81, 122, 77, 88, 72, 120, 114, 47, 66, 119, 98, 113, 56, 117, 55, 83, 50, 116, 97, 54, 119, 115, 75, 109, 114, 113, 54, 83, 109, 113, 97, 75, 107, 113, 75, 71, 106, 112, 112, 43, 104, 112, 112, 43, 104, 112, 54, 67, 105, 113, 97, 75, 107, 13, 10, 113, 54, 83, 109, 114, 113, 101, 112, 49, 116, 76, 84, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 57, 118, 88, 50, 115, 97, 113, 115, 115, 54, 121, 117, 121, 77, 98, 72, 49, 100, 88, 86, 49, 57, 102, 88, 13, 10, 52, 100, 47, 103, 53, 101, 80, 108, 53, 43, 98, 110, 54, 117, 106, 112, 55, 101, 122, 116, 56, 101, 47, 119, 56, 118, 68, 121, 56, 102, 68, 120, 56, 118, 72, 121, 56, 118, 72, 121, 56, 118, 72, 121, 43, 80, 84, 51, 51, 101, 84, 85, 101, 90, 116, 48, 80, 52, 104, 75, 87, 114, 104, 53, 105, 118, 80, 77, 103, 43, 80, 76, 102, 116, 47, 70, 13, 10, 97, 100, 97, 117, 87, 115, 117, 101, 87, 115, 50, 106, 98, 100, 83, 50, 103, 78, 122, 70, 106, 117, 84, 79, 109, 118, 80, 84, 99, 57, 79, 90, 79, 112, 108, 69, 84, 111, 120, 81, 112, 55, 105, 105, 50, 100, 72, 84, 48, 99, 118, 77, 122, 77, 88, 72, 120, 114, 47, 66, 119, 98, 113, 56, 117, 55, 83, 50, 116, 97, 54, 119, 115, 75, 109, 114, 13, 10, 114, 75, 87, 110, 113, 113, 79, 108, 113, 97, 75, 107, 112, 54, 67, 105, 112, 112, 43, 104, 112, 112, 43, 104, 113, 75, 71, 106, 113, 54, 83, 109, 115, 75, 109, 114, 55, 43, 55, 117, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 122, 77, 106, 74, 114, 54, 101, 112, 120, 77, 68, 66, 49, 116, 98, 87, 50, 78, 106, 89, 52, 43, 72, 105, 53, 117, 88, 109, 54, 117, 106, 112, 54, 43, 114, 113, 55, 43, 55, 117, 56, 118, 72, 121, 56, 118, 72, 121, 56, 118, 72, 121, 56, 47, 76, 122, 56, 47, 76, 122, 56, 118, 72, 121, 56, 118, 72, 121, 13, 10, 43, 80, 88, 51, 48, 116, 55, 79, 88, 53, 78, 117, 89, 114, 113, 82, 99, 43, 106, 65, 89, 78, 113, 49, 86, 57, 83, 114, 84, 99, 50, 90, 82, 115, 83, 77, 82, 56, 97, 81, 85, 115, 121, 102, 89, 116, 71, 115, 99, 100, 109, 51, 102, 43, 101, 43, 101, 101, 67, 118, 85, 113, 66, 106, 108, 98, 101, 86, 50, 78, 72, 84, 49, 56, 47, 83, 13, 10, 122, 56, 114, 75, 121, 56, 88, 71, 120, 98, 55, 65, 119, 76, 109, 55, 117, 55, 83, 50, 116, 97, 54, 119, 115, 75, 109, 114, 114, 97, 97, 111, 114, 75, 87, 110, 113, 113, 79, 108, 113, 75, 71, 106, 112, 54, 67, 105, 112, 112, 43, 104, 113, 75, 71, 106, 113, 97, 71, 106, 119, 114, 50, 43, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 55, 43, 47, 118, 116, 75, 54, 118, 118, 98, 101, 53, 49, 116, 98, 87, 50, 57, 118, 98, 53, 79, 76, 106, 53, 43, 98, 110, 54, 117, 110, 112, 55, 101, 118, 115, 56, 79, 47, 118, 13, 10, 56, 118, 72, 121, 57, 80, 84, 48, 57, 80, 84, 48, 57, 80, 80, 122, 57, 102, 84, 48, 57, 102, 84, 122, 57, 80, 80, 122, 57, 102, 76, 48, 57, 80, 84, 48, 108, 56, 113, 118, 97, 99, 101, 103, 88, 100, 105, 114, 80, 115, 113, 88, 79, 77, 105, 78, 78, 56, 83, 67, 79, 115, 66, 56, 80, 114, 57, 57, 81, 77, 79, 72, 82, 99, 105, 83, 13, 10, 85, 99, 50, 99, 88, 57, 101, 107, 90, 57, 54, 113, 100, 115, 79, 99, 121, 99, 55, 75, 50, 57, 80, 86, 48, 115, 122, 78, 122, 115, 106, 74, 121, 99, 76, 69, 119, 55, 121, 43, 118, 55, 105, 54, 117, 55, 83, 50, 116, 97, 54, 119, 115, 75, 109, 114, 114, 97, 97, 111, 114, 75, 87, 110, 113, 113, 79, 108, 113, 75, 71, 106, 112, 54, 67, 105, 13, 10, 112, 112, 43, 104, 113, 75, 71, 106, 113, 113, 75, 107, 53, 117, 88, 108, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 115, 55, 80, 116, 113, 54, 119, 13, 10, 48, 99, 47, 80, 51, 78, 122, 99, 52, 101, 68, 104, 54, 79, 102, 110, 54, 117, 110, 112, 55, 101, 118, 115, 56, 79, 47, 119, 56, 47, 76, 121, 57, 102, 84, 48, 57, 102, 84, 48, 57, 102, 88, 49, 57, 102, 88, 49, 57, 102, 88, 49, 57, 118, 84, 48, 43, 47, 88, 51, 122, 101, 68, 87, 101, 99, 105, 103, 87, 56, 105, 86, 84, 77, 101, 82, 13, 10, 78, 99, 87, 69, 76, 77, 78, 52, 77, 114, 49, 118, 78, 114, 104, 113, 80, 76, 104, 116, 80, 55, 49, 50, 80, 99, 70, 43, 80, 115, 83, 71, 82, 99, 109, 78, 84, 77, 50, 82, 88, 77, 121, 107, 106, 55, 113, 115, 49, 115, 110, 77, 49, 77, 51, 79, 122, 77, 98, 72, 121, 77, 72, 68, 119, 114, 117, 57, 118, 114, 101, 53, 117, 55, 83, 50, 13, 10, 116, 97, 54, 119, 115, 75, 109, 114, 114, 97, 97, 111, 114, 75, 87, 110, 113, 113, 79, 108, 113, 75, 71, 106, 112, 54, 67, 105, 112, 112, 43, 104, 112, 74, 121, 101, 119, 114, 54, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 43, 80, 102, 51, 118, 114, 101, 53, 120, 98, 47, 66, 50, 116, 118, 98, 51, 57, 47, 102, 54, 79, 98, 110, 54, 117, 106, 112, 55, 117, 118, 115, 56, 79, 55, 119, 56, 47, 76, 122, 57, 102, 84, 49, 57, 102, 84, 49, 57, 118, 88, 50, 57, 102, 88, 50, 13, 10, 57, 118, 88, 51, 47, 118, 106, 56, 120, 43, 76, 85, 89, 76, 50, 79, 82, 114, 108, 47, 82, 76, 120, 47, 81, 76, 104, 54, 80, 77, 70, 48, 78, 114, 57, 112, 80, 98, 100, 104, 81, 55, 78, 98, 82, 76, 82, 101, 81, 55, 104, 110, 80, 55, 120, 118, 80, 55, 53, 50, 81, 77, 66, 56, 81, 115, 67, 66, 80, 56, 71, 77, 80, 56, 71, 77, 13, 10, 103, 98, 109, 100, 48, 77, 80, 72, 122, 77, 80, 71, 120, 98, 55, 65, 119, 98, 113, 56, 118, 98, 97, 52, 117, 114, 79, 49, 116, 97, 54, 119, 115, 113, 117, 116, 114, 113, 101, 112, 114, 75, 87, 110, 113, 113, 79, 108, 113, 75, 71, 106, 112, 112, 43, 104, 112, 74, 50, 102, 113, 75, 71, 106, 55, 117, 51, 117, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 53, 101, 80, 106, 117, 55, 83, 50, 48, 116, 68, 82, 51, 116, 55, 101, 53, 117, 84, 108, 54, 117, 106, 111, 13, 10, 55, 79, 118, 114, 55, 43, 51, 117, 56, 118, 68, 121, 57, 102, 88, 49, 57, 118, 88, 50, 57, 118, 88, 50, 43, 80, 98, 51, 47, 102, 102, 55, 120, 100, 110, 78, 90, 76, 101, 76, 79, 76, 104, 54, 76, 55, 116, 50, 79, 76, 116, 49, 81, 98, 70, 116, 81, 76, 86, 106, 82, 76, 100, 100, 83, 54, 57, 88, 85, 97, 116, 82, 83, 97, 116, 79, 13, 10, 82, 98, 70, 86, 81, 98, 82, 101, 80, 55, 90, 109, 81, 98, 104, 118, 81, 55, 108, 48, 79, 114, 108, 51, 80, 115, 74, 56, 79, 56, 70, 54, 101, 98, 87, 85, 120, 55, 122, 66, 120, 55, 51, 66, 118, 55, 105, 54, 118, 76, 87, 51, 117, 76, 71, 122, 116, 97, 54, 119, 115, 97, 113, 115, 114, 97, 97, 111, 113, 54, 83, 109, 113, 97, 75, 107, 13, 10, 112, 54, 67, 105, 112, 74, 50, 102, 110, 112, 97, 89, 48, 99, 51, 79, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 49, 100, 68, 82, 119, 114, 121, 43, 50, 57, 118, 98, 52, 43, 76, 105, 54, 101, 106, 111, 54, 43, 114, 114, 55, 101, 122, 116, 56, 101, 47, 120, 57, 102, 80, 49, 43, 80, 98, 51, 43, 47, 102, 55, 43, 102, 102, 54, 116, 78, 55, 66, 89, 55, 86, 43, 84, 114, 82, 120, 84, 56, 86, 49, 83, 76, 57, 115, 13, 10, 84, 76, 116, 112, 85, 55, 100, 111, 86, 76, 74, 104, 86, 75, 49, 99, 85, 113, 74, 86, 86, 74, 57, 83, 83, 74, 53, 74, 82, 54, 86, 74, 82, 97, 57, 79, 81, 55, 70, 86, 81, 55, 82, 101, 81, 76, 86, 106, 80, 55, 100, 111, 81, 55, 49, 118, 82, 76, 112, 120, 80, 76, 108, 116, 98, 114, 79, 72, 118, 76, 97, 52, 119, 114, 101, 56, 13, 10, 117, 114, 79, 49, 116, 113, 43, 120, 115, 54, 121, 117, 114, 54, 105, 113, 113, 54, 83, 109, 113, 75, 71, 106, 112, 112, 43, 104, 112, 90, 54, 103, 110, 74, 87, 88, 116, 55, 75, 122, 47, 102, 51, 57, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 43, 118, 114, 54, 121, 56, 88, 72, 122, 115, 114, 76, 52, 79, 72, 104, 53, 43, 98, 109, 54, 43, 110, 112, 55, 101, 114, 112, 54, 43, 114, 110, 55, 102, 68, 112, 57, 80, 106, 120, 13, 10, 54, 102, 102, 110, 111, 56, 54, 109, 87, 97, 112, 109, 83, 113, 57, 100, 82, 114, 86, 90, 80, 76, 78, 79, 79, 97, 53, 75, 81, 114, 66, 80, 82, 54, 49, 83, 82, 97, 70, 79, 82, 90, 90, 76, 82, 53, 66, 76, 86, 74, 100, 87, 86, 53, 74, 90, 81, 53, 78, 73, 82, 90, 57, 71, 82, 113, 100, 76, 82, 97, 120, 80, 81, 97, 57, 85, 13, 10, 81, 98, 70, 90, 81, 76, 74, 100, 82, 98, 74, 103, 82, 98, 82, 105, 80, 76, 86, 102, 89, 76, 66, 48, 114, 98, 67, 113, 118, 55, 75, 54, 116, 97, 54, 119, 115, 97, 113, 115, 114, 113, 101, 112, 113, 97, 75, 107, 112, 54, 67, 105, 112, 90, 54, 103, 111, 74, 105, 98, 113, 97, 79, 108, 56, 118, 72, 120, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 57, 47, 98, 50, 121, 115, 84, 71, 13, 10, 49, 78, 76, 84, 53, 79, 84, 107, 53, 43, 80, 106, 54, 43, 110, 104, 55, 102, 88, 107, 52, 47, 122, 98, 119, 79, 101, 53, 102, 98, 104, 53, 86, 54, 78, 85, 84, 113, 78, 76, 84, 113, 120, 78, 82, 54, 49, 73, 81, 75, 57, 71, 80, 113, 104, 68, 81, 113, 74, 70, 82, 90, 112, 73, 82, 73, 49, 72, 83, 89, 78, 75, 100, 75, 78, 49, 13, 10, 115, 100, 101, 121, 115, 98, 54, 119, 100, 89, 57, 49, 83, 52, 112, 78, 81, 53, 70, 72, 81, 53, 108, 74, 81, 54, 66, 76, 81, 75, 86, 75, 81, 97, 116, 78, 82, 76, 66, 80, 82, 114, 70, 82, 82, 114, 66, 84, 81, 76, 66, 81, 85, 75, 53, 90, 108, 97, 117, 83, 117, 113, 121, 48, 115, 113, 109, 116, 114, 75, 87, 110, 113, 113, 79, 108, 13, 10, 113, 75, 71, 106, 111, 90, 113, 99, 111, 53, 121, 101, 54, 101, 106, 111, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 56, 79, 55, 118, 121, 56, 88, 72, 50, 100, 102, 90, 52, 101, 80, 101, 55, 80, 106, 109, 51, 80, 102, 88, 111, 57, 83, 102, 88, 54, 86, 101, 82, 53, 112, 73, 83, 97, 78, 73, 83, 113, 86, 71, 82, 54, 70, 68, 82, 112, 57, 68, 13, 10, 82, 74, 53, 72, 81, 53, 100, 70, 81, 111, 116, 68, 84, 73, 120, 78, 97, 90, 120, 113, 111, 77, 87, 104, 49, 117, 114, 87, 57, 80, 47, 50, 56, 80, 98, 49, 50, 100, 114, 88, 112, 75, 50, 99, 98, 73, 53, 115, 83, 89, 108, 80, 81, 111, 57, 75, 81, 74, 86, 73, 81, 90, 49, 73, 81, 54, 82, 73, 82, 75, 104, 71, 82, 97, 100, 72, 13, 10, 82, 113, 104, 72, 81, 113, 104, 68, 82, 75, 90, 71, 100, 97, 82, 48, 113, 75, 97, 106, 115, 113, 87, 115, 112, 112, 43, 104, 110, 53, 101, 90, 111, 90, 113, 99, 52, 117, 68, 104, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 56, 47, 76, 121, 50, 78, 84, 87, 49, 78, 122, 84, 112, 77, 71, 107, 100, 54, 104, 54, 13, 10, 83, 73, 112, 78, 80, 90, 70, 71, 80, 112, 112, 71, 80, 90, 112, 69, 81, 90, 108, 70, 81, 53, 82, 69, 82, 73, 53, 69, 82, 73, 70, 76, 83, 89, 70, 80, 90, 112, 104, 114, 109, 115, 79, 101, 122, 101, 114, 82, 56, 102, 47, 50, 43, 80, 55, 57, 57, 47, 98, 56, 43, 118, 68, 56, 47, 47, 110, 47, 57, 47, 98, 120, 122, 56, 122, 77, 13, 10, 110, 113, 97, 100, 97, 73, 49, 115, 82, 52, 100, 81, 80, 89, 108, 72, 80, 89, 49, 69, 81, 90, 86, 70, 81, 112, 104, 72, 81, 112, 104, 74, 81, 112, 108, 73, 81, 90, 108, 72, 79, 53, 104, 67, 85, 90, 100, 87, 102, 112, 104, 47, 111, 74, 50, 99, 114, 75, 101, 111, 52, 117, 72, 104, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 54, 117, 47, 113, 89, 52, 82, 110, 82, 72, 82, 75, 81, 52, 70, 77, 80, 111, 108, 75, 79, 52, 112, 72, 79, 73, 78, 68, 80, 73, 66, 70, 81, 52, 70, 75, 85, 111, 100, 89, 101, 112, 121, 68, 112, 99, 79, 118, 48, 117, 110, 98, 54, 118, 51, 121, 56, 80, 55, 52, 13, 10, 57, 80, 118, 55, 43, 102, 106, 43, 47, 102, 98, 47, 47, 47, 102, 47, 47, 47, 88, 47, 56, 117, 122, 121, 51, 57, 47, 102, 50, 100, 106, 90, 121, 56, 84, 72, 111, 97, 101, 102, 98, 112, 66, 121, 84, 52, 82, 87, 81, 111, 74, 74, 80, 52, 74, 71, 79, 52, 104, 72, 80, 89, 116, 74, 80, 111, 116, 75, 80, 89, 112, 73, 77, 52, 99, 47, 13, 10, 80, 52, 82, 75, 48, 57, 110, 85, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 122, 57, 122, 83, 99, 112, 70, 54, 85, 51, 112, 98, 85, 111, 70, 100, 85, 52, 78, 100, 87, 52, 108, 107, 100, 74, 116, 55, 13, 10, 108, 55, 113, 100, 118, 78, 88, 65, 54, 80, 84, 115, 57, 80, 47, 53, 43, 102, 47, 47, 57, 47, 47, 43, 57, 102, 118, 54, 43, 102, 51, 47, 43, 118, 118, 43, 43, 80, 102, 55, 56, 47, 72, 49, 54, 79, 88, 112, 51, 116, 55, 102, 50, 116, 114, 97, 49, 100, 88, 86, 49, 100, 76, 84, 49, 99, 122, 81, 121, 76, 55, 68, 114, 75, 117, 111, 13, 10, 105, 53, 113, 76, 99, 89, 120, 122, 86, 111, 100, 102, 80, 52, 74, 78, 80, 73, 70, 74, 81, 73, 70, 78, 86, 73, 82, 100, 116, 76, 43, 48, 47, 47, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 54, 43, 55, 116, 116, 56, 75, 54, 114, 114, 121, 122, 117, 115, 105, 57, 121, 78, 98, 77, 52, 101, 122, 105, 56, 47, 114, 121, 47, 80, 51, 53, 47, 47, 47, 54, 43, 118, 122, 49, 43, 80, 118, 49, 43, 80, 122, 51, 43, 118, 55, 54, 57, 47, 51, 53, 56, 80, 98, 122, 54, 101, 55, 116, 52, 117, 84, 107, 51, 43, 68, 102, 13, 10, 51, 116, 55, 101, 50, 100, 110, 90, 48, 57, 80, 84, 122, 56, 122, 77, 122, 77, 88, 72, 121, 77, 72, 68, 120, 98, 51, 65, 118, 114, 83, 53, 116, 113, 121, 120, 113, 54, 83, 110, 108, 53, 113, 86, 106, 74, 71, 75, 110, 90, 43, 98, 51, 78, 102, 97, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 13, 10, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 55, 47, 54, 117, 106, 112, 50, 100, 102, 89, 50, 100, 106, 90, 52, 43, 72, 105, 54, 117, 102, 112, 55, 117, 118, 113, 56, 79, 47, 112, 56, 118, 72, 113, 56, 118, 76, 115, 13, 10, 56, 102, 76, 116, 56, 80, 72, 117, 55, 118, 68, 117, 54, 117, 114, 113, 53, 43, 102, 109, 53, 79, 80, 106, 52, 79, 68, 103, 51, 78, 122, 99, 49, 116, 98, 87, 48, 100, 72, 82, 122, 99, 110, 75, 121, 99, 76, 69, 120, 76, 50, 47, 118, 55, 105, 54, 117, 76, 71, 122, 115, 113,
riahc3 50 Â Team Colleague
Tried using commons codec but it seems that it returns a string that a HTML page doesnt like.
riahc3 50 Â Team Colleague
how about setting that image online somewhere. I'm pretty sure they'll be connected when they try to get to their emails.
It is dynamically generated.
It should be possible to include the image file base64 encoded into the HTML. Am sure if you google this, you'll find a solution.
Is it possible to get the base64 encoding of a dynamically generated image?
riahc3 50 Â Team Colleague
Hello
Im trying to send a HTML email but I want to encrust into the HTML a image without it being a attachment.
The content of the email is pure HTML so in order to do img src it needs to be a live link AFAIK. If it can be done with a attachment, great! :)
How can I do this?
Thanks
riahc3 50 Â Team Colleague
Well one guy's habit usually doesnt agree with anothers!
Thank you for helping.
riahc3 50 Â Team Colleague
? I don't understand that question.
It's just one small class, designed for simple re-use. Get an instance by setting the encryption key in the consructor, then use that instance to encrypt/decrypt as much as you like.
I ment like just make one class with all of that and a simply void main. Im not going to even do encrypting; I just need the encrypting method to test out if input/output is correct or not.
riahc3 50 Â Team Colleague
Why not make just one big class instead of splitting it up?
riahc3 50 Â Team Colleague
Did not read your post (will use your code). Sorry.
I made this:
package EncryptDerypt;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
public class EncryptDecrypt {
/**
* @param args
*/
public static void main(String[] args)
{
String input="Hello";
String eresult= encrypt(input);
System.out.println("Encrypted is: " + eresult);
String dresult= decrypt(eresult);
System.out.println("Decrypted is: " + dresult);
}
public static String encrypt(String dstring)
{
String result="";
String skey="123123";
byte[] key = skey.getBytes();
byte[] dataToSend = dstring.getBytes();
try {
Cipher c = Cipher.getInstance("AES");
SecretKeySpec k = new SecretKeySpec(key, "AES");
try {
c.init(Cipher.ENCRYPT_MODE, k);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] encryptedData = c.doFinal(dataToSend);
result=encryptedData.toString();
return result;
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
public static String decrypt(String encrypteddata)
{
String result="";
String skey="123123";
byte[] key = skey.getBytes();
byte[] encryptedData = encrypteddata.getBytes();
Cipher c;
try {
c = Cipher.getInstance("AES");
SecretKeySpec k =
new SecretKeySpec(key, "AES");
try {
c.init(Cipher.DECRYPT_MODE, k);
try {
byte[] data = c.doFinal(encryptedData);
result=data.toString();
return result;
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (NoSuchAlgorithmException e) {
// …