Skip to content
Snippets Groups Projects
Commit e97b85f9 authored by Michael Kmoch's avatar Michael Kmoch
Browse files

updated paper

parent 0456efe1
Branches
No related tags found
1 merge request!1Kmoch lewash
Showing
with 1769 additions and 394 deletions
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}} \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}}
\@writefile{toc}{\contentsline {section}{\numberline {2}ActionInvokeSentMoney}{1}{section.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3}ActionInvokeDistributedCommitedTransfer}{2}{section.3}}
\@writefile{toc}{\contentsline {section}{\numberline {4}ActionPrepareDistributedCommitedTransfer}{3}{section.4}}
\@writefile{toc}{\contentsline {section}{\numberline {5}ActionPrepareDistributedCommitedTransferAnswer}{3}{section.5}}
\@writefile{toc}{\contentsline {section}{\numberline {6}ActionCommitDistributedCommitedTransfer}{4}{section.6}}
\@writefile{toc}{\contentsline {section}{\numberline {7}ActionUpdateQueue}{5}{section.7}}
\@setckpt{1_introduction}{ \@setckpt{1_introduction}{
\setcounter{page}{6} \setcounter{page}{2}
\setcounter{equation}{0} \setcounter{equation}{0}
\setcounter{enumi}{0} \setcounter{enumi}{0}
\setcounter{enumii}{0} \setcounter{enumii}{0}
...@@ -17,7 +11,7 @@ ...@@ -17,7 +11,7 @@
\setcounter{footnote}{0} \setcounter{footnote}{0}
\setcounter{mpfootnote}{0} \setcounter{mpfootnote}{0}
\setcounter{part}{0} \setcounter{part}{0}
\setcounter{section}{7} \setcounter{section}{1}
\setcounter{subsection}{0} \setcounter{subsection}{0}
\setcounter{subsubsection}{0} \setcounter{subsubsection}{0}
\setcounter{paragraph}{0} \setcounter{paragraph}{0}
...@@ -25,10 +19,10 @@ ...@@ -25,10 +19,10 @@
\setcounter{figure}{0} \setcounter{figure}{0}
\setcounter{table}{0} \setcounter{table}{0}
\setcounter{vrcnt}{0} \setcounter{vrcnt}{0}
\setcounter{lstnumber}{15} \setcounter{lstnumber}{1}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{0} \setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{7} \setcounter{bookmark@seq@number}{1}
\setcounter{lstlisting}{0} \setcounter{lstlisting}{0}
\setcounter{section@level}{1} \setcounter{section@level}{1}
} }
\section{Introduction} \section{Introduction}
We have to make sure, that either all operational participants commit the For a transaction in the FUCoin system we have to make sure, that either
transaction or none of them. Each participant has one of two votes for the all operational participants commit the transaction or none of them.
possible transaction: YES or NO. For the transaction to happen all participants Each participant has one of two votes for the possible transaction: YES
have to vote YES, so a decision cannot be reversed. or NO. For the transaction to happen all participants have to vote YES,
The init participant acts as the coordinator and sends a 'vote request' to all so a decision cannot be reversed. The init participant acts as the
other participants. After a participant receives this request, it responds with coordinator and sends a 'vote request' to all other participants. After
either YES or NO. In case of NO the decision is already 'Abort'. If all a participant receives this request, it responds with either YES or NO.
participants vote YES, the coordinator decides 'Commit' and sends a commit In case of NO the decision is already 'Abort'. If all participants vote
message to all participants. Otherwise it sends an abort message to all YES, the coordinator decides 'Commit' and sends a commit message to all
participants that voted YES. participants. Otherwise it sends an abort message to all participants
that voted YES.
\includegraphics[width=1.0\textwidth]{pictures/TimelineCorrectTransfer.png} \bigskip
\\
\section{ActionInvokeSentMoney} \\
This action is invoked by the graphical user interface of the wallets. \\
The target is to transfer an amount of money to a given Walletname. \\
If the targetname has a allready a mapping to an ActorRef, \includegraphics[width=1.0\textwidth]{pictures/TimelineCorrectTransfer.pdf}
an ActionInvokeDistributedCommitedTransfer will be sent to the Supervisor.
Otherwise an Gossip is invoked using the ActionSearchWalletReference,
and the same ActionInvokeSentMoney is invoked after 200ms.
\begin{lstlisting}
protected void onAction(ActorRef sender,
ActorRef self,
UntypedActorContext context,
Wallet wallet) {
log(wallet.getKnownNeighbors()+"");
if(wallet.getKnownNeighbors().containsKey(name)){
wallet.getRemoteSuperVisorActor().tell(
new ActionInvokeDistributedCommitedTransfer(
self,
wallet.getKnownNeighbors().get(name),
amount),
sender);
}else{
ActionSearchWalletReference aswr = new ActionSearchWalletReference(name);
for(ActorRef neighbor : wallet.getKnownNeighbors().values()){
neighbor.tell(aswr, self);
}
sleep(self, context, 200);
self.tell(this, self);
}
}
\end{lstlisting}
\section{ActionInvokeDistributedCommitedTransfer}
The ActionInvokeDistributedCommitedTransfer creates an DistributedCommitedTransferRequest,
which contains a random generated id, on the Server,
with a timout of 500ms, and store this to a map Long --> Request accoring to the id.
The Timeout is handled by the ActionUpdateQueue explained later.
The request will spread out to all clients. The clients can answer with an acknowledgement or an abort afterwards(see below).
\begin{lstlisting}
protected void onAction(ActorRef sender,
ActorRef self,
UntypedActorContext context,
SuperVisor superVisor) {
log("invoke transaction "+source.path().name()+
" sends "+amount+" to "+target.path().name());
long timeout = System.currentTimeMillis()+500;
DistributedCommitedTransferRequest ds =
new DistributedCommitedTransferRequest(source,target,timeout);
superVisor.addDistributedCommitedTransferRequest(ds);
ActionPrepareDistributedCommitedTransfer apdct =
new ActionPrepareDistributedCommitedTransfer(
source,
target,
amount,
timeout,
ds.getId());
for(ActorRef neighbor : superVisor.getKnownNeighbors().values()){
neighbor.tell(apdct, self);
}
}
\end{lstlisting}
\section{ActionPrepareDistributedCommitedTransfer}
The clients will reply an request with an acknowlegment if one of two cases occurs.
The first case will appear if the Supervisor(Bank) will send a user some money.
Otherwise it would be neccessary that the sender is known by this client and have enough money.
\begin{lstlisting}
protected void onAction(ActorRef sender,
ActorRef self,
UntypedActorContext context,
Wallet wallet) {
//sender is supervisor(bank) has allways money
boolean granted = sender.compareTo(source)==0
//sender is unknown, might be valid
||(wallet.amounts.containsKey(source)
//sender have enough money
&&wallet.amounts.getOrDefault(source,0)>=amount);
sender.tell(
new ActionPrepareDistributedCommitedTransferAnswer(source,
target,
amount,
timestamp,
granted,
id),
self);
}
\end{lstlisting}
\section{ActionPrepareDistributedCommitedTransferAnswer}
After an answer of a client reaches the server, the server tries to find the correspong request.
If the answer was a acknowlegement, the request will get another positive answers.
When the same amount of positive answers equals the count of knownneighbors received on the server,
all client will be informed to commit the change, and the request will be deleted.
If the answer was a Abort all client will be invoked to abort the transaction.
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self,
UntypedActorContext context, SuperVisor superVisor) {
log(""+superVisor.getKnownNeighbors());
log("granted?"+granted);
DistributedCommitedTransferRequest request = superVisor.getRequest(id);
if(granted){
if(request==null)//unknown DistributedCommitedTransferRequest ignore
return;
int newCount = request.addPositiveAnswer(sender);
if(newCount == superVisor.getKnownNeighbors().size()){
ActionCommitDistributedCommitedTransfer acdct = new ActionCommitDistributedCommitedTransfer(source,target,amount,true,timestamp,id);
for(ActorRef neighbor : request.getAnswers()){
neighbor.tell(acdct, self);
}
superVisor.deleteRequest(request);
}
}else{
//A client wants to rollback
if(request!=null){
ActionCommitDistributedCommitedTransfer acdct = new ActionCommitDistributedCommitedTransfer(source,target,amount,false,timestamp,id);
for(ActorRef neighbor : request.getAnswers()){
neighbor.tell(acdct, self);
}
}
}
}
\end{lstlisting}
\section{ActionCommitDistributedCommitedTransfer}
If a client shall commit the given changes, it will perforrm the
changes on the amounts map. Othwise it will just print a abort
transaction message.
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self,
UntypedActorContext context, Wallet wallet) {
log("ActionCommitDistributedCommitedTransfer is granted?"+granted);
if(granted){
Integer sourceAmount = wallet.amounts.getOrDefault(source,0);
Integer targetAmount = wallet.amounts.getOrDefault(target,0);
wallet.amounts.put(source,sourceAmount-amount);
wallet.amounts.put(target,targetAmount+amount);
if(source.compareTo(self)==0)wallet.amount-=amount;
else if(target.compareTo(self)==0)wallet.amount+=amount;
wallet.log("have now "+wallet.amounts.get(self)+" Fucoins");
}else{
log("abort transaction with id"+id);
}
log("wallet.amounts:"+wallet.amounts);
}
\end{lstlisting}
\section{ActionUpdateQueue}
the ActionUpdateQueue Event will be invoked each second on the server,
and removes all outdated request. If a request is deleted all clients,
will be informed to abort this transaction.
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self,
UntypedActorContext context, SuperVisor superVisor) {
List<DistributedCommitedTransferRequest> deletes = superVisor.updateList();
for(DistributedCommitedTransferRequest outdatedRequest : deletes){
ActionCommitDistributedCommitedTransfer acdct = new ActionCommitDistributedCommitedTransfer(outdatedRequest);
for(ActorRef neighbor : superVisor.getKnownNeighbors().values()){
neighbor.tell(acdct, self);
}
}
sleep(self,context,1000);
self.tell(this, self);
}
\end{lstlisting}
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {2}ActionInvokeSentMoney}{2}{section.2}}
\@setckpt{2_actioninvokesentmoney}{
\setcounter{page}{3}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{2}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{vrcnt}{0}
\setcounter{lstnumber}{17}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{2}
\setcounter{lstlisting}{0}
\setcounter{section@level}{1}
}
\section{ActionInvokeSentMoney}
This action is invoked by the graphical user interface of the wallets.
The goal is to transfer an amount of FUCoins to a given wallet ID.
If this ID already has a mapping to an ActorRef, an
ActionInvokeDistributedCommitedTransfer will be send to the supervisor.
Otherwise a gossip is invoked using the ActionSearchWalletReference
following by ActionInvokeSentMoney after 200 ms.
\\
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context,
Wallet wallet) {
log(wallet.getKnownNeighbors()+"");
if(wallet.getKnownNeighbors().containsKey(name)){
wallet.getRemoteSuperVisorActor().tell(
new ActionInvokeDistributedCommitedTransfer(self,
wallet.getKnownNeighbors().get(name), amount), sender);
}else{
ActionSearchWalletReference aswr = new ActionSearchWalletReference(name);
for(ActorRef neighbor : wallet.getKnownNeighbors().values()){
neighbor.tell(aswr, self);
}
sleep(self, context, 200);
self.tell(this, self);
}
}
\end{lstlisting}
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {3}ActionInvokeDistributedCommitedTransfer}{3}{section.3}}
\@setckpt{3_actioninvokedistributedcommitedtransfer}{
\setcounter{page}{4}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{3}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{vrcnt}{0}
\setcounter{lstnumber}{16}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{3}
\setcounter{lstlisting}{0}
\setcounter{section@level}{1}
}
\section{ActionInvokeDistributedCommitedTransfer}
The ActionInvokeDistributedCommitedTransfer creates a
DistributedCommitedTransferRequest, which contains a random generated
ID, on the Server with a timout of 500 ms, and stores this to a map
Long --> Request accoring to the ID. The Timeout is handled by the
ActionUpdateQueue explained later. The request will spread out to all
clients that can answer with an acknowledgement or an abort afterwards
(see below).
\\
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context,
SuperVisor superVisor) {
log("invoke transaction "+source.path().name()+" sends "+amount+" to "
+target.path().name());
long timeout = System.currentTimeMillis()+500;
DistributedCommitedTransferRequest ds =
new DistributedCommitedTransferRequest(source,target,timeout);
superVisor.addDistributedCommitedTransferRequest(ds);
ActionPrepareDistributedCommitedTransfer apdct =
new ActionPrepareDistributedCommitedTransfer(source, target, amount, timeout,
ds.getId());
for(ActorRef neighbor : superVisor.getKnownNeighbors().values()){
neighbor.tell(apdct, self);
}
}
\end{lstlisting}
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {4}ActionPrepareDistributedCommitedTransfer}{4}{section.4}}
\@setckpt{4_actionpreparedistributedcommitedtransfer}{
\setcounter{page}{5}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{4}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{vrcnt}{0}
\setcounter{lstnumber}{12}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{4}
\setcounter{lstlisting}{0}
\setcounter{section@level}{1}
}
\section{ActionPrepareDistributedCommitedTransfer}
The clients will reply to a request with an acknowlegment if one of two
cases occur. In the first case the Supervisor (bank) will send FUCoins
to a user. Otherwise the client would need to know the sender, who also
needs to have sufficient funds.
\\
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context,
Wallet wallet) {
// sender is supervisor (bank) and always has funds
boolean granted = sender.compareTo(source) == 0
// sender is unknown, might be valid
||(wallet.amounts.containsKey(source)
// sender have enough money
&&wallet.amounts.getOrDefault(source,0)>=amount);
sender.tell(new ActionPrepareDistributedCommitedTransferAnswer (source, target,
amount, timestamp, granted, id), self);
}
\end{lstlisting}
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {5}ActionPrepareDistributedCommitedTransferAnswer}{5}{section.5}}
\@setckpt{5_actionpreparedistributedcommitedtransferanswer}{
\setcounter{page}{6}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{5}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{vrcnt}{0}
\setcounter{lstnumber}{31}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{5}
\setcounter{lstlisting}{0}
\setcounter{section@level}{1}
}
\section{ActionPrepareDistributedCommitedTransferAnswer}
After an answer from a client reached the server, the server tries to
find the corresponding request. If the answer was a acknowlegement, the
request will get another positive answer. When the same amount of
positive answers equals the count of known neighbors received on the
server, all client will be informed to commit the change and the
request will be deleted. If the answer was an abort, all clients will be
informed to abort the transaction.
\\
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context,
SuperVisor superVisor) {
log(""+superVisor.getKnownNeighbors());
log("granted?"+granted);
DistributedCommitedTransferRequest request = superVisor.getRequest(id);
if(granted){
if(request==null) //unknown DistributedCommitedTransferRequest ignore
return;
int newCount = request.addPositiveAnswer(sender);
if(newCount == superVisor.getKnownNeighbors().size()){
ActionCommitDistributedCommitedTransfer acdct =
new ActionCommitDistributedCommitedTransfer(source, target, amount, true,
timestamp, id);
for(ActorRef neighbor : request.getAnswers()){
neighbor.tell(acdct, self);
}
superVisor.deleteRequest(request);
}
}else{
// A client wants to rollback
if(request!=null){
ActionCommitDistributedCommitedTransfer acdct =
new ActionCommitDistributedCommitedTransfer(source, target, amount, false,
timestamp, id);
for(ActorRef neighbor : request.getAnswers()){
neighbor.tell(acdct, self);
}
}
}
}
\end{lstlisting}
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {6}ActionCommitDistributedCommitedTransfer}{6}{section.6}}
\@setckpt{6_actioncommitdistributedcommitedtransfer}{
\setcounter{page}{7}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{6}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{vrcnt}{0}
\setcounter{lstnumber}{19}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{6}
\setcounter{lstlisting}{0}
\setcounter{section@level}{1}
}
\section{ActionCommitDistributedCommitedTransfer}
If a client has to commit the given changes, it will perform the
transaction on the amounts map. Otherwise it will just print an abort
transaction message.
\\
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context,
Wallet wallet) {
log("ActionCommitDistributedCommitedTransfer is granted?"+granted);
if(granted){
Integer sourceAmount = wallet.amounts.getOrDefault(source,0);
Integer targetAmount = wallet.amounts.getOrDefault(target,0);
wallet.amounts.put(source,sourceAmount-amount);
wallet.amounts.put(target,targetAmount+amount);
if(source.compareTo(self)==0)
wallet.amount-=amount;
else if(target.compareTo(self)==0)
wallet.amount+=amount;
wallet.log("have now "+wallet.amounts.get(self)+" Fucoins");
}else{
log("abort transaction with id"+id);
}
log("wallet.amounts:"+wallet.amounts);
}
\end{lstlisting}
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {7}ActionUpdateQueue}{7}{section.7}}
\@setckpt{7_actionupdatequeue}{
\setcounter{page}{8}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{section}{7}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{vrcnt}{0}
\setcounter{lstnumber}{14}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{bookmark@seq@number}{7}
\setcounter{lstlisting}{0}
\setcounter{section@level}{1}
}
\section{ActionUpdateQueue}
The ActionUpdateQueue event will be invoked each second on the server
and remove all outdated request. If a request is deleted, all clients
will be informed to abort this transaction.
\\
\begin{lstlisting}
protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context,
SuperVisor superVisor) {
List<DistributedCommitedTransferRequest> deletes = superVisor.updateList();
for(DistributedCommitedTransferRequest outdatedRequest : deletes){
ActionCommitDistributedCommitedTransfer acdct =
new ActionCommitDistributedCommitedTransfer(outdatedRequest);
for(ActorRef neighbor : superVisor.getKnownNeighbors().values()){
neighbor.tell(acdct, self);
}
}
sleep(self,context,1000);
self.tell(this, self);
}
\end{lstlisting}
This diff is collapsed.
JavaAkkaFuCoin/thesis_latex_template/pictures/_TimelineCorrectTransfer.png

