From a35633b7aa35177c3307fee8f1e443d8d49cea37 Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Tue, 18 Oct 2022 12:21:34 +0200 Subject: [PATCH] modell update --- .../mahnlauf/MahnlaufExecuteAdapter.java | 10 +- workflow/mahnlauf-de-1.0.0.bpmn | 12 + ...chnungseingang-sachrechnung-de-1.0.17.bpmn | 5169 +++++++++++++++++ 3 files changed, 5190 insertions(+), 1 deletion(-) create mode 100644 workflow/rechnungseingang-sachrechnung-de-1.0.17.bpmn diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java index ba471a5..b2113b2 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/mahnlauf/MahnlaufExecuteAdapter.java @@ -62,6 +62,8 @@ public class MahnlaufExecuteAdapter implements SignalAdapter { // get all Invoices of this Mahnlauf List>> invoiceList = new ArrayList>>(); List refList = mahnLaufWorkitem.getItemValue("$workitemref"); + double saldo=0; + String currency=""; for (String uniqueId : refList) { ItemCollection invoice = workflowService.getWorkItem(uniqueId); if (invoice != null && (invoice.getTaskID() >= MahnlaufService.TASK_MAHNLAUF_START @@ -99,12 +101,18 @@ public class MahnlaufExecuteAdapter implements SignalAdapter { invoiceStub.setItemValue("invoice.duedate", invoice.getItemValue("invoice.duedate")); invoiceStub.setItemValue("$workflowstatus", invoice.getItemValue("$workflowstatus")); invoiceList.add(invoiceStub.getAllItems()); - + + // store currency in mahnlauf + currency= invoice.getItemValueString("invoice.currency"); + + saldo=saldo+invoice.getItemValueDouble("invoice.saldo"); } } mahnLaufWorkitem.setItemValue("dunning.details", invoiceList); + mahnLaufWorkitem.setItemValue("dunning.saldo", saldo); + mahnLaufWorkitem.setItemValue("dunning.currency", currency); return mahnLaufWorkitem; } diff --git a/workflow/mahnlauf-de-1.0.0.bpmn b/workflow/mahnlauf-de-1.0.0.bpmn index 86c1403..acc8e1f 100644 --- a/workflow/mahnlauf-de-1.0.0.bpmn +++ b/workflow/mahnlauf-de-1.0.0.bpmn @@ -410,6 +410,9 @@ th { font-weight: bold;}
 description
 
+

+Debitor: dbtr.name (dbtr.number) +

@@ -433,6 +436,9 @@ th { font-weight: bold;} + + +
$workflowstatus
Saldodunning.saldo dunning.currency
@@ -463,6 +469,9 @@ th { font-weight: bold;}

description

+

+Debitor: dbtr.name (dbtr.number) +

@@ -486,6 +495,9 @@ th { font-weight: bold;} + + +
$workflowstatus
Saldodunning.saldo dunning.currency
E-Mail - Mahnlauf Footer (EN) diff --git a/workflow/rechnungseingang-sachrechnung-de-1.0.17.bpmn b/workflow/rechnungseingang-sachrechnung-de-1.0.17.bpmn new file mode 100644 index 0000000..a04c4eb --- /dev/null +++ b/workflow/rechnungseingang-sachrechnung-de-1.0.17.bpmn @@ -0,0 +1,5169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Task_2 + ExclusiveGateway_1 + StartEvent_1 + IntermediateCatchEvent_3 + IntermediateCatchEvent_13 + IntermediateCatchEvent_6 + IntermediateCatchEvent_24 + IntermediateCatchEvent_7 + EndEvent_3 + Task_8 + IntermediateCatchEvent_19 + IntermediateThrowEvent_3 + IntermediateCatchEvent_5000-20 + EventBasedGateway_1 + IntermediateCatchEvent_36 + IntermediateThrowEvent_6 + IntermediateCatchEvent_40 + IntermediateThrowEvent_7 + + + Task_6 + IntermediateCatchEvent_15 + Task_15 + IntermediateThrowEvent_1 + IntermediateCatchEvent_9 + IntermediateCatchEvent_11 + Task_7 + EventBasedGateway_4 + IntermediateCatchEvent_31 + IntermediateCatchEvent_5 + Task_9 + IntermediateCatchEvent_10 + IntermediateThrowEvent_5 + IntermediateCatchEvent_16 + Task_5 + IntermediateCatchEvent_1 + IntermediateCatchEvent_20 + IntermediateCatchEvent_22 + ExclusiveGateway_2 + IntermediateCatchEvent_29 + EndEvent_4 + IntermediateCatchEvent_12 + IntermediateCatchEvent_23 + IntermediateCatchEvent_28 + IntermediateCatchEvent_18 + IntermediateCatchEvent_30 + IntermediateCatchEvent_14 + Task_1 + IntermediateCatchEvent_26 + Task_14 + Task_10 + Task_11 + ExclusiveGateway_4 + IntermediateCatchEvent_34 + IntermediateCatchEvent_35 + IntermediateCatchEvent_17 + EndEvent_2 + IntermediateCatchEvent_37 + IntermediateCatchEvent_38 + IntermediateCatchEvent_39 + Task_12 + IntermediateCatchEvent_41 + IntermediateCatchEvent_42 + + + IntermediateCatchEvent_21 + Task_3 + IntermediateCatchEvent_25 + EventBasedGateway_2 + IntermediateCatchEvent_5005-20 + Task_4 + Task_5005 + EndEvent_1 + IntermediateCatchEvent_4 + ExclusiveGateway_3 + IntermediateCatchEvent_8 + IntermediateCatchEvent_27 + IntermediateCatchEvent_5005-10 + IntermediateThrowEvent_4 + IntermediateThrowEvent_2 + IntermediateCatchEvent_2 + IntermediateCatchEvent_32 + EventBasedGateway_3 + IntermediateCatchEvent_33 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home + + stop + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_46 + SequenceFlow_1 + + + SequenceFlow_0 + SequenceFlow_15 + SequenceFlow_21 + SequenceFlow_33 + + + + SequenceFlow_0 + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_38 + SequenceFlow_42 + SequenceFlow_63 + SequenceFlow_71 + SequenceFlow_37 + SequenceFlow_66 + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_8 + SequenceFlow_55 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_38 + + + + SequenceFlow_37 + SequenceFlow_8 + SequenceFlow_54 + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgcdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_33 + SequenceFlow_20 + SequenceFlow_22 + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + + SequenceFlow_20 + + + + SequenceFlow_15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +false + + start + false +]]> + + + + + + + + + + + + false + + + + SequenceFlow_21 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_59 + SequenceFlow_7 + SequenceFlow_40 + + + SequenceFlow_40 + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + + + + SequenceFlow_54 + SequenceFlow_6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_17 + SequenceFlow_60 + SequenceFlow_9 + + + SequenceFlow_9 + + + + SequenceFlow_17 + + + + + SequenceFlow_22 + SequenceFlow_46 + SequenceFlow_49 + SequenceFlow_78 + SequenceFlow_83 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich löschen? + + stop + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_49 + SequenceFlow_48 + + + SequenceFlow_48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_59 + + + + + + + + + + cdtr.name invoice.number]]> + + + + + + + + + cdtr.name +Rechnungsnummer: invoice.number +Betrag: invoice.total invoice.currency + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren?]]> + + + + + + + + + + + + false + + + + + + + + SequenceFlow_68 + SequenceFlow_7 + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_3 + SequenceFlow_6 + SequenceFlow_2 + SequenceFlow_39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_4 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_4 + SequenceFlow_75 + SequenceFlow_23 + SequenceFlow_47 + + + + SequenceFlow_23 + SequenceFlow_18 + SequenceFlow_19 + SequenceFlow_64 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_19 + SequenceFlow_12 + SequenceFlow_27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_18 + SequenceFlow_28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_24 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_24 + SequenceFlow_27 + SequenceFlow_31 + SequenceFlow_56 + SequenceFlow_26 + SequenceFlow_61 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_28 + SequenceFlow_43 + SequenceFlow_62 + SequenceFlow_12 + SequenceFlow_57 + + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_31 + SequenceFlow_29 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + + + + + + + + + SequenceFlow_56 + SequenceFlow_30 + + + + SequenceFlow_29 + SequenceFlow_30 + SequenceFlow_35 + SequenceFlow_5 + SequenceFlow_10 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_34 + SequenceFlow_35 + SequenceFlow_16 + SequenceFlow_74 + SequenceFlow_79 + SequenceFlow_32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_34 + + + SequenceFlow_32 + + + + + workitem['payment.type'][0]=="direct_debit" + + + + + + + + + + + + + + SequenceFlow_5 + SequenceFlow_50 + + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_50 + SequenceFlow_14 + SequenceFlow_81 + SequenceFlow_51 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + SequenceFlow_51 + SequenceFlow_13 + + + + + + + + + + + Wollen Sie den SEPA Export wirklich wiederholen?]]> + + + SequenceFlow_52 + SequenceFlow_14 + + + + + + + + txtlastcomment]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_53 + SequenceFlow_13 + SequenceFlow_52 + SequenceFlow_36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_53 + + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_10 + SequenceFlow_80 + SequenceFlow_11 + + + + workitem['payment.type'][0]=="no_sepa" + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + SequenceFlow_11 + SequenceFlow_36 + SequenceFlow_16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +space.name +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_39 + SequenceFlow_41 + + + + SequenceFlow_1 + SequenceFlow_41 + SequenceFlow_42 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_43 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich löschen?]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_26 + SequenceFlow_25 + + + SequenceFlow_25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_44 + + + + + + + + txtlastcomment +numsequencenumber_sub]]> + + + + + + + + + numsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_44 + SequenceFlow_58 + SequenceFlow_45 + + + SequenceFlow_45 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_57 + SequenceFlow_58 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_61 + SequenceFlow_62 + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_47 + SequenceFlow_63 + + + + + SequenceFlow_70 + + + + SequenceFlow_67 + + + + SequenceFlow_65 + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_64 + SequenceFlow_65 + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home + + start + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_66 + SequenceFlow_67 + + + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_69 + SequenceFlow_70 + + + SequenceFlow_2 + SequenceFlow_68 + SequenceFlow_69 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_71 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_72 + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_72 + SequenceFlow_85 + SequenceFlow_73 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + SequenceFlow_73 + SequenceFlow_74 + + + + + + SequenceFlow_55 + SequenceFlow_75 + SequenceFlow_76 + + + + workitem['payment.type'][0]=="credit" + + + SequenceFlow_77 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home +false +Wollen Sie den Vorgang wirklich archivieren? + + stop + false +]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_78 + SequenceFlow_77 + + + + + SequenceFlow_79 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_80 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_81 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + stop + false + + + rechnungseingang-de-1.2 + 5000 + 990 + ]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_83 + SequenceFlow_82 + + + SequenceFlow_82 + + + + + + + + + + + txtlastcomment]]> + + + + + + + + + _imgnumsequencenumber: cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> + + + true + + + + + + + + + + + + + + + + + $workflowgroup - $workflowstatus]]> + SequenceFlow_76 + SequenceFlow_86 + SequenceFlow_84 + + + + + + + + + + + _subject]]> + + + + + + + + + _amount (Brutto € _amount_brutto) +_description]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + home]]> + + + + + + + + + + + + false + + + + + + + SequenceFlow_84 + SequenceFlow_85 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + false + + + + SequenceFlow_86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file