Document View
Introduction
Use OpenDocumentPageMessage to display a PDF document page on the tablet display.
The function includes:
- display of the pdf document
- acrobat form filling using the tablet pen with a virtual keyboard
- biometric signature capture
- document navigation (next page etc)
- option for thumbnail image display to aid document navigation
Server-Client messages:
- OpenDocumentPageMessage
- UpdateThumbnailsMessage
- SetDocumentZoomMessage
- SetElementEnabledMessage
- SetElementValueMessage
OpenDocumentPageMessage
Message Data | Description |
---|---|
AtSelectedAcroField | optional data for selecting field when scrolling down |
ForDocumentPage | page JSON data (from pdfHelper) |
WithDefinition | xaml document view definition |
WithThumbnails | optional thumbnail data: PageNumber, Base64Image (from pdfHelper) |
xaml definition
A xaml file is used to define the layout of the tablet display, using the WPF grid format:
In this example two horizontal toolbars contain buttons in a grid layout with an area defined for the document display.
DocumentView.xaml:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="DocumentView"
Title="DocumentView" WindowStyle="None" Height="1080" Width="1920" >
<Grid ShowGridLines="True">
<StackPanel Orientation="Horizontal">
<Grid HorizontalAlignment="Left" Width="150" Background="LightGray" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="10*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="20*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="10*"/>
</Grid.RowDefinitions>
<Button x:Name="ZoomBtn" ToolTip="Page Zoom" Grid.Row="0" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="center" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="zoomin.png"/>
</Button.Background>
</Button>
<Button x:Name="PageBack" ToolTip="Previouse Page" Grid.Row="2" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="chevronDoubleLeft.png"/>
</Button.Background>
</Button>
<Button x:Name="ThumbnailsBtn" Grid.Row="4" ToolTip="Show Thumbnail" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="center" VerticalAlignment="Bottom">
<Button.Background>
<ImageBrush ImageSource="ThumbDocView.png"/>
</Button.Background>
</Button>
</Grid>
/// Mandatory
<Grid x:Name="WacomKioskDocumentImageContainer" Width="1620" ShowGridLines="True">
</Grid>
<Grid HorizontalAlignment="Right" Width="150" Background="LightGray" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="10*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="20*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="10*"/>
</Grid.RowDefinitions>
<Button x:Name="SignStepping" Grid.Row="0" BorderThickness="1" HorizontalAlignment="Center" Width="100" Height="100" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="forwards.png"/>
</Button.Background>
</Button>
<StackPanel Grid.Row="1" Orientation="Vertical" VerticalAlignment="Center">
<Button x:Name="BtnAcceptDoc" BorderThickness="1" HorizontalAlignment="Center" Width="100" Height="100" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="DocAccept.png"/>
</Button.Background>
</Button>
<Button x:Name="BtnRejectDoc" BorderThickness="1" HorizontalAlignment="Center" Width="100" Height="100" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="DocReject.png"/>
</Button.Background>
</Button>
</StackPanel>
<Button x:Name="PageNext" Grid.Row="2" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="chevronDoubleRight.png"/>
</Button.Background>
</Button>
<Button x:Name="ScrollToTop" Grid.Row="4" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="totop.png"/>
</Button.Background>
</Button>
</Grid>
</StackPanel>
</Grid>
</Window>
Generally the xaml content follows the standard WPF grid format for placement. A number of specific entries are detailed below:
WacomKioskDocumentImageContainer - Mandatory
Name="WacomKioskDocumentImageContainer" - this is the preset name for the document display.
Button Binding
<Button...>
- note that a callback function is not defined in the xaml as would normally be the case in a WPF grid.
In the example the button names are defined and the name will be passed in a Client-Server ButtonClicked feedback message. A number of the buttons are processed locally by the Client and as a result do not send a ButtonClicked message:
Button | Action performed by |
---|---|
ZoomBtn | Client |
PageBack | Server |
PageNext | Server |
ThumbnailsBtn | Client |
ScrollToTop | Client |
SignStepping | Server |
BtnAcceptDoc | Server |
BtnRejectDoc | Server |
The example shown results in the Document View with buttons:
A number of buttons require local processing by the Client app. For example the thumbnails button displays the images for page selection:
The binding of the buttons in the DocumentView.xaml to a local Client process is defined in the Client app_config.json:
Client app_config.json:
"DocumentViewConfig": {
"Thumbnails": {
"Panel": {
"PercentageOfScreen": 25, // the height of the panel as a percentage of the screen height
"AlignWith": "DocumentView", // may be set to "DocumentView", where the bottom of the panel is aligned with the bottom of the document,
// or "Screen", where the panel is displayed along the bottom of the screen
"BackgroundColor": "#FFFFFFFF", // the background colour of the panel
"BorderColor": "#FFC0C0C0", // the border colour of the panel
"BorderWidth": 1 // the border width of the panel
},
"Count": 10, // the number of page thumbnails displayed at the bottom for navigation at a time
"ShowPageNumbers": true, // boolean value to toggle display of page numbers
"CurrentPageBorderColor": "#FF43B2FF", // the border colour of the thumbnails
"CurrentPageBorderWidth": 2 // the border width of the thumbnails
},
"PdfFormFieldsX": {
"BorderColor": "Black", // the border colour of fields
"BorderThickness": 1, // the border thickness of fields
"BorderColorRequired": "Green", // the border colour of required fields
"BorderThicknessRequired": 2, // the border thickness of required fields
"BorderColorFocus": "Red", // the border colour when a field is selected
"BorderThicknessFocus": 2 // the border thickness when a field is selected
},
"ButtonsConfiguration": [
{
"Name": "PageSteppingBtn", // used internally
"ButtonAction": "InputStepping" // used internally to bind the virtual keyboard input field step key.
},
{
"Name": "ThumbnailsBtn", // the name expected in the Document View xaml definition data
"ButtonAction": "ToggleThumbnails" // identifies the button to toggle the thumbnail display
},
{
"Name": "ZoomBtn", // the name expected in the Document View xaml definition data
"ButtonAction": "ToggleZoom", // identifies the button to zoom the page display
"ToggleImageOnPath": "/zoomin.png", // image filename for zoom+ in \Wacom Ink SDK for Multi-Display\Resources\DefinitionResources
"ToggleImageOffPath": "/zoomout.png" // image filename for zoom- in \Wacom Ink SDK for Multi-Display\Resources\DefinitionResources
},
{
"Name": "ScrollToTop", // the name expected in the Document View xaml definition data
"ButtonAction": "ScrollToTop" // identifies the button to scroll to top of document display
}
]
},
A default set of button names is supplied in the Client configuration but these can be changed if required by changing both app_config.js and DocumentView.xaml.
For example, to change the binding of the button from "ScrollToTop" to "Home" change app_config.json
{
"Name": "Home", // the name expected in the Document View xaml definition data
"ButtonAction": "ScrollToTop" // identifies the button to scroll to the top of document display
}
Then to bind to this action, change DocumentView.xaml:
<Button x:Name="Home" Grid.Row="4" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
Page JSON data
The SDK includes the PDF Helper library used to create the JSON data which represents the document.
The PDF Helper creates a list of pages, each containing the elements:
- display image - base64 PNG rendition of the page
- list of acrobat fields
Acrobat fields are identified by:
- name
- type (text/checkbox/signature/radio button/list)
- page position
Sample page.json for the sample Form-demo.pdf:
{
"Base64Image": "iVBORw0KGgoAAAANSUhEUgAAA/8AAAWoCAYAAADkWXEjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGpsSURBVHhe7N0JvK1j3f9xFZmSIk0qlKFEkzJEc0r1pKQ5UjQJDVIkIZQUSaiISiSNFNKfIooG/SUkPWaZH9NjeErDc///36t1b\u002Btse5\u002Bzzz77HOf89vv9eq2Xc9Z4r7X29jqf677u616oAwAAAEoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixP80d9lll3Vf\u002BtKXun333fdel/3337/7yle\u002B0h177LHdRRdd1P3rX/8aPGpi7rjjju6YY47p9ttvv3s9d6474IADusMOO6w77rjjugsuuKC7\u002B\u002B67B4\u002BcnH/\u002B85/dGWec0bZ79OvN7JJt\u002Bd73vtf97W9/GzzT5Mzss5zZ5ctf/nJ37bXXDp6FeWVm31d\u002BJg466KDuiCOO6H760592V1111Wz//AMAwPxE/E9jN910U7fOOut0Cy200IQuD33oQ7utttqq\u002B\u002BMf/zh4hvElxHfZZZcxn2e8yyKLLNJtsMEG3YEHHtjdfPPNg2eauJ///Ofdgx/84DGfe1aXhzzkId1vfvObwTPNvtn9LEdfPvnJTw6eiXlhMt9Xfv7f8IY3dCeeeGL3j3/8Y/BMAACwYBD/01j2Zq6yyipjhs7MLosttli31157dX/9618Hz3RviaMtt9xyzMdP5JLQ\u002BvSnP91mD0zUd7/73e6BD3zgmM83q8vDHvaw7txzzx080\u002Byb7GeZy/3ud7/uc5/73OCZmBfm5PvK5SlPeUr34x//2GwAAAAWGOJ/GhsOoMRvpt9n73d/OfPMM9tezi984Qvdpptu2qK/j58E64c\u002B9KFxp8oPx3/uu9tuu83w3Ln84he/aM\u002Bfae/vec97ulVXXXXk\u002BfvL\u002Buuv3w45mIjh\u002BH/BC17Qtn/0a453ufTSS\u002Bco5Gb1Wc7s8oc//GGODzlg9szq\u002B/r1r3/dZpJ8//vf7z7zmc90r33ta9vskP7nMpeFF16423777WdrgAoAAO4r4n8aGw6gRz/60S2AZybHSP/Hf/zHSPwsuuii3VFHHTW4dUbD8f\u002BABzyg\u002B\u002BpXvzq4ZXyJ71/\u002B8pfdi1/84pHXyCWDAuedd97gXuMbjv/XvOY1c7yGwOyY3c\u002BS\u002B9Zkvq\u002B77rqrO/zww7sVVlhh5Gczl80337y7/fbbB/cCAID5k/ifxiYTQDkWf8MNNxwJn2c961nt\u002BOnRJhP/vTw2i60tueSSI6\u002Bz9tprz3JRPPHPRM3J93XDDTd0b37zm0d\u002BNjOzZccdd5ynP28AADC7xP80NtkAynT9pZdeuj1uiSWW6E466aTBLfeYk/iPzAI48sgj2/P3kfXBD36wPe94xD8TNaff15133jnDmhYPetCD2iEsAAAwvxL/09hkAyhTnHNMfR8\u002BY61UP6fxH3mOnXfeeeR1ll122XY89njEPxM1Fd/X9ddfP8MZA174whd2t9566\u002BBWAACYv4j/aWyyAZQo32abbUaiZ\u002Buttx7cco\u002BpiP\u002B45pprujXXXHPktd73vve10wiOZTrE/\u002BWXX94\u002Byyy2\u002BLa3va1761vf2r3//e/vDj744HYKxtlZtDDT17/zne\u002B0xe6GF63Ln7OWQz7rfIdZrPGMM8641\u002BeedRgyO\u002BOss86a4bZsw\u002B9\u002B97t2RoicGjKLOWbRyEsuuWRwj7Hl7BE/\u002BtGP2oBP3lte/\u002Btf/3p34403Du4xdabq\u002B8r29rNT8t/Z2fufwYN8zjvssEO3xRZbtPf8kY98pDvmmGNm61SX432PkUNlvvSlL7Xf13wXu\u002B\u002B\u002Be5u5M7MZNPn\u002BzjnnnHa2jXe84x3tkkUPL7jggsE9Jue2227rjj/\u002B\u002BG7XXXdt27LZZpt17373u7tPfepT3WmnnWbRSwCAuUz8T2OTDaDEwcc\u002B9rH2uFzyD/nRpir\u002B81qJkBxXned64hOf2AYExlI1/vMZZOX5zLa4//3v315jvMvTn/707gc/\u002BMG4AyS9POfee\u002B/dHpOFG7OqfeQMCautttq9nneRRRaZYXHHzP543vOe127LgoxXX311uz4zM/rrR1\u002ByOn4Wxxu9dkO29dvf/na30korjfm4Bz/4wd0\u002B\u002B\u002Bwz01NLzq6p\u002Br4StMOzYN71rnfNNKwjZ69405ve1D7T/nGjL4svvngb/MgAwcyM9z1mQGDbbbed4Qwdw5enPe1pbUBntPPPP7/baKONxnxMfvZe97rXtc9udlx55ZVtgHB4DY\u002BxLsstt1z3iU98wuwJAIC5RPxPY5MNoMTaBz7wgZF/tOfPo01V/EfOv58p/3mu8dYYiIrxnxXmd9ppp3uFYgZDEsU51nz4\u002BlwSaYnQhOl4Eo05XCP3z2eWzy4DDI985CPv9Xz9JbMLennu5z73ue36vO8rrriiO\u002Byww7qlllpq5P5ZFyJBPzpA11tvvZEBnAwiZK90fkb627MNj33sY9tgQX9d3m9mOEzV3uGp/L4\u002B97nPjQxOPfWpTx032POZf\u002Btb3\u002Boe\u002BtCHjryvXPL5ZxtyysH\u002BefpLBmKyF348Y32Pv//977snP/nJI8\u002BRn518D8sss8zIdblkO/rfpTzP0UcfPcN98rP1\u002BMc/foZ1N3JZa6212vc9K3nOzEYY62cqgxv5\u002BRj\u002B3vtLBrAyCAEAwNQS/9PYZAMoQfqyl72sPS6xcsABBwxuucdUxv8tt9zSgrGPg0xBHku1\u002BM\u002Be7u22227kfSfqX/WqV3WnnHLKDBGcxecSWaP3uL/zne9s39VYRkdj9qxnD37\u002BnujLHtgEXvbSJ1gzdf9Xv/rV4NEzxn8CMavd9599wvOEE04YmX2Q7TvwwANnOE9\u002Bgj\u002BRnPPn99flNJJ/\u002BMMf2mPiuuuua3uv\u002B0GADCJkhsBUmMrvK6enzEBMnitBPV6sZ9uH935nD/vpp58\u002Bw0yBfK45nWA\u002B0/5\u002Bq6\u002B\u002B\u002BriHTIz\u002BHjMj53GPe1z7e7Yps2b6QaDcNwM8GaDonzuH1OR7ztk1\u002BkGavHYOI\u002Bi3Kz9rOfwie\u002Bb7x2W2z6wGYjILYXgwKLN2vvKVr8xwGEd\u002BRvJ5Zfp/Zi70983P0MUXXzy4FwAAU0H8T2OTDaAc693vzcveu8TPaFMZ/3muHA/dh0HCYziYepXiP6F26KGHjuzxT0QdccQRM53On/eb4\u002Bz7x\u002BS/433uw9GYSx/m\u002BV5/9rOfDe41vuH4H74k5sc7Rj\u002BHDfSBmZ\u002Bbddddt/0527nnnnuOGZO5Lnv8\u002B\u002BfPFPs\u002BZufEVH5fmdb\u002BhCc8oT3X8NT7YVmPYcUVVxx5v/meZvbzmZkRz3/\u002B80fed467H\u002BvzGf099pdsz/BgzbA///nPIwM9GbzLoFEf3i996UtHDuEY7Yc//OHITJMMcsxs8c2sD7DCCiuMbE\u002B2f1bf26mnntotv/zyI4954xvfOO7gFQAAs0/8T2OTCaAESPbS9f9AzwrnY/2jfirjP4GTRcL618we4rFCqFL8Z29sH2iJxeyZzecwK/lchhdjzBTqsaahjxWN2Sudz3Aixor/nPt\u002BZoGXxehGH0\u002Be97bffvvNdFAjx8j3e7MzSHH22WcPbpm8qfy\u002BMjOlH8hITGeBvWH5Xcgx7/17zp/H\u002BvkdLbMg\u002BhjOXvexZhSM9T3mfQ3PoBgtj/n85z9/r/UjXvnKV3Y33XTT4F73lpkor3/960fun7UGxvqZzO9dBuj6\u002B7361a9uh3dMxLHHHjsyOyL//clPfjK4BQCAOSX\u002Bp7HZDaD8oz4rcyfY8pgcC5x/rI9lKuM/Eit5rlyy93f0quYxHP/PfOYz22tmb/msLlldffQidLNr\u002BLPMXu0cBz7Wa42\u002BZLX8saIuq\u002BP3cTbeAMt4sme338ucz2OsoB8rGjN1f6wZFWMZHf/ZYzyzcOwNv6/8d5dddpnlIE1COQvN5TE5BCCf25yayvjP3ukNN9xw5LP47Gc/O7jl3/70pz\u002BNRHz2hmcwYyIyINIf9pFBhTzv6Nge/T0\u002B6lGPaos2zkpm7wxP499ggw0m9Dvwta99beQwjHwnY313ee5HPOIR7T6zOj3naBlgyB7/frvGm\u002BUDAMDsE//T2EQDKIGR07n1x/nnkhj58Ic/PG64TXX8Z29q/9qJzrH2JA7H/\u002BxeEr4z2/s8K8Of5exesoDa8FT5HCOfmM5tCa0spDc78tlnmnX//Dlef3RAjY7Gtddee5Yryw8bjv/sjf/tb387uGXmsl5Bv2d39PseT7Y1p6jrtzXrEYyO4Nk1lfGfwYmXv/zlI9uXAbJhOXwjvwO5bXZjNocQ9FPyc0jF6N\u002B30d9jXnsin03OBvCMZzyjPSZT\u002BSdyqEfk/wMZ3Mrj1l9//TFX5s9AXf7/kPtsuumms32WhuH3/KQnPWncs3sAADB7xP80NhxAiebsvcyCcv0l0\u002BvzD/x\u002Bpf3\u002BkpDZfvvtW6SOZ6rjP3uM\u002B9d/0YteNOZrz0n85xjsOQnKOYn/RPRwRCVEH/OYx7TbHv7wh7fjxWdX9o73e2izV3d0pI2Oxky9nx3D8Z/jv7O3dyIyHb1f7T6LOGbK/EQccsghI0GZs0vMyUBNTGX8Z8//S17ykvZcuQx/lvk96KfA5/dgdgdyMiukX48hAzQ333zz4JZ/G/097r///oNbZi6/P/k9ymOyMOBY63aMJYvw5WcyjxvrzAYZnOgPDcjMjhyuMrvyXeRsD3mODDSMt3YBAACzR/xPY5MJ1qzCnZXlZxVfUxn/owMnxybP6pj/F7/4xS2cEqWzumQa9kSOwZ6Z4c8y06lzrPJYrzX6koXRRgfwaaedNrKw2kT3jo\u002BWqd/9HtqVV165LUo3bLLR2Jts/Oezzint8rjZif/hwYysaTA/xf/wZ5EBii9/\u002BcuDW/59KsN\u002B4b7MeMip9RLIE71ceOGFI59XVssfvRd8st9jft5f8YpXtMfMTvxfdtllIwNT\u002BX9BzsgwLId\u002B5JCb3D47MwqGZaDq2c9\u002BdnuO/D5P1RkeAACmO/E/jY2O//xDO6ux55LzcCcK8g/97DnOiuuJ0olOWZ7K\u002BE/oZW9vv53VV/vPGgT9ugrZozyZFc\u002Bzh7Y/7jqDEVkHYNh9Ff/Zjv5Y89mJ/2984xszxP9Efw7HM5XfV/Z\u002B96fPy8/f9773vcEtM942p5dsb7Z72JzEf2b25DGzG//9XvnE/\u002Bh1AjLI1J\u002BmcJlllmmDW7Mr25aZR3mODKZk1gcAAHNO/E9jUxlAo01l/A/HQC6JnUTPaFXiP1PD\u002B0XxNtlkk0m9j5wtoD/V2lgRJv6n7vvKe\u002BpPfZkp\u002BsML3OW0eauttlq7bU4vz3nOc\u002B71ec1v8X/JJZe0RQdzez6T/H125ef9LW95y8h7OuCAAwa3AAAwJ8T/NLagxH\u002BmFq\u002BxxhrtucY7j3pUjP8MeiTUZtfll18\u002Bcnq8rNmQFeeHif\u002Bp\u002B75OOOGENlMmz5XTMw6fJ384/jOjJosVHn300bN9yVk1skjfaPNj/PcDIZl5khkosyu/t29605tG3tPBBx88uAUAgDkh/qexBSX\u002Bf/7zn3dLLbVUe64chjDe3sQq8X/UUUeNTPvPaf5mtrDieHJsfR/ZGQTIYMAw8T8131c\u002Bx4997GPteXLJ6e\u002BGB2uGp/3nmP\u002Bc7WAqzW/xPzzolJ\u002BLc889d3DLxGXb\u002BvUI8nuQ3wcAAOac\u002BJ/GFoT4z/H\u002BO\u002BywQ3ueXBL14506rEr8//jHP\u002B6WWGKJ9lxjrag\u002BEaeeeuoMiwaOPge/\u002BJ\u002Ba72v4lHnZvq985SuDW/5teMG/hGzWc5hK81v8Dw925Gc4P8uza/SigflZBgBgzon/aWxBiP9MV19xxRXb8yTsZ7byd5X4z6n9\u002BkDOlP2cHm92HXjggSOHDrz5zW\u002B\u002B12ch/qfm\u002B8rPdT9LI8\u002BXtRaGZTvf/va3t9tz2WOPPdpnP1Xmt/jP4pQvf/nL2\u002B1ZrG92f64i61P0pxPMuhWjZ60AADA54n8am9/jP3v4\u002B3Ok55LYnFksVon/nMt93XXXHfnshk8dNxEJsI033njk8V/60pcGt9xD/M/595XDT3L6vTxHQnfPPfccM\u002By/\u002BMUvjgzEvPSlL53UYRzjmd/iP9uz6667jmxP1qyY3bNV5Oc1P7d5fH6OJ3O2CwAA7k38T2Pzc/zn8XvvvffIXtUEyqyOl64S/znUYeedd27PlctYq7zPTNZI6M/xn\u002BOvE9yjif85\u002B74y3X\u002BjjTZqj8/lWc961riHZ5x//vkjp13M93LGGWcMbplz81v8x/AaHTn7wZlnnjm4ZdYy5b8f\u002BMrv/te\u002B9rXBLQAAzCnxP43Nr/GfPd8JvH7vX6Jvn332aVE8M1XiP37/\u002B9\u002BPTH3O\u002B//sZz87y/cfidIMFuRxuey0005jPk78T/77ynezzjrrtMfmklPbnXXWWYNb7y2h/ba3vW3k/i960Yvaz/hUmB/jP\u002BscDA\u002BM5M8T\u002BZ7znWbWQD9LIsf9j3WGAwAAJkf8T2PzW/zntGC7775725Y\u002BHBJ8CYLEyqxUiv8E\u002B/Aq8jlN3Gc\u002B85mZfg55zYRl/5inPe1pbbvGIv5n7/vKz1L2aG\u002B\u002B\u002BebtdJN5XC45rd3JJ588uNf4sur98ssvP/K4TGcf77sZduutt7bDPt773vcuEKf66/3sZz8bmX2SyyabbNJdc801g1vvLYdC7LLLLiMzfbLQ349\u002B9KPBrQAATAXxP43Nq/jPZf311\u002B\u002B22GKLGS6bbbZZi4JM801A9vftL5kq/c1vfnNCe7yjUvxHwviVr3zlDJ9JVlLPLIBf/OIX7ZjzLA543HHHde9617taxPX3yykRf/WrXw2e6d7E/z3fV2J\u002B0003vdfPZ841n8Xr1lxzzRmCv7/kZ3qi7zufd36Wc7q//vGZEp\u002BoP/7449vPS6a8Z7syi\u002BCggw5qvxv9/XPfc845Z/Bs95hf4z\u002B/s9mWPuZzedjDHtZ94AMf6E444YTuwgsvbIN9GVDJWgn9d5FLHrPffvtN\u002BPceAICJEf/T2NyO/\u002BHF\u002Bmbnsswyy3Q77rhjd9111w2ebWKqxX8kCBOiWVBu\u002BDOa2SWn9svU9JmZ7vF/9dVXd6uuuurI\u002B5\u002BdyxprrNEdccQRE5qNMiyf\u002Bfe///12mMBYzzuzywtf\u002BMLuxhtvHDzTPebX\u002BI98R5m1MDwoNatLfpZynL/wBwCYeuJ/GktcJ2Tyj\u002B6VVlrpXqcpm1M5p/nw1N\u002BxLgm6xHKOU3//\u002B9/fnXjiiZNe3Tt7FBdffPH2vJmePS/jf25\u002BlgmhvLcXvOAFI\u002BsgjHXJyvMHH3zwhFeTz97VDCrkGOvZPaPAHXfc0b34xS9ur5up7zkl40RkUKSf/p73k\u002BPDJyKneOwHdj7ykY/McRzmZ\u002Bw973nPyPHl413y87Tyyiu3UM4e6kzfT3DPiQRz1mLoFwEc75I95W94wxvazICZ/SxP5nvM8732ta9tr5PgPvvsswe3zNyVV17ZPo88LoNMYw1IjHbRRRe1gcCZDQJkG7bbbjun9QMAmIvE/zSX\u002BMre2BxbXEEiPNPh52X49\u002BbFZ5k95TnGPJG37777tvP5H3vssS3KZlcCOrGVx04maBPQeb\u002BZnTA7sthdHjc7p7zL9uWY8QwezOle//lF3lMGTTKwccABB7TvM6e5S\u002BzPzvc52e8xp9LM1PvZXVQvP9/5/iY6cNPL7\u002BRvf/vbNmvic5/7XJulcOSRR7YBlSrfKQDA/Ez8AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPHPfOFf//pXd9xxx3Wrrrpqd7/73a97znOe01133XXdhRde2J122mnd3/72t8E9Z\u002B3aa6/t1ltvvW6bbbYZXDO2q666qlt33XW7XXfdtfvnP/85uBYAAKAe8T\u002BNnHLKKd2SSy7ZLbTQQuNeXvCCF3S333774BFz7q677upuvvnmwd/GlxBP\u002BOdy4IEHdgcccEB3xRVXdM9//vO7pZdeuvvVr341uOesXXnlld3jH//47nWve93gmrFdfPHF3cMf/vBuyy237P7xj38MrgUAAKhH/E8jN9xwQ/fVr361O/jgg1tgJ/QXW2yxbscdd2zX5fKTn/xkyvaCJ6jf9a53dY961KO6Sy65ZHDt2LJ3/0EPelC3xx57tFkAke045phjur322mtCAwg98Q8AADAj8T9NJazf//73z/Ze9dmRoH7HO97RPeIRj2ihPTMnnHBCt/jii7c9/nNK/AMAAMxI/E9Ts4r/7H0/9thju7XWWqu7//3v3y266KLdxhtv3F1wwQXt9j//\u002Bc/dM5/5zO5tb3tbd8cdd7Tr8t\u002Btttqqe\u002BELX9j97ne/6zbYYIMW9DmcYPnll\u002B9WXnnl7ogjjmj37SW6t99\u002B\u002B2655ZZr93vIQx7SPeEJT\u002Bj233//7u9//3v3sY99rHvuc5/bXXPNNYNHdN1FF13Uwn6JJZZo6wOsscYa3be//e2RGQtjxf/dd9/dZjY89rGPba\u002Bz5pprdl/84hfb6w7Hf9YL2Hvvvbuf/vSnIzMQAAAAFnTif5qaVfwnphPXr3jFK7of/OAH3SGHHNKttNJKLbRzLH4f7Yssskh3\u002BOGHt1BO2Cf2P/e5z3W33HJLC/inPe1p7Xm23XbbbrfddmuDAsPyuB/\u002B8Ifdm970pu4BD3hA99KXvrQtwPeLX/yivcYWW2zRBg4uu\u002Byydv9LL720W3311VvcH3rood33v//97uUvf3l7jfw5Rsd/XiP3zbaus8463Wc/\u002B9nu9a9/fbfwwgu3gYDh\u002BM9hBrlfBjpmZ5FBAACA\u002BZn4n6ZmFv8J9/XXX7971rOe1d14442Da7vuu9/9bov7DAREIjuDAauttlp3\u002Bumnd0984hPbOgJ5fCSoJzrt//jjj7/XtP/R8Z\u002BI33333bulllqqO/XUUwf3\u002Bvd2ZKHAV73qVd1f//rXe8V/1gvIqv7Zzssvv7xdl/efQYqE/nD8Z0ZDZi8cddRR9vwDAABliP9pambxf95553XLLLNMt8kmm3Qnn3xymwKfy9e\u002B9rXuwQ9\u002BcPfBD35wZIr9t771rXZIQKbr55JBgN5Ux/\u002Bdd97Zbbjhht2KK67Yfe973xvZrh//\u002BMftEITMMrj\u002B\u002BuvvFf9//OMf2/T\u002BHKLQR3445h8AAJguxP80NbP4T8Bn73qO9c/ZAIYvif999tlnZK/4rbfe2mYJZPp8Bguy57031fGfPfhrr712e60MOAxvVx6bQxQy62B0/J911lntfX74wx8eGbQI8Q8AAEwX4n\u002Bamln8/\u002BY3v2l78bfbbrsZYnksWRsg8Z2ZAhkYOOWUUwa3TH3833bbbW3xvyzWd9111w3udW\u002Bj4/\u002Bcc85p7\u002Bfd7373DJEv/gEAgOlC/E9TM4v/q6\u002B\u002Buh0fn9X6s2d/PInsHPO/3nrrtWPwH/3oR7fH3HTTTe32BHXO87/ssst2F154YbtuPBOJ//z9ne98Zwv57M0fz\u002Bj4z/vJmgCZNdBvW3zzm99sAxej4/\u002Buu\u002B5yvD8AAFCK\u002BJ\u002BmZhb/uS0r7mfaf46T//3vf9\u002BC\u002BqSTTup22GGH7g9/\u002BEOL5Q984APdkksu2cI9sbzXXnu1FfT7wwJy2WOPPdp1OWVfZgX0pwocbSLxHz//\u002Bc9b/Of4/hNPPLG76qqrurPPPrvbc889uyOPPLK95uj4z/PkbAN5P1tvvXUbOMi25tCGnCpwOP7zHvOe3v72t88wIAAAALAgE//TVAI/p\u002BpLSP/2t78dXHuPnLN/p512aqfQyzH2uSSUn/Oc57Tz7GddgAwcJJz7U\u002BLdcMMNbe96zqX/pz/9qV2X/2aafh6fU/nl3PpjyaJ9ea2DDjpocM2/oz3P/7jHPW5klf7EfRb7y6J//XblkgGCnKYvt2dAYJVVVune\u002BMY3tsdEzt\u002BfswH0988CgDkVYRYKzKEJfeifcMIJbTs233zz7u67727XAQAALOjE/zSW4M0K\u002BjOTBfwS8Nljf/vttw\u002Bu/ffgQY7BT2wPy3MO3y9yXY6vzx750fcflgGHPO\u002BwBPhY25jnueKKK9oshIT9aHnMWPGe\u002B\u002Bb99AMWeX99\u002BPfyvkZfBwAAsCAT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/6BBdLBBx/crb322vfJ5dhjjx1sxZy59tprx3z\u002BeXHZYostBlsBAMB0IP6BBdKOO\u002B7YLbTQQu2y9NJLz5NL/3qHHHLIYCvmzGWXXTbP30Mueb1nPOMZg60AAGA6EP/AAqmP/9///veDa\u002Ba\u002B73//\u002B3Ml/t/znvcMrpk3Hvawh4l/AIBpRvwDCyTxP3niHwBg\u002BhH/wAJJ/E\u002Be\u002BAcAmH7EP7BAEv\u002BTJ/4BAKYf8Q8skMT/5Il/AIDpR/wDCyTxP3niHwBg\u002BhH/wAJJ/E\u002Be\u002BAcAmH7EP7BAEv\u002BTJ/4BAKYf8Q8skMT/5Il/AIDpR/wDCyTxP3niHwBg\u002BhH/09zdd9/dXXHFFd11113X/etf/xpc23XXXnttt95663XbbLNN949//GNw7dyR5//Qhz7UrbXWWt3VV189uHbmJvMYahH/kyf\u002BAQCmH/E/TSU6Nttss27RRRdt8ZHLIx7xiG6vvfbq7rzzzu7KK6/sHv/4x3eve93r2gDB3JSQ32KLLbrll1\u002B\u002BbddETOYx1CL\u002BJ0/8AwBMP\u002BJ/GvrTn/7UPelJT\u002BoWWWSRbvPNN\u002B\u002BOOuqo7vDDD\u002B822WSTbqmllupOOOEE8c98T/xPnvgHAJh\u002BxP8089e//rXt8U/4f\u002BlLX5phqn/\u002BfM4557Qp/\u002BKf\u002BZ34nzzxDwAw/Yj/aebcc8/tlltuue65z31ud\u002Buttw6uvbc\u002B/l/96ld3\u002B\u002B\u002B/f4vs\u002B93vft2znvWs7pe//OXgXv92\u002B\u002B23d7vvvnv36Ec/uoVMnv\u002BjH/1od9tttw3u8e9YP\u002BKII7onP/nJ3f3vf/9umWWW6bbeeuu21sBYIf/HP/6xe97zntde/5ZbbmnXDRt\u002BzLe//e32fvrn3WOPPbq77rprcM\u002Buu\u002BOOO7pPfvKT3QorrNC2L4c6bLTRRt1vf/vbwT267sgjj\u002BxWXnnl7rDDDhsZEMk2rLPOOt3HPvax7p///GcbFNl77727n/70pzMMmnDfEP\u002BTJ/4BAKYf8T/NJMAXXnjhbpdddplpwPbx/4AHPKDF/E477dR95CMfaYcFrLnmmi2EIzMJ3vnOd3aLL754u08OGUiULbbYYi3u//a3v7XXSSxltsFznvOc7sADD2yDAwn3gw466F7xn0vC5FGPelR32mmntdcZrX9MBiTyWm94wxu6/fbbr1t33XXbNn/mM59pr9tvX657/etf3w5v2HXXXdt7yutlpkPk/eQ1V1xxxXZYRAYP3vKWt3SPfOQju9/97nftPsccc0x7DxtvvHF7X9y3xP/kiX8AgOlH/E8jieFPf/rTLZhnFS99/D/mMY/pfv3rX7frsvc7AwBLLLFE95Of/KRdl1kASy\u002B9dIv53B45TGCrrbZq8Z6QvuGGG1poPOUpTxkZNIibbrqp3TYc/3mtF7zgBe2xp5566uCe99Y/JjG\u002B7777jrz2pZde2vbg5/Xy3Keffnr34Ac/uHv7298\u002BQ7D/4Ac/aIMG22233chjc13e25Zbbtl985vfbH/\u002B1Kc\u002BNTJI8uc//7m9r6yRMLOBE\u002BYN8T954h8AYPoR/9NIgnXPPfds0\u002BMPPfTQwbVjG\u002B\u002BY/6997Wtt2vy3vvWt9vccEvDABz5wZDp8f0lU94MEZ599dveQhzxk3NMG9iGf\u002B6y99trtrAM/\u002B9nPBreObXjAIAHVy7a\u002B9rWv7ZZddtnuggsuaDMAsr0J\u002B2E5PeBqq63WbbDBBiOHP2SWQAYJMjMiMxzWX3/9NkDB/En8T574BwCYfsT/NPPFL36x7fnPcfEz23s9Xvzn2PjsMc\u002Be8Tw\u002Bx8MnXrIHPtcPXzKF/le/\u002BlV3yimndEsuuWS32267jfmafcg/6EEP6lZaaaV23P7M9vrHePGf69/1rne1gYSzzjqr22GHHVrIn3HGGYN7/NvNN9/cjud/\u002BtOf3mYI9M4888w2kyGHCUxV4DF3iP/JE/8AANOP\u002BJ9mEtWJ7Cx4l4XwxjPR\u002BM9Cejne/8QTTxzc494S3gnw7bfffmSK/bDhkM8e\u002Bvw36woMR/1oM9vz/\u002BY3v7nFzfnnn999/OMfH3P7stDgGmus0dYg6BcmzGEBmdafmQL5jLK44fXXX99uY/4j/idP/AMATD/if5rJyvkJ3j7gR0swJ/wnEv\u002BRWE8sz2wmweWXX95W2s8U\u002B\u002BGV\u002BzPNPmcKGA75HLP/jW98o71Gpu\u002BPN0DRPyYzCo477rjBtf\u002Bezr/66qt3a621VnfjjTe2wxMyK6Ffsb\u002BXQxMS\u002BO9///vvdcx/FkPM4QyZ/p\u002BzGAw/LgsBzmzGBPOO\u002BJ888Q8AMP2I/2ko4Zup9Qns7OlObOcUdwn97KH/7ne/O\u002BH4zzHxz372s9s0\u002BwRz4j0L4331q19tq\u002Bpnr3pCfdttt21rDWQxvazgn0XznvnMZ7bF\u002Bkbvxc/rffCDH2z3zxoFM5stkHDKa\u002B\u002Bzzz7tebO9eVy/UF/23GcgIO8rix3mVIff\u002Bc53ulVXXbW9Xr/a/zXXXNMOAXjqU5/a/pxBiuc///ntrAD9gocnnXRSG2zIugB5fe5b4n/yxD8AwPQj/qepX/ziF20GQEI58ZFLYjgL5GXv9lVXXdWtssoq3Rvf\u002BMYZ4v/oo49ue8dz2rveRRdd1L3kJS9pawn0z5UBguxVv/POO9t9clz95ptv3vam5/bc90UvelF34YUXtpDOoMDjHve4NksgMqiQ2xP2o4/XjzwmEZ7j9nfeeee2TXne7OXPwoKZUdDLwn/Pe97zRrYtl4R\u002B/7wZXMhARba5X8gwMkiSMwVsuumm7TPJaQzzOnkfw58J9w3xP3niHwBg\u002BhH/01wi\u002BeKLLx7z2PaE\u002B\u002BjIzd70PGasqe9ZRO\u002B8887rLrnkknHjOPfJoQWZkj8s9\u002B8HCnqJ8swcGG\u002BafQYAcuhA5H6J/OHDCkbLAES2b/h0g70c7z/WIQbZpoR/r5/JwH1P/E\u002Be\u002BAcAmH7EP7BAEv\u002BTJ/4BAKYf8Q8skMT/5Il/AIDpR/wDCyTxP3niHwBg\u002BhH/wAKpj/8sDPmhD31onlxyBoy5Ef\u002B5jPV6c\u002BuS1xP/AADTi/gHFkh9/N8Xl7kR//P6Iv4BAKYX8Q8skHKGipy94b64zOysErPj73//\u002B5jPPy8uOcsHAADTh/gHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxD5R38cUXd0ceeWT3vve9r3vxi1/crbfeet2zn/3sbqONNuo\u002B/OEPd9/5zne6v/zlL4N7z1/\u002B/ve/d7/85S\u002B7z3/\u002B891mm23WPfe5z\u002B3WWWed7jnPeU73ute9rttnn326n/3sZ91dd901eMT863//93\u002B7c845pzvkkEO6d7zjHd3zn//8bt111\u002B022GCDbuONN\u002B5233337oQTTuhuueWWwSMAAJgq4h8oKdF89NFHt8hfaKGFRi4PeMADuqWWWqp70IMe1N3//vcfuf5\u002B97tf97KXvaw78cQTW6Te16699tput9126x71qEfNsP2LLrpot/TSS3eLL774DNc/5CEP6T7wgQ\u002B0gY75zX//9393BxxwQLfaaqvNsM2LLLJI9\u002BAHP7hbYokl2uffX5/3\u002BNa3vrU7\u002B\u002ByzB88AAMCcEv9AOaeffnr3\u002BMc/voVkYv/Nb35z95nPfKb79Kc/3f47fMl1ufzHf/zHSHyutdZa3fnnnz94tnnrn//8Z7fXXnt1D3zgA9u2POIRj\u002Bg\u002B8pGPdJ/97Gfvtf3Z65/rd9111\u002B4JT3hCu38ietttt51vZgIcccQRbWAi27bkkkt222yzzbjvJf/dc889u2c961kj38WrX/3q7vrrrx88GwAAkyX\u002BgTL\u002B8Y9/dB/84AdbAC\u002B22GLdRz/60e7ggw9u08lz2W\u002B//bovfelLM1wSnP3t\u002BXvCOTMCsvc5QTovZa99H75rrLFGt//\u002B\u002B7dQ7rcv72V427/4xS92e\u002ByxR7tt77337g466KB2WEAev/LKK3e/\u002Bc1vBs887910001tKn\u002B2JbMXsn05dKF/L1/4whdmeC\u002B5fPKTn2y3ZQAgf990003b4x/2sId1P/jBDwbPDADAZIh/oISE/2te85oWi8973vNabCYkP/GJT3Tf/va3u0svvXTM6fz/\u002Bte/ugsvvLD7xje\u002BMRKmif4nP/nJ7bkymDAvXHTRRd0jH/nI9prbb7/9yLYk/n/60592t9566\u002BCeM7rzzju7X/ziFzOEdS6ZOZA97WecccbgnvNOwv\u002BpT31qey\u002Bbb755i/ls06c\u002B9anu\u002BOOP76677rrBPWd09913d7/73e\u002B6L3/5yyPvI99j4j8DMl//\u002BtcH9wQAYHaJf2CBl6nyffi/5S1vadPms0f81FNP7W6//fbBvWbt5ptvbsf8JzozAPDCF75wJMbnpj//\u002Bc8t/BO4/Z7\u002BHCN/wQUXtPc2ERnYyMyBQw89tD0\u002BgwE5nj4DABkcmFfyGfbhv/POO498ljl\u002B/29/\u002B9vgXrN29dVXtzUb8vjMgMhhHPl8chgBAACzT/wDC7zsUU5svulNb2p7\u002BrO3OHv6J\u002Bvcc8/tPve5z3W/\u002BtWvule84hXtuTN7YG7IwoSJ5Ryq0B\u002BCcPjhh0/6mP3MgMi25gwGGfzIwoYZWEiUzwv9VP0\u002B/DOIkZkAk5EBjZNPPrn7yle\u002B0s54kHUNcjhGBkUAAJg94p8pd9VVV7XTd2URsn6vZaZVn3baabO1528sWQE9p2nLomGJHDjvvPPaFPenP/3p7ZjxXK655prBrZN3ww03dD//\u002Bc/bXvMVV1yxW3bZZefKwnO77LJLi\u002BUdd9yxxfJXv/rVOf7ZTjT/8Y9/bNt/7LHHjgyMzG3ZU5/XygKLeS\u002BZfXDHHXcMbp28yy67rL2X/D8k3/UznvEMv/8AALNJ/E8z2Zu4ySabtH\u002Bg95fsSXvRi17U/nE9FTL1\u002BOEPf3i35ZZbtn\u002BgZ9p1zued05NlT\u002BqcuPLKK9v035zfPMcHT4WcUzzHTY\u002BWz2pe7S1l8nK\u002B\u002B\u002Bw1z3T57PXPFPqpkqnn\u002Bb3Iuefzu7LFFlsMbpka\u002BV1ZeOGF2yJ/ieUDDzyw\u002B5//\u002BZ/BrXMmaxn8/ve/b9u/9dZbt\u002B3P2gFzS35fcmz\u002Bcsst1w67yGr\u002B//Vf/zW4dc5lTYS8l3xGeS\u002BZUQAAwMSJ/2kmIZ7VwJdffvm2MnimF\u002Bd45pyKK3s2zzzzzME9J290/Gfv/zHHHNOCYE5jeqrjP3GXc49nQGT4\u002BbLd73rXu9oq5ZdccsngWuY3//f//t8WgllULvE8N1aEP\u002Becc1p0ZhHB7HXOjICpkvPyZ/sTtNn\u002Bqf5Zy0BCtj2/13mdV77ylYNbpl7WGshr9Iv7zelA32j5/0im/ue9ZC2DnM1grAUcAQAYm/ifZvr4z0rmmULfy2m1cj70HKc70QXGxjM6/qfS3Ij/VVddtXvVq141wyEJ2e53vOMd7RzreT/Mn972tre14OxXh88hJ1MtU/0T0BlY6ON2KmS2SWbDJGKzZkH2ZM\u002BNmP3DH/7Qtj8DXFkwL1Po54asW5DTK2YgIwN9UzWDYVh\u002BF/Ne8vz5Ln784x8PbgEAYFbE/zQzXvxnhfPFF1\u002B8e9/73jcS/9lzlxXUEyj5h3am9Oa45OHV0xPgOff4Yx/72HafNddcs517PFN/h/f8f\u002BxjH2uvO3wsdv4hn5XZl1pqqfbYPOb9739/d\u002BONNw7ucW99/CdkEhmPe9zj2mNzTvRMzc5U58jr5PU\u002B/vGPzzCYkYDLfX/2s5913//\u002B90dWEM8e3RVWWKFbe\u002B21220bbLBB\u002Bzzy3JklkUDrVxnPa\u002BR0ZVnXIFO28/jVV199hmO1\u002B/ecQYpsV9YpyP2y8Fq2e3jgIt9DFqjLlOx\u002B\u002B5m1hHL2AD/lKU9pMZifu7kh30n2OJ911llthkwidyr0x\u002BL35\u002BnPa8wN\u002BX1KMOd3PK\u002B37777Dm6ZOv/5n//Znju/83kveW9zQw4tGJ7JkNcDAGBixP80M1b8//Wvf20L6CWAv/Wtb7Xrslfy5S9/efeCF7ygxX2uzyre/YrkCaJcMtV3kUUW6dZZZ512zPXrX//6FsT9P8wTw7nkWOlEdL/XMSuxJ5gf\u002BtCHdh/96EdbOGfqdp4rU5Nvu\u002B22dr/R\u002BvjPa2SwYKeddup22223toc\u002Bsw1\u002B85vftPvl\u002BfN62TPcB3lke7PGwXe/\u002B922YviHP/zhFnTZ\u002B59ZDwmjbGNOLfa0pz2tW2KJJbptt922vUbOPx5ZST3XJzqztzaHT\u002BSY7Wx7/p7PpX/PGUDIautvfOMb2\u002BnOnvSkJ7XHZvCgl0Mi8tiNN954jhdEnE7\u002B9Kc/tZ\u002BznIc/wdl/93NDv8f5Pe95T/vZm4q92vl5y/bvt99\u002BbQBgsqv7z0oGSTJwkYULs\u002B1veMMbBrdMnW9\u002B85vtveQ4/3wXf/nLXwa3TL1\u002BHYP8zmawEQCAiRH/00wf/4nSF7/4xd1LX/rStpJ54jMRnoGA3ugYufzyy7uVVlppZIp8jt/P3u8cM5/bInu8c4q0PN948Z84zgrnifB\u002BsCGyN/zd735327bsLR9LH/95ruFjihMfGbzYYYcd2jZMJP5jdqf95z1noCOPGT6VXLYrgxmJkeuuu27kPedzyOfRzz7IrIIMBmSdhf66LFC31VZbdUcddVT7bJiYI488cobgnIpV5ceTwagEZ9bIyGsmpufUS17ykhbj2fa5fe76/Ixl\u002B5/5zGe20\u002BVNtQzA5HPJAODcmFkwrF\u002BEcbvttmuHKs2tQRMAgGrE/zQzHP/Zq58pzJmOvuGGG7ZoHUsGBBK62XOY0M\u002BgQf7BnVOJZe/76MBOLA8f89\u002BHcB//ibS8dp4r/5Aflmn5ifMcVz1WCI93zH8f\u002BxnMyLbNrfjP4m\u002BZKfDOd75zhufNn7NAYH9Gg9HvuddvV2Y5DD\u002Be2Ze95QnOrFeRgB4euJpq\u002Bb1JcP7whz9sr5nBpjm1yiqrtJ/lbPtUPN/M9DMXstc/s3emWn5/8rlk5ktO7zc3ZcZS3ktm0uQ1MwMEAIBZE//TzOhp/wnsLJaWveaZ3j4cpJlGnUjP3rX8I7u/9PGfvZ\u002BJ3Uyd7/dix6ziP6ul5zzd2YM\u002BevX/008/va0B8KEPfWiG5\u002ByNF/85xv\u002BJT3xie2/ZSzu34v\u002BUU07pllxyyTZzYXhwop/NkNtOPvnke73nXmZIZJ2CrHUwvP3Mvn7afL7TeRX/WWAur3nYYYcNbpm8rJOR38N5Gf/5fcj2T/XhJRl0y6DCF77whXkW/3mdvJcMyAEAMGvif5oZHf9x6623tsjPae3OP//8dl1iOgvjZe/8aaed1mI20Z7j4Pv47/eCZ6r\u002BcGDPKv77wwX6KfLDMt0/sxJmd89/ojoL9m200UZt2/I6/R724fvNafyfccYZbZG5TDkeHpzIn3NdBkN\u002B/etf3\u002Bs998T/1Nl1111b/PUr/c\u002BL\u002BM9aDXnNqZimn0No8vs1L\u002BN/s802a9s/1u/WnHjFK17Rnnde7vnPWgl5zf7/WQAAzJz4n2bGiv845JBD2vHHfXQncrMHfngPdwYEclx7H/99OGeF/JtuuqndJxIyOeXXePGf6H3rW9/anj//iO8loD/ykY\u002B0BfHGO4VXH/85XOGKK64YXNt1xx13XHvNPD7P029bBjX6Y8GzzTm2PrMc\u002BvjvZwxk0GA4HrPNmca/7LLLdhdeeOHg2q69Zl5/9HvOwMhaa63VFgEcPuZ/ovGfbZvqIKsue5kTf1mccV7Ff9aoyGuOtybF7MgikRksmpfxn3UGMmA31fKzns8lQT6v4j9n08hrDv9/DACA8Yn/aWa8\u002BE\u002BgZk/k05/\u002B9BayCd7MBEjk5tj\u002BrIyf0\u002BvlH9t9/Cdwc6hA1gzYeuut22EAOeVaoj5TgMeL/8jU\u002BNwvgwk55V5W8M4x3An/iaz2n\u002B1IaCfiv/e977XQT6j3iwAmBHOawuzl/8QnPtGdeuqp7UwE/Wn9\u002BvjPrIec1i\u002Bn4Muq\u002BzkdWmYmJMSzPRkQSWRkun8\u002Bgwws5DCHvL83velN7ZRjWQshr5X7jl7tfyLxf9JJJ7XDBd7\u002B9re3xzEx\u002Bdzzc5DTOSagc6jH3JJBogRnf375qQjODC7luXKO/0Tz3Bz8ySydbH9\u002BR170ohcNrp06\u002BbnPe8mZQPJ7k7OFzC394oU5G0n\u002BHwUAwMSI/2km8Z\u002B94Qnn66\u002B/fnDtv/d0v/e9723xnRhN5OYUdlmZPv\u002BoT\u002BzmVHR5bL\u002BoXiSC\u002BsW\u002BcskCgNkTm1XFM22\u002Bj/8MBCR6E7\u002BR0MnezsRx/9isjJ9p\u002BjMLq6uuuqqdcz\u002BDDtme4dcdvVr\u002Bueee2w5d6O\u002BTc\u002B0nUpZZZpm2sGDk/nlcBiJynwwCZLAjspBYDk3I9Vn3oD\u002BPfAYmPvCBD7SBhf65E1XZ49kH/VjvOTJzIGdXyMBAH/rZi5zPffQhCsxcfgbzvbz61a9u8Z9TMM4tOc1j1qPI701\u002BZqfCV77ylfazk7NBZPsvuuiiwS1TKyGeWM725/V23HHHwS1Tpz/vftZhyHvJwMzckN\u002BZzErKQGP\u002Bn5SBQgAAJkb8T0M5tr2P92EJ/gwODAd0wiF7vPtj8xOnYy0WlmBPLPe3Zc97H7eRx421NzCvmT3jeY289kRk2/O4yPT\u002B4dcdLfe75JJLWnT37yvbMfweI6\u002Bd2Q633HLL4Jp/y3vIlOnMOBj9mDxPBgpy\u002B/B77Y33nnPd6MjPgMJYz8HMPfvZz26DRgcffHDb4zw3Tvf33//93y2eE50J3AzSTIX8XPaDagnmDELNDf/5n//Ztr8/O8L/\u002BT//Z3DL1Mnvew4nyKycvffeuw2E/e///u/g1qnTz8DoD7/IQCMAABMj/oEFVn\u002Bu/yz\u002Bl4BOoE\u002B17JFPcOYMFHmtqTjHfy/H4GcAoD9dYQ5DmUoZ/Mpe\u002BGxzZvHk9IJzI8qjP9d/ZgzlvQwvlDlVzj777DaDITOLMltm9GAdAADjE//AAiszKHJmiZyVIcfO77vvvmPOtpiszDLJgEICOmtFZFHHqfSjH/2oBfN73vOeFsxZuHIqZcZLBi6\u002B\u002BtWvzvU95Yn9DGTk0KC8l8MPP3xkhs5U\u002BK//\u002Bq/2Xn7yk5\u002B095LDigAAmDjxDyzQstd8OKBzLP3f//73wa2Tl4GFnLYxwZnFGPMaUz1lPoeSZMHJLESZxfKy/Tl\u002BfirceOONbdszeJF1LjIlfyoHRsaSIM/nlEMMpnIwI4fl5H3kkkVJM4theC0NAABmTfwDC7wNN9ywRednP/vZdslij3OyhkLWkMgU88TzoYce2p773e9\u002B9\u002BDWqZVj/3O2hywEmZkLWbjwL3/5y\u002BDWycle8n7GQs7OkcGF/H1uS6SvsMIKbUp\u002BFtfMZ5fV\u002BefkUIM8ZwZE8l1ss8027bvIqUkBAJg94h9Y4OUsEJn\u002Bn9X/cyaHhGLi/X/\u002B538G95i4xGZOGZnn6NcUeOITnzhXFhPsHXbYYe11cnaJX/7yl\u002B21MygwepHJWUlkZ\u002BAgj0/s5/SWed6PfvSjg3vMfXntHCKR7yN/ziULek5mNkZmL\u002BR95Dn68/pngUQAAGaf\u002BAdKyJkXEpzZy3300UePhOf555/f3XTTTTPd\u002B5zIvuGGG7rf//73I4/rz12/2mqrjZztYm7KKf/yek996lPbonbZhgwEZBBgrLNzDMtMhUyD7wctEswve9nL2vPltJjz2vHHHz8yAHDyySePbFPOzJGzJ8xMZmzkLB6//e1vRx639dZbt/ey0UYbjXtmDwAAZk78A2VkAOCxj31sC8Ucf95PF88lYZzTSiYshy\u002BJ6\u002BH7Jbxz/vg8R87rPy/Cv5cBh4UXXrhNm8\u002BU\u002BeHtyqEMmeEwvO3Zy5\u002B96v19MliQwwYe/ehHt\u002B3ffvvtB888751wwgndUkst1QZj9txzz3bGgX47f/e737XTZw6/l1wyONDv6c9/f/zjH7fvIO/lVa96lfAHAJgD4h8oJXuWt9xyyxaMWX3\u002BzW9\u002Bc9v7nOPf\u002B/gcfUlkZ2919izncTl8YOedd26L/s1rOVxh9dVXb9vx0Ic\u002BtJ03f3gQYKxLBjYOPvjg7jGPeUx73PLLL9\u002BddNJJg2e87\u002BRsA1n9P9u06KKLdjvssEOL\u002Bn5mw1iXDBJ885vfbDMg8rgMIGQRRwAA5oz4B0o65ZRT2kKAGQBIRGZv\u002Bhve8IZul112aacF/OQnP9nttNNObY9y9rbnPvnva1/72rZn\u002Br6UPdxZ/G\u002BllVZq25XLqquu2hYdzEr6GRDI3vRM6X/GM54xcp9Ms8\u002Bx8bfeeuvgme57OdziiCOO6J72tKeNbOcjH/nI7m1ve1u32267tfey1157dR/60Ie65z//\u002BSP3yYr\u002Bme6fGQIAAMw58Q\u002BUdtFFF7W9\u002BC984Qu7pZdeeiQu\u002B8tyyy3Xjo9PTM/pKvtTLWsR/PCHP\u002By22mqrtie8H6ToLxnYyGKEm222WXfUUUfdJzMVZkcOS9huu\u002B26ddddt1tsscVmeC\u002B55EwBm266aXfQQQd1t9122\u002BBRAABMBfEPTBv9avgZEMgp6K699trBLQuGnL3g0ksv7S688MK2VkHOTLCgyur/WaQw7\u002BXiiy9uizICADD3iH8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4n\u002Bbuvvvu7oorruiuu\u002B667l//\u002Btfg2nnj2muv7dZbb71um2226f7xj38Mrp06ec4PfehD3VprrdVdffXVg2sBAACmH/E/TV122WXdZptt1i266KLdQgst1C6PeMQjur322qu78847B/eau6688sru8Y9/fPe6172uDUJMtcT/Flts0S2//PLt/QIAAExX4n8a\u002BtOf/tQ96UlP6hZZZJFu880374466qju8MMP7zbZZJNuqaWW6k444YTBPecu8c/c9rvf/a575jOf2R166KGDawAAYHoS/9PMX//617bHP\u002BH/pS99aYap/vnzOeec06bjzwvin7kpP1/rrLNOm9Wy9957D64FAIDpSfxPM\u002Beee2633HLLdc997nO7W2\u002B9dXDt2O64447uk5/8ZLfCCiu0gMohAhtttFH329/\u002BdnCPrrv\u002B\u002Buu7DTfcsPvsZz/b7bvvvt3DH/7w7gEPeED3kpe8pPvzn//c7vv85z\u002B/u//979897nGP64488siRAYc\u002B/jPj4MADD2y353XWWGONNvtgeGBiItsy2nD8f/vb327vOduxzDLLdHvssUd31113De7574GP448/vlt33XW7hRdeuN1v9dVX77761a\u002B254ls\u002B8orr9wddthhI9v2xz/\u002BsQXmxz72se6f//xnGzhJaP70pz\u002BdYfuZt84777zuGc94RvtZEf8AACD\u002Bp50jjjiixe0uu\u002Bwy0zjNDIF3vvOdLeRf//rXt8MCdt111zZwkJjODIHoA37ppZfuHvWoR7Xn3WqrrdrMglVXXbUNBmy66aYt3FdcccVu2WWX7X7zm9/M8NhsT553p5126nbbbbe29kAe199votsyWh//97vf/brFFluse8Mb3tDtt99\u002BLfDzXJ/5zGdGPoMMDiyxxBLdU57ylO6AAw7oDjrooO5Zz3pWex/5e\u002B6XsE9Q5n3k0IkMHrzlLW/pHvnIR7bp5XHMMce0x2y88cbd3/72t3Yd887tt9/eBnYe/OAHt5\u002Br/LyJfwAAEP/TSgL205/\u002BdIvhQw45ZHDt2E4//fQWUG9/\u002B9tniNgf/OAHLaS32267tqe7D/jHPvaxI7GevfQvfelLW2An5vsp/VlboI/p6B\u002BbgP/Vr37VrotvfvOb3QMf\u002BMBuhx12aK8x0W0ZrY//vGZmJfT3ufTSS9se/IT8DTfc0N18881t730GK3JbL9uXvf9rrrlmOxtC5DUzSLDlllu27cyfP/WpT40MImS2QwY/8l5nNrjC3PHrX/\u002B6DUTl\u002B8139a53vUv8AwDA/yf\u002Bp5HE6J577tmmtM9qAbTsFc/U\u002BgTUsJwyb7XVVus22GCDdthAH/DDx\u002B0nst///ve36fUXXHBBuy7OPPPMFmbZax9jPTYS4BkQyABC9q5PdFtGG\u002B\u002BY/7zWa1/72rZXONuXmQMPechD2uyCfop/5M\u002BJx2xzPziRWQgZhMhe5SyOuP7663c33XRTu437Xn6mjj766DYAle/vPe95j/gHAID/T/xPM1/84hfbnv9MjR5vz3TiPXvdE7dnnHHG4Np/6/eSP/3pT297zceL/5xff3T893tlP/7xj7e/jxf/11xzTffEJz6xHaOf15votow2Xvz3UZ/gz2yFU045pVtyySXvdShE/pzrctvJJ588uPaeQYzMbJjVDAruO\u002BIfAADuIf6nmVNPPbV70IMe1BbLy97RsSR6E\u002BiLL754d\u002BKJJw6u/bdMf8\u002BCfM95znO62267ba7E/\u002BWXX94W9uu3caLbMtp48Z/XevOb39w97GEPawv2ZVAhhxWMPnwgf8512eZse\u002BSwg0zrz0yEfI5ZFyCLHjL/Ef8AAHAP8T/N3HLLLS2Wc6x8jlkf7fzzz29R/q1vfasdK9\u002BvYt/LKvaJ3kzrz/VTEf9PfepTuyuuuKJdF8cdd1zbvo985CPtuSa6LaP18Z8993nOXg4XyLH8a621VnfjjTe21852rL322jNM4c9sgtwniwCOPuY/MwL233//Nv1/9913n\u002BH1c6jCeLMqmHfEPwAA3EP8T0OJ5oR5Ajt7sb/xjW\u002B009cl4DO9/rvf/W7bm53wzd\u002BzSGBOEfid73ynLYqXPemjV/ufk/hPnCWw87rf\u002B9732mvkePz\u002BOPuJbstoffzn\u002BTPFf5999ulOO\u002B20tq1Z96BfqC/b\u002B\u002BEPf7gdDvGmN72pTev/xS9\u002B0b3mNa9pcd\u002Bv9p/DEXKIQQYr8ucMpOQ0hjnrQD8z4KSTTmqDDVkXIK/PfUf8AwDAPcT/NJW4zQyARHDiKJeEdBbX689/n3B/3vOeN3J7Lonf4WPvr7rqqm6VVVbp3vjGN84Q/9lr30\u002Br7\u002BWc/InwnAEg8tisyr7tttu2U\u002BP1r5GYHr1a/kS2ZbTEXyI86wLsvPPObY99HpdZBNtss007LVwvhw184AMfaNP5\u002B\u002BfPAMTnP//59r7ynrJQYQZMMhOhl4GUHDKQ0xnmczvhhBPa62y\u002B\u002BeYjnwf3DfEPAAD3EP/TXAL44osvnulx65n\u002Bft5557Xz3I/lzjvvvFfoJrxy/Wg5hn/0FPn\u002B75mOn/Pnz\u002Bz8\u002BLPaltGyHVmhPxL4GUTIHvvxZJszYJHPJI8dlu0aa52EPKYfMIm8zujHMu\u002BJfwAAuIf4B0oS/wAAcA/xD5Qk/gEA4B7iHyhJ/AMAwD3EPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvxPU//617\u002B6K6\u002B8srvwwgu7u\u002B66a3Dtv910003dSSed1N1www2DawAAAFiQif9pJtF/wgkndKusskq30EILtcsiiyzSve1tb\u002BtuueWWdvunP/3pdv0ee\u002BzR/n5fyLbceeedg78BAAAwJ8T/NPOHP/yhe/SjH92tuuqq3dFHH92dfvrp3Sc\u002B8YlunXXW6f785z\u002B3\u002B5x77rndRz/60e6cc85pf5/Xrr766m611VbrNtlkk\u002B7uu\u002B8eXAsAAMBkif9p5stf/nK38MILd4cffvjgmvlP4j\u002BDE6961au6v/3tb4NrAQAAmCzxP80ccsgh3f3vf/\u002BZTuk/\u002BeSTuzXWWKM7/vjjB9d03Zlnntm94AUvaIcILLroot1jH/vYboUVVujWX3/97tJLL22PWXvttbsTTzyx23LLLbvFF1\u002B8W2yxxdrhBNdff/3gWbruuuuu6z784Q93K664Yne/\u002B92ve\u002BADH9i94hWv6P74xz\u002B227///e93j3/849s25ra8Rp73T3/6U3fNNdd0z33uc7uPf/zj3T//\u002Bc92//jBD37QtvdnP/tZ\u002B3teb8MNN\u002Bz22Wefbocddmjb\u002B/SnP709Pi666KLuda97XbfEEku0bchjv/3tb8/wnL/85S\u002B7vfbaq7v88ssH1wAAACy4xP80c8EFF3SPecxjWpxnAOC2224b3HKPY445poX717/\u002B9fb3iy\u002B\u002BuHvCE57QAvq73/1ud9hhh7XneNzjHtd97nOf62699db2mMT6Qx7ykG6ttdZq4f2a17ymxfW2227b/eMf/2jPtf/\u002B\u002B3crr7xyt9tuu3Xf\u002Bc53Wsg/6EEP6l70ohe1bcn2ZXAgz5O9/zvvvHO37777tkUIM8iw/PLLtwGF/vni0EMPbYGfbYssZJgBhGWXXbZbZplluq222qr74Ac/2BYwzHOsvvrq7fY8LoMNL3/5y9tAQP4cee63vvWtbdtzHwAAgAWd\u002BJ\u002BGsnc\u002B8Z5F/ZZbbrnuU5/61AyDAKPj/4gjjuiWXHLJ7thjj21/z4yBT37yky3Q\u002B3UB8pjMCnjlK1/Z3Xzzze26G2\u002B8sQ0EPO1pTxs5c0Cm8Q\u002BHe47p32yzzbpHPvKRbZAhxpv2P7vxv9RSS3U/\u002BtGP2nWR7d59993b9aeeeurg2n/fv3\u002B9v/71r\u002B1\u002Bea9vf/vbu/POO29wLwAAgAWX\u002BJ\u002BmEuiZ1v6IRzyiDQKst956LYJjdPxnfYDEf84SEInjPDbxf/bZZ7frRj8mEvabbrppt9JKK408dy9T7DMNP3G9xRZbdA996ENHQnuq4v/Vr371DI/P2QNyOEAOOfje977X/fSnP22XH//4x90zn/nMNkgxfIgCAABAFeJ/msve\u002BTe\u002B8Y1tAGDHHXdsUT465HM8fo7xf/azn93WAcj1mTmwwQYbjOzlHy/\u002B89w5bv\u002BKK65o1\u002BX13vve97ap/nnN/jI34j/H9Q\u002BfLSDbmvUD8nq5f7a3v\u002BQwiKw9kFMMAgAAVCP\u002BadGdY\u002BNz7Htie3TI5zCBxPmTnvSkNrU/x/ZvvPHGbRG\u002B3kTiP8G\u002BzTbbtOPrDzjggHaoQQYbtt9\u002B\u002BwnF/2WXXdbif/PNN58h6ica/3m9LBi45pprtoUHAQAApgvxP83k2PvhveZxxhlntOPgM/0\u002Btw2HfOI8K\u002BYnphPf45lI/GfP\u002BzrrrNP2vvczBvJ6W2\u002B99Qzxn8MBnvjEJ3YbbbRROwa/1w8K5KwDd9xxR7vurrvuagv6ZUBiVvGf13rnO9/ZDlc466yzBteOLYc25LkBAAAqEP/TSPaib7LJJm0RvgMPPLCdGi/H8ye0E/859j1Gh3xW5c/e\u002BlwS1U95ylNagH/iE59o0/hjIvGfmM7e/MR3jrnP3vcsHJgp98Pxn7MH5JCCLAKY583MgwwWZCAgZxDIXv68dhbte/3rXz9yWsBZxX/8/Oc/b6\u002Bf4/vzvFdddVVbt2DPPffsjjzyyBb9GfDI2QHynHnvAAAACzrxP80k8DPtffh4\u002ByyAl/PcJ3yjj/3EcCSSc1aA1772tW2hv49\u002B9KNtMb0cApD/Zi/86MdEwjsr\u002BSfEE\u002BTxm9/8pg029K\u002BdPfnvfve728KDOc1fZDuOOuqoNiCR\u002B2QQIOsOxLnnntvOy98/PgsV5hCCHLaQ8/1Hgn6VVVZpAw\u002Bj4z/PnYGHvOf\u002BOXLJ4QQZaOjjf7vttmvv71vf\u002BtbgkQAAAAsu8T9NZfp/9rQnyvvo7\u002BXvt99\u002B\u002B8h/s5d/3XXXnWExvER19rrnXP\u002BXX375DI8Zlvtllf1hietLLrmkndovf85jRt8n8nwXXnjhvRbh6x\u002Bf2QT96\u002BXxw6\u002Bdv48O/2G5bx7/hz/8obv22msH194jhwgMn/4QAABgQSb\u002Bmal\u002Bhfzsbc9q\u002B70MHGSv/fOe97w2TR8AAID5l/hnprKHPFP5c5z8wgsv3I7fz2n\u002Bcpz9k5/85DaNHwAAgPmb\u002BGdCMgPguOOOawsFHnLIId0vf/nLmU6rBwAAYP4h/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAP\u002Bv/TqgAQAAQBjUP7X2\u002BKAFAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAGnbAaVcjcfLuuvkAAAAAElFTkSuQmCC",
"Width": 1023,
"Height": 1448,
"Number": 1,
"ScaleFactor": 1.720083236694336,
"Acrofields": [
{
"Name": "Text1",
"Type": "TextBox",
"DefaultValue": "",
"Left": 303.6525526771191,
"Top": 250.64718005025634,
"Width": 297.24092532109705,
"Height": 37.847112936203956,
"Options": {}
},
{
"Name": "Check Box1",
"Type": "CheckBox",
"DefaultValue": false,
"Left": 303.8091079788211,
"Top": 330.13128322624016,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "Check Box2",
"Type": "CheckBox",
"DefaultValue": false,
"Left": 353.2666707898398,
"Top": 330.13128322624016,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "RadioGroup1",
"Type": "RadioButton",
"DefaultValue": false,
"Left": 303.8091079788211,
"Top": 413.1489582118668,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "RadioGroup1",
"Type": "RadioButton",
"DefaultValue": false,
"Left": 351.49991113506906,
"Top": 413.1489582118668,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "RadioGroup1",
"Type": "RadioButton",
"DefaultValue": false,
"Left": 402.7225273475703,
"Top": 413.1489582118668,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "Dropdown1",
"Type": "ComboBox",
"DefaultValue": "1",
"Left": 303.6525526771191,
"Top": 488.87079913749244,
"Width": 123.86327870030385,
"Height": 34.40646630563996,
"Options": {
"1": "1",
"2": "2",
"3": "3"
}
},
{
"Name": "Signature1",
"Type": "SignatureArea",
"DefaultValue": "",
"Left": 303.6525526771191,
"Top": 577.4174172780961,
"Width": 298.6739155826517,
"Height": 176.9267059602823,
"Options": {}
}
]
}
Form Data Input
To input form data using the tablet pen a virtual keyboard in used. When an input field is clicked the keyboard is displayed:
In addition to data entry a number of features are supported by the keyboard:
- to exit from keyboard input click the page display away from a form field
- to accept the input click the Return key
- to select an alternative keyboard (if configured) click the national flag image
- to move to the next input field click the InputStepping button:
Thumbnail Data
Thumbnail data can be supplied as individual pages or as a collection.
Use pdfHelper to generate the data for a document:
- PageNumber
- Base64Image
DocumentView will include the ToggleThumbnails action button to display the page summary images:
Clicking an image results in the Client-Server message ThumbnailClickedMessage containing the selected page number. The Server app responds to the message by sending the selected page to the Client for an updated display.
The data is normally supplied with the OpenDocumentPageMessage.
Alternatively the data can be sent in a separate UpdateThumbnailsMessage. This approach can be used to reduce the display refresh time by reducing the data sent in the original OpenDocumentPageMessage.
UpdateThumbnailsMessage
Message Data | Description |
---|---|
WithData | PageNumber, Base64Image |
After supplying OpenDocumentPageMessage, thumbnail data can be added to the display. Thumbnail data can be supplied as individual pages or a collection, using pdfHelper.
SetDocumentZoomMessage
Message Data | Description |
---|---|
WithZoom | Zoom factor value |
Important Note: By default, the zooming function's accepted values are rendered with
.
for a decimal point. For example,1.00
for 100% and0.00
for 0%. Users from countries that render the decimal point as an,
rather than a.
will need to adjust this. For eample, users wishing for a zoom of 150% will need to set the value from1.5
to1,5
.
SetElementEnabledMessage
Message Data | Description |
---|---|
WithName | The button name |
WithState | Sets the enable/disable state |
SetElementValueMessage
Message Data | Description |
---|---|
WithName | The button name |
WithValue | Sets the enable/disable state |
The code snippet below illustrates how users may specify an element's value.
SetElementValueMessage DocView
private void SetValueClick(object sender, RoutedEventArgs e)
{
if (ActiveClient != null)
{
string eltName = txtElementName.Text;
string eltValue = txtElementValue.Text;
SendMessage(new SetElementValueMessage(KioskServer.Sender)
.WithName(eltName)
.WithValue(eltValue)
.Build()
.ToByteArray());
}
}
Client-Server messages:
OperationSuccessMessage
OperationFailedMessage
InputChangedMessage
Message Data | Description |
---|---|
ControlName | name of the control from the page json data |
ControlValue | text entered in the field |
ThumbnailClickedMessage
Message Data | Description |
---|---|
PageNumber | PageNumber 1...n indicates the selected thumbnail image |
ButtonClickedMessage
Message Data | Description |
---|---|
ButtonName | name of the button from the DocumentView.xaml definition |
SignatureClickedMessage
Message Data | Description |
---|---|
SignatureFieldName | name of the signature control clicked |
PageDataMessage
Message Data | Description |
---|---|
PageData | Collection of all page field data values [Key, Value]. Empty fields returned with "". e.g. "Field1","value1" "Field2","" "Field3","value3" |