187 KiB

\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\catcode `"\active
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline \global\let\oldcontentsline\contentsline
...@@ -17,14 +16,22 @@ ...@@ -17,14 +16,22 @@
\gdef\HyperFirstAtBeginDocument#1{#1} \gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\HyField@AuxAddToCoFields[2]{}
\select@language{ngerman} \select@language{english}
\@writefile{toc}{\select@language{ngerman}} \@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{ngerman}} \@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{ngerman}} \@writefile{lot}{\select@language{english}}
\select@language{english}
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\select@language{english}
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\@input{1_introduction.aux} \@input{1_introduction.aux}
\@input{2_fundamentals.aux} \@input{2_actioninvokesentmoney.aux}
\@input{3_main.aux} \@input{3_actioninvokedistributedcommitedtransfer.aux}
\@input{4_conclusion.aux} \@input{4_actionpreparedistributedcommitedtransfer.aux}
\@input{5_appendix.aux} \@input{5_actionpreparedistributedcommitedtransferanswer.aux}
\bibstyle{alpha} \@input{6_actioncommitdistributedcommitedtransfer.aux}
\bibdata{bibliography} \@input{7_actionupdatequeue.aux}
This is BibTeX, Version 0.99d (TeX Live 2014)
Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
The top-level auxiliary file: thesis.aux
A level-1 auxiliary file: 1_introduction.aux
A level-1 auxiliary file: 2_actioninvokesentmoney.aux
A level-1 auxiliary file: 3_actioninvokedistributedcommitedtransfer.aux
A level-1 auxiliary file: 4_actionpreparedistributedcommitedtransfer.aux
A level-1 auxiliary file: 5_actionpreparedistributedcommitedtransferanswer.aux
A level-1 auxiliary file: 6_actioncommitdistributedcommitedtransfer.aux
A level-1 auxiliary file: 7_actionupdatequeue.aux
I found no \citation commands---while reading file thesis.aux
I found no \bibdata command---while reading file thesis.aux
I found no \bibstyle command---while reading file thesis.aux
You've used 0 entries,
0 wiz_defined-function locations,
90 strings with 742 characters,
and the built_in function-call counts, 0 in all, are:
= -- 0
> -- 0
< -- 0
+ -- 0
- -- 0
* -- 0
:= -- 0
add.period$ -- 0
call.type$ -- 0
change.case$ -- 0
chr.to.int$ -- 0
cite$ -- 0
duplicate$ -- 0
empty$ -- 0
format.name$ -- 0
if$ -- 0
int.to.chr$ -- 0
int.to.str$ -- 0
missing$ -- 0
newline$ -- 0
num.names$ -- 0
pop$ -- 0
preamble$ -- 0
purify$ -- 0
quote$ -- 0
skip$ -- 0
stack$ -- 0
substring$ -- 0
swap$ -- 0
text.length$ -- 0
text.prefix$ -- 0
top$ -- 0
type$ -- 0
warning$ -- 0
while$ -- 0
width$ -- 0
write$ -- 0
(There were 3 error messages)
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2015.7.23) 23 JUL 2015 13:38 This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex 2015.7.24) 24 JUL 2015 15:53
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
file:line:error style messages enabled. file:line:error style messages enabled.
...@@ -6,7 +6,7 @@ entering extended mode ...@@ -6,7 +6,7 @@ entering extended mode
**thesis.tex **thesis.tex
(./thesis.tex (./thesis.tex
LaTeX2e <2011/06/27> LaTeX2e <2011/06/27>
Babel <3.9h> and hyphenation patterns for 7 languages loaded. Babel <3.9k> and hyphenation patterns for 2 languages loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo (/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo
...@@ -40,19 +40,21 @@ Package: inputenc 2008/03/30 v1.1d Input encoding file ...@@ -40,19 +40,21 @@ Package: inputenc 2008/03/30 v1.1d Input encoding file
File: latin1.def 2008/03/30 v1.1d Input encoding file File: latin1.def 2008/03/30 v1.1d Input encoding file
)) ))
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2013/12/03 3.9h The Babel package Package: babel 2014/03/24 3.9k The Babel package
(/usr/share/texlive/texmf-dist/tex/generic/babel-german/ngermanb.ldf (/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf
Language: ngermanb 2013/12/13 v2.7 German support for babel (new orthography) Language: english 2012/08/20 v3.3p English support from the babel system
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def
File: babel.def 2013/12/03 3.9h Babel common definitions File: babel.def 2014/03/24 3.9k Babel common definitions
\babel@savecnt=\count87 \babel@savecnt=\count87
\U@D=\dimen103 \U@D=\dimen103
) )
\l@naustrian = a dialect from \language\l@ngerman \l@british = a dialect from \language\l@english
\l@nswissgerman = a dialect from \language\l@ngerman \l@UKenglish = a dialect from \language\l@english
Package babel Info: Making " an active character on input line 88. \l@canadian = a dialect from \language\l@american
\l@australian = a dialect from \language\l@british
\l@newzealand = a dialect from \language\l@british
)) ))
(/usr/share/texlive/texmf-dist/tex/latex/ae/ae.sty (/usr/share/texlive/texmf-dist/tex/latex/ae/ae.sty
Package: ae 2001/02/12 1.3 Almost European Computer Modern Package: ae 2001/02/12 1.3 Almost European Computer Modern
...@@ -87,7 +89,7 @@ Package: varioref 2011/10/02 v1.4z package for extended references (FMi) ...@@ -87,7 +89,7 @@ Package: varioref 2011/10/02 v1.4z package for extended references (FMi)
\f@ncyO@olf=\skip50 \f@ncyO@olf=\skip50
\f@ncyO@orf=\skip51 \f@ncyO@orf=\skip51
) )
(/usr/share/texmf/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
...@@ -142,15 +144,15 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC) ...@@ -142,15 +144,15 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
\lst@maxwidth=\dimen107 \lst@maxwidth=\dimen107
(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty (/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
File: lstmisc.sty 2013/08/26 1.5b (Carsten Heinz) File: lstmisc.sty 2014/03/04 1.5c (Carsten Heinz)
\c@lstnumber=\count96 \c@lstnumber=\count96
\lst@skipnumbers=\count97 \lst@skipnumbers=\count97
\lst@framebox=\box27 \lst@framebox=\box27
) )
(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg (/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
File: listings.cfg 2013/08/26 1.5b listings configuration File: listings.cfg 2014/03/04 1.5c listings configuration
)) ))
Package: listings 2013/08/26 1.5b (Carsten Heinz) Package: listings 2014/03/04 1.5c (Carsten Heinz)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
...@@ -282,26 +284,29 @@ Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 ...@@ -282,26 +284,29 @@ Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
\Hy@SectionHShift=\skip52 \Hy@SectionHShift=\skip52
) )
(/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty (/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty
File: lstlang1.sty 2013/08/26 1.5b listings language file File: lstlang1.sty 2014/03/04 1.5c listings language file
) (./thesis.aux ) (./thesis.aux
(./1_introduction.aux) (./2_fundamentals.aux) (./3_main.aux) (./1_introduction.aux) (./2_actioninvokesentmoney.aux)
(./4_conclusion.aux) (./5_appendix.aux)) (./3_actioninvokedistributedcommitedtransfer.aux)
(./4_actionpreparedistributedcommitedtransfer.aux)
(./5_actionpreparedistributedcommitedtransferanswer.aux)
(./6_actioncommitdistributedcommitedtransfer.aux) (./7_actionupdatequeue.aux))
\openout1 = `thesis.aux'. \openout1 = `thesis.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 61. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 61. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 61. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 61. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 61. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 61. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 61. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 62.
LaTeX Font Info: ... okay on input line 61. LaTeX Font Info: ... okay on input line 62.
(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii (/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).] [Loading MPS to PDF converter (version 2006.09.02).]
...@@ -334,7 +339,7 @@ File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv ...@@ -334,7 +339,7 @@ File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e e
)) ))
\AtBeginShipoutBox=\box29 \AtBeginShipoutBox=\box29
Package hyperref Info: Link coloring ON on input line 61. Package hyperref Info: Link coloring ON on input line 62.
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section
...@@ -345,213 +350,181 @@ Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) ...@@ -345,213 +350,181 @@ Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)
\c@section@level=\count115 \c@section@level=\count115
LaTeX Info: Redefining \Ref on input line 513. LaTeX Info: Redefining \Ref on input line 513.
) )
LaTeX Info: Redefining \ref on input line 61. LaTeX Info: Redefining \ref on input line 62.
LaTeX Info: Redefining \pageref on input line 61. LaTeX Info: Redefining \pageref on input line 62.
LaTeX Info: Redefining \nameref on input line 61. LaTeX Info: Redefining \nameref on input line 62.
(./thesis.out) (./thesis.out) (./thesis.out) (./thesis.out)
\@outlinefile=\write3 \@outlinefile=\write3
\openout3 = `thesis.out'. \openout3 = `thesis.out'.
LaTeX Info: Redefining \Ref on input line 61. LaTeX Info: Redefining \Ref on input line 62.
<pictures/logo.pdf, id=28, 199.19118pt x 52.728pt> <pictures/logo.pdf, id=32, 199.19118pt x 52.728pt>
File: pictures/logo.pdf Graphic file (type pdf) File: pictures/logo.pdf Graphic file (type pdf)
<use pictures/logo.pdf> <use pictures/logo.pdf>
Package pdftex.def Info: pictures/logo.pdf used on input line 67. Package pdftex.def Info: pictures/logo.pdf used on input line 68.
(pdftex.def) Requested size: 216.0022pt x 57.17868pt. (pdftex.def) Requested size: 216.0022pt x 57.17868pt.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 67. (Font) <12> on input line 68.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 67. (Font) <8> on input line 68.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 67. (Font) <6> on input line 68.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 77.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 77.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 77.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 77.
[1 [1
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./pictures/logo.pdf>] {/usr/share/texlive/texmf-dist/fonts/map/pdftex/updmap/pdftex.map} <./pictures/
(./thesis.toc) logo.pdf>] (./thesis.toc)
\tf@toc=\write4 \tf@toc=\write4
\openout4 = `thesis.toc'. \openout4 = `thesis.toc'.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 84.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 84.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 84.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 84.
[1 [1
] ]
\openout2 = `1_introduction.aux'. \openout2 = `1_introduction.aux'.
(./1_introduction.tex (./1_introduction.tex
Package babel Info: Redefining ngerman shorthand "| <pictures/TimelineCorrectTransfer.pdf, id=61, 948.54375pt x 553.06625pt>
(babel) in language on input line 1. File: pictures/TimelineCorrectTransfer.pdf Graphic file (type pdf)
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 1.
<pictures/TimelineCorrectTransfer.png, id=56, 4622.26875pt x 2644.88126pt>
File: pictures/TimelineCorrectTransfer.png Graphic file (type png)
<use pictures/TimelineCorrectTransfer.png>
Package pdftex.def Info: pictures/TimelineCorrectTransfer.png used on input lin
e 13.
(pdftex.def) Requested size: 360.0pt x 205.98512pt.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 15.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 15.
LaTeX Font Info: Try loading font information for T1+aett on input line 22.
<use pictures/TimelineCorrectTransfer.pdf>
Package pdftex.def Info: pictures/TimelineCorrectTransfer.pdf used on input lin
e 18.
(pdftex.def) Requested size: 360.0pt x 209.90575pt.
)
Underfull \hbox (badness 10000) in paragraph at lines 2--92
[]
Underfull \hbox (badness 10000) in paragraph at lines 2--92
[]
Underfull \hbox (badness 10000) in paragraph at lines 2--92
[]
[1
<./pictures/TimelineCorrectTransfer.pdf>]
\openout2 = `2_actioninvokesentmoney.aux'.
(./2_actioninvokesentmoney.tex
Underfull \hbox (badness 10000) in paragraph at lines 2--9
[]
LaTeX Font Info: Try loading font information for T1+aett on input line 9.
(/usr/share/texlive/texmf-dist/tex/latex/ae/t1aett.fd (/usr/share/texlive/texmf-dist/tex/latex/ae/t1aett.fd
File: t1aett.fd 1997/11/16 Font definitions for T1/aett. File: t1aett.fd 1997/11/16 Font definitions for T1/aett.
) )) [2
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 32.
Package babel Info: Redefining ngerman shorthand "~ ]
(babel) in language on input line 32. \openout2 = `3_actioninvokedistributedcommitedtransfer.aux'.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 32.
Package babel Info: Redefining ngerman shorthand "~ (./3_actioninvokedistributedcommitedtransfer.tex
(babel) in language on input line 32. Underfull \hbox (badness 10000) in paragraph at lines 2--10
[1
[]
) [3
<./pictures/TimelineCorrectTransfer.png (PNG copy)>] ]
Package babel Info: Redefining ngerman shorthand "| \openout2 = `4_actionpreparedistributedcommitedtransfer.aux'.
(babel) in language on input line 46.
Package babel Info: Redefining ngerman shorthand "~ (./4_actionpreparedistributedcommitedtransfer.tex
(babel) in language on input line 46. Underfull \hbox (badness 10000) in paragraph at lines 2--7
Overfull \hbox (0.78635pt too wide) in paragraph at lines 47--52
\T1/aer/m/n/10.95 The Ac-tio-nIn-vo-ke-Dis-tri-bu-ted-Com-mi-tedTrans-fer crea-
tes an Dis-tri-bu-ted-Com-
[] []
Package babel Info: Redefining ngerman shorthand "| LaTeX Font Info: Try loading font information for T1+aess on input line 10.
(babel) in language on input line 75. (/usr/share/texlive/texmf-dist/tex/latex/ae/t1aess.fd
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 75.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 75.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 75.
[2]
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 76.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 76.
LaTeX Font Info: Try loading font information for T1+aess on input line 85.
(/usr/share/texlive/texmf-dist/tex/latex/ae/t1aess.fd
File: t1aess.fd 1997/11/16 Font definitions for T1/aess. File: t1aess.fd 1997/11/16 Font definitions for T1/aess.
) )) [4
Overfull \hbox (34.36821pt too wide) in paragraph at lines 101--101
]
\openout2 = `5_actionpreparedistributedcommitedtransferanswer.aux'.
(./5_actionpreparedistributedcommitedtransferanswer.tex
Overfull \hbox (34.36821pt too wide) in paragraph at lines 1--1
[]\T1/aer/bx/n/14.4 ActionPrepareDistributedCommitedTransferAnswer []\T1/aer/bx/n/14.4 ActionPrepareDistributedCommitedTransferAnswer
[] []
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 101. Underfull \hbox (badness 10000) in paragraph at lines 2--10
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 101. []
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 112. ) [5
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 112.
Package babel Info: Redefining ngerman shorthand "| ]
(babel) in language on input line 112. \openout2 = `6_actioncommitdistributedcommitedtransfer.aux'.
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 112. (./6_actioncommitdistributedcommitedtransfer.tex
[3] Underfull \hbox (badness 10000) in paragraph at lines 2--6
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 135. []
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 135. ) [6
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 146.
Package babel Info: Redefining ngerman shorthand "~ ]
(babel) in language on input line 146. \openout2 = `7_actionupdatequeue.aux'.
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 146. (./7_actionupdatequeue.tex
Package babel Info: Redefining ngerman shorthand "~ Underfull \hbox (badness 10000) in paragraph at lines 2--6
(babel) in language on input line 146.
[4] []
Package babel Info: Redefining ngerman shorthand "|
(babel) in language on input line 157. ) [7
Package babel Info: Redefining ngerman shorthand "~
(babel) in language on input line 157.
) ]
Package babel Info: Redefining ngerman shorthand "| Package atveryend Info: Empty hook `BeforeClearDocument' on input line 103.
(babel) in language on input line 87. Package atveryend Info: Empty hook `AfterLastShipout' on input line 103.
Package babel Info: Redefining ngerman shorthand "~ (./thesis.aux (./1_introduction.aux) (./2_actioninvokesentmoney.aux)
(babel) in language on input line 87. (./3_actioninvokedistributedcommitedtransfer.aux)
Package babel Info: Redefining ngerman shorthand "| (./4_actionpreparedistributedcommitedtransfer.aux)
(babel) in language on input line 87. (./5_actionpreparedistributedcommitedtransferanswer.aux)
Package babel Info: Redefining ngerman shorthand "~ (./6_actioncommitdistributedcommitedtransfer.aux) (./7_actionupdatequeue.aux))
(babel) in language on input line 87. Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 103.
[5] Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 103.
\openout2 = `2_fundamentals.aux'. Package rerunfilecheck Info: File `thesis.out' has not changed.
(rerunfilecheck) Checksum: 1F90E0823F2BF6B7E4CF0DA52FBCF96B;459.
(./2_fundamentals.tex) Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 103.
\openout2 = `3_main.aux'.
(./3_main.tex)
\openout2 = `4_conclusion.aux'.
(./4_conclusion.tex)
\openout2 = `5_appendix.aux'.
(./5_appendix.tex)
No file thesis.bbl.
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 96.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 96.
(./thesis.aux (./1_introduction.aux) (./2_fundamentals.aux) (./3_main.aux)
(./4_conclusion.aux) (./5_appendix.aux))
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 96.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 96.
Package rerunfilecheck Warning: File `thesis.out' has changed.
(rerunfilecheck) Rerun to get outlines right
(rerunfilecheck) or use package `bookmark'.
Package rerunfilecheck Info: Checksums for `thesis.out':
(rerunfilecheck) Before: FF97DD44E6CB28FF283FE20D2F3678A2;412
(rerunfilecheck) After: 1F90E0823F2BF6B7E4CF0DA52FBCF96B;459.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 96.
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
8584 strings out of 494976 8570 strings out of 495025
121047 string characters out of 6179137 121962 string characters out of 6181515
323744 words of memory out of 5000000 314442 words of memory out of 5000000
11497 multiletter control sequences out of 15000+600000 11460 multiletter control sequences out of 15000+600000
33515 words of font info for 70 fonts, out of 8000000 for 9000 39139 words of font info for 80 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191 14 hyphenation exceptions out of 8191
36i,12n,43p,291b,1904s stack positions out of 5000i,500n,10000p,200000b,80000s 29i,11n,43p,309b,1334s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></us </usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></us
r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/shar r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/shar
e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texl e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx6.pfb></usr/share/texli
ive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/tex ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/tex
mf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist mf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist
/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/fonts/ /fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/
type1/public/amsfonts/cm/cmsl10.pfb></usr/share/texlive/texmf-dist/fonts/type1/ type1/public/amsfonts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/fonts/type1/p
public/amsfonts/cm/cmss10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public ublic/amsfonts/cm/cmsl10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/
/amsfonts/cm/cmtt10.pfb> amsfonts/cm/cmss8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfont
Output written on thesis.pdf (7 pages, 398593 bytes). s/cm/cmtt8.pfb>
Output written on thesis.pdf (9 pages, 301120 bytes).
PDF statistics: PDF statistics:
269 PDF objects out of 1000 (max. 8388607) 270 PDF objects out of 1000 (max. 8388607)
245 compressed objects within 3 object streams 243 compressed objects within 3 object streams
139 named destinations out of 1000 (max. 500000) 127 named destinations out of 1000 (max. 500000)
59 words of extra memory for PDF output out of 10000 (max. 10000000) 67 words of extra memory for PDF output out of 10000 (max. 10000000)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment