BizTalk-Get to know functoid.
This article is intended to give you a general idea about what’s functoid in BizTalk. Functoid is no more than a piece of .Net code...
Summary: This article is intended to give you a general idea about what’s functoid in BizTalk. Functoid is no more than a piece of .Net code whichn can perform a complete function.
1. Get Reflector ready before we get started. It can help us to disassemble DLLs and executables, get it from http://www.aisto.com/roeder/dotnet
2. Prepare functoids assembly, once you have BizTalk installed, Microsoft.BizTalk.BaseFunctoids.dll can be found on your machine.
3. Open Microsoft.BizTalk.BaseFunctoids.dll in Reflector and expand this DLL you can find many classes/enumerations such as AssertFunctoid, BaseFunctoid, etc. Take a look at the following screenshot for reference.
![](https://www.cnblogs.com/images/cnblogs_com/netboy/Functoids.jpg)
4. Every functoid is a class. Just right click on one class you want and select Disassemble. Sorry, I choose BaseFunctoidIDs here, it is an enumeration type. Basically it contains all the functoids coming with BizTalk 2006 R2. (I use BizTalk 2006 R2, I cannot guarantee you can get the same result if you are working with other versions).
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
BaseFunctoidIDs
1
[ComVisible(true)]
2
public enum BaseFunctoidIDs
3![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
4
Assert = 0x2c3,
5
ConvertAsc = 0x7e,
6
ConvertChr = 0x7f,
7
ConvertHex = 0x80,
8
ConvertOct = 0x81,
9
Count = 0x142,
10
CumulativeAvg = 0x145,
11
CumulativeConcat = 0x148,
12
CumulativeMax = 0x147,
13
CumulativeMin = 0x146,
14
CumulativeSum = 0x144,
15
DateAddDays = 0x7a,
16
DateCurrentDate = 0x7b,
17
DateCurrentDateTime = 0x7d,
18
DateCurrentTime = 0x7c,
19
DBErrorExtract = 0x23f,
20
DBLookup = 0x20c,
21
DBValueExtract = 0x23e,
22
ExistenceLooping = 0x321,
23
Index = 0x143,
24
IsNil = 0x2c2,
25
Iteration = 0x1da,
26
KeyMatch = 800,
27
LogicalAnd = 0x141,
28
LogicalEq = 0x13b,
29
LogicalExistence = 0x2bd,
30
LogicalGt = 0x137,
31
LogicalGte = 0x138,
32
LogicalIsDate = 0x13e,
33
LogicalIsNumeric = 0x13f,
34
LogicalIsString = 0x13d,
35
LogicalLt = 0x139,
36
LogicalLte = 0x13a,
37
LogicalNe = 0x13c,
38
LogicalNot = 0x2c1,
39
LogicalOr = 320,
40
Looping = 0x1a8,
41
MassCopy = 0x322,
42
MathAbs = 0x6f,
43
MathAdd = 0x76,
44
MathDivide = 0x79,
45
MathInt = 0x70,
46
MathMax = 0x71,
47
MathMin = 0x72,
48
MathMod = 0x73,
49
MathMultiply = 120,
50
MathRound = 0x74,
51
MathSqrt = 0x75,
52
MathSubtract = 0x77,
53
NilValue = 0x178,
54
SciArcTan = 130,
55
SciCos = 0x83,
56
SciExp = 0x86,
57
SciExp10 = 0x88,
58
SciLog = 0x87,
59
SciLog10 = 0x89,
60
SciLogn = 0x8b,
61
SciPow = 0x8a,
62
SciSin = 0x84,
63
SciTan = 0x85,
64
Scripter = 260,
65
StringConcatenate = 0x6b,
66
StringFind = 0x65,
67
StringLeft = 0x66,
68
StringLowerCase = 0x67,
69
StringRight = 0x68,
70
StringSize = 0x69,
71
StringSubstring = 0x6a,
72
StringTrimLeft = 0x6c,
73
StringTrimRight = 0x6d,
74
StringUpperCase = 110,
75
TableExtractor = 0x2c0,
76
TableLooping = 0x2bf,
77
ValueMapping = 0x177,
78
ValueMappingFlattening = 0x176,
79
XPath = 0x2be
80
}
81![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
82
83
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
BaseFunctoid
1
public abstract class BaseFunctoid
2![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
3
// Fields
4
private Bitmap myBitmap;
5
private Bitmap myBitmap16;
6
private FunctoidCategory myCategory;
7
private string myDescription;
8
private string myExternalAssembly;
9
private string myExternalAssemblyPartialName;
10
private string myExternalAssemblyPath;
11
private string myExternalClassName;
12
private string[] myExternalFunctionNames = new string[3];
13
private bool myHasSideEffects = true;
14
private bool myHasVariableInputs = false;
15
private int myID;
16
private InlineGlobalHelperFunction myInlineGlobalHelperFunctions = InlineGlobalHelperFunction.None;
17
private IList myInputConnectionTypeList = new ArrayList();
18
private Hashtable myMapScriptInfoCache = new Hashtable();
19
private int myMaxParams = -1;
20
private int myMinParams = -1;
21
private string myName;
22
private ConnectionType myOutputConnectionType;
23
private IDictionary myResMgrDict = new Hashtable();
24
private string myResourceAssemblyName;
25
private Hashtable myScriptBuffers = new Hashtable();
26
private Hashtable myScriptGlobalsBuffers = new Hashtable();
27
private Hashtable mySupportedScriptTypes = new Hashtable();
28
private string myTooltip;
29![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
// Methods
31
protected BaseFunctoid()
32![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
33
}
34![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
protected void AddInputConnectionType(ConnectionType connType)
36![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
37
this.myInputConnectionTypeList.Add(connType);
38
}
39![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
public void AddScriptTypeSupport(ScriptType scriptType)
41![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
42
if (!this.mySupportedScriptTypes.ContainsKey(scriptType))
43![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
44
this.mySupportedScriptTypes[scriptType] = true;
45
}
46
this.ClearScriptInfoCache(scriptType);
47
}
48![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
protected string BuildDynamicScriptHeader(string functionName, string returnType, string paramType, int numParams)
50![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
51
StringBuilder builder = new StringBuilder();
52
builder.Append("public ");
53
builder.Append(returnType);
54
builder.Append(" ");
55
builder.Append(functionName);
56
builder.Append("(");
57
for (int i = 0; i < numParams; i++)
58![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
59
if (i > 0)
60![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
61
builder.Append(", ");
62
}
63
builder.Append(paramType);
64
builder.Append(" param");
65
builder.Append(i.ToString(CultureInfo.InvariantCulture));
66
}
67
builder.Append(")\n");
68
return builder.ToString();
69
}
70![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
private void ClearScriptInfoCache(ScriptType scriptType)
72![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
73
if (this.myMapScriptInfoCache.ContainsKey(scriptType))
74![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
75
this.myMapScriptInfoCache.Remove(scriptType);
76
}
77
}
78![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
public static BaseFunctoid CreateScripterClone(BaseFunctoid functoidOrig)
80![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
81
if (functoidOrig == null)
82![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
83
throw new ArgumentNullException("functoidOrig");
84
}
85
BaseFunctoid functoid = new ScripterFunctoid();
86
functoid.myResourceAssemblyName = functoidOrig.myResourceAssemblyName;
87
functoid.myID = functoidOrig.myID;
88
functoid.myName = functoidOrig.myName;
89
functoid.myTooltip = functoidOrig.myTooltip;
90
functoid.myDescription = functoidOrig.myDescription;
91
functoid.myCategory = functoidOrig.myCategory;
92
functoid.myBitmap = functoidOrig.myBitmap;
93
functoid.myBitmap16 = functoidOrig.myBitmap16;
94
functoid.myCategory = functoidOrig.myCategory;
95
functoid.myMinParams = functoidOrig.myMinParams;
96
functoid.myMaxParams = functoidOrig.myMaxParams;
97
functoid.myOutputConnectionType = functoidOrig.myOutputConnectionType;
98
functoid.myInputConnectionTypeList = functoidOrig.myInputConnectionTypeList;
99
functoid.myHasVariableInputs = functoidOrig.myHasVariableInputs;
100
functoid.myResMgrDict = functoidOrig.myResMgrDict;
101
functoid.myInlineGlobalHelperFunctions = functoidOrig.myInlineGlobalHelperFunctions;
102
return functoid;
103
}
104![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105
public ScriptType GetBestSupportedScriptType(ArrayList listScriptTypePrecedence)
106![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
107
if (listScriptTypePrecedence != null)
108![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
109
foreach (ScriptTypePrecedenceNode node in listScriptTypePrecedence)
110![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
111
if (((node != null) && node.Enabled) && this.mySupportedScriptTypes.ContainsKey(node.ScriptType))
112![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
113
return node.ScriptType;
114
}
115
}
116
}
117
return ScriptType.None;
118
}
119![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
protected string GetExternalFunctionName(int functionNumber)
121![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
122
if ((functionNumber < 0) || (functionNumber >= this.myExternalFunctionNames.Length))
123![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
124
throw new ArgumentOutOfRangeException("functionNumber", BaseFunctoidsResourceManager.GetResourceString("IDS_INVALID_FUNCTOID_FUNCTION_NUMBER"));
125
}
126
return this.myExternalFunctionNames[functionNumber];
127
}
128![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
129
public string GetFunctionName(ScriptType scriptType)
130![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
131
return this.GetFunctionName(scriptType, 0);
132
}
133![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
134
public string GetFunctionName(ScriptType scriptType, int functionNumber)
135![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
136
if (!IsValidScriptType(scriptType))
137![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
138
throw new ArgumentOutOfRangeException("scriptType", BaseFunctoidsResourceManager.GetResourceString("IDS_INVALID_SCRIPT_TYPE"));
139
}
140
if (!this.IsValidFunctionNumber(functionNumber))
141![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
142
throw new ArgumentOutOfRangeException("functionNumber", BaseFunctoidsResourceManager.GetResourceString("IDS_INVALID_FUNCTOID_FUNCTION_NUMBER"));
143
}
144
if (functionNumber == 0)
145![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
146
return this.UpdateScriptInfoCache(scriptType).MethodName;
147
}
148
switch (scriptType)
149![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
150
case ScriptType.ExternalAssembly:
151
return this.GetExternalFunctionName(functionNumber);
152![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
153
case ScriptType.Xslt:
154
return "";
155
}
156
return this.GetScriptingLanguageFunctionName(scriptType, functionNumber);
157
}
158![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
159
public static string GetInlineGlobalHelperScriptBuffer(ScriptType scriptType, InlineGlobalHelperFunction functions)
160![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
161
switch (scriptType)
162![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
163
case ScriptType.VbNet:
164
return GetInlineGlobalHelperScriptBufferVbNet(functions);
165![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
166
case ScriptType.CSharp:
167
return GetInlineGlobalHelperScriptBufferCSharp(functions);
168![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
case ScriptType.JScript:
170
return GetInlineGlobalHelperScriptBufferJScript(functions);
171
}
172
return "";
173
}
174![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
175
private static string GetInlineGlobalHelperScriptBufferCSharp(InlineGlobalHelperFunction functions)
176![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
177
StringBuilder builder = new StringBuilder();
178
if (InlineGlobalHelperFunction.IsNumeric == (functions & InlineGlobalHelperFunction.IsNumeric))
179![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
180
builder.Append("public bool IsNumeric(string val)\n");
181
builder.Append("{\n");
182
builder.Append("\tif (val == null)\n");
183
builder.Append("\t{\n");
184
builder.Append("\t\treturn false;\n");
185
builder.Append("\t}\n");
186
builder.Append("\tdouble d = 0;\n");
187
builder.Append("\treturn Double.TryParse(val, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out d);\n");
188
builder.Append("}\n\n");
189
builder.Append("public bool IsNumeric(string val, ref double d)\n");
190
builder.Append("{\n");
191
builder.Append("\tif (val == null)\n");
192
builder.Append("\t{\n");
193
builder.Append("\t\treturn false;\n");
194
builder.Append("\t}\n");
195
builder.Append("\treturn Double.TryParse(val, System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out d);\n");
196
builder.Append("}\n\n");
197
}
198
if (InlineGlobalHelperFunction.IsDate == (functions & InlineGlobalHelperFunction.IsDate))
199![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
200
builder.Append("public bool IsDate(string val)\n");
201
builder.Append("{\n");
202
builder.Append("\tbool retval = true;\n");
203
builder.Append("\ttry\n");
204
builder.Append("\t{\n");
205
builder.Append("\t\tDateTime dt = Convert.ToDateTime(val, System.Globalization.CultureInfo.InvariantCulture);\n");
206
builder.Append("\t}\n");
207
builder.Append("\tcatch (Exception)\n");
208
builder.Append("\t{\n");
209
builder.Append("\t\tretval = false;\n");
210
builder.Append("\t}\n");
211
builder.Append("\treturn retval;\n");
212
builder.Append("}\n\n");
213
}
214
if (InlineGlobalHelperFunction.ValToBool == (functions & InlineGlobalHelperFunction.ValToBool))
215![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
216
builder.Append("public bool ValToBool(string val)\n");
217
builder.Append("{\n");
218
builder.Append("\tif (val != null)\n");
219
builder.Append("\t{\n");
220
builder.Append("\t\tif (string.Compare(val, bool.TrueString, StringComparison.OrdinalIgnoreCase) == 0)\n");
221
builder.Append("\t\t{\n");
222
builder.Append("\t\t\treturn true;\n");
223
builder.Append("\t\t}\n");
224
builder.Append("\t\tif (string.Compare(val, bool.FalseString, StringComparison.OrdinalIgnoreCase) == 0)\n");
225
builder.Append("\t\t{\n");
226
builder.Append("\t\t\treturn false;\n");
227
builder.Append("\t\t}\n");
228
builder.Append("\t\tval = val.Trim();\n");
229
builder.Append("\t\tif (string.Compare(val, bool.TrueString, StringComparison.OrdinalIgnoreCase) == 0)\n");
230
builder.Append("\t\t{\n");
231
builder.Append("\t\t\treturn true;\n");
232
builder.Append("\t\t}\n");
233
builder.Append("\t\tif (string.Compare(val, bool.FalseString, StringComparison.OrdinalIgnoreCase) == 0)\n");
234
builder.Append("\t\t{\n");
235
builder.Append("\t\t\treturn false;\n");
236
builder.Append("\t\t}\n");
237
builder.Append("\t\tdouble d = 0;\n");
238
builder.Append("\t\tif (IsNumeric(val, ref d))\n");
239
builder.Append("\t\t{\n");
240
builder.Append("\t\t\treturn (d > 0);\n");
241
builder.Append("\t\t}\n");
242
builder.Append("\t}\n");
243
builder.Append("\treturn false;\n");
244
builder.Append("}\n\n");
245
}
246
return builder.ToString();
247
}
248![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
249
private static string GetInlineGlobalHelperScriptBufferJScript(InlineGlobalHelperFunction functions)
250![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
251
return "";
252
}
253![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
254
private static string GetInlineGlobalHelperScriptBufferVbNet(InlineGlobalHelperFunction functions)
255![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
256
return "";
257
}
258![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
259
protected virtual string GetInlineScriptBuffer(ScriptType scriptType, int numParams, int functionNumber)
260![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
261
if (this.myScriptBuffers.ContainsKey(scriptType))
262![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
263
string[] strArray = (string[]) this.myScriptBuffers[scriptType];
264
return strArray[functionNumber];
265
}
266
return "";
267
}
268![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
269
public ConnectionType GetInputConnectionType(int param)
270![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
271
ConnectionType all = ConnectionType.All;
272
if (param < this.myInputConnectionTypeList.Count)
273![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
274
all = (ConnectionType) this.myInputConnectionTypeList[param];
275
}
276
return all;
277
}
278![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
279
public int GetMaxParams(ScriptType scriptType)
280![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
281
int count = 0;
282
if (this.myMaxParams == -1)
283![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
284
int scriptmin = 0;
285
int scriptmax = 0;
286
if (this.GetMinMaxScriptParams(scriptType, out scriptmin, out scriptmax))
287![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
288
return scriptmax;
289
}
290
if (this.HasVariableInputs)
291![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
292
return 100;
293
}
294
if (this.myInputConnectionTypeList.Count > 0)
295![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
296
count = this.myInputConnectionTypeList.Count;
297
}
298
return count;
299
}
300
return this.myMaxParams;
301
}
302![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
303
private bool GetMinMaxScriptParams(ScriptType scriptType, out int scriptmin, out int scriptmax)
304![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
305
scriptmin = 0;
306
scriptmax = 0;
307
if (this.mySupportedScriptTypes.Count == 0)
308![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
309
return false;
310
}
311
if ((scriptType != ScriptType.None) && (ScriptType.Xslt != scriptType))
312![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
313
ScriptInfo info = this.UpdateScriptInfoCache(scriptType);
314
scriptmin = info.Min;
315
scriptmax = info.Max;
316
}
317
return true;
318
}
319![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
320
public int GetMinParams(ScriptType scriptType)
321![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
322
int count = 0;
323
if (this.myMinParams == -1)
324![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
325
int scriptmin = 0;
326
int scriptmax = 0;
327
if (this.GetMinMaxScriptParams(scriptType, out scriptmin, out scriptmax))
328![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
329
return scriptmin;
330
}
331
if (this.myInputConnectionTypeList.Count > 0)
332![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
333
count = this.myInputConnectionTypeList.Count;
334
}
335
return count;
336
}
337
return this.myMinParams;
338
}
339![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
340
protected ResourceManager GetResourceManager(string resourceAssemblyName)
341![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
342
if (string.IsNullOrEmpty(resourceAssemblyName))
343![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
344
return null;
345
}
346
ResourceManager manager = null;
347
try
348![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
349
manager = (ResourceManager) this.myResMgrDict[resourceAssemblyName];
350
}
351
catch (Exception)
352![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
353
}
354
return manager;
355
}
356![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
357
public string GetScriptBuffer(ScriptType scriptType)
358![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
359
return this.GetScriptBuffer(scriptType, 0);
360
}
361![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
362
public string GetScriptBuffer(ScriptType scriptType, int numParams)
363![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
364
return this.GetScriptBuffer(scriptType, numParams, 0);
365
}
366![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
367
public string GetScriptBuffer(ScriptType scriptType, int numParams, int functionNumber)
368![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
369
return this.GetInlineScriptBuffer(scriptType, numParams, functionNumber);
370
}
371![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
372
public string GetScriptGlobalBuffer(ScriptType scriptType)
373![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
374
if (this.myScriptGlobalsBuffers.ContainsKey(scriptType))
375![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
376
return (string) this.myScriptGlobalsBuffers[scriptType];
377
}
378
return null;
379
}
380![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
381
private string GetScriptingLanguageFunctionName(ScriptType scriptType, int functionNumber)
382![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
383
string str;
384
int num;
385
new InlineScriptCompiler().GetMethodInfo(scriptType, this.GetScriptBuffer(scriptType, 0, functionNumber), this.GetScriptGlobalBuffer(scriptType), this.RequiredGlobalHelperFunctions, out str, out num);
386
return str;
387
}
388![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
389
public static bool IsDate(string val)
390![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
391
DateTime time;
392
if (string.IsNullOrEmpty(val))
393![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
394
return false;
395
}
396
return DateTime.TryParse(val, CultureInfo.InvariantCulture, DateTimeStyles.None, out time);
397
}
398![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
399
public static bool IsNumeric(string val)
400![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
401
if (string.IsNullOrEmpty(val))
402![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
403
return false;
404
}
405
double result = 0.0;
406
return double.TryParse(val, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out result);
407
}
408![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
409
public static bool IsNumeric(string val, ref double d)
410![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
411
d = 0.0;
412
if (string.IsNullOrEmpty(val))
413![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
414
return false;
415
}
416
return double.TryParse(val, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out d);
417
}
418![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
419
public bool IsSupportedScriptType(ScriptType scriptType)
420![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
421
return this.mySupportedScriptTypes.ContainsKey(scriptType);
422
}
423![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
424
private bool IsValidFunctionNumber(int functionNumber)
425![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
426
int num = 0;
427
int num2 = 0;
428
if (FunctoidCategory.DatabaseLookup == this.Category)
429![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
430
num2 = 1;
431
}
432
else if (FunctoidCategory.Cumulative == this.Category)
433![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
434
num2 = 2;
435
}
436
return ((num <= functionNumber) && (functionNumber <= num2));
437
}
438![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
439
public static bool IsValidScriptType(ScriptType scriptType)
440![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
441
if ((((scriptType != ScriptType.None) && (ScriptType.ExternalAssembly != scriptType)) && ((ScriptType.Xslt != scriptType) && (ScriptType.XsltCallTemplate != scriptType))) && (((ScriptType.VbNet != scriptType) && (ScriptType.CSharp != scriptType)) && (ScriptType.JScript != scriptType)))
442![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
443
return (ScriptType.JSharp == scriptType);
444
}
445
return true;
446
}
447![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
448
protected Bitmap LoadBitmap(string resourceAssemblyName, string resourceID)
449![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
450
ResourceManager resourceManager = this.GetResourceManager(resourceAssemblyName);
451
if (resourceManager != null)
452![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
453
return (resourceManager.GetObject(resourceID, Thread.CurrentThread.CurrentUICulture) as Bitmap);
454
}
455
return null;
456
}
457![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
458
protected string LoadString(string resourceAssemblyName, string resourceID)
459![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
460
ResourceManager resourceManager = this.GetResourceManager(resourceAssemblyName);
461
if (resourceManager != null)
462![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
463
return resourceManager.GetString(resourceID, Thread.CurrentThread.CurrentUICulture);
464
}
465
return null;
466
}
467![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
468
public void RemoveScriptTypeSupport(ScriptType scriptType)
469![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
470
if (this.mySupportedScriptTypes.ContainsKey(scriptType))
471![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
472
this.mySupportedScriptTypes.Remove(scriptType);
473
}
474
}
475![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
476
protected void SetBitmap(string resourceID)
477![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
478
this.myBitmap = this.LoadBitmap(this.myResourceAssemblyName, resourceID);
479
try
480![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
481
this.myBitmap16 = this.LoadBitmap(this.myResourceAssemblyName, resourceID + "_16");
482
}
483
catch (Exception)
484![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
485
this.myBitmap16 = this.myBitmap;
486
}
487
}
488![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
489
protected void SetDescription(string resourceID)
490![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
491
this.Description = this.LoadString(this.myResourceAssemblyName, resourceID);
492
}
493![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
494
public void SetExternalFunctionName(string assemblyName, string className, string functionName)
495![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
496
this.AddScriptTypeSupport(ScriptType.ExternalAssembly);
497
this.ExternalAssembly = assemblyName;
498
this.ExternalClassName = className;
499
this.myExternalFunctionNames[0] = functionName;
500
}
501![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
502
public void SetExternalFunctionName(string assemblyPartialName, string assemblyName, string className, string functionName)
503![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
504
this.ExternalAssemblyPartialName = assemblyPartialName;
505
this.SetExternalFunctionName(assemblyName, className, functionName);
506
}
507![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
508
public void SetExternalFunctionName2(string functionName2)
509![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
510
this.myExternalFunctionNames[1] = functionName2;
511
}
512![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
513
public void SetExternalFunctionName3(string functionName3)
514![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
515
this.myExternalFunctionNames[2] = functionName3;
516
}
517![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
518
public void SetExternalFunctionNameWithAsmPath(string assemblyName, string assemblyPath, string className, string functionName)
519![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
520
this.AddScriptTypeSupport(ScriptType.ExternalAssembly);
521
this.ExternalAssembly = assemblyName;
522
this.ExternalAssemblyPath = assemblyPath;
523
this.ExternalClassName = className;
524
this.myExternalFunctionNames[0] = functionName;
525
}
526![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
527
public void SetMaxParams(int maxParams)
528![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
529
this.myMaxParams = maxParams;
530
}
531![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
532
public void SetMinParams(int minParams)
533![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
534
this.myMinParams = minParams;
535
}
536![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
537
protected void SetName(string resourceID)
538![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
539
this.Name = this.LoadString(this.myResourceAssemblyName, resourceID);
540
}
541![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
542
public void SetScriptBuffer(ScriptType scriptType, string scriptBuffer)
543![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
544
this.SetScriptBuffer(scriptType, scriptBuffer, 0);
545
}
546![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
547
public void SetScriptBuffer(ScriptType scriptType, string scriptBuffer, int functionNumber)
548![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
549
string[] strArray = null;
550
if (this.myScriptBuffers.ContainsKey(scriptType))
551![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
552
strArray = (string[]) this.myScriptBuffers[scriptType];
553
}
554
else
555![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
556
strArray = new string[3];
557
this.myScriptBuffers[scriptType] = strArray;
558
}
559
strArray[functionNumber] = scriptBuffer;
560
this.AddScriptTypeSupport(scriptType);
561
}
562![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
563
public void SetScriptGlobalBuffer(ScriptType scriptType, string scriptGlobalsBuffer)
564![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
565
if (this.myScriptGlobalsBuffers.ContainsKey(scriptType))
566![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
567
this.myScriptGlobalsBuffers.Remove(scriptType);
568
}
569
this.myScriptGlobalsBuffers.Add(scriptType, scriptGlobalsBuffer);
570
}
571![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
572
protected void SetTooltip(string resourceID)
573![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
574
this.Tooltip = this.LoadString(this.myResourceAssemblyName, resourceID);
575
}
576![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
577
protected void SetupResourceAssembly(string resAsmName, Assembly resAssembly)
578![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
579
this.myResourceAssemblyName = resAsmName;
580
ResourceManager manager = null;
581
try
582![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
583
manager = (ResourceManager) this.myResMgrDict[this.myResourceAssemblyName];
584
}
585
catch (Exception)
586![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
587
}
588
if (manager == null)
589![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
590
try
591![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
592
manager = new ResourceManager(this.myResourceAssemblyName, resAssembly);
593
manager.GetObject("__xx__xx__xx__xx__", Thread.CurrentThread.CurrentUICulture);
594
}
595
catch (Exception)
596![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
597
manager = null;
598
}
599
if (manager != null)
600![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
601
this.myResMgrDict[this.myResourceAssemblyName] = manager;
602
}
603
}
604
}
605![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
606
private ScriptInfo UpdateScriptInfoCache(ScriptType scriptType)
607![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
608
int min = 0;
609
int max = 0;
610
string methodName = "";
611
ScriptInfo info = null;
612
if (this.myMapScriptInfoCache.ContainsKey(scriptType))
613![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
614
return (ScriptInfo) this.myMapScriptInfoCache[scriptType];
615
}
616
if (ScriptType.ExternalAssembly == scriptType)
617![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
618
methodName = this.GetExternalFunctionName(0);
619
if (this.myMinParams != -1)
620![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
621
min = this.myMinParams;
622
}
623
else if (this.myInputConnectionTypeList.Count > 0)
624![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
625
min = this.myInputConnectionTypeList.Count;
626
}
627
if (this.myMaxParams != -1)
628![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
629
max = this.myMaxParams;
630
}
631
else if (this.HasVariableInputs)
632![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
633
max = 100;
634
}
635
else
636![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
637
max = (this.myInputConnectionTypeList.Count > 0) ? this.myInputConnectionTypeList.Count : 100;
638
}
639
}
640
else if (((ScriptType.CSharp == scriptType) || (ScriptType.VbNet == scriptType)) || (((ScriptType.JScript == scriptType) || (ScriptType.JSharp == scriptType)) || (ScriptType.XsltCallTemplate == scriptType)))
641![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
642
int num3;
643
new InlineScriptCompiler().GetMethodInfo(scriptType, this.GetScriptBuffer(scriptType), this.GetScriptGlobalBuffer(scriptType), this.RequiredGlobalHelperFunctions, out methodName, out num3);
644
min = num3;
645
max = num3;
646
if ((max == 0) && this.HasVariableInputs)
647![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
648
max = 100;
649
}
650
}
651
else
652![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
653
min = 0;
654
max = 0;
655
methodName = "";
656
}
657
info = new ScriptInfo(min, max, methodName);
658
this.myMapScriptInfoCache[scriptType] = info;
659
return info;
660
}
661![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
662
// Properties
663
public FunctoidCategory Category
664![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
665
get
666![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
667
return this.myCategory;
668
}
669
set
670![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
671
this.myCategory = value;
672
}
673
}
674![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
675
public string Description
676![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
677
get
678![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
679
return this.myDescription;
680
}
681
set
682![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
683
this.myDescription = value;
684
}
685
}
686![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
687
public string ExternalAssembly
688![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
689
get
690![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
691
return this.myExternalAssembly;
692
}
693
set
694![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
695
this.myExternalAssembly = value;
696
}
697
}
698![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
699
public string ExternalAssemblyPartialName
700![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
701
get
702![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
703
return this.myExternalAssemblyPartialName;
704
}
705
set
706![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
707
this.myExternalAssemblyPartialName = value;
708
}
709
}
710![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
711
public string ExternalAssemblyPath
712![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
713
get
714![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
715
return this.myExternalAssemblyPath;
716
}
717
set
718![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
719
this.myExternalAssemblyPath = value;
720
}
721
}
722![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
723
public string ExternalClassName
724![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
725
get
726![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
727
return this.myExternalClassName;
728
}
729
set
730![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
731
this.myExternalClassName = value;
732
}
733
}
734![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
735
public bool HasSideEffects
736![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
737
get
738![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
739
return this.myHasSideEffects;
740
}
741
set
742![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
743
this.myHasSideEffects = value;
744
}
745
}
746![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
747
public bool HasVariableInputs
748![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
749
get
750![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
751
return this.myHasVariableInputs;
752
}
753
set
754![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
755
this.myHasVariableInputs = value;
756
}
757
}
758![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
759
public int ID
760![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
761
get
762![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
763
return this.myID;
764
}
765
set
766![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
767
this.myID = value;
768
}
769
}
770![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
771
public Bitmap Image
772![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
773
get
774![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
775
return this.myBitmap;
776
}
777
}
778![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
779
public Bitmap Image16
780![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
781
get
782![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
783
return this.myBitmap16;
784
}
785
}
786![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
787
public string Name
788![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
789
get
790![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
791
return this.myName;
792
}
793
set
794![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
795
this.myName = value;
796
}
797
}
798![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
799
public ConnectionType OutputConnectionType
800![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
801
get
802![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
803
return this.myOutputConnectionType;
804
}
805
set
806![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
807
this.myOutputConnectionType = value;
808
}
809
}
810![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
811
public InlineGlobalHelperFunction RequiredGlobalHelperFunctions
812![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
813
get
814![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
815
return this.myInlineGlobalHelperFunctions;
816
}
817
set
818![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
819
this.myInlineGlobalHelperFunctions = value;
820
}
821
}
822![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
823
public string Tooltip
824![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
825
get
826![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
827
return this.myTooltip;
828
}
829
set
830![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
831
this.myTooltip = value;
832
}
833
}
834
}
835![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
836
837
Collapse Methods
838
839
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
StringLeft
1
public string StringLeft(string str, string count)
2![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
3
string retval = "";
4
double d = 0;
5
if (str != null && IsNumeric(count, ref d))
6![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
7
int i = (int) d;
8
if (i > 0)
9![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
10
if (i <= str.Length)
11![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
12
retval = str.Substring(0, i);
13
}
14
else
15![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
16
retval = str;
17
}
18
}
19
}
20
return retval;
21
}
This function is gonna be used in physical map.
8. Create a map to use this functoid.
![](https://www.cnblogs.com/images/cnblogs_com/netboy/Map.jpg)
Right click on the map file (SourcetoTarget.btm) and select Validate map。Please remember, you can get the actual xsl file which will do the transform. From the output window the automatically generated xsl file can be found, open it. In this xsl file you can clearly find the StringLeft function mentioned above and its referenced function(s), IsNumeric in this case.
![](https://www.cnblogs.com/images/cnblogs_com/netboy/xsl.jpg)
The idea is when a functoid is put onto the surface of map, it will generate a function in xsl file, xsl can call this code at run time to do transfrom.
1. Get Reflector ready before we get started. It can help us to disassemble DLLs and executables, get it from http://www.aisto.com/roeder/dotnet
2. Prepare functoids assembly, once you have BizTalk installed, Microsoft.BizTalk.BaseFunctoids.dll can be found on your machine.
3. Open Microsoft.BizTalk.BaseFunctoids.dll in Reflector and expand this DLL you can find many classes/enumerations such as AssertFunctoid, BaseFunctoid, etc. Take a look at the following screenshot for reference.
![](https://www.cnblogs.com/images/cnblogs_com/netboy/Functoids.jpg)
4. Every functoid is a class. Just right click on one class you want and select Disassemble. Sorry, I choose BaseFunctoidIDs here, it is an enumeration type. Basically it contains all the functoids coming with BizTalk 2006 R2. (I use BizTalk 2006 R2, I cannot guarantee you can get the same result if you are working with other versions).
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
1
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5. Now I am choosing BaseFunctoid. It is a little big; every specific functoid will inherit from this abstract class.
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
1
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
85
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
88
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
91
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
96
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
97
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
98
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
102
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
103
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
106
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
107
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
109
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
111
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
112
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
113
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
114
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
115
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
116
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
117
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
118
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
119
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
121
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
122
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
124
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
125
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
127
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
128
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
129
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
130
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
131
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
132
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
133
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
134
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
136
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
137
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
138
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
139
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
140
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
142
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
143
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
144
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
145
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
146
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
147
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
148
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
149
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
150
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
151
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
152
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
153
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
154
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
155
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
156
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
157
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
158
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
159
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
160
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
161
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
162
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
163
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
164
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
165
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
166
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
167
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
168
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
170
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
171
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
172
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
173
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
174
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
175
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
176
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
177
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
178
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
179
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
180
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
181
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
182
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
183
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
184
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
186
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
187
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
188
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
189
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
190
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
191
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
192
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
193
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
194
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
195
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
196
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
197
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
198
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
199
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
200
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
201
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
202
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
203
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
204
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
205
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
206
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
207
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
208
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
209
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
210
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
211
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
212
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
213
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
214
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
215
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
216
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
217
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
218
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
219
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
220
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
221
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
222
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
223
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
224
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
225
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
226
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
227
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
228
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
229
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
230
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
231
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
232
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
233
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
234
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
235
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
236
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
237
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
238
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
239
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
240
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
241
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
242
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
243
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
244
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
245
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
246
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
247
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
248
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
249
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
250
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
251
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
252
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
253
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
254
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
255
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
256
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
257
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
258
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
259
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
260
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
261
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
262
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
263
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
264
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
265
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
266
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
267
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
268
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
269
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
270
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
271
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
272
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
273
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
274
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
275
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
276
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
277
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
278
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
279
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
280
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
281
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
282
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
283
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
284
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
285
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
286
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
287
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
288
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
289
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
290
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
291
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
292
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
293
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
294
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
295
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
296
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
297
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
298
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
299
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
300
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
301
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
302
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
303
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
304
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
305
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
306
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
307
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
308
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
309
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
310
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
311
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
312
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
313
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
314
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
315
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
316
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
317
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
318
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
319
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
320
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
321
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
322
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
323
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
324
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
325
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
326
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
327
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
328
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
329
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
330
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
331
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
332
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
333
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
334
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
335
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
336
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
337
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
338
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
339
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
340
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
341
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
342
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
343
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
344
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
345
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
346
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
347
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
348
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
349
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
350
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
351
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
352
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
353
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
354
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
355
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
356
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
357
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
358
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
359
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
360
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
361
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
362
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
363
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
364
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
365
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
366
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
367
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
368
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
369
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
370
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
371
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
372
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
373
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
374
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
375
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
376
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
377
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
378
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
379
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
380
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
381
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
382
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
383
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
384
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
385
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
386
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
387
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
388
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
389
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
390
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
391
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
392
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
393
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
394
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
395
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
396
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
397
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
398
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
399
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
400
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
401
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
402
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
403
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
404
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
405
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
406
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
407
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
408
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
409
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
410
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
411
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
412
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
413
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
414
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
415
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
416
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
417
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
418
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
419
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
420
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
421
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
422
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
423
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
424
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
425
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
426
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
427
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
428
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
429
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
430
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
431
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
432
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
433
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
434
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
435
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
436
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
437
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
438
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
439
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
440
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
441
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
442
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
443
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
444
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
445
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
446
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
447
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
448
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
449
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
450
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
451
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
452
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
453
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
454
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
455
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
456
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
457
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
458
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
459
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
460
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
461
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
462
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
463
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
464
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
465
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
466
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
467
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
468
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
469
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
470
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
471
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
472
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
473
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
474
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
475
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
476
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
477
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
478
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
479
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
480
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
481
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
482
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
483
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
484
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
485
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
486
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
487
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
488
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
489
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
490
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
491
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
492
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
493
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
494
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
495
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
496
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
497
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
498
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
499
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
500
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
501
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
502
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
503
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
504
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
505
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
506
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
507
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
508
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
509
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
510
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
511
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
512
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
513
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
514
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
515
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
516
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
517
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
518
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
519
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
520
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
521
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
522
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
523
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
524
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
525
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
526
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
527
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
528
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
529
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
530
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
531
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
532
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
533
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
534
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
535
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
536
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
537
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
538
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
539
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
540
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
541
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
542
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
543
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
544
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
545
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
546
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
547
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
548
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
549
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
550
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
551
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
552
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
553
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
554
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
555
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
556
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
557
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
558
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
559
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
560
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
561
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
562
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
563
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
564
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
565
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
566
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
567
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
568
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
569
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
570
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
571
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
572
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
573
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
574
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
575
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
576
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
577
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
578
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
579
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
580
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
581
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
582
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
583
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
584
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
585
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
586
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
587
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
588
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
589
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
590
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
591
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
592
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
593
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
594
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
595
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
596
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
597
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
598
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
599
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
600
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
601
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
602
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
603
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
604
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
605
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
606
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
607
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
608
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
609
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
610
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
611
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
612
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
613
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
614
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
615
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
616
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
617
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
618
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
619
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
620
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
621
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
622
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
623
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
624
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
625
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
626
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
627
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
628
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
629
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
630
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
631
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
632
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
633
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
634
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
635
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
636
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
637
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
638
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
639
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
640
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
641
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
642
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
643
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
644
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
645
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
646
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
647
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
648
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
649
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
650
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
651
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
652
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
653
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
654
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
655
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
656
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
657
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
658
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
659
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
660
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
661
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
662
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
663
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
664
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
665
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
666
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
667
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
668
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
669
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
670
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
671
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
672
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
673
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
674
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
675
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
676
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
677
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
678
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
679
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
680
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
681
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
682
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
683
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
684
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
685
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
686
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
687
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
688
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
689
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
690
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
691
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
692
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
693
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
694
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
695
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
696
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
697
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
698
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
699
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
700
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
701
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
702
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
703
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
704
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
705
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
706
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
707
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
708
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
709
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
710
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
711
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
712
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
713
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
714
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
715
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
716
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
717
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
718
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
719
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
720
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
721
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
722
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
723
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
724
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
725
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
726
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
727
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
728
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
729
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
730
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
731
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
732
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
733
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
734
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
735
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
736
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
737
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
738
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
739
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
740
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
741
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
742
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
743
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
744
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
745
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
746
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
747
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
748
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
749
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
750
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
751
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
752
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
753
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
754
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
755
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
756
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
757
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
758
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
759
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
760
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
761
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
762
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
763
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
764
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
765
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
766
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
767
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
768
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
769
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
770
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
771
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
772
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
773
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
774
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
775
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
776
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
777
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
778
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
779
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
780
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
781
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
782
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
783
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
784
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
785
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
786
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
787
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
788
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
789
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
790
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
791
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
792
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
793
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
794
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
795
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
796
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
797
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
798
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
799
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
800
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
801
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
802
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
803
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
804
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
805
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
806
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
807
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
808
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
809
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
810
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
811
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
812
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
813
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
814
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
815
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
816
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
817
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
818
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
819
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
820
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
821
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
822
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
823
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
824
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
825
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
826
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
827
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
828
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
829
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
830
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
831
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
832
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
833
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
834
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
835
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
836
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
837
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
838
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
839
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6. Not every property/ function we should pay attention to, we will talk about that in another session.
7. Now let’s take a look at StringLeft functoid. Pay special attention to GetCSharpBuffer method, it uses StringBuilder to create a c# function like this:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
1
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
This function is gonna be used in physical map.
8. Create a map to use this functoid.
![](https://www.cnblogs.com/images/cnblogs_com/netboy/Map.jpg)
Right click on the map file (SourcetoTarget.btm) and select Validate map。Please remember, you can get the actual xsl file which will do the transform. From the output window the automatically generated xsl file can be found, open it. In this xsl file you can clearly find the StringLeft function mentioned above and its referenced function(s), IsNumeric in this case.
![](https://www.cnblogs.com/images/cnblogs_com/netboy/xsl.jpg)
The idea is when a functoid is put onto the surface of map, it will generate a function in xsl file, xsl can call this code at run time to do transfrom.