mirror of
https://github.com/github/codeql.git
synced 2025-12-22 11:46:32 +01:00
Merge branch 'main' into fix-joins-in-using-expired-stack-address
This commit is contained in:
2
.github/workflows/ql-for-ql-tests.yml
vendored
2
.github/workflows/ql-for-ql-tests.yml
vendored
@@ -44,7 +44,7 @@ jobs:
|
|||||||
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
|
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
|
||||||
- name: Check QL formatting
|
- name: Check QL formatting
|
||||||
run: |
|
run: |
|
||||||
find ql/ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 "${CODEQL}" query format --check-only
|
find ql/ql/src "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 "${CODEQL}" query format --check-only
|
||||||
env:
|
env:
|
||||||
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
|
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
|
||||||
- name: Check QL compilation
|
- name: Check QL compilation
|
||||||
|
|||||||
@@ -597,5 +597,9 @@
|
|||||||
"Swift patterns test file": [
|
"Swift patterns test file": [
|
||||||
"swift/ql/test/extractor-tests/patterns/patterns.swift",
|
"swift/ql/test/extractor-tests/patterns/patterns.swift",
|
||||||
"swift/ql/test/library-tests/parent/patterns.swift"
|
"swift/ql/test/library-tests/parent/patterns.swift"
|
||||||
|
],
|
||||||
|
"IncompleteMultiCharacterSanitization JS/Ruby": [
|
||||||
|
"javascript/ql/lib/semmle/javascript/security/IncompleteMultiCharacterSanitizationQuery.qll",
|
||||||
|
"ruby/ql/lib/codeql/ruby/security/IncompleteMultiCharacterSanitizationQuery.qll"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
category: minorAnalysis
|
||||||
|
---
|
||||||
|
* All deprecated predicates/classes/modules that have been deprecated for over a year have been
|
||||||
|
deleted.
|
||||||
|
|
||||||
@@ -119,27 +119,67 @@ module SemanticExprConfig {
|
|||||||
result = block.getDisplayIndex()
|
result = block.getDisplayIndex()
|
||||||
}
|
}
|
||||||
|
|
||||||
class SsaVariable instanceof IR::Instruction {
|
newtype TSsaVariable =
|
||||||
SsaVariable() { super.hasMemoryResult() }
|
TSsaInstruction(IR::Instruction instr) { instr.hasMemoryResult() } or
|
||||||
|
TSsaOperand(IR::Operand op) { op.isDefinitionInexact() }
|
||||||
|
|
||||||
final string toString() { result = super.toString() }
|
class SsaVariable extends TSsaVariable {
|
||||||
|
string toString() { none() }
|
||||||
|
|
||||||
final Location getLocation() { result = super.getLocation() }
|
Location getLocation() { none() }
|
||||||
|
|
||||||
|
IR::Instruction asInstruction() { none() }
|
||||||
|
|
||||||
|
IR::Operand asOperand() { none() }
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate explicitUpdate(SsaVariable v, Expr sourceExpr) { v = sourceExpr }
|
class SsaInstructionVariable extends SsaVariable, TSsaInstruction {
|
||||||
|
IR::Instruction instr;
|
||||||
|
|
||||||
predicate phi(SsaVariable v) { v instanceof IR::PhiInstruction }
|
SsaInstructionVariable() { this = TSsaInstruction(instr) }
|
||||||
|
|
||||||
SsaVariable getAPhiInput(SsaVariable v) { result = v.(IR::PhiInstruction).getAnInput() }
|
final override string toString() { result = instr.toString() }
|
||||||
|
|
||||||
Expr getAUse(SsaVariable v) { result.(IR::LoadInstruction).getSourceValue() = v }
|
final override Location getLocation() { result = instr.getLocation() }
|
||||||
|
|
||||||
|
final override IR::Instruction asInstruction() { result = instr }
|
||||||
|
}
|
||||||
|
|
||||||
|
class SsaOperand extends SsaVariable, TSsaOperand {
|
||||||
|
IR::Operand op;
|
||||||
|
|
||||||
|
SsaOperand() { this = TSsaOperand(op) }
|
||||||
|
|
||||||
|
final override string toString() { result = op.toString() }
|
||||||
|
|
||||||
|
final override Location getLocation() { result = op.getLocation() }
|
||||||
|
|
||||||
|
final override IR::Operand asOperand() { result = op }
|
||||||
|
}
|
||||||
|
|
||||||
|
predicate explicitUpdate(SsaVariable v, Expr sourceExpr) { v.asInstruction() = sourceExpr }
|
||||||
|
|
||||||
|
predicate phi(SsaVariable v) { v.asInstruction() instanceof IR::PhiInstruction }
|
||||||
|
|
||||||
|
SsaVariable getAPhiInput(SsaVariable v) {
|
||||||
|
exists(IR::PhiInstruction instr |
|
||||||
|
result.asInstruction() = instr.getAnInput()
|
||||||
|
or
|
||||||
|
result.asOperand() = instr.getAnInputOperand()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
Expr getAUse(SsaVariable v) { result.(IR::LoadInstruction).getSourceValue() = v.asInstruction() }
|
||||||
|
|
||||||
SemType getSsaVariableType(SsaVariable v) {
|
SemType getSsaVariableType(SsaVariable v) {
|
||||||
result = getSemanticType(v.(IR::Instruction).getResultIRType())
|
result = getSemanticType(v.asInstruction().getResultIRType())
|
||||||
}
|
}
|
||||||
|
|
||||||
BasicBlock getSsaVariableBasicBlock(SsaVariable v) { result = v.(IR::Instruction).getBlock() }
|
BasicBlock getSsaVariableBasicBlock(SsaVariable v) {
|
||||||
|
result = v.asInstruction().getBlock()
|
||||||
|
or
|
||||||
|
result = v.asOperand().getUse().getBlock()
|
||||||
|
}
|
||||||
|
|
||||||
private newtype TReadPosition =
|
private newtype TReadPosition =
|
||||||
TReadPositionBlock(IR::IRBlock block) or
|
TReadPositionBlock(IR::IRBlock block) or
|
||||||
@@ -169,7 +209,9 @@ module SemanticExprConfig {
|
|||||||
|
|
||||||
final override predicate hasRead(SsaVariable v) {
|
final override predicate hasRead(SsaVariable v) {
|
||||||
exists(IR::Operand operand |
|
exists(IR::Operand operand |
|
||||||
operand.getDef() = v and not operand instanceof IR::PhiInputOperand
|
operand.getDef() = v.asInstruction() and
|
||||||
|
not operand instanceof IR::PhiInputOperand and
|
||||||
|
operand.getUse().getBlock() = block
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -186,7 +228,7 @@ module SemanticExprConfig {
|
|||||||
|
|
||||||
final override predicate hasRead(SsaVariable v) {
|
final override predicate hasRead(SsaVariable v) {
|
||||||
exists(IR::PhiInputOperand operand |
|
exists(IR::PhiInputOperand operand |
|
||||||
operand.getDef() = v and
|
operand.getDef() = v.asInstruction() and
|
||||||
operand.getPredecessorBlock() = pred and
|
operand.getPredecessorBlock() = pred and
|
||||||
operand.getUse().getBlock() = succ
|
operand.getUse().getBlock() = succ
|
||||||
)
|
)
|
||||||
@@ -205,17 +247,16 @@ module SemanticExprConfig {
|
|||||||
exists(IR::PhiInputOperand operand |
|
exists(IR::PhiInputOperand operand |
|
||||||
pos = TReadPositionPhiInputEdge(operand.getPredecessorBlock(), operand.getUse().getBlock())
|
pos = TReadPositionPhiInputEdge(operand.getPredecessorBlock(), operand.getUse().getBlock())
|
||||||
|
|
|
|
||||||
phi = operand.getUse() and input = operand.getDef()
|
phi.asInstruction() = operand.getUse() and
|
||||||
|
(
|
||||||
|
input.asInstruction() = operand.getDef()
|
||||||
|
or
|
||||||
|
input.asOperand() = operand
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Bound instanceof IRBound::Bound {
|
class Bound instanceof IRBound::Bound {
|
||||||
Bound() {
|
|
||||||
this instanceof IRBound::ZeroBound
|
|
||||||
or
|
|
||||||
this.(IRBound::ValueNumberBound).getValueNumber().getAnInstruction() instanceof SsaVariable
|
|
||||||
}
|
|
||||||
|
|
||||||
string toString() { result = super.toString() }
|
string toString() { result = super.toString() }
|
||||||
|
|
||||||
final Location getLocation() { result = super.getLocation() }
|
final Location getLocation() { result = super.getLocation() }
|
||||||
@@ -228,13 +269,13 @@ module SemanticExprConfig {
|
|||||||
|
|
||||||
override string toString() {
|
override string toString() {
|
||||||
result =
|
result =
|
||||||
min(SsaVariable instr |
|
min(SsaVariable v |
|
||||||
instr = bound.getValueNumber().getAnInstruction()
|
v.asInstruction() = bound.getValueNumber().getAnInstruction()
|
||||||
|
|
|
|
||||||
instr
|
v
|
||||||
order by
|
order by
|
||||||
instr.(IR::Instruction).getBlock().getDisplayIndex(),
|
v.asInstruction().getBlock().getDisplayIndex(),
|
||||||
instr.(IR::Instruction).getDisplayIndexInBlock()
|
v.asInstruction().getDisplayIndexInBlock()
|
||||||
).toString()
|
).toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,7 +283,7 @@ module SemanticExprConfig {
|
|||||||
predicate zeroBound(Bound bound) { bound instanceof IRBound::ZeroBound }
|
predicate zeroBound(Bound bound) { bound instanceof IRBound::ZeroBound }
|
||||||
|
|
||||||
predicate ssaBound(Bound bound, SsaVariable v) {
|
predicate ssaBound(Bound bound, SsaVariable v) {
|
||||||
v = bound.(IRBound::ValueNumberBound).getValueNumber().getAnInstruction()
|
v.asInstruction() = bound.(IRBound::ValueNumberBound).getValueNumber().getAnInstruction()
|
||||||
}
|
}
|
||||||
|
|
||||||
Expr getBoundExpr(Bound bound, int delta) {
|
Expr getBoundExpr(Bound bound, int delta) {
|
||||||
@@ -251,22 +292,20 @@ module SemanticExprConfig {
|
|||||||
|
|
||||||
class Guard = IRGuards::IRGuardCondition;
|
class Guard = IRGuards::IRGuardCondition;
|
||||||
|
|
||||||
predicate guard(Guard guard, BasicBlock block) {
|
predicate guard(Guard guard, BasicBlock block) { block = guard.getBlock() }
|
||||||
block = guard.(IRGuards::IRGuardCondition).getBlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
Expr getGuardAsExpr(Guard guard) { result = guard }
|
Expr getGuardAsExpr(Guard guard) { result = guard }
|
||||||
|
|
||||||
predicate equalityGuard(Guard guard, Expr e1, Expr e2, boolean polarity) {
|
predicate equalityGuard(Guard guard, Expr e1, Expr e2, boolean polarity) {
|
||||||
guard.(IRGuards::IRGuardCondition).comparesEq(e1.getAUse(), e2.getAUse(), 0, true, polarity)
|
guard.comparesEq(e1.getAUse(), e2.getAUse(), 0, true, polarity)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate guardDirectlyControlsBlock(Guard guard, BasicBlock controlled, boolean branch) {
|
predicate guardDirectlyControlsBlock(Guard guard, BasicBlock controlled, boolean branch) {
|
||||||
guard.(IRGuards::IRGuardCondition).controls(controlled, branch)
|
guard.controls(controlled, branch)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate guardHasBranchEdge(Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch) {
|
predicate guardHasBranchEdge(Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch) {
|
||||||
guard.(IRGuards::IRGuardCondition).controlsEdge(bb1, bb2, branch)
|
guard.controlsEdge(bb1, bb2, branch)
|
||||||
}
|
}
|
||||||
|
|
||||||
Guard comparisonGuard(Expr e) { result = e }
|
Guard comparisonGuard(Expr e) { result = e }
|
||||||
@@ -284,9 +323,13 @@ SemBasicBlock getSemanticBasicBlock(IR::IRBlock block) { result = block }
|
|||||||
|
|
||||||
IR::IRBlock getCppBasicBlock(SemBasicBlock block) { block = result }
|
IR::IRBlock getCppBasicBlock(SemBasicBlock block) { block = result }
|
||||||
|
|
||||||
SemSsaVariable getSemanticSsaVariable(IR::Instruction instr) { result = instr }
|
SemSsaVariable getSemanticSsaVariable(IR::Instruction instr) {
|
||||||
|
result.(SemanticExprConfig::SsaVariable).asInstruction() = instr
|
||||||
|
}
|
||||||
|
|
||||||
IR::Instruction getCppSsaVariableInstruction(SemSsaVariable v) { v = result }
|
IR::Instruction getCppSsaVariableInstruction(SemSsaVariable var) {
|
||||||
|
var.(SemanticExprConfig::SsaVariable).asInstruction() = result
|
||||||
|
}
|
||||||
|
|
||||||
SemBound getSemanticBound(IRBound::Bound bound) { result = bound }
|
SemBound getSemanticBound(IRBound::Bound bound) { result = bound }
|
||||||
|
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ private predicate phiModulusInit(SemSsaPhiNode phi, SemBound b, int val, int mod
|
|||||||
/**
|
/**
|
||||||
* Holds if all inputs to `phi` numbered `1` to `rix` are equal to `b + val` modulo `mod`.
|
* Holds if all inputs to `phi` numbered `1` to `rix` are equal to `b + val` modulo `mod`.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
private predicate phiModulusRankStep(SemSsaPhiNode phi, SemBound b, int val, int mod, int rix) {
|
private predicate phiModulusRankStep(SemSsaPhiNode phi, SemBound b, int val, int mod, int rix) {
|
||||||
rix = 0 and
|
rix = 0 and
|
||||||
phiModulusInit(phi, b, val, mod)
|
phiModulusInit(phi, b, val, mod)
|
||||||
@@ -169,7 +170,7 @@ private predicate phiModulusRankStep(SemSsaPhiNode phi, SemBound b, int val, int
|
|||||||
val = remainder(v1, mod)
|
val = remainder(v1, mod)
|
||||||
|
|
|
|
||||||
exists(int v2, int m2 |
|
exists(int v2, int m2 |
|
||||||
rankedPhiInput(phi, inp, edge, rix) and
|
rankedPhiInput(pragma[only_bind_out](phi), inp, edge, rix) and
|
||||||
phiModulusRankStep(phi, b, v1, m1, rix - 1) and
|
phiModulusRankStep(phi, b, v1, m1, rix - 1) and
|
||||||
ssaModulus(inp, edge, b, v2, m2) and
|
ssaModulus(inp, edge, b, v2, m2) and
|
||||||
mod = m1.gcd(m2).gcd(v1 - v2)
|
mod = m1.gcd(m2).gcd(v1 - v2)
|
||||||
|
|||||||
@@ -342,7 +342,10 @@ private class ConvertOrBoxExpr extends SemUnaryExpr {
|
|||||||
* A cast that can be ignored for the purpose of range analysis.
|
* A cast that can be ignored for the purpose of range analysis.
|
||||||
*/
|
*/
|
||||||
private class SafeCastExpr extends ConvertOrBoxExpr {
|
private class SafeCastExpr extends ConvertOrBoxExpr {
|
||||||
SafeCastExpr() { conversionCannotOverflow(getTrackedType(getOperand()), getTrackedType(this)) }
|
SafeCastExpr() {
|
||||||
|
conversionCannotOverflow(getTrackedType(pragma[only_bind_into](getOperand())),
|
||||||
|
getTrackedType(this))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -189,9 +189,12 @@ private class BinarySignExpr extends FlowSignExpr {
|
|||||||
BinarySignExpr() { binary = this }
|
BinarySignExpr() { binary = this }
|
||||||
|
|
||||||
override Sign getSignRestriction() {
|
override Sign getSignRestriction() {
|
||||||
result =
|
exists(SemExpr left, SemExpr right |
|
||||||
semExprSign(binary.getLeftOperand())
|
binaryExprOperands(binary, left, right) and
|
||||||
.applyBinaryOp(semExprSign(binary.getRightOperand()), binary.getOpcode())
|
result =
|
||||||
|
semExprSign(pragma[only_bind_out](left))
|
||||||
|
.applyBinaryOp(semExprSign(pragma[only_bind_out](right)), binary.getOpcode())
|
||||||
|
)
|
||||||
or
|
or
|
||||||
exists(SemDivExpr div | div = binary |
|
exists(SemDivExpr div | div = binary |
|
||||||
result = semExprSign(div.getLeftOperand()) and
|
result = semExprSign(div.getLeftOperand()) and
|
||||||
@@ -201,6 +204,10 @@ private class BinarySignExpr extends FlowSignExpr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private predicate binaryExprOperands(SemBinaryExpr binary, SemExpr left, SemExpr right) {
|
||||||
|
binary.getLeftOperand() = left and binary.getRightOperand() = right
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Convert`, `Box`, or `Unbox` expression.
|
* A `Convert`, `Box`, or `Unbox` expression.
|
||||||
*/
|
*/
|
||||||
@@ -221,7 +228,7 @@ private class UnarySignExpr extends FlowSignExpr {
|
|||||||
UnarySignExpr() { unary = this and not this instanceof SemCastExpr }
|
UnarySignExpr() { unary = this and not this instanceof SemCastExpr }
|
||||||
|
|
||||||
override Sign getSignRestriction() {
|
override Sign getSignRestriction() {
|
||||||
result = semExprSign(unary.getOperand()).applyUnaryOp(unary.getOpcode())
|
result = semExprSign(pragma[only_bind_out](unary.getOperand())).applyUnaryOp(unary.getOpcode())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ private module Liveness {
|
|||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
||||||
*/
|
*/
|
||||||
private predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
||||||
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
||||||
or
|
or
|
||||||
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
||||||
@@ -76,6 +76,10 @@ private module Liveness {
|
|||||||
not result + 1 = refRank(bb, _, v, _)
|
not result + 1 = refRank(bb, _, v, _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate lastRefIsRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
maxRefRank(bb, v) = refRank(bb, _, v, Read(_))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
||||||
* that is either a read or a certain write.
|
* that is either a read or a certain write.
|
||||||
@@ -185,23 +189,29 @@ newtype TDefinition =
|
|||||||
|
|
||||||
private module SsaDefReaches {
|
private module SsaDefReaches {
|
||||||
newtype TSsaRefKind =
|
newtype TSsaRefKind =
|
||||||
SsaRead() or
|
SsaActualRead() or
|
||||||
|
SsaPhiRead() or
|
||||||
SsaDef()
|
SsaDef()
|
||||||
|
|
||||||
|
class SsaRead = SsaActualRead or SsaPhiRead;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A classification of SSA variable references into reads and definitions.
|
* A classification of SSA variable references into reads and definitions.
|
||||||
*/
|
*/
|
||||||
class SsaRefKind extends TSsaRefKind {
|
class SsaRefKind extends TSsaRefKind {
|
||||||
string toString() {
|
string toString() {
|
||||||
this = SsaRead() and
|
this = SsaActualRead() and
|
||||||
result = "SsaRead"
|
result = "SsaActualRead"
|
||||||
|
or
|
||||||
|
this = SsaPhiRead() and
|
||||||
|
result = "SsaPhiRead"
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
result = "SsaDef"
|
result = "SsaDef"
|
||||||
}
|
}
|
||||||
|
|
||||||
int getOrder() {
|
int getOrder() {
|
||||||
this = SsaRead() and
|
this instanceof SsaRead and
|
||||||
result = 0
|
result = 0
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
@@ -209,6 +219,80 @@ private module SsaDefReaches {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `bb` is in the dominance frontier of a block containing a
|
||||||
|
* read of `v`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate inReadDominanceFrontier(BasicBlock bb, SourceVariable v) {
|
||||||
|
exists(BasicBlock readbb | inDominanceFrontier(readbb, bb) |
|
||||||
|
lastRefIsRead(readbb, v)
|
||||||
|
or
|
||||||
|
phiRead(readbb, v)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if a phi-read node should be inserted for variable `v` at the beginning
|
||||||
|
* of basic block `bb`.
|
||||||
|
*
|
||||||
|
* Phi-read nodes are like normal phi nodes, but they are inserted based on reads
|
||||||
|
* instead of writes, and only if the dominance-frontier block does not already
|
||||||
|
* contain a reference (read or write) to `v`. Unlike normal phi nodes, this is
|
||||||
|
* an internal implementation detail that is not exposed.
|
||||||
|
*
|
||||||
|
* The motivation for adding phi-reads is to improve performance of the use-use
|
||||||
|
* calculation in cases where there is a large number of reads that can reach the
|
||||||
|
* same join-point, and from there reach a large number of basic blocks. Example:
|
||||||
|
*
|
||||||
|
* ```cs
|
||||||
|
* if (a)
|
||||||
|
* use(x);
|
||||||
|
* else if (b)
|
||||||
|
* use(x);
|
||||||
|
* else if (c)
|
||||||
|
* use(x);
|
||||||
|
* else if (d)
|
||||||
|
* use(x);
|
||||||
|
* // many more ifs ...
|
||||||
|
*
|
||||||
|
* // phi-read for `x` inserted here
|
||||||
|
*
|
||||||
|
* // program not mentioning `x`, with large basic block graph
|
||||||
|
*
|
||||||
|
* use(x);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Without phi-reads, the analysis has to replicate reachability for each of
|
||||||
|
* the guarded uses of `x`. However, with phi-reads, the analysis will limit
|
||||||
|
* each conditional use of `x` to reach the basic block containing the phi-read
|
||||||
|
* node for `x`, and only that basic block will have to compute reachability
|
||||||
|
* through the remainder of the large program.
|
||||||
|
*
|
||||||
|
* Like normal reads, each phi-read node `phi-read` can be reached from exactly
|
||||||
|
* one SSA definition (without passing through another definition): Assume, for
|
||||||
|
* the sake of contradiction, that there are two reaching definitions `def1` and
|
||||||
|
* `def2`. Now, if both `def1` and `def2` dominate `phi-read`, then the nearest
|
||||||
|
* dominating definition will prevent the other from reaching `phi-read`. So, at
|
||||||
|
* least one of `def1` and `def2` cannot dominate `phi-read`; assume it is `def1`.
|
||||||
|
* Then `def1` must go through one of its dominance-frontier blocks in order to
|
||||||
|
* reach `phi-read`. However, such a block will always start with a (normal) phi
|
||||||
|
* node, which contradicts reachability.
|
||||||
|
*
|
||||||
|
* Also, like normal reads, the unique SSA definition `def` that reaches `phi-read`,
|
||||||
|
* will dominate `phi-read`. Assuming it doesn't means that the path from `def`
|
||||||
|
* to `phi-read` goes through a dominance-frontier block, and hence a phi node,
|
||||||
|
* which contradicts reachability.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate phiRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
inReadDominanceFrontier(bb, v) and
|
||||||
|
liveAtEntry(bb, v) and
|
||||||
|
// only if there are no other references to `v` inside `bb`
|
||||||
|
not ref(bb, _, v, _) and
|
||||||
|
not exists(Definition def | def.definesAt(v, bb, _))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
||||||
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
||||||
@@ -216,11 +300,16 @@ private module SsaDefReaches {
|
|||||||
*
|
*
|
||||||
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
||||||
variableRead(bb, i, v, _) and
|
variableRead(bb, i, v, _) and
|
||||||
k = SsaRead()
|
k = SsaActualRead()
|
||||||
or
|
or
|
||||||
exists(Definition def | def.definesAt(v, bb, i)) and
|
phiRead(bb, v) and
|
||||||
|
i = -1 and
|
||||||
|
k = SsaPhiRead()
|
||||||
|
or
|
||||||
|
any(Definition def).definesAt(v, bb, i) and
|
||||||
k = SsaDef()
|
k = SsaDef()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +362,7 @@ private module SsaDefReaches {
|
|||||||
)
|
)
|
||||||
or
|
or
|
||||||
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
||||||
rnk = ssaRefRank(bb, _, v, SsaRead())
|
rnk = ssaRefRank(bb, _, v, any(SsaRead k))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -283,7 +372,7 @@ private module SsaDefReaches {
|
|||||||
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
ssaDefReachesRank(bb, def, rnk, v) and
|
ssaDefReachesRank(bb, def, rnk, v) and
|
||||||
rnk = ssaRefRank(bb, i, v, SsaRead())
|
rnk = ssaRefRank(bb, i, v, any(SsaRead k))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,45 +398,94 @@ private module SsaDefReaches {
|
|||||||
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v) {
|
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v, SsaRefKind k) {
|
||||||
exists(ssaDefRank(def, v, bb, _, _))
|
exists(ssaDefRank(def, v, bb, _, k))
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma[noinline]
|
pragma[noinline]
|
||||||
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
||||||
ssaDefReachesEndOfBlock(bb, def, _) and
|
ssaDefReachesEndOfBlock(bb, def, _) and
|
||||||
not defOccursInBlock(_, bb, def.getSourceVariable())
|
not defOccursInBlock(_, bb, def.getSourceVariable(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of `bb1`,
|
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of _some_
|
||||||
* and the underlying variable for `def` is neither read nor written in any block
|
* predecessor of `bb2`, and the underlying variable for `def` is neither read
|
||||||
* on the path between `bb1` and `bb2`.
|
* nor written in any block on the path between `bb1` and `bb2`.
|
||||||
|
*
|
||||||
|
* Phi reads are considered as normal reads for this predicate.
|
||||||
*/
|
*/
|
||||||
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
pragma[nomagic]
|
||||||
defOccursInBlock(def, bb1, _) and
|
private predicate varBlockReachesInclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
defOccursInBlock(def, bb1, _, _) and
|
||||||
bb2 = getABasicBlockSuccessor(bb1)
|
bb2 = getABasicBlockSuccessor(bb1)
|
||||||
or
|
or
|
||||||
exists(BasicBlock mid |
|
exists(BasicBlock mid |
|
||||||
varBlockReaches(def, bb1, mid) and
|
varBlockReachesInclPhiRead(def, bb1, mid) and
|
||||||
ssaDefReachesThroughBlock(def, mid) and
|
ssaDefReachesThroughBlock(def, mid) and
|
||||||
bb2 = getABasicBlockSuccessor(mid)
|
bb2 = getABasicBlockSuccessor(mid)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate phiReadStep(Definition def, SourceVariable v, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(def, bb1, bb2) and
|
||||||
|
defOccursInBlock(def, bb2, v, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate varBlockReachesExclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(pragma[only_bind_into](def), bb1, pragma[only_bind_into](bb2)) and
|
||||||
|
ssaRef(bb2, _, def.getSourceVariable(), [SsaActualRead().(TSsaRefKind), SsaDef()])
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExclPhiRead(def, mid, bb2) and
|
||||||
|
phiReadStep(def, _, bb1, mid)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `def` is read at index `i2` in basic block `bb2`, `bb2` is in a transitive
|
* the underlying variable `v` of `def` is accessed in basic block `bb2`
|
||||||
* successor block of `bb1`, and `def` is neither read nor written in any block
|
* (either a read or a write), `bb2` is a transitive successor of `bb1`, and
|
||||||
* on a path between `bb1` and `bb2`.
|
* `v` is neither read nor written in any block on the path between `bb1`
|
||||||
|
* and `bb2`.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesExclPhiRead(def, bb1, bb2) and
|
||||||
|
not defOccursInBlock(def, bb1, _, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
||||||
varBlockReaches(def, bb1, bb2) and
|
varBlockReaches(def, bb1, bb2) and
|
||||||
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaRead()) = 1
|
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaActualRead()) = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `def` is accessed in basic block `bb` (either a read or a write),
|
||||||
|
* `bb1` can reach a transitive successor `bb2` where `def` is no longer live,
|
||||||
|
* and `v` is neither read nor written in any block on the path between `bb`
|
||||||
|
* and `bb2`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReachesExit(Definition def, BasicBlock bb) {
|
||||||
|
exists(BasicBlock bb2 | varBlockReachesInclPhiRead(def, bb, bb2) |
|
||||||
|
not defOccursInBlock(def, bb2, _, _) and
|
||||||
|
not ssaDefReachesEndOfBlock(bb2, def, _)
|
||||||
|
)
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExit(def, mid) and
|
||||||
|
phiReadStep(def, _, bb, mid)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate phiReadExposedForTesting = phiRead/2;
|
||||||
|
|
||||||
private import SsaDefReaches
|
private import SsaDefReaches
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
@@ -365,7 +503,8 @@ predicate liveThrough(BasicBlock bb, SourceVariable v) {
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
||||||
exists(int last | last = maxSsaRefRank(bb, v) |
|
exists(int last |
|
||||||
|
last = maxSsaRefRank(pragma[only_bind_into](bb), pragma[only_bind_into](v)) and
|
||||||
ssaDefReachesRank(bb, def, last, v) and
|
ssaDefReachesRank(bb, def, last, v) and
|
||||||
liveAtExit(bb, v)
|
liveAtExit(bb, v)
|
||||||
)
|
)
|
||||||
@@ -405,7 +544,7 @@ pragma[nomagic]
|
|||||||
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
||||||
or
|
or
|
||||||
variableRead(bb, i, v, _) and
|
ssaRef(bb, i, v, any(SsaRead k)) and
|
||||||
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
||||||
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
||||||
}
|
}
|
||||||
@@ -421,7 +560,7 @@ pragma[nomagic]
|
|||||||
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
||||||
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaRead()) and
|
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaActualRead()) and
|
||||||
variableRead(bb1, i2, _, _) and
|
variableRead(bb1, i2, _, _) and
|
||||||
bb2 = bb1
|
bb2 = bb1
|
||||||
)
|
)
|
||||||
@@ -538,18 +677,15 @@ predicate lastRefRedefNoUncertainReads(Definition def, BasicBlock bb, int i, Def
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
||||||
|
// Can reach another definition
|
||||||
lastRefRedef(def, bb, i, _)
|
lastRefRedef(def, bb, i, _)
|
||||||
or
|
or
|
||||||
lastSsaRef(def, _, bb, i) and
|
exists(SourceVariable v | lastSsaRef(def, v, bb, i) |
|
||||||
(
|
|
||||||
// Can reach exit directly
|
// Can reach exit directly
|
||||||
bb instanceof ExitBasicBlock
|
bb instanceof ExitBasicBlock
|
||||||
or
|
or
|
||||||
// Can reach a block using one or more steps, where `def` is no longer live
|
// Can reach a block using one or more steps, where `def` is no longer live
|
||||||
exists(BasicBlock bb2 | varBlockReaches(def, bb, bb2) |
|
varBlockReachesExit(def, bb)
|
||||||
not defOccursInBlock(def, bb2, _) and
|
|
||||||
not ssaDefReachesEndOfBlock(bb2, def, _)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module InstructionConsistency {
|
|||||||
abstract Language::Location getLocation();
|
abstract Language::Location getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
||||||
private IRFunction irFunc;
|
private IRFunction irFunc;
|
||||||
|
|
||||||
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
||||||
@@ -37,6 +37,8 @@ module InstructionConsistency {
|
|||||||
result =
|
result =
|
||||||
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IRFunction getIRFunction() { result = irFunc }
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module InstructionConsistency {
|
|||||||
abstract Language::Location getLocation();
|
abstract Language::Location getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
||||||
private IRFunction irFunc;
|
private IRFunction irFunc;
|
||||||
|
|
||||||
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
||||||
@@ -37,6 +37,8 @@ module InstructionConsistency {
|
|||||||
result =
|
result =
|
||||||
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IRFunction getIRFunction() { result = irFunc }
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module InstructionConsistency {
|
|||||||
abstract Language::Location getLocation();
|
abstract Language::Location getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
||||||
private IRFunction irFunc;
|
private IRFunction irFunc;
|
||||||
|
|
||||||
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
||||||
@@ -37,6 +37,8 @@ module InstructionConsistency {
|
|||||||
result =
|
result =
|
||||||
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IRFunction getIRFunction() { result = irFunc }
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
||||||
|
|||||||
@@ -11,12 +11,6 @@ private class StdPair extends ClassTemplateInstantiation {
|
|||||||
StdPair() { this.hasQualifiedName(["std", "bsl"], "pair") }
|
StdPair() { this.hasQualifiedName(["std", "bsl"], "pair") }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED: This is now called `StdPair` and is a private part of the
|
|
||||||
* library implementation.
|
|
||||||
*/
|
|
||||||
deprecated class StdPairClass = StdPair;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Any of the single-parameter constructors of `std::pair` that takes a reference to an
|
* Any of the single-parameter constructors of `std::pair` that takes a reference to an
|
||||||
* instantiation of `std::pair`. These constructors allow conversion between pair types when the
|
* instantiation of `std::pair`. These constructors allow conversion between pair types when the
|
||||||
|
|||||||
@@ -27,13 +27,6 @@ abstract class RemoteFlowSourceFunction extends Function {
|
|||||||
predicate hasSocketInput(FunctionInput input) { none() }
|
predicate hasSocketInput(FunctionInput input) { none() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED: Use `RemoteFlowSourceFunction` instead.
|
|
||||||
*
|
|
||||||
* A library function that returns data that may be read from a network connection.
|
|
||||||
*/
|
|
||||||
deprecated class RemoteFlowFunction = RemoteFlowSourceFunction;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A library function that returns data that is directly controlled by a user.
|
* A library function that returns data that is directly controlled by a user.
|
||||||
*/
|
*/
|
||||||
@@ -44,13 +37,6 @@ abstract class LocalFlowSourceFunction extends Function {
|
|||||||
abstract predicate hasLocalFlowSource(FunctionOutput output, string description);
|
abstract predicate hasLocalFlowSource(FunctionOutput output, string description);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED: Use `LocalFlowSourceFunction` instead.
|
|
||||||
*
|
|
||||||
* A library function that returns data that is directly controlled by a user.
|
|
||||||
*/
|
|
||||||
deprecated class LocalFlowFunction = LocalFlowSourceFunction;
|
|
||||||
|
|
||||||
/** A library function that sends data over a network connection. */
|
/** A library function that sends data over a network connection. */
|
||||||
abstract class RemoteFlowSinkFunction extends Function {
|
abstract class RemoteFlowSinkFunction extends Function {
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -290,7 +290,11 @@ class PathElement extends TPathElement {
|
|||||||
predicate isSink(IRBlock block) { exists(this.asSink(block)) }
|
predicate isSink(IRBlock block) { exists(this.asSink(block)) }
|
||||||
|
|
||||||
string toString() {
|
string toString() {
|
||||||
result = [asStore().toString(), asCall(_).toString(), asMid().toString(), asSink(_).toString()]
|
result =
|
||||||
|
[
|
||||||
|
this.asStore().toString(), this.asCall(_).toString(), this.asMid().toString(),
|
||||||
|
this.asSink(_).toString()
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate hasLocationInfo(
|
predicate hasLocationInfo(
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ Make sure that all classes with virtual functions also have a virtual destructor
|
|||||||
S. Meyers. <em>Effective C++ 3d ed.</em> pp 40-44. Addison-Wesley Professional, 2005.
|
S. Meyers. <em>Effective C++ 3d ed.</em> pp 40-44. Addison-Wesley Professional, 2005.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="http://blogs.msdn.com/b/oldnewthing/archive/2004/05/07/127826.aspx">When should your destructor be virtual?</a>
|
<a href="https://devblogs.microsoft.com/oldnewthing/20040507-00/?p=39443">When should your destructor be virtual?</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,12 @@ import cpp
|
|||||||
import semmle.code.cpp.ir.implementation.aliased_ssa.IR
|
import semmle.code.cpp.ir.implementation.aliased_ssa.IR
|
||||||
import semmle.code.cpp.ir.implementation.aliased_ssa.IRConsistency as IRConsistency
|
import semmle.code.cpp.ir.implementation.aliased_ssa.IRConsistency as IRConsistency
|
||||||
|
|
||||||
|
class PresentIRFunction extends IRConsistency::PresentIRFunction {
|
||||||
|
override string toString() {
|
||||||
|
result = min(string name | name = this.getIRFunction().getFunction().getQualifiedName() | name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
select count(Instruction i | IRConsistency::missingOperand(i, _, _, _) | i) as missingOperand,
|
select count(Instruction i | IRConsistency::missingOperand(i, _, _, _) | i) as missingOperand,
|
||||||
count(Instruction i | IRConsistency::unexpectedOperand(i, _, _, _) | i) as unexpectedOperand,
|
count(Instruction i | IRConsistency::unexpectedOperand(i, _, _, _) | i) as unexpectedOperand,
|
||||||
count(Instruction i | IRConsistency::duplicateOperand(i, _, _, _) | i) as duplicateOperand,
|
count(Instruction i | IRConsistency::duplicateOperand(i, _, _, _) | i) as duplicateOperand,
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ predicate findUseCharacterConversion(Expr exp, string msg) {
|
|||||||
exists(FunctionCall fc |
|
exists(FunctionCall fc |
|
||||||
fc = exp and
|
fc = exp and
|
||||||
(
|
(
|
||||||
exists(Loop lptmp | lptmp = fc.getEnclosingStmt().getParentStmt*()) and
|
fc.getEnclosingStmt().getParentStmt*() instanceof Loop and
|
||||||
fc.getTarget().hasName(["mbtowc", "mbrtowc", "_mbtowc_l"]) and
|
fc.getTarget().hasName(["mbtowc", "mbrtowc", "_mbtowc_l"]) and
|
||||||
not fc.getArgument(0).isConstant() and
|
not fc.getArgument(0).isConstant() and
|
||||||
not fc.getArgument(1).isConstant() and
|
not fc.getArgument(1).isConstant() and
|
||||||
|
|||||||
@@ -44,11 +44,8 @@ predicate conversionDoneLate(MulExpr mexp) {
|
|||||||
mexp.getEnclosingElement().(ComparisonOperation).hasOperands(mexp, e0) and
|
mexp.getEnclosingElement().(ComparisonOperation).hasOperands(mexp, e0) and
|
||||||
e0.getType().getSize() = mexp.getConversion().getConversion().getType().getSize()
|
e0.getType().getSize() = mexp.getConversion().getConversion().getType().getSize()
|
||||||
or
|
or
|
||||||
e0.(FunctionCall)
|
e0.(FunctionCall).getTarget().getParameter(argumentPosition(e0, mexp, _)).getType().getSize() =
|
||||||
.getTarget()
|
mexp.getConversion().getConversion().getType().getSize()
|
||||||
.getParameter(argumentPosition(e0.(FunctionCall), mexp, _))
|
|
||||||
.getType()
|
|
||||||
.getSize() = mexp.getConversion().getConversion().getType().getSize()
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -75,7 +72,7 @@ predicate signSmallerWithEqualSizes(MulExpr mexp) {
|
|||||||
ae.getRValue().getUnderlyingType().(IntegralType).isUnsigned() and
|
ae.getRValue().getUnderlyingType().(IntegralType).isUnsigned() and
|
||||||
ae.getLValue().getUnderlyingType().(IntegralType).isSigned() and
|
ae.getLValue().getUnderlyingType().(IntegralType).isSigned() and
|
||||||
(
|
(
|
||||||
not exists(DivExpr de | mexp.getParent*() = de)
|
not mexp.getParent*() instanceof DivExpr
|
||||||
or
|
or
|
||||||
exists(DivExpr de, Expr ec |
|
exists(DivExpr de, Expr ec |
|
||||||
e2.isConstant() and
|
e2.isConstant() and
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ Make sure that all classes with virtual functions also have a virtual destructor
|
|||||||
S. Meyers. <em>Effective C++ 3d ed.</em> pp 40-44. Addison-Wesley Professional, 2005.
|
S. Meyers. <em>Effective C++ 3d ed.</em> pp 40-44. Addison-Wesley Professional, 2005.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="http://blogs.msdn.com/b/oldnewthing/archive/2004/05/07/127826.aspx">When should your destructor be virtual?</a>
|
<a href="https://devblogs.microsoft.com/oldnewthing/20040507-00/?p=39443">When should your destructor be virtual?</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import cpp
|
import cpp
|
||||||
import experimental.semmle.code.cpp.semantic.analysis.RangeAnalysis
|
import experimental.semmle.code.cpp.semantic.analysis.RangeAnalysis
|
||||||
import experimental.semmle.code.cpp.semantic.Semantic
|
import experimental.semmle.code.cpp.semantic.Semantic
|
||||||
|
import experimental.semmle.code.cpp.semantic.SemanticExprSpecific
|
||||||
import semmle.code.cpp.ir.IR as IR
|
import semmle.code.cpp.ir.IR as IR
|
||||||
import TestUtilities.InlineExpectationsTest
|
import TestUtilities.InlineExpectationsTest
|
||||||
|
|
||||||
@@ -37,8 +38,13 @@ private string getBoundString(SemBound b, int delta) {
|
|||||||
b instanceof SemZeroBound and result = delta.toString()
|
b instanceof SemZeroBound and result = delta.toString()
|
||||||
or
|
or
|
||||||
result =
|
result =
|
||||||
strictconcat(b.(SemSsaBound).getAVariable().(IR::Instruction).getAst().toString(), ":") +
|
strictconcat(b.(SemSsaBound)
|
||||||
getOffsetString(delta)
|
.getAVariable()
|
||||||
|
.(SemanticExprConfig::SsaVariable)
|
||||||
|
.asInstruction()
|
||||||
|
.getAst()
|
||||||
|
.toString(), ":"
|
||||||
|
) + getOffsetString(delta)
|
||||||
}
|
}
|
||||||
|
|
||||||
private string getARangeString(SemExpr e) {
|
private string getARangeString(SemExpr e) {
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
category: minorAnalysis
|
||||||
|
---
|
||||||
|
* All deprecated predicates/classes/modules that have been deprecated for over a year have been
|
||||||
|
deleted.
|
||||||
|
|
||||||
@@ -109,125 +109,6 @@ private predicate localTaintStep(DataFlowNode src, DataFlowNode sink) {
|
|||||||
src = sink.(UnaryBitwiseOperation).getOperand()
|
src = sink.(UnaryBitwiseOperation).getOperand()
|
||||||
}
|
}
|
||||||
|
|
||||||
deprecated module DefUse {
|
|
||||||
/**
|
|
||||||
* A classification of variable references into reads and writes.
|
|
||||||
*/
|
|
||||||
private newtype RefKind =
|
|
||||||
Read() or
|
|
||||||
Write()
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
|
||||||
* either a read (when `k` is `Read()`) or a write (when `k` is `Write()`).
|
|
||||||
*/
|
|
||||||
private predicate ref(BasicBlock bb, int i, StackVariable v, RefKind k) {
|
|
||||||
exists(ReadAccess ra | bb.getNode(i) = ra |
|
|
||||||
ra.getTarget() = v and
|
|
||||||
k = Read()
|
|
||||||
)
|
|
||||||
or
|
|
||||||
exists(VariableUpdate vu | bb.getNode(i) = vu |
|
|
||||||
vu.getVariable() = v and
|
|
||||||
k = Write()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the (1-based) rank of the reference to `v` at the `i`th node of
|
|
||||||
* basic block `bb`, which has the given reference kind `k`.
|
|
||||||
*/
|
|
||||||
private int refRank(BasicBlock bb, int i, StackVariable v, RefKind k) {
|
|
||||||
i = rank[result](int j | ref(bb, j, v, _)) and
|
|
||||||
ref(bb, i, v, k)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if stack variable `v` is live at the beginning of basic block `bb`.
|
|
||||||
*/
|
|
||||||
private predicate liveAtEntry(BasicBlock bb, StackVariable v) {
|
|
||||||
// The first reference to `v` inside `bb` is a read
|
|
||||||
refRank(bb, _, v, Read()) = 1
|
|
||||||
or
|
|
||||||
// There is no reference to `v` inside `bb`, but `v` is live at entry
|
|
||||||
// to a successor basic block of `bb`
|
|
||||||
not exists(refRank(bb, _, v, _)) and
|
|
||||||
liveAtExit(bb, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if stack variable `v` is live at the end of basic block `bb`.
|
|
||||||
*/
|
|
||||||
private predicate liveAtExit(BasicBlock bb, StackVariable v) {
|
|
||||||
liveAtEntry(bb.getASuccessor(), v)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if the variable update `vu` reaches rank index `rankix`
|
|
||||||
* in its own basic block `bb`.
|
|
||||||
*/
|
|
||||||
private predicate defReachesRank(BasicBlock bb, VariableUpdate vu, int rankix, StackVariable v) {
|
|
||||||
exists(int i |
|
|
||||||
rankix = refRank(bb, i, v, Write()) and
|
|
||||||
vu = bb.getNode(i)
|
|
||||||
)
|
|
||||||
or
|
|
||||||
defReachesRank(bb, vu, rankix - 1, v) and
|
|
||||||
rankix = refRank(bb, _, v, Read())
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if the variable update `vu` of stack variable `v` reaches the
|
|
||||||
* end of a basic block `bb`, at which point it is still live, without
|
|
||||||
* crossing another update.
|
|
||||||
*/
|
|
||||||
private predicate defReachesEndOfBlock(BasicBlock bb, VariableUpdate vu, StackVariable v) {
|
|
||||||
liveAtExit(bb, v) and
|
|
||||||
(
|
|
||||||
exists(int last | last = max(refRank(bb, _, v, _)) | defReachesRank(bb, vu, last, v))
|
|
||||||
or
|
|
||||||
defReachesStartOfBlock(bb, vu, v) and
|
|
||||||
not exists(refRank(bb, _, v, Write()))
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
pragma[noinline]
|
|
||||||
private predicate defReachesStartOfBlock(BasicBlock bb, VariableUpdate vu, StackVariable v) {
|
|
||||||
defReachesEndOfBlock(bb.getAPredecessor(), vu, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if the variable update `vu` of stack variable `v` reaches `read` in the
|
|
||||||
* same basic block without crossing another update of `v`.
|
|
||||||
*/
|
|
||||||
private predicate defReachesReadWithinBlock(StackVariable v, VariableUpdate vu, ReadAccess read) {
|
|
||||||
exists(BasicBlock bb, int rankix, int i |
|
|
||||||
defReachesRank(bb, vu, rankix, v) and
|
|
||||||
rankix = refRank(bb, i, v, Read()) and
|
|
||||||
read = bb.getNode(i)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds if the variable update `vu` can be used at the read `use`. */
|
|
||||||
cached
|
|
||||||
deprecated predicate variableUpdateUse(StackVariable target, VariableUpdate vu, ReadAccess use) {
|
|
||||||
defReachesReadWithinBlock(target, vu, use)
|
|
||||||
or
|
|
||||||
exists(BasicBlock bb, int i |
|
|
||||||
exists(refRank(bb, i, target, Read())) and
|
|
||||||
use = bb.getNode(i) and
|
|
||||||
defReachesEndOfBlock(bb.getAPredecessor(), vu, target) and
|
|
||||||
not defReachesReadWithinBlock(target, _, use)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Holds if the update `def` can be used at the read `use`. */
|
|
||||||
cached
|
|
||||||
deprecated predicate defUse(StackVariable target, Expr def, ReadAccess use) {
|
|
||||||
exists(VariableUpdate vu | def = vu.getSource() | variableUpdateUse(target, vu, use))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A node that updates a variable. */
|
/** A node that updates a variable. */
|
||||||
abstract class VariableUpdate extends DataFlowNode {
|
abstract class VariableUpdate extends DataFlowNode {
|
||||||
/** Gets the value assigned, if any. */
|
/** Gets the value assigned, if any. */
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ private module Liveness {
|
|||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
||||||
*/
|
*/
|
||||||
private predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
||||||
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
||||||
or
|
or
|
||||||
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
||||||
@@ -76,6 +76,10 @@ private module Liveness {
|
|||||||
not result + 1 = refRank(bb, _, v, _)
|
not result + 1 = refRank(bb, _, v, _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate lastRefIsRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
maxRefRank(bb, v) = refRank(bb, _, v, Read(_))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
||||||
* that is either a read or a certain write.
|
* that is either a read or a certain write.
|
||||||
@@ -185,23 +189,29 @@ newtype TDefinition =
|
|||||||
|
|
||||||
private module SsaDefReaches {
|
private module SsaDefReaches {
|
||||||
newtype TSsaRefKind =
|
newtype TSsaRefKind =
|
||||||
SsaRead() or
|
SsaActualRead() or
|
||||||
|
SsaPhiRead() or
|
||||||
SsaDef()
|
SsaDef()
|
||||||
|
|
||||||
|
class SsaRead = SsaActualRead or SsaPhiRead;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A classification of SSA variable references into reads and definitions.
|
* A classification of SSA variable references into reads and definitions.
|
||||||
*/
|
*/
|
||||||
class SsaRefKind extends TSsaRefKind {
|
class SsaRefKind extends TSsaRefKind {
|
||||||
string toString() {
|
string toString() {
|
||||||
this = SsaRead() and
|
this = SsaActualRead() and
|
||||||
result = "SsaRead"
|
result = "SsaActualRead"
|
||||||
|
or
|
||||||
|
this = SsaPhiRead() and
|
||||||
|
result = "SsaPhiRead"
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
result = "SsaDef"
|
result = "SsaDef"
|
||||||
}
|
}
|
||||||
|
|
||||||
int getOrder() {
|
int getOrder() {
|
||||||
this = SsaRead() and
|
this instanceof SsaRead and
|
||||||
result = 0
|
result = 0
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
@@ -209,6 +219,80 @@ private module SsaDefReaches {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `bb` is in the dominance frontier of a block containing a
|
||||||
|
* read of `v`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate inReadDominanceFrontier(BasicBlock bb, SourceVariable v) {
|
||||||
|
exists(BasicBlock readbb | inDominanceFrontier(readbb, bb) |
|
||||||
|
lastRefIsRead(readbb, v)
|
||||||
|
or
|
||||||
|
phiRead(readbb, v)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if a phi-read node should be inserted for variable `v` at the beginning
|
||||||
|
* of basic block `bb`.
|
||||||
|
*
|
||||||
|
* Phi-read nodes are like normal phi nodes, but they are inserted based on reads
|
||||||
|
* instead of writes, and only if the dominance-frontier block does not already
|
||||||
|
* contain a reference (read or write) to `v`. Unlike normal phi nodes, this is
|
||||||
|
* an internal implementation detail that is not exposed.
|
||||||
|
*
|
||||||
|
* The motivation for adding phi-reads is to improve performance of the use-use
|
||||||
|
* calculation in cases where there is a large number of reads that can reach the
|
||||||
|
* same join-point, and from there reach a large number of basic blocks. Example:
|
||||||
|
*
|
||||||
|
* ```cs
|
||||||
|
* if (a)
|
||||||
|
* use(x);
|
||||||
|
* else if (b)
|
||||||
|
* use(x);
|
||||||
|
* else if (c)
|
||||||
|
* use(x);
|
||||||
|
* else if (d)
|
||||||
|
* use(x);
|
||||||
|
* // many more ifs ...
|
||||||
|
*
|
||||||
|
* // phi-read for `x` inserted here
|
||||||
|
*
|
||||||
|
* // program not mentioning `x`, with large basic block graph
|
||||||
|
*
|
||||||
|
* use(x);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Without phi-reads, the analysis has to replicate reachability for each of
|
||||||
|
* the guarded uses of `x`. However, with phi-reads, the analysis will limit
|
||||||
|
* each conditional use of `x` to reach the basic block containing the phi-read
|
||||||
|
* node for `x`, and only that basic block will have to compute reachability
|
||||||
|
* through the remainder of the large program.
|
||||||
|
*
|
||||||
|
* Like normal reads, each phi-read node `phi-read` can be reached from exactly
|
||||||
|
* one SSA definition (without passing through another definition): Assume, for
|
||||||
|
* the sake of contradiction, that there are two reaching definitions `def1` and
|
||||||
|
* `def2`. Now, if both `def1` and `def2` dominate `phi-read`, then the nearest
|
||||||
|
* dominating definition will prevent the other from reaching `phi-read`. So, at
|
||||||
|
* least one of `def1` and `def2` cannot dominate `phi-read`; assume it is `def1`.
|
||||||
|
* Then `def1` must go through one of its dominance-frontier blocks in order to
|
||||||
|
* reach `phi-read`. However, such a block will always start with a (normal) phi
|
||||||
|
* node, which contradicts reachability.
|
||||||
|
*
|
||||||
|
* Also, like normal reads, the unique SSA definition `def` that reaches `phi-read`,
|
||||||
|
* will dominate `phi-read`. Assuming it doesn't means that the path from `def`
|
||||||
|
* to `phi-read` goes through a dominance-frontier block, and hence a phi node,
|
||||||
|
* which contradicts reachability.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate phiRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
inReadDominanceFrontier(bb, v) and
|
||||||
|
liveAtEntry(bb, v) and
|
||||||
|
// only if there are no other references to `v` inside `bb`
|
||||||
|
not ref(bb, _, v, _) and
|
||||||
|
not exists(Definition def | def.definesAt(v, bb, _))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
||||||
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
||||||
@@ -216,11 +300,16 @@ private module SsaDefReaches {
|
|||||||
*
|
*
|
||||||
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
||||||
variableRead(bb, i, v, _) and
|
variableRead(bb, i, v, _) and
|
||||||
k = SsaRead()
|
k = SsaActualRead()
|
||||||
or
|
or
|
||||||
exists(Definition def | def.definesAt(v, bb, i)) and
|
phiRead(bb, v) and
|
||||||
|
i = -1 and
|
||||||
|
k = SsaPhiRead()
|
||||||
|
or
|
||||||
|
any(Definition def).definesAt(v, bb, i) and
|
||||||
k = SsaDef()
|
k = SsaDef()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +362,7 @@ private module SsaDefReaches {
|
|||||||
)
|
)
|
||||||
or
|
or
|
||||||
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
||||||
rnk = ssaRefRank(bb, _, v, SsaRead())
|
rnk = ssaRefRank(bb, _, v, any(SsaRead k))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -283,7 +372,7 @@ private module SsaDefReaches {
|
|||||||
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
ssaDefReachesRank(bb, def, rnk, v) and
|
ssaDefReachesRank(bb, def, rnk, v) and
|
||||||
rnk = ssaRefRank(bb, i, v, SsaRead())
|
rnk = ssaRefRank(bb, i, v, any(SsaRead k))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,45 +398,94 @@ private module SsaDefReaches {
|
|||||||
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v) {
|
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v, SsaRefKind k) {
|
||||||
exists(ssaDefRank(def, v, bb, _, _))
|
exists(ssaDefRank(def, v, bb, _, k))
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma[noinline]
|
pragma[noinline]
|
||||||
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
||||||
ssaDefReachesEndOfBlock(bb, def, _) and
|
ssaDefReachesEndOfBlock(bb, def, _) and
|
||||||
not defOccursInBlock(_, bb, def.getSourceVariable())
|
not defOccursInBlock(_, bb, def.getSourceVariable(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of `bb1`,
|
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of _some_
|
||||||
* and the underlying variable for `def` is neither read nor written in any block
|
* predecessor of `bb2`, and the underlying variable for `def` is neither read
|
||||||
* on the path between `bb1` and `bb2`.
|
* nor written in any block on the path between `bb1` and `bb2`.
|
||||||
|
*
|
||||||
|
* Phi reads are considered as normal reads for this predicate.
|
||||||
*/
|
*/
|
||||||
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
pragma[nomagic]
|
||||||
defOccursInBlock(def, bb1, _) and
|
private predicate varBlockReachesInclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
defOccursInBlock(def, bb1, _, _) and
|
||||||
bb2 = getABasicBlockSuccessor(bb1)
|
bb2 = getABasicBlockSuccessor(bb1)
|
||||||
or
|
or
|
||||||
exists(BasicBlock mid |
|
exists(BasicBlock mid |
|
||||||
varBlockReaches(def, bb1, mid) and
|
varBlockReachesInclPhiRead(def, bb1, mid) and
|
||||||
ssaDefReachesThroughBlock(def, mid) and
|
ssaDefReachesThroughBlock(def, mid) and
|
||||||
bb2 = getABasicBlockSuccessor(mid)
|
bb2 = getABasicBlockSuccessor(mid)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate phiReadStep(Definition def, SourceVariable v, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(def, bb1, bb2) and
|
||||||
|
defOccursInBlock(def, bb2, v, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate varBlockReachesExclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(pragma[only_bind_into](def), bb1, pragma[only_bind_into](bb2)) and
|
||||||
|
ssaRef(bb2, _, def.getSourceVariable(), [SsaActualRead().(TSsaRefKind), SsaDef()])
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExclPhiRead(def, mid, bb2) and
|
||||||
|
phiReadStep(def, _, bb1, mid)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `def` is read at index `i2` in basic block `bb2`, `bb2` is in a transitive
|
* the underlying variable `v` of `def` is accessed in basic block `bb2`
|
||||||
* successor block of `bb1`, and `def` is neither read nor written in any block
|
* (either a read or a write), `bb2` is a transitive successor of `bb1`, and
|
||||||
* on a path between `bb1` and `bb2`.
|
* `v` is neither read nor written in any block on the path between `bb1`
|
||||||
|
* and `bb2`.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesExclPhiRead(def, bb1, bb2) and
|
||||||
|
not defOccursInBlock(def, bb1, _, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
||||||
varBlockReaches(def, bb1, bb2) and
|
varBlockReaches(def, bb1, bb2) and
|
||||||
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaRead()) = 1
|
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaActualRead()) = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `def` is accessed in basic block `bb` (either a read or a write),
|
||||||
|
* `bb1` can reach a transitive successor `bb2` where `def` is no longer live,
|
||||||
|
* and `v` is neither read nor written in any block on the path between `bb`
|
||||||
|
* and `bb2`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReachesExit(Definition def, BasicBlock bb) {
|
||||||
|
exists(BasicBlock bb2 | varBlockReachesInclPhiRead(def, bb, bb2) |
|
||||||
|
not defOccursInBlock(def, bb2, _, _) and
|
||||||
|
not ssaDefReachesEndOfBlock(bb2, def, _)
|
||||||
|
)
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExit(def, mid) and
|
||||||
|
phiReadStep(def, _, bb, mid)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate phiReadExposedForTesting = phiRead/2;
|
||||||
|
|
||||||
private import SsaDefReaches
|
private import SsaDefReaches
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
@@ -365,7 +503,8 @@ predicate liveThrough(BasicBlock bb, SourceVariable v) {
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
||||||
exists(int last | last = maxSsaRefRank(bb, v) |
|
exists(int last |
|
||||||
|
last = maxSsaRefRank(pragma[only_bind_into](bb), pragma[only_bind_into](v)) and
|
||||||
ssaDefReachesRank(bb, def, last, v) and
|
ssaDefReachesRank(bb, def, last, v) and
|
||||||
liveAtExit(bb, v)
|
liveAtExit(bb, v)
|
||||||
)
|
)
|
||||||
@@ -405,7 +544,7 @@ pragma[nomagic]
|
|||||||
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
||||||
or
|
or
|
||||||
variableRead(bb, i, v, _) and
|
ssaRef(bb, i, v, any(SsaRead k)) and
|
||||||
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
||||||
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
||||||
}
|
}
|
||||||
@@ -421,7 +560,7 @@ pragma[nomagic]
|
|||||||
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
||||||
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaRead()) and
|
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaActualRead()) and
|
||||||
variableRead(bb1, i2, _, _) and
|
variableRead(bb1, i2, _, _) and
|
||||||
bb2 = bb1
|
bb2 = bb1
|
||||||
)
|
)
|
||||||
@@ -538,18 +677,15 @@ predicate lastRefRedefNoUncertainReads(Definition def, BasicBlock bb, int i, Def
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
||||||
|
// Can reach another definition
|
||||||
lastRefRedef(def, bb, i, _)
|
lastRefRedef(def, bb, i, _)
|
||||||
or
|
or
|
||||||
lastSsaRef(def, _, bb, i) and
|
exists(SourceVariable v | lastSsaRef(def, v, bb, i) |
|
||||||
(
|
|
||||||
// Can reach exit directly
|
// Can reach exit directly
|
||||||
bb instanceof ExitBasicBlock
|
bb instanceof ExitBasicBlock
|
||||||
or
|
or
|
||||||
// Can reach a block using one or more steps, where `def` is no longer live
|
// Can reach a block using one or more steps, where `def` is no longer live
|
||||||
exists(BasicBlock bb2 | varBlockReaches(def, bb, bb2) |
|
varBlockReachesExit(def, bb)
|
||||||
not defOccursInBlock(def, bb2, _) and
|
|
||||||
not ssaDefReachesEndOfBlock(bb2, def, _)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ private module Liveness {
|
|||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
||||||
*/
|
*/
|
||||||
private predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
||||||
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
||||||
or
|
or
|
||||||
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
||||||
@@ -76,6 +76,10 @@ private module Liveness {
|
|||||||
not result + 1 = refRank(bb, _, v, _)
|
not result + 1 = refRank(bb, _, v, _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate lastRefIsRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
maxRefRank(bb, v) = refRank(bb, _, v, Read(_))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
||||||
* that is either a read or a certain write.
|
* that is either a read or a certain write.
|
||||||
@@ -185,23 +189,29 @@ newtype TDefinition =
|
|||||||
|
|
||||||
private module SsaDefReaches {
|
private module SsaDefReaches {
|
||||||
newtype TSsaRefKind =
|
newtype TSsaRefKind =
|
||||||
SsaRead() or
|
SsaActualRead() or
|
||||||
|
SsaPhiRead() or
|
||||||
SsaDef()
|
SsaDef()
|
||||||
|
|
||||||
|
class SsaRead = SsaActualRead or SsaPhiRead;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A classification of SSA variable references into reads and definitions.
|
* A classification of SSA variable references into reads and definitions.
|
||||||
*/
|
*/
|
||||||
class SsaRefKind extends TSsaRefKind {
|
class SsaRefKind extends TSsaRefKind {
|
||||||
string toString() {
|
string toString() {
|
||||||
this = SsaRead() and
|
this = SsaActualRead() and
|
||||||
result = "SsaRead"
|
result = "SsaActualRead"
|
||||||
|
or
|
||||||
|
this = SsaPhiRead() and
|
||||||
|
result = "SsaPhiRead"
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
result = "SsaDef"
|
result = "SsaDef"
|
||||||
}
|
}
|
||||||
|
|
||||||
int getOrder() {
|
int getOrder() {
|
||||||
this = SsaRead() and
|
this instanceof SsaRead and
|
||||||
result = 0
|
result = 0
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
@@ -209,6 +219,80 @@ private module SsaDefReaches {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `bb` is in the dominance frontier of a block containing a
|
||||||
|
* read of `v`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate inReadDominanceFrontier(BasicBlock bb, SourceVariable v) {
|
||||||
|
exists(BasicBlock readbb | inDominanceFrontier(readbb, bb) |
|
||||||
|
lastRefIsRead(readbb, v)
|
||||||
|
or
|
||||||
|
phiRead(readbb, v)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if a phi-read node should be inserted for variable `v` at the beginning
|
||||||
|
* of basic block `bb`.
|
||||||
|
*
|
||||||
|
* Phi-read nodes are like normal phi nodes, but they are inserted based on reads
|
||||||
|
* instead of writes, and only if the dominance-frontier block does not already
|
||||||
|
* contain a reference (read or write) to `v`. Unlike normal phi nodes, this is
|
||||||
|
* an internal implementation detail that is not exposed.
|
||||||
|
*
|
||||||
|
* The motivation for adding phi-reads is to improve performance of the use-use
|
||||||
|
* calculation in cases where there is a large number of reads that can reach the
|
||||||
|
* same join-point, and from there reach a large number of basic blocks. Example:
|
||||||
|
*
|
||||||
|
* ```cs
|
||||||
|
* if (a)
|
||||||
|
* use(x);
|
||||||
|
* else if (b)
|
||||||
|
* use(x);
|
||||||
|
* else if (c)
|
||||||
|
* use(x);
|
||||||
|
* else if (d)
|
||||||
|
* use(x);
|
||||||
|
* // many more ifs ...
|
||||||
|
*
|
||||||
|
* // phi-read for `x` inserted here
|
||||||
|
*
|
||||||
|
* // program not mentioning `x`, with large basic block graph
|
||||||
|
*
|
||||||
|
* use(x);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Without phi-reads, the analysis has to replicate reachability for each of
|
||||||
|
* the guarded uses of `x`. However, with phi-reads, the analysis will limit
|
||||||
|
* each conditional use of `x` to reach the basic block containing the phi-read
|
||||||
|
* node for `x`, and only that basic block will have to compute reachability
|
||||||
|
* through the remainder of the large program.
|
||||||
|
*
|
||||||
|
* Like normal reads, each phi-read node `phi-read` can be reached from exactly
|
||||||
|
* one SSA definition (without passing through another definition): Assume, for
|
||||||
|
* the sake of contradiction, that there are two reaching definitions `def1` and
|
||||||
|
* `def2`. Now, if both `def1` and `def2` dominate `phi-read`, then the nearest
|
||||||
|
* dominating definition will prevent the other from reaching `phi-read`. So, at
|
||||||
|
* least one of `def1` and `def2` cannot dominate `phi-read`; assume it is `def1`.
|
||||||
|
* Then `def1` must go through one of its dominance-frontier blocks in order to
|
||||||
|
* reach `phi-read`. However, such a block will always start with a (normal) phi
|
||||||
|
* node, which contradicts reachability.
|
||||||
|
*
|
||||||
|
* Also, like normal reads, the unique SSA definition `def` that reaches `phi-read`,
|
||||||
|
* will dominate `phi-read`. Assuming it doesn't means that the path from `def`
|
||||||
|
* to `phi-read` goes through a dominance-frontier block, and hence a phi node,
|
||||||
|
* which contradicts reachability.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate phiRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
inReadDominanceFrontier(bb, v) and
|
||||||
|
liveAtEntry(bb, v) and
|
||||||
|
// only if there are no other references to `v` inside `bb`
|
||||||
|
not ref(bb, _, v, _) and
|
||||||
|
not exists(Definition def | def.definesAt(v, bb, _))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
||||||
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
||||||
@@ -216,11 +300,16 @@ private module SsaDefReaches {
|
|||||||
*
|
*
|
||||||
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
||||||
variableRead(bb, i, v, _) and
|
variableRead(bb, i, v, _) and
|
||||||
k = SsaRead()
|
k = SsaActualRead()
|
||||||
or
|
or
|
||||||
exists(Definition def | def.definesAt(v, bb, i)) and
|
phiRead(bb, v) and
|
||||||
|
i = -1 and
|
||||||
|
k = SsaPhiRead()
|
||||||
|
or
|
||||||
|
any(Definition def).definesAt(v, bb, i) and
|
||||||
k = SsaDef()
|
k = SsaDef()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +362,7 @@ private module SsaDefReaches {
|
|||||||
)
|
)
|
||||||
or
|
or
|
||||||
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
||||||
rnk = ssaRefRank(bb, _, v, SsaRead())
|
rnk = ssaRefRank(bb, _, v, any(SsaRead k))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -283,7 +372,7 @@ private module SsaDefReaches {
|
|||||||
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
ssaDefReachesRank(bb, def, rnk, v) and
|
ssaDefReachesRank(bb, def, rnk, v) and
|
||||||
rnk = ssaRefRank(bb, i, v, SsaRead())
|
rnk = ssaRefRank(bb, i, v, any(SsaRead k))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,45 +398,94 @@ private module SsaDefReaches {
|
|||||||
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v) {
|
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v, SsaRefKind k) {
|
||||||
exists(ssaDefRank(def, v, bb, _, _))
|
exists(ssaDefRank(def, v, bb, _, k))
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma[noinline]
|
pragma[noinline]
|
||||||
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
||||||
ssaDefReachesEndOfBlock(bb, def, _) and
|
ssaDefReachesEndOfBlock(bb, def, _) and
|
||||||
not defOccursInBlock(_, bb, def.getSourceVariable())
|
not defOccursInBlock(_, bb, def.getSourceVariable(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of `bb1`,
|
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of _some_
|
||||||
* and the underlying variable for `def` is neither read nor written in any block
|
* predecessor of `bb2`, and the underlying variable for `def` is neither read
|
||||||
* on the path between `bb1` and `bb2`.
|
* nor written in any block on the path between `bb1` and `bb2`.
|
||||||
|
*
|
||||||
|
* Phi reads are considered as normal reads for this predicate.
|
||||||
*/
|
*/
|
||||||
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
pragma[nomagic]
|
||||||
defOccursInBlock(def, bb1, _) and
|
private predicate varBlockReachesInclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
defOccursInBlock(def, bb1, _, _) and
|
||||||
bb2 = getABasicBlockSuccessor(bb1)
|
bb2 = getABasicBlockSuccessor(bb1)
|
||||||
or
|
or
|
||||||
exists(BasicBlock mid |
|
exists(BasicBlock mid |
|
||||||
varBlockReaches(def, bb1, mid) and
|
varBlockReachesInclPhiRead(def, bb1, mid) and
|
||||||
ssaDefReachesThroughBlock(def, mid) and
|
ssaDefReachesThroughBlock(def, mid) and
|
||||||
bb2 = getABasicBlockSuccessor(mid)
|
bb2 = getABasicBlockSuccessor(mid)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate phiReadStep(Definition def, SourceVariable v, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(def, bb1, bb2) and
|
||||||
|
defOccursInBlock(def, bb2, v, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate varBlockReachesExclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(pragma[only_bind_into](def), bb1, pragma[only_bind_into](bb2)) and
|
||||||
|
ssaRef(bb2, _, def.getSourceVariable(), [SsaActualRead().(TSsaRefKind), SsaDef()])
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExclPhiRead(def, mid, bb2) and
|
||||||
|
phiReadStep(def, _, bb1, mid)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `def` is read at index `i2` in basic block `bb2`, `bb2` is in a transitive
|
* the underlying variable `v` of `def` is accessed in basic block `bb2`
|
||||||
* successor block of `bb1`, and `def` is neither read nor written in any block
|
* (either a read or a write), `bb2` is a transitive successor of `bb1`, and
|
||||||
* on a path between `bb1` and `bb2`.
|
* `v` is neither read nor written in any block on the path between `bb1`
|
||||||
|
* and `bb2`.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesExclPhiRead(def, bb1, bb2) and
|
||||||
|
not defOccursInBlock(def, bb1, _, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
||||||
varBlockReaches(def, bb1, bb2) and
|
varBlockReaches(def, bb1, bb2) and
|
||||||
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaRead()) = 1
|
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaActualRead()) = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `def` is accessed in basic block `bb` (either a read or a write),
|
||||||
|
* `bb1` can reach a transitive successor `bb2` where `def` is no longer live,
|
||||||
|
* and `v` is neither read nor written in any block on the path between `bb`
|
||||||
|
* and `bb2`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReachesExit(Definition def, BasicBlock bb) {
|
||||||
|
exists(BasicBlock bb2 | varBlockReachesInclPhiRead(def, bb, bb2) |
|
||||||
|
not defOccursInBlock(def, bb2, _, _) and
|
||||||
|
not ssaDefReachesEndOfBlock(bb2, def, _)
|
||||||
|
)
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExit(def, mid) and
|
||||||
|
phiReadStep(def, _, bb, mid)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate phiReadExposedForTesting = phiRead/2;
|
||||||
|
|
||||||
private import SsaDefReaches
|
private import SsaDefReaches
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
@@ -365,7 +503,8 @@ predicate liveThrough(BasicBlock bb, SourceVariable v) {
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
||||||
exists(int last | last = maxSsaRefRank(bb, v) |
|
exists(int last |
|
||||||
|
last = maxSsaRefRank(pragma[only_bind_into](bb), pragma[only_bind_into](v)) and
|
||||||
ssaDefReachesRank(bb, def, last, v) and
|
ssaDefReachesRank(bb, def, last, v) and
|
||||||
liveAtExit(bb, v)
|
liveAtExit(bb, v)
|
||||||
)
|
)
|
||||||
@@ -405,7 +544,7 @@ pragma[nomagic]
|
|||||||
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
||||||
or
|
or
|
||||||
variableRead(bb, i, v, _) and
|
ssaRef(bb, i, v, any(SsaRead k)) and
|
||||||
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
||||||
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
||||||
}
|
}
|
||||||
@@ -421,7 +560,7 @@ pragma[nomagic]
|
|||||||
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
||||||
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaRead()) and
|
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaActualRead()) and
|
||||||
variableRead(bb1, i2, _, _) and
|
variableRead(bb1, i2, _, _) and
|
||||||
bb2 = bb1
|
bb2 = bb1
|
||||||
)
|
)
|
||||||
@@ -538,18 +677,15 @@ predicate lastRefRedefNoUncertainReads(Definition def, BasicBlock bb, int i, Def
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
||||||
|
// Can reach another definition
|
||||||
lastRefRedef(def, bb, i, _)
|
lastRefRedef(def, bb, i, _)
|
||||||
or
|
or
|
||||||
lastSsaRef(def, _, bb, i) and
|
exists(SourceVariable v | lastSsaRef(def, v, bb, i) |
|
||||||
(
|
|
||||||
// Can reach exit directly
|
// Can reach exit directly
|
||||||
bb instanceof ExitBasicBlock
|
bb instanceof ExitBasicBlock
|
||||||
or
|
or
|
||||||
// Can reach a block using one or more steps, where `def` is no longer live
|
// Can reach a block using one or more steps, where `def` is no longer live
|
||||||
exists(BasicBlock bb2 | varBlockReaches(def, bb, bb2) |
|
varBlockReachesExit(def, bb)
|
||||||
not defOccursInBlock(def, bb2, _) and
|
|
||||||
not ssaDefReachesEndOfBlock(bb2, def, _)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,96 +0,0 @@
|
|||||||
/**
|
|
||||||
* DEPRECATED.
|
|
||||||
*
|
|
||||||
* Provides classes for data flow call contexts.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import csharp
|
|
||||||
private import semmle.code.csharp.dataflow.internal.DelegateDataFlow
|
|
||||||
private import semmle.code.csharp.dispatch.Dispatch
|
|
||||||
|
|
||||||
// Internal representation of call contexts
|
|
||||||
cached
|
|
||||||
private newtype TCallContext =
|
|
||||||
TEmptyCallContext() or
|
|
||||||
TArgNonDelegateCallContext(Expr arg) { exists(DispatchCall dc | arg = dc.getArgument(_)) } or
|
|
||||||
TArgDelegateCallContext(DelegateCall dc, int i) { exists(dc.getArgument(i)) } or
|
|
||||||
TArgFunctionPointerCallContext(FunctionPointerCall fptrc, int i) { exists(fptrc.getArgument(i)) }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED.
|
|
||||||
*
|
|
||||||
* A call context.
|
|
||||||
*
|
|
||||||
* A call context records the origin of data flow into callables.
|
|
||||||
*/
|
|
||||||
deprecated class CallContext extends TCallContext {
|
|
||||||
/** Gets a textual representation of this call context. */
|
|
||||||
string toString() { none() }
|
|
||||||
|
|
||||||
/** Gets the location of this call context, if any. */
|
|
||||||
Location getLocation() { none() }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** DEPRECATED. An empty call context. */
|
|
||||||
deprecated class EmptyCallContext extends CallContext, TEmptyCallContext {
|
|
||||||
override string toString() { result = "<empty>" }
|
|
||||||
|
|
||||||
override EmptyLocation getLocation() { any() }
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED.
|
|
||||||
*
|
|
||||||
* An argument call context, that is a call argument through which data flows
|
|
||||||
* into a callable.
|
|
||||||
*/
|
|
||||||
abstract deprecated class ArgumentCallContext extends CallContext {
|
|
||||||
/**
|
|
||||||
* Holds if this call context represents the argument at position `i` of the
|
|
||||||
* call expression `call`.
|
|
||||||
*/
|
|
||||||
abstract predicate isArgument(Expr call, int i);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** DEPRECATED. An argument of a non-delegate call. */
|
|
||||||
deprecated class NonDelegateCallArgumentCallContext extends ArgumentCallContext,
|
|
||||||
TArgNonDelegateCallContext {
|
|
||||||
Expr arg;
|
|
||||||
|
|
||||||
NonDelegateCallArgumentCallContext() { this = TArgNonDelegateCallContext(arg) }
|
|
||||||
|
|
||||||
override predicate isArgument(Expr call, int i) {
|
|
||||||
exists(DispatchCall dc | arg = dc.getArgument(i) | call = dc.getCall())
|
|
||||||
}
|
|
||||||
|
|
||||||
override string toString() { result = arg.toString() }
|
|
||||||
|
|
||||||
override Location getLocation() { result = arg.getLocation() }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** DEPRECATED. An argument of a delegate or function pointer call. */
|
|
||||||
deprecated class DelegateLikeCallArgumentCallContext extends ArgumentCallContext {
|
|
||||||
DelegateLikeCall dc;
|
|
||||||
int arg;
|
|
||||||
|
|
||||||
DelegateLikeCallArgumentCallContext() {
|
|
||||||
this = TArgDelegateCallContext(dc, arg) or this = TArgFunctionPointerCallContext(dc, arg)
|
|
||||||
}
|
|
||||||
|
|
||||||
override predicate isArgument(Expr call, int i) {
|
|
||||||
call = dc and
|
|
||||||
i = arg
|
|
||||||
}
|
|
||||||
|
|
||||||
override string toString() { result = dc.getArgument(arg).toString() }
|
|
||||||
|
|
||||||
override Location getLocation() { result = dc.getArgument(arg).getLocation() }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** DEPRECATED. An argument of a delegate call. */
|
|
||||||
deprecated class DelegateCallArgumentCallContext extends DelegateLikeCallArgumentCallContext,
|
|
||||||
TArgDelegateCallContext { }
|
|
||||||
|
|
||||||
/** DEPRECATED. An argument of a function pointer call. */
|
|
||||||
deprecated class FunctionPointerCallArgumentCallContext extends DelegateLikeCallArgumentCallContext,
|
|
||||||
TArgFunctionPointerCallContext { }
|
|
||||||
@@ -163,10 +163,6 @@ module Ssa {
|
|||||||
* (`ImplicitDefinition`), or a phi node (`PhiNode`).
|
* (`ImplicitDefinition`), or a phi node (`PhiNode`).
|
||||||
*/
|
*/
|
||||||
class Definition extends SsaImpl::Definition {
|
class Definition extends SsaImpl::Definition {
|
||||||
final override SourceVariable getSourceVariable() {
|
|
||||||
result = SsaImpl::Definition.super.getSourceVariable()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the control flow node of this SSA definition, if any. Phi nodes are
|
* Gets the control flow node of this SSA definition, if any. Phi nodes are
|
||||||
* examples of SSA definitions without a control flow node, as they are
|
* examples of SSA definitions without a control flow node, as they are
|
||||||
|
|||||||
@@ -105,15 +105,12 @@ class DataFlowSummarizedCallable instanceof FlowSummary::SummarizedCallable {
|
|||||||
private module Cached {
|
private module Cached {
|
||||||
/**
|
/**
|
||||||
* The following heuristic is used to rank when to use source code or when to use summaries for DataFlowCallables.
|
* The following heuristic is used to rank when to use source code or when to use summaries for DataFlowCallables.
|
||||||
* 1. Use hand written summaries.
|
* 1. Use hand written summaries or source code.
|
||||||
* 2. Use source code.
|
* 2. Use auto generated summaries.
|
||||||
* 3. Use auto generated summaries.
|
|
||||||
*/
|
*/
|
||||||
cached
|
cached
|
||||||
newtype TDataFlowCallable =
|
newtype TDataFlowCallable =
|
||||||
TDotNetCallable(DotNet::Callable c) {
|
TDotNetCallable(DotNet::Callable c) { c.isUnboundDeclaration() } or
|
||||||
c.isUnboundDeclaration() and not c instanceof DataFlowSummarizedCallable
|
|
||||||
} or
|
|
||||||
TSummarizedCallable(DataFlowSummarizedCallable sc)
|
TSummarizedCallable(DataFlowSummarizedCallable sc)
|
||||||
|
|
||||||
cached
|
cached
|
||||||
@@ -370,7 +367,7 @@ class NonDelegateDataFlowCall extends DataFlowCall, TNonDelegateCall {
|
|||||||
override DataFlow::ExprNode getNode() { result.getControlFlowNode() = cfn }
|
override DataFlow::ExprNode getNode() { result.getControlFlowNode() = cfn }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallable() {
|
override DataFlowCallable getEnclosingCallable() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override string toString() { result = cfn.toString() }
|
override string toString() { result = cfn.toString() }
|
||||||
@@ -400,7 +397,7 @@ class ExplicitDelegateLikeDataFlowCall extends DelegateDataFlowCall, TExplicitDe
|
|||||||
override DataFlow::ExprNode getNode() { result.getControlFlowNode() = cfn }
|
override DataFlow::ExprNode getNode() { result.getControlFlowNode() = cfn }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallable() {
|
override DataFlowCallable getEnclosingCallable() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override string toString() { result = cfn.toString() }
|
override string toString() { result = cfn.toString() }
|
||||||
@@ -419,14 +416,14 @@ class TransitiveCapturedDataFlowCall extends DataFlowCall, TTransitiveCapturedCa
|
|||||||
|
|
||||||
TransitiveCapturedDataFlowCall() { this = TTransitiveCapturedCall(cfn, target) }
|
TransitiveCapturedDataFlowCall() { this = TTransitiveCapturedCall(cfn, target) }
|
||||||
|
|
||||||
override DataFlowCallable getARuntimeTarget() { result.getUnderlyingCallable() = target }
|
override DataFlowCallable getARuntimeTarget() { result.asCallable() = target }
|
||||||
|
|
||||||
override ControlFlow::Nodes::ElementNode getControlFlowNode() { result = cfn }
|
override ControlFlow::Nodes::ElementNode getControlFlowNode() { result = cfn }
|
||||||
|
|
||||||
override DataFlow::ExprNode getNode() { none() }
|
override DataFlow::ExprNode getNode() { none() }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallable() {
|
override DataFlowCallable getEnclosingCallable() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override string toString() { result = "[transitive] " + cfn.toString() }
|
override string toString() { result = "[transitive] " + cfn.toString() }
|
||||||
@@ -450,7 +447,7 @@ class CilDataFlowCall extends DataFlowCall, TCilCall {
|
|||||||
override DataFlow::ExprNode getNode() { result.getExpr() = call }
|
override DataFlow::ExprNode getNode() { result.getExpr() = call }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallable() {
|
override DataFlowCallable getEnclosingCallable() {
|
||||||
result.getUnderlyingCallable() = call.getEnclosingCallable()
|
result.asCallable() = call.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override string toString() { result = call.toString() }
|
override string toString() { result = call.toString() }
|
||||||
|
|||||||
@@ -65,9 +65,11 @@ abstract class NodeImpl extends Node {
|
|||||||
|
|
||||||
private class ExprNodeImpl extends ExprNode, NodeImpl {
|
private class ExprNodeImpl extends ExprNode, NodeImpl {
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = this.getExpr().(CIL::Expr).getEnclosingCallable()
|
result.asCallable() =
|
||||||
or
|
[
|
||||||
result.getUnderlyingCallable() = this.getControlFlowNodeImpl().getEnclosingCallable()
|
this.getExpr().(CIL::Expr).getEnclosingCallable().(DotNet::Callable),
|
||||||
|
this.getControlFlowNodeImpl().getEnclosingCallable()
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
override DotNet::Type getTypeImpl() {
|
override DotNet::Type getTypeImpl() {
|
||||||
@@ -852,7 +854,7 @@ class SsaDefinitionNode extends NodeImpl, TSsaDefinitionNode {
|
|||||||
Ssa::Definition getDefinition() { result = def }
|
Ssa::Definition getDefinition() { result = def }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = def.getEnclosingCallable()
|
result.asCallable() = def.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = def.getSourceVariable().getType() }
|
override Type getTypeImpl() { result = def.getSourceVariable().getType() }
|
||||||
@@ -914,9 +916,7 @@ private module ParameterNodes {
|
|||||||
callable = c.asCallable() and pos.isThisParameter()
|
callable = c.asCallable() and pos.isThisParameter()
|
||||||
}
|
}
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() { result.asCallable() = callable }
|
||||||
result.getUnderlyingCallable() = callable
|
|
||||||
}
|
|
||||||
|
|
||||||
override Type getTypeImpl() { result = callable.getDeclaringType() }
|
override Type getTypeImpl() { result = callable.getDeclaringType() }
|
||||||
|
|
||||||
@@ -963,7 +963,7 @@ private module ParameterNodes {
|
|||||||
|
|
||||||
override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) {
|
override predicate isParameterOf(DataFlowCallable c, ParameterPosition pos) {
|
||||||
pos.isImplicitCapturedParameterPosition(def.getSourceVariable().getAssignable()) and
|
pos.isImplicitCapturedParameterPosition(def.getSourceVariable().getAssignable()) and
|
||||||
c.getUnderlyingCallable() = this.getEnclosingCallable()
|
c.asCallable() = this.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1078,7 +1078,7 @@ private module ArgumentNodes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = v.getType() }
|
override Type getTypeImpl() { result = v.getType() }
|
||||||
@@ -1107,7 +1107,7 @@ private module ArgumentNodes {
|
|||||||
override ControlFlow::Node getControlFlowNodeImpl() { result = cfn }
|
override ControlFlow::Node getControlFlowNodeImpl() { result = cfn }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = cfn.getElement().(Expr).getType() }
|
override Type getTypeImpl() { result = cfn.getElement().(Expr).getType() }
|
||||||
@@ -1146,7 +1146,7 @@ private module ArgumentNodes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = callCfn.getEnclosingCallable()
|
result.asCallable() = callCfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = this.getParameter().getType() }
|
override Type getTypeImpl() { result = this.getParameter().getType() }
|
||||||
@@ -1227,7 +1227,7 @@ private module ReturnNodes {
|
|||||||
override NormalReturnKind getKind() { any() }
|
override NormalReturnKind getKind() { any() }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = yrs.getEnclosingCallable()
|
result.asCallable() = yrs.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = yrs.getEnclosingCallable().getReturnType() }
|
override Type getTypeImpl() { result = yrs.getEnclosingCallable().getReturnType() }
|
||||||
@@ -1253,7 +1253,7 @@ private module ReturnNodes {
|
|||||||
override NormalReturnKind getKind() { any() }
|
override NormalReturnKind getKind() { any() }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = expr.getEnclosingCallable()
|
result.asCallable() = expr.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = expr.getEnclosingCallable().getReturnType() }
|
override Type getTypeImpl() { result = expr.getEnclosingCallable().getReturnType() }
|
||||||
@@ -1330,9 +1330,10 @@ private module ReturnNodes {
|
|||||||
* In this case we adjust it to instead be a return node.
|
* In this case we adjust it to instead be a return node.
|
||||||
*/
|
*/
|
||||||
private predicate summaryPostUpdateNodeIsOutOrRef(SummaryNode n, Parameter p) {
|
private predicate summaryPostUpdateNodeIsOutOrRef(SummaryNode n, Parameter p) {
|
||||||
exists(ParameterNode pn |
|
exists(ParameterNodeImpl pn, DataFlowCallable c, ParameterPosition pos |
|
||||||
FlowSummaryImpl::Private::summaryPostUpdateNode(n, pn) and
|
FlowSummaryImpl::Private::summaryPostUpdateNode(n, pn) and
|
||||||
pn.getParameter() = p and
|
pn.isParameterOf(c, pos) and
|
||||||
|
p = c.asSummarizedCallable().getParameter(pos.getPosition()) and
|
||||||
p.isOutOrRef()
|
p.isOutOrRef()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1903,7 +1904,7 @@ private module PostUpdateNodes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override DotNet::Type getTypeImpl() { result = oc.getType() }
|
override DotNet::Type getTypeImpl() { result = oc.getType() }
|
||||||
@@ -1923,7 +1924,7 @@ private module PostUpdateNodes {
|
|||||||
override ExprNode getPreUpdateNode() { cfn = result.getControlFlowNode() }
|
override ExprNode getPreUpdateNode() { cfn = result.getControlFlowNode() }
|
||||||
|
|
||||||
override DataFlowCallable getEnclosingCallableImpl() {
|
override DataFlowCallable getEnclosingCallableImpl() {
|
||||||
result.getUnderlyingCallable() = cfn.getEnclosingCallable()
|
result.asCallable() = cfn.getEnclosingCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
override Type getTypeImpl() { result = cfn.getElement().(Expr).getType() }
|
override Type getTypeImpl() { result = cfn.getElement().(Expr).getType() }
|
||||||
@@ -2012,12 +2013,11 @@ class LambdaCallKind = Unit;
|
|||||||
/** Holds if `creation` is an expression that creates a delegate for `c`. */
|
/** Holds if `creation` is an expression that creates a delegate for `c`. */
|
||||||
predicate lambdaCreation(ExprNode creation, LambdaCallKind kind, DataFlowCallable c) {
|
predicate lambdaCreation(ExprNode creation, LambdaCallKind kind, DataFlowCallable c) {
|
||||||
exists(Expr e | e = creation.getExpr() |
|
exists(Expr e | e = creation.getExpr() |
|
||||||
c.getUnderlyingCallable() = e.(AnonymousFunctionExpr)
|
c.asCallable() =
|
||||||
or
|
[
|
||||||
c.getUnderlyingCallable() = e.(CallableAccess).getTarget().getUnboundDeclaration()
|
e.(AnonymousFunctionExpr), e.(CallableAccess).getTarget().getUnboundDeclaration(),
|
||||||
or
|
e.(AddressOfExpr).getOperand().(CallableAccess).getTarget().getUnboundDeclaration()
|
||||||
c.getUnderlyingCallable() =
|
]
|
||||||
e.(AddressOfExpr).getOperand().(CallableAccess).getTarget().getUnboundDeclaration()
|
|
||||||
) and
|
) and
|
||||||
kind = TMkUnit()
|
kind = TMkUnit()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class Node extends TNode {
|
|||||||
|
|
||||||
/** Gets the enclosing callable of this node. */
|
/** Gets the enclosing callable of this node. */
|
||||||
final Callable getEnclosingCallable() {
|
final Callable getEnclosingCallable() {
|
||||||
result = this.(NodeImpl).getEnclosingCallableImpl().getUnderlyingCallable()
|
result = this.(NodeImpl).getEnclosingCallableImpl().asCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the control flow node corresponding to this node, if any. */
|
/** Gets the control flow node corresponding to this node, if any. */
|
||||||
@@ -103,7 +103,7 @@ class ParameterNode extends Node instanceof ParameterNodeImpl {
|
|||||||
DotNet::Parameter getParameter() {
|
DotNet::Parameter getParameter() {
|
||||||
exists(DataFlowCallable c, ParameterPosition ppos |
|
exists(DataFlowCallable c, ParameterPosition ppos |
|
||||||
super.isParameterOf(c, ppos) and
|
super.isParameterOf(c, ppos) and
|
||||||
result = c.getUnderlyingCallable().getParameter(ppos.getPosition())
|
result = c.asCallable().getParameter(ppos.getPosition())
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,285 +0,0 @@
|
|||||||
/**
|
|
||||||
* DEPRECATED.
|
|
||||||
*
|
|
||||||
* INTERNAL: Do not use.
|
|
||||||
*
|
|
||||||
* Provides classes for resolving delegate calls.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import csharp
|
|
||||||
private import dotnet
|
|
||||||
private import semmle.code.csharp.dataflow.CallContext
|
|
||||||
private import semmle.code.csharp.dataflow.internal.DataFlowDispatch
|
|
||||||
private import semmle.code.csharp.dataflow.internal.DataFlowPrivate
|
|
||||||
private import semmle.code.csharp.dataflow.internal.DataFlowPublic
|
|
||||||
private import semmle.code.csharp.dispatch.Dispatch
|
|
||||||
private import semmle.code.csharp.frameworks.system.linq.Expressions
|
|
||||||
|
|
||||||
/** A source of flow for a delegate or function pointer expression. */
|
|
||||||
abstract private class DelegateLikeFlowSource extends DataFlow::ExprNode {
|
|
||||||
/** Gets the callable that is referenced in this delegate or function pointer flow source. */
|
|
||||||
abstract Callable getCallable();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A source of flow for a delegate expression. */
|
|
||||||
private class DelegateFlowSource extends DelegateLikeFlowSource {
|
|
||||||
Callable c;
|
|
||||||
|
|
||||||
DelegateFlowSource() {
|
|
||||||
this.getExpr() =
|
|
||||||
any(Expr e |
|
|
||||||
c = e.(AnonymousFunctionExpr) or
|
|
||||||
c = e.(CallableAccess).getTarget().getUnboundDeclaration()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Gets the callable that is referenced in this delegate flow source. */
|
|
||||||
override Callable getCallable() { result = c }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A source of flow for a function pointer expression. */
|
|
||||||
private class FunctionPointerFlowSource extends DelegateLikeFlowSource {
|
|
||||||
Callable c;
|
|
||||||
|
|
||||||
FunctionPointerFlowSource() {
|
|
||||||
c =
|
|
||||||
this.getExpr()
|
|
||||||
.(AddressOfExpr)
|
|
||||||
.getOperand()
|
|
||||||
.(CallableAccess)
|
|
||||||
.getTarget()
|
|
||||||
.getUnboundDeclaration()
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Gets the callable that is referenced in this function pointer flow source. */
|
|
||||||
override Callable getCallable() { result = c }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A sink of flow for a delegate or function pointer expression. */
|
|
||||||
abstract private class DelegateLikeFlowSink extends DataFlow::Node {
|
|
||||||
/**
|
|
||||||
* Gets an actual run-time target of this delegate call in the given call
|
|
||||||
* context, if any. The call context records the *last* call required to
|
|
||||||
* resolve the target, if any. Example:
|
|
||||||
*
|
|
||||||
* ```csharp
|
|
||||||
* public int M(Func<string, int> f, string x) {
|
|
||||||
* return f(x);
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* void M2() {
|
|
||||||
* M(x => x.Length, y);
|
|
||||||
*
|
|
||||||
* M(_ => 42, z);
|
|
||||||
*
|
|
||||||
* Func<int, bool> isZero = x => x == 0;
|
|
||||||
* isZero(10);
|
|
||||||
* }
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* - The call on line 2 can be resolved to either `x => x.Length` (line 6)
|
|
||||||
* or `_ => 42` (line 8) in the call contexts from lines 7 and 8,
|
|
||||||
* respectively.
|
|
||||||
* - The call on line 11 can be resolved to `x => x == 0` (line 10) in an
|
|
||||||
* empty call context (the call is locally resolvable).
|
|
||||||
*
|
|
||||||
* Note that only the *last* call required is taken into account, hence if
|
|
||||||
* `M` above is redefined as follows:
|
|
||||||
*
|
|
||||||
* ```csharp
|
|
||||||
* public int M(Func<string, int> f, string x) {
|
|
||||||
* return M2(f, x);
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* public int M2(Func<string, int> f, string x) {
|
|
||||||
* return f(x);
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* void M2() {
|
|
||||||
* M(x => x.Length, y);
|
|
||||||
*
|
|
||||||
* M(_ => 42, z);
|
|
||||||
*
|
|
||||||
* Func<int, bool> isZero = x => x == 0;
|
|
||||||
* isZero(10);
|
|
||||||
* }
|
|
||||||
* ```
|
|
||||||
*
|
|
||||||
* then the call context from line 2 is the call context for all
|
|
||||||
* possible delegates resolved on line 6.
|
|
||||||
*/
|
|
||||||
cached
|
|
||||||
deprecated Callable getARuntimeTarget(CallContext context) {
|
|
||||||
exists(DelegateLikeFlowSource dfs |
|
|
||||||
flowsFrom(this, dfs, _, context) and
|
|
||||||
result = dfs.getCallable()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A delegate or function pointer call expression. */
|
|
||||||
deprecated class DelegateLikeCallExpr extends DelegateLikeFlowSink, DataFlow::ExprNode {
|
|
||||||
DelegateLikeCall dc;
|
|
||||||
|
|
||||||
DelegateLikeCallExpr() { this.getExpr() = dc.getExpr() }
|
|
||||||
|
|
||||||
/** Gets the delegate or function pointer call that this expression belongs to. */
|
|
||||||
DelegateLikeCall getCall() { result = dc }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A delegate expression that is added to an event. */
|
|
||||||
deprecated class AddEventSource extends DelegateLikeFlowSink, DataFlow::ExprNode {
|
|
||||||
AddEventExpr ae;
|
|
||||||
|
|
||||||
AddEventSource() { this.getExpr() = ae.getRValue() }
|
|
||||||
|
|
||||||
/** Gets the event that this delegate is added to. */
|
|
||||||
Event getEvent() { result = ae.getTarget() }
|
|
||||||
}
|
|
||||||
|
|
||||||
/** A non-delegate call. */
|
|
||||||
private class NonDelegateCall extends Expr {
|
|
||||||
private DispatchCall dc;
|
|
||||||
|
|
||||||
NonDelegateCall() { this = dc.getCall() }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a run-time target of this call. A target is always a source
|
|
||||||
* declaration, and if the callable has both CIL and source code, only
|
|
||||||
* the source code version is returned.
|
|
||||||
*/
|
|
||||||
Callable getARuntimeTarget() { result = getCallableForDataFlow(dc.getADynamicTarget()) }
|
|
||||||
|
|
||||||
/** Gets the `i`th argument of this call. */
|
|
||||||
Expr getArgument(int i) { result = dc.getArgument(i) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private class NormalReturnNode extends Node {
|
|
||||||
NormalReturnNode() { this.(ReturnNode).getKind() instanceof NormalReturnKind }
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if data can flow (inter-procedurally) to delegate `sink` from
|
|
||||||
* `node`. This predicate searches backwards from `sink` to `node`.
|
|
||||||
*
|
|
||||||
* The parameter `isReturned` indicates whether the path from `sink` to
|
|
||||||
* `node` goes through a returned expression. The call context `lastCall`
|
|
||||||
* records the last call on the path from `node` to `sink`, if any.
|
|
||||||
*/
|
|
||||||
deprecated private predicate flowsFrom(
|
|
||||||
DelegateLikeFlowSink sink, DataFlow::Node node, boolean isReturned, CallContext lastCall
|
|
||||||
) {
|
|
||||||
// Base case
|
|
||||||
sink = node and
|
|
||||||
isReturned = false and
|
|
||||||
lastCall instanceof EmptyCallContext
|
|
||||||
or
|
|
||||||
// Local flow
|
|
||||||
exists(DataFlow::Node mid | flowsFrom(sink, mid, isReturned, lastCall) |
|
|
||||||
LocalFlow::localFlowStepCommon(node, mid)
|
|
||||||
or
|
|
||||||
exists(Ssa::Definition def |
|
|
||||||
LocalFlow::localSsaFlowStep(def, node, mid) and
|
|
||||||
LocalFlow::usesInstanceField(def)
|
|
||||||
)
|
|
||||||
or
|
|
||||||
node.asExpr() = mid.asExpr().(DelegateCreation).getArgument()
|
|
||||||
)
|
|
||||||
or
|
|
||||||
// Flow through static field or property
|
|
||||||
exists(DataFlow::Node mid |
|
|
||||||
flowsFrom(sink, mid, _, _) and
|
|
||||||
jumpStep(node, mid) and
|
|
||||||
isReturned = false and
|
|
||||||
lastCall instanceof EmptyCallContext
|
|
||||||
)
|
|
||||||
or
|
|
||||||
// Flow into a callable (non-delegate call)
|
|
||||||
exists(ParameterNode mid, CallContext prevLastCall, NonDelegateCall call, Parameter p |
|
|
||||||
flowsFrom(sink, mid, isReturned, prevLastCall) and
|
|
||||||
isReturned = false and
|
|
||||||
p = mid.getParameter() and
|
|
||||||
flowIntoNonDelegateCall(call, node.asExpr(), p) and
|
|
||||||
lastCall = getLastCall(prevLastCall, call, p.getPosition())
|
|
||||||
)
|
|
||||||
or
|
|
||||||
// Flow into a callable (delegate call)
|
|
||||||
exists(
|
|
||||||
ParameterNode mid, CallContext prevLastCall, DelegateLikeCall call, Callable c, Parameter p,
|
|
||||||
int i
|
|
||||||
|
|
|
||||||
flowsFrom(sink, mid, isReturned, prevLastCall) and
|
|
||||||
isReturned = false and
|
|
||||||
flowIntoDelegateCall(call, c, node.asExpr(), i) and
|
|
||||||
c.getParameter(i) = p and
|
|
||||||
p = mid.getParameter() and
|
|
||||||
lastCall = getLastCall(prevLastCall, call, i)
|
|
||||||
)
|
|
||||||
or
|
|
||||||
// Flow out of a callable (non-delegate call).
|
|
||||||
exists(DataFlow::ExprNode mid |
|
|
||||||
flowsFrom(sink, mid, _, lastCall) and
|
|
||||||
isReturned = true and
|
|
||||||
flowOutOfNonDelegateCall(mid.getExpr(), node)
|
|
||||||
)
|
|
||||||
or
|
|
||||||
// Flow out of a callable (delegate call).
|
|
||||||
exists(DataFlow::ExprNode mid |
|
|
||||||
flowsFrom(sink, mid, _, _) and
|
|
||||||
isReturned = true and
|
|
||||||
flowOutOfDelegateCall(mid.getExpr(), node, lastCall)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the last call when tracking flow into `call`. The context
|
|
||||||
* `prevLastCall` is the previous last call, so the result is the
|
|
||||||
* previous call if it exists, otherwise `call` is the last call.
|
|
||||||
*/
|
|
||||||
bindingset[call, i]
|
|
||||||
deprecated private CallContext getLastCall(CallContext prevLastCall, Expr call, int i) {
|
|
||||||
prevLastCall instanceof EmptyCallContext and
|
|
||||||
result.(ArgumentCallContext).isArgument(call, i)
|
|
||||||
or
|
|
||||||
prevLastCall instanceof ArgumentCallContext and
|
|
||||||
result = prevLastCall
|
|
||||||
}
|
|
||||||
|
|
||||||
pragma[noinline]
|
|
||||||
private predicate flowIntoNonDelegateCall(NonDelegateCall call, Expr arg, DotNet::Parameter p) {
|
|
||||||
exists(DotNet::Callable callable, int i |
|
|
||||||
callable = call.getARuntimeTarget() and
|
|
||||||
p = callable.getAParameter() and
|
|
||||||
arg = call.getArgument(i) and
|
|
||||||
i = p.getPosition()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
pragma[noinline]
|
|
||||||
deprecated private predicate flowIntoDelegateCall(DelegateLikeCall call, Callable c, Expr arg, int i) {
|
|
||||||
exists(DelegateLikeFlowSource dfs, DelegateLikeCallExpr dce |
|
|
||||||
// the call context is irrelevant because the delegate call
|
|
||||||
// itself will be the context
|
|
||||||
flowsFrom(dce, dfs, _, _) and
|
|
||||||
arg = call.getArgument(i) and
|
|
||||||
c = dfs.getCallable() and
|
|
||||||
call = dce.getCall()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
pragma[noinline]
|
|
||||||
private predicate flowOutOfNonDelegateCall(NonDelegateCall call, NormalReturnNode ret) {
|
|
||||||
call.getARuntimeTarget() = ret.getEnclosingCallable()
|
|
||||||
}
|
|
||||||
|
|
||||||
pragma[noinline]
|
|
||||||
deprecated private predicate flowOutOfDelegateCall(
|
|
||||||
DelegateLikeCall dc, NormalReturnNode ret, CallContext lastCall
|
|
||||||
) {
|
|
||||||
exists(DelegateLikeFlowSource dfs, DelegateLikeCallExpr dce, Callable c |
|
|
||||||
flowsFrom(dce, dfs, _, lastCall) and
|
|
||||||
ret.getEnclosingCallable() = c and
|
|
||||||
c = dfs.getCallable() and
|
|
||||||
dc = dce.getCall()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -199,7 +199,7 @@ string getParameterPositionCsv(ParameterPosition pos) {
|
|||||||
result = pos.getPosition().toString()
|
result = pos.getPosition().toString()
|
||||||
or
|
or
|
||||||
pos.isThisParameter() and
|
pos.isThisParameter() and
|
||||||
result = "Qualifier"
|
result = "this"
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the textual representation of an argument position in the format used for flow summaries. */
|
/** Gets the textual representation of an argument position in the format used for flow summaries. */
|
||||||
@@ -207,7 +207,7 @@ string getArgumentPositionCsv(ArgumentPosition pos) {
|
|||||||
result = pos.getPosition().toString()
|
result = pos.getPosition().toString()
|
||||||
or
|
or
|
||||||
pos.isQualifier() and
|
pos.isQualifier() and
|
||||||
result = "This"
|
result = "this"
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Holds if input specification component `c` needs a reference. */
|
/** Holds if input specification component `c` needs a reference. */
|
||||||
@@ -287,7 +287,7 @@ bindingset[s]
|
|||||||
ArgumentPosition parseParamBody(string s) {
|
ArgumentPosition parseParamBody(string s) {
|
||||||
result.getPosition() = AccessPath::parseInt(s)
|
result.getPosition() = AccessPath::parseInt(s)
|
||||||
or
|
or
|
||||||
s = "This" and
|
s = "this" and
|
||||||
result.isQualifier()
|
result.isQualifier()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,6 +296,6 @@ bindingset[s]
|
|||||||
ParameterPosition parseArgBody(string s) {
|
ParameterPosition parseArgBody(string s) {
|
||||||
result.getPosition() = AccessPath::parseInt(s)
|
result.getPosition() = AccessPath::parseInt(s)
|
||||||
or
|
or
|
||||||
s = "Qualifier" and
|
s = "this" and
|
||||||
result.isThisParameter()
|
result.isThisParameter()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ private module Liveness {
|
|||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
||||||
*/
|
*/
|
||||||
private predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
||||||
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
||||||
or
|
or
|
||||||
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
||||||
@@ -76,6 +76,10 @@ private module Liveness {
|
|||||||
not result + 1 = refRank(bb, _, v, _)
|
not result + 1 = refRank(bb, _, v, _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate lastRefIsRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
maxRefRank(bb, v) = refRank(bb, _, v, Read(_))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
||||||
* that is either a read or a certain write.
|
* that is either a read or a certain write.
|
||||||
@@ -185,23 +189,29 @@ newtype TDefinition =
|
|||||||
|
|
||||||
private module SsaDefReaches {
|
private module SsaDefReaches {
|
||||||
newtype TSsaRefKind =
|
newtype TSsaRefKind =
|
||||||
SsaRead() or
|
SsaActualRead() or
|
||||||
|
SsaPhiRead() or
|
||||||
SsaDef()
|
SsaDef()
|
||||||
|
|
||||||
|
class SsaRead = SsaActualRead or SsaPhiRead;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A classification of SSA variable references into reads and definitions.
|
* A classification of SSA variable references into reads and definitions.
|
||||||
*/
|
*/
|
||||||
class SsaRefKind extends TSsaRefKind {
|
class SsaRefKind extends TSsaRefKind {
|
||||||
string toString() {
|
string toString() {
|
||||||
this = SsaRead() and
|
this = SsaActualRead() and
|
||||||
result = "SsaRead"
|
result = "SsaActualRead"
|
||||||
|
or
|
||||||
|
this = SsaPhiRead() and
|
||||||
|
result = "SsaPhiRead"
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
result = "SsaDef"
|
result = "SsaDef"
|
||||||
}
|
}
|
||||||
|
|
||||||
int getOrder() {
|
int getOrder() {
|
||||||
this = SsaRead() and
|
this instanceof SsaRead and
|
||||||
result = 0
|
result = 0
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
@@ -209,6 +219,80 @@ private module SsaDefReaches {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `bb` is in the dominance frontier of a block containing a
|
||||||
|
* read of `v`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate inReadDominanceFrontier(BasicBlock bb, SourceVariable v) {
|
||||||
|
exists(BasicBlock readbb | inDominanceFrontier(readbb, bb) |
|
||||||
|
lastRefIsRead(readbb, v)
|
||||||
|
or
|
||||||
|
phiRead(readbb, v)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if a phi-read node should be inserted for variable `v` at the beginning
|
||||||
|
* of basic block `bb`.
|
||||||
|
*
|
||||||
|
* Phi-read nodes are like normal phi nodes, but they are inserted based on reads
|
||||||
|
* instead of writes, and only if the dominance-frontier block does not already
|
||||||
|
* contain a reference (read or write) to `v`. Unlike normal phi nodes, this is
|
||||||
|
* an internal implementation detail that is not exposed.
|
||||||
|
*
|
||||||
|
* The motivation for adding phi-reads is to improve performance of the use-use
|
||||||
|
* calculation in cases where there is a large number of reads that can reach the
|
||||||
|
* same join-point, and from there reach a large number of basic blocks. Example:
|
||||||
|
*
|
||||||
|
* ```cs
|
||||||
|
* if (a)
|
||||||
|
* use(x);
|
||||||
|
* else if (b)
|
||||||
|
* use(x);
|
||||||
|
* else if (c)
|
||||||
|
* use(x);
|
||||||
|
* else if (d)
|
||||||
|
* use(x);
|
||||||
|
* // many more ifs ...
|
||||||
|
*
|
||||||
|
* // phi-read for `x` inserted here
|
||||||
|
*
|
||||||
|
* // program not mentioning `x`, with large basic block graph
|
||||||
|
*
|
||||||
|
* use(x);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Without phi-reads, the analysis has to replicate reachability for each of
|
||||||
|
* the guarded uses of `x`. However, with phi-reads, the analysis will limit
|
||||||
|
* each conditional use of `x` to reach the basic block containing the phi-read
|
||||||
|
* node for `x`, and only that basic block will have to compute reachability
|
||||||
|
* through the remainder of the large program.
|
||||||
|
*
|
||||||
|
* Like normal reads, each phi-read node `phi-read` can be reached from exactly
|
||||||
|
* one SSA definition (without passing through another definition): Assume, for
|
||||||
|
* the sake of contradiction, that there are two reaching definitions `def1` and
|
||||||
|
* `def2`. Now, if both `def1` and `def2` dominate `phi-read`, then the nearest
|
||||||
|
* dominating definition will prevent the other from reaching `phi-read`. So, at
|
||||||
|
* least one of `def1` and `def2` cannot dominate `phi-read`; assume it is `def1`.
|
||||||
|
* Then `def1` must go through one of its dominance-frontier blocks in order to
|
||||||
|
* reach `phi-read`. However, such a block will always start with a (normal) phi
|
||||||
|
* node, which contradicts reachability.
|
||||||
|
*
|
||||||
|
* Also, like normal reads, the unique SSA definition `def` that reaches `phi-read`,
|
||||||
|
* will dominate `phi-read`. Assuming it doesn't means that the path from `def`
|
||||||
|
* to `phi-read` goes through a dominance-frontier block, and hence a phi node,
|
||||||
|
* which contradicts reachability.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate phiRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
inReadDominanceFrontier(bb, v) and
|
||||||
|
liveAtEntry(bb, v) and
|
||||||
|
// only if there are no other references to `v` inside `bb`
|
||||||
|
not ref(bb, _, v, _) and
|
||||||
|
not exists(Definition def | def.definesAt(v, bb, _))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
||||||
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
||||||
@@ -216,11 +300,16 @@ private module SsaDefReaches {
|
|||||||
*
|
*
|
||||||
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
||||||
variableRead(bb, i, v, _) and
|
variableRead(bb, i, v, _) and
|
||||||
k = SsaRead()
|
k = SsaActualRead()
|
||||||
or
|
or
|
||||||
exists(Definition def | def.definesAt(v, bb, i)) and
|
phiRead(bb, v) and
|
||||||
|
i = -1 and
|
||||||
|
k = SsaPhiRead()
|
||||||
|
or
|
||||||
|
any(Definition def).definesAt(v, bb, i) and
|
||||||
k = SsaDef()
|
k = SsaDef()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +362,7 @@ private module SsaDefReaches {
|
|||||||
)
|
)
|
||||||
or
|
or
|
||||||
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
||||||
rnk = ssaRefRank(bb, _, v, SsaRead())
|
rnk = ssaRefRank(bb, _, v, any(SsaRead k))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -283,7 +372,7 @@ private module SsaDefReaches {
|
|||||||
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
ssaDefReachesRank(bb, def, rnk, v) and
|
ssaDefReachesRank(bb, def, rnk, v) and
|
||||||
rnk = ssaRefRank(bb, i, v, SsaRead())
|
rnk = ssaRefRank(bb, i, v, any(SsaRead k))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,45 +398,94 @@ private module SsaDefReaches {
|
|||||||
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v) {
|
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v, SsaRefKind k) {
|
||||||
exists(ssaDefRank(def, v, bb, _, _))
|
exists(ssaDefRank(def, v, bb, _, k))
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma[noinline]
|
pragma[noinline]
|
||||||
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
||||||
ssaDefReachesEndOfBlock(bb, def, _) and
|
ssaDefReachesEndOfBlock(bb, def, _) and
|
||||||
not defOccursInBlock(_, bb, def.getSourceVariable())
|
not defOccursInBlock(_, bb, def.getSourceVariable(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of `bb1`,
|
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of _some_
|
||||||
* and the underlying variable for `def` is neither read nor written in any block
|
* predecessor of `bb2`, and the underlying variable for `def` is neither read
|
||||||
* on the path between `bb1` and `bb2`.
|
* nor written in any block on the path between `bb1` and `bb2`.
|
||||||
|
*
|
||||||
|
* Phi reads are considered as normal reads for this predicate.
|
||||||
*/
|
*/
|
||||||
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
pragma[nomagic]
|
||||||
defOccursInBlock(def, bb1, _) and
|
private predicate varBlockReachesInclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
defOccursInBlock(def, bb1, _, _) and
|
||||||
bb2 = getABasicBlockSuccessor(bb1)
|
bb2 = getABasicBlockSuccessor(bb1)
|
||||||
or
|
or
|
||||||
exists(BasicBlock mid |
|
exists(BasicBlock mid |
|
||||||
varBlockReaches(def, bb1, mid) and
|
varBlockReachesInclPhiRead(def, bb1, mid) and
|
||||||
ssaDefReachesThroughBlock(def, mid) and
|
ssaDefReachesThroughBlock(def, mid) and
|
||||||
bb2 = getABasicBlockSuccessor(mid)
|
bb2 = getABasicBlockSuccessor(mid)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate phiReadStep(Definition def, SourceVariable v, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(def, bb1, bb2) and
|
||||||
|
defOccursInBlock(def, bb2, v, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate varBlockReachesExclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(pragma[only_bind_into](def), bb1, pragma[only_bind_into](bb2)) and
|
||||||
|
ssaRef(bb2, _, def.getSourceVariable(), [SsaActualRead().(TSsaRefKind), SsaDef()])
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExclPhiRead(def, mid, bb2) and
|
||||||
|
phiReadStep(def, _, bb1, mid)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `def` is read at index `i2` in basic block `bb2`, `bb2` is in a transitive
|
* the underlying variable `v` of `def` is accessed in basic block `bb2`
|
||||||
* successor block of `bb1`, and `def` is neither read nor written in any block
|
* (either a read or a write), `bb2` is a transitive successor of `bb1`, and
|
||||||
* on a path between `bb1` and `bb2`.
|
* `v` is neither read nor written in any block on the path between `bb1`
|
||||||
|
* and `bb2`.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesExclPhiRead(def, bb1, bb2) and
|
||||||
|
not defOccursInBlock(def, bb1, _, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
||||||
varBlockReaches(def, bb1, bb2) and
|
varBlockReaches(def, bb1, bb2) and
|
||||||
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaRead()) = 1
|
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaActualRead()) = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `def` is accessed in basic block `bb` (either a read or a write),
|
||||||
|
* `bb1` can reach a transitive successor `bb2` where `def` is no longer live,
|
||||||
|
* and `v` is neither read nor written in any block on the path between `bb`
|
||||||
|
* and `bb2`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReachesExit(Definition def, BasicBlock bb) {
|
||||||
|
exists(BasicBlock bb2 | varBlockReachesInclPhiRead(def, bb, bb2) |
|
||||||
|
not defOccursInBlock(def, bb2, _, _) and
|
||||||
|
not ssaDefReachesEndOfBlock(bb2, def, _)
|
||||||
|
)
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExit(def, mid) and
|
||||||
|
phiReadStep(def, _, bb, mid)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate phiReadExposedForTesting = phiRead/2;
|
||||||
|
|
||||||
private import SsaDefReaches
|
private import SsaDefReaches
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
@@ -365,7 +503,8 @@ predicate liveThrough(BasicBlock bb, SourceVariable v) {
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
||||||
exists(int last | last = maxSsaRefRank(bb, v) |
|
exists(int last |
|
||||||
|
last = maxSsaRefRank(pragma[only_bind_into](bb), pragma[only_bind_into](v)) and
|
||||||
ssaDefReachesRank(bb, def, last, v) and
|
ssaDefReachesRank(bb, def, last, v) and
|
||||||
liveAtExit(bb, v)
|
liveAtExit(bb, v)
|
||||||
)
|
)
|
||||||
@@ -405,7 +544,7 @@ pragma[nomagic]
|
|||||||
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
||||||
or
|
or
|
||||||
variableRead(bb, i, v, _) and
|
ssaRef(bb, i, v, any(SsaRead k)) and
|
||||||
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
||||||
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
||||||
}
|
}
|
||||||
@@ -421,7 +560,7 @@ pragma[nomagic]
|
|||||||
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
||||||
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaRead()) and
|
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaActualRead()) and
|
||||||
variableRead(bb1, i2, _, _) and
|
variableRead(bb1, i2, _, _) and
|
||||||
bb2 = bb1
|
bb2 = bb1
|
||||||
)
|
)
|
||||||
@@ -538,18 +677,15 @@ predicate lastRefRedefNoUncertainReads(Definition def, BasicBlock bb, int i, Def
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
||||||
|
// Can reach another definition
|
||||||
lastRefRedef(def, bb, i, _)
|
lastRefRedef(def, bb, i, _)
|
||||||
or
|
or
|
||||||
lastSsaRef(def, _, bb, i) and
|
exists(SourceVariable v | lastSsaRef(def, v, bb, i) |
|
||||||
(
|
|
||||||
// Can reach exit directly
|
// Can reach exit directly
|
||||||
bb instanceof ExitBasicBlock
|
bb instanceof ExitBasicBlock
|
||||||
or
|
or
|
||||||
// Can reach a block using one or more steps, where `def` is no longer live
|
// Can reach a block using one or more steps, where `def` is no longer live
|
||||||
exists(BasicBlock bb2 | varBlockReaches(def, bb, bb2) |
|
varBlockReachesExit(def, bb)
|
||||||
not defOccursInBlock(def, bb2, _) and
|
|
||||||
not ssaDefReachesEndOfBlock(bb2, def, _)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ private module Liveness {
|
|||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
* Holds if the `i`th node of basic block `bb` is a reference to `v` of kind `k`.
|
||||||
*/
|
*/
|
||||||
private predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
predicate ref(BasicBlock bb, int i, SourceVariable v, RefKind k) {
|
||||||
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
exists(boolean certain | variableRead(bb, i, v, certain) | k = Read(certain))
|
||||||
or
|
or
|
||||||
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
exists(boolean certain | variableWrite(bb, i, v, certain) | k = Write(certain))
|
||||||
@@ -76,6 +76,10 @@ private module Liveness {
|
|||||||
not result + 1 = refRank(bb, _, v, _)
|
not result + 1 = refRank(bb, _, v, _)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate lastRefIsRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
maxRefRank(bb, v) = refRank(bb, _, v, Read(_))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
* Gets the (1-based) rank of the first reference to `v` inside basic block `bb`
|
||||||
* that is either a read or a certain write.
|
* that is either a read or a certain write.
|
||||||
@@ -185,23 +189,29 @@ newtype TDefinition =
|
|||||||
|
|
||||||
private module SsaDefReaches {
|
private module SsaDefReaches {
|
||||||
newtype TSsaRefKind =
|
newtype TSsaRefKind =
|
||||||
SsaRead() or
|
SsaActualRead() or
|
||||||
|
SsaPhiRead() or
|
||||||
SsaDef()
|
SsaDef()
|
||||||
|
|
||||||
|
class SsaRead = SsaActualRead or SsaPhiRead;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A classification of SSA variable references into reads and definitions.
|
* A classification of SSA variable references into reads and definitions.
|
||||||
*/
|
*/
|
||||||
class SsaRefKind extends TSsaRefKind {
|
class SsaRefKind extends TSsaRefKind {
|
||||||
string toString() {
|
string toString() {
|
||||||
this = SsaRead() and
|
this = SsaActualRead() and
|
||||||
result = "SsaRead"
|
result = "SsaActualRead"
|
||||||
|
or
|
||||||
|
this = SsaPhiRead() and
|
||||||
|
result = "SsaPhiRead"
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
result = "SsaDef"
|
result = "SsaDef"
|
||||||
}
|
}
|
||||||
|
|
||||||
int getOrder() {
|
int getOrder() {
|
||||||
this = SsaRead() and
|
this instanceof SsaRead and
|
||||||
result = 0
|
result = 0
|
||||||
or
|
or
|
||||||
this = SsaDef() and
|
this = SsaDef() and
|
||||||
@@ -209,6 +219,80 @@ private module SsaDefReaches {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `bb` is in the dominance frontier of a block containing a
|
||||||
|
* read of `v`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate inReadDominanceFrontier(BasicBlock bb, SourceVariable v) {
|
||||||
|
exists(BasicBlock readbb | inDominanceFrontier(readbb, bb) |
|
||||||
|
lastRefIsRead(readbb, v)
|
||||||
|
or
|
||||||
|
phiRead(readbb, v)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if a phi-read node should be inserted for variable `v` at the beginning
|
||||||
|
* of basic block `bb`.
|
||||||
|
*
|
||||||
|
* Phi-read nodes are like normal phi nodes, but they are inserted based on reads
|
||||||
|
* instead of writes, and only if the dominance-frontier block does not already
|
||||||
|
* contain a reference (read or write) to `v`. Unlike normal phi nodes, this is
|
||||||
|
* an internal implementation detail that is not exposed.
|
||||||
|
*
|
||||||
|
* The motivation for adding phi-reads is to improve performance of the use-use
|
||||||
|
* calculation in cases where there is a large number of reads that can reach the
|
||||||
|
* same join-point, and from there reach a large number of basic blocks. Example:
|
||||||
|
*
|
||||||
|
* ```cs
|
||||||
|
* if (a)
|
||||||
|
* use(x);
|
||||||
|
* else if (b)
|
||||||
|
* use(x);
|
||||||
|
* else if (c)
|
||||||
|
* use(x);
|
||||||
|
* else if (d)
|
||||||
|
* use(x);
|
||||||
|
* // many more ifs ...
|
||||||
|
*
|
||||||
|
* // phi-read for `x` inserted here
|
||||||
|
*
|
||||||
|
* // program not mentioning `x`, with large basic block graph
|
||||||
|
*
|
||||||
|
* use(x);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Without phi-reads, the analysis has to replicate reachability for each of
|
||||||
|
* the guarded uses of `x`. However, with phi-reads, the analysis will limit
|
||||||
|
* each conditional use of `x` to reach the basic block containing the phi-read
|
||||||
|
* node for `x`, and only that basic block will have to compute reachability
|
||||||
|
* through the remainder of the large program.
|
||||||
|
*
|
||||||
|
* Like normal reads, each phi-read node `phi-read` can be reached from exactly
|
||||||
|
* one SSA definition (without passing through another definition): Assume, for
|
||||||
|
* the sake of contradiction, that there are two reaching definitions `def1` and
|
||||||
|
* `def2`. Now, if both `def1` and `def2` dominate `phi-read`, then the nearest
|
||||||
|
* dominating definition will prevent the other from reaching `phi-read`. So, at
|
||||||
|
* least one of `def1` and `def2` cannot dominate `phi-read`; assume it is `def1`.
|
||||||
|
* Then `def1` must go through one of its dominance-frontier blocks in order to
|
||||||
|
* reach `phi-read`. However, such a block will always start with a (normal) phi
|
||||||
|
* node, which contradicts reachability.
|
||||||
|
*
|
||||||
|
* Also, like normal reads, the unique SSA definition `def` that reaches `phi-read`,
|
||||||
|
* will dominate `phi-read`. Assuming it doesn't means that the path from `def`
|
||||||
|
* to `phi-read` goes through a dominance-frontier block, and hence a phi node,
|
||||||
|
* which contradicts reachability.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate phiRead(BasicBlock bb, SourceVariable v) {
|
||||||
|
inReadDominanceFrontier(bb, v) and
|
||||||
|
liveAtEntry(bb, v) and
|
||||||
|
// only if there are no other references to `v` inside `bb`
|
||||||
|
not ref(bb, _, v, _) and
|
||||||
|
not exists(Definition def | def.definesAt(v, bb, _))
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
* Holds if the `i`th node of basic block `bb` is a reference to `v`,
|
||||||
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
* either a read (when `k` is `SsaRead()`) or an SSA definition (when `k`
|
||||||
@@ -216,11 +300,16 @@ private module SsaDefReaches {
|
|||||||
*
|
*
|
||||||
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
* Unlike `Liveness::ref`, this includes `phi` nodes.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
predicate ssaRef(BasicBlock bb, int i, SourceVariable v, SsaRefKind k) {
|
||||||
variableRead(bb, i, v, _) and
|
variableRead(bb, i, v, _) and
|
||||||
k = SsaRead()
|
k = SsaActualRead()
|
||||||
or
|
or
|
||||||
exists(Definition def | def.definesAt(v, bb, i)) and
|
phiRead(bb, v) and
|
||||||
|
i = -1 and
|
||||||
|
k = SsaPhiRead()
|
||||||
|
or
|
||||||
|
any(Definition def).definesAt(v, bb, i) and
|
||||||
k = SsaDef()
|
k = SsaDef()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,7 +362,7 @@ private module SsaDefReaches {
|
|||||||
)
|
)
|
||||||
or
|
or
|
||||||
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
ssaDefReachesRank(bb, def, rnk - 1, v) and
|
||||||
rnk = ssaRefRank(bb, _, v, SsaRead())
|
rnk = ssaRefRank(bb, _, v, any(SsaRead k))
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -283,7 +372,7 @@ private module SsaDefReaches {
|
|||||||
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesReadWithinBlock(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
ssaDefReachesRank(bb, def, rnk, v) and
|
ssaDefReachesRank(bb, def, rnk, v) and
|
||||||
rnk = ssaRefRank(bb, i, v, SsaRead())
|
rnk = ssaRefRank(bb, i, v, any(SsaRead k))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,45 +398,94 @@ private module SsaDefReaches {
|
|||||||
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
ssaDefRank(def, v, bb, i, _) = maxSsaRefRank(bb, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v) {
|
predicate defOccursInBlock(Definition def, BasicBlock bb, SourceVariable v, SsaRefKind k) {
|
||||||
exists(ssaDefRank(def, v, bb, _, _))
|
exists(ssaDefRank(def, v, bb, _, k))
|
||||||
}
|
}
|
||||||
|
|
||||||
pragma[noinline]
|
pragma[noinline]
|
||||||
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
private predicate ssaDefReachesThroughBlock(Definition def, BasicBlock bb) {
|
||||||
ssaDefReachesEndOfBlock(bb, def, _) and
|
ssaDefReachesEndOfBlock(bb, def, _) and
|
||||||
not defOccursInBlock(_, bb, def.getSourceVariable())
|
not defOccursInBlock(_, bb, def.getSourceVariable(), _)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of `bb1`,
|
* `bb2` is a transitive successor of `bb1`, `def` is live at the end of _some_
|
||||||
* and the underlying variable for `def` is neither read nor written in any block
|
* predecessor of `bb2`, and the underlying variable for `def` is neither read
|
||||||
* on the path between `bb1` and `bb2`.
|
* nor written in any block on the path between `bb1` and `bb2`.
|
||||||
|
*
|
||||||
|
* Phi reads are considered as normal reads for this predicate.
|
||||||
*/
|
*/
|
||||||
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
pragma[nomagic]
|
||||||
defOccursInBlock(def, bb1, _) and
|
private predicate varBlockReachesInclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
defOccursInBlock(def, bb1, _, _) and
|
||||||
bb2 = getABasicBlockSuccessor(bb1)
|
bb2 = getABasicBlockSuccessor(bb1)
|
||||||
or
|
or
|
||||||
exists(BasicBlock mid |
|
exists(BasicBlock mid |
|
||||||
varBlockReaches(def, bb1, mid) and
|
varBlockReachesInclPhiRead(def, bb1, mid) and
|
||||||
ssaDefReachesThroughBlock(def, mid) and
|
ssaDefReachesThroughBlock(def, mid) and
|
||||||
bb2 = getABasicBlockSuccessor(mid)
|
bb2 = getABasicBlockSuccessor(mid)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate phiReadStep(Definition def, SourceVariable v, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(def, bb1, bb2) and
|
||||||
|
defOccursInBlock(def, bb2, v, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
|
private predicate varBlockReachesExclPhiRead(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesInclPhiRead(pragma[only_bind_into](def), bb1, pragma[only_bind_into](bb2)) and
|
||||||
|
ssaRef(bb2, _, def.getSourceVariable(), [SsaActualRead().(TSsaRefKind), SsaDef()])
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExclPhiRead(def, mid, bb2) and
|
||||||
|
phiReadStep(def, _, bb1, mid)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
* Holds if `def` is accessed in basic block `bb1` (either a read or a write),
|
||||||
* `def` is read at index `i2` in basic block `bb2`, `bb2` is in a transitive
|
* the underlying variable `v` of `def` is accessed in basic block `bb2`
|
||||||
* successor block of `bb1`, and `def` is neither read nor written in any block
|
* (either a read or a write), `bb2` is a transitive successor of `bb1`, and
|
||||||
* on a path between `bb1` and `bb2`.
|
* `v` is neither read nor written in any block on the path between `bb1`
|
||||||
|
* and `bb2`.
|
||||||
*/
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReaches(Definition def, BasicBlock bb1, BasicBlock bb2) {
|
||||||
|
varBlockReachesExclPhiRead(def, bb1, bb2) and
|
||||||
|
not defOccursInBlock(def, bb1, _, SsaPhiRead())
|
||||||
|
}
|
||||||
|
|
||||||
|
pragma[nomagic]
|
||||||
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
predicate defAdjacentRead(Definition def, BasicBlock bb1, BasicBlock bb2, int i2) {
|
||||||
varBlockReaches(def, bb1, bb2) and
|
varBlockReaches(def, bb1, bb2) and
|
||||||
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaRead()) = 1
|
ssaRefRank(bb2, i2, def.getSourceVariable(), SsaActualRead()) = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds if `def` is accessed in basic block `bb` (either a read or a write),
|
||||||
|
* `bb1` can reach a transitive successor `bb2` where `def` is no longer live,
|
||||||
|
* and `v` is neither read nor written in any block on the path between `bb`
|
||||||
|
* and `bb2`.
|
||||||
|
*/
|
||||||
|
pragma[nomagic]
|
||||||
|
predicate varBlockReachesExit(Definition def, BasicBlock bb) {
|
||||||
|
exists(BasicBlock bb2 | varBlockReachesInclPhiRead(def, bb, bb2) |
|
||||||
|
not defOccursInBlock(def, bb2, _, _) and
|
||||||
|
not ssaDefReachesEndOfBlock(bb2, def, _)
|
||||||
|
)
|
||||||
|
or
|
||||||
|
exists(BasicBlock mid |
|
||||||
|
varBlockReachesExit(def, mid) and
|
||||||
|
phiReadStep(def, _, bb, mid)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predicate phiReadExposedForTesting = phiRead/2;
|
||||||
|
|
||||||
private import SsaDefReaches
|
private import SsaDefReaches
|
||||||
|
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
@@ -365,7 +503,8 @@ predicate liveThrough(BasicBlock bb, SourceVariable v) {
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def, SourceVariable v) {
|
||||||
exists(int last | last = maxSsaRefRank(bb, v) |
|
exists(int last |
|
||||||
|
last = maxSsaRefRank(pragma[only_bind_into](bb), pragma[only_bind_into](v)) and
|
||||||
ssaDefReachesRank(bb, def, last, v) and
|
ssaDefReachesRank(bb, def, last, v) and
|
||||||
liveAtExit(bb, v)
|
liveAtExit(bb, v)
|
||||||
)
|
)
|
||||||
@@ -405,7 +544,7 @@ pragma[nomagic]
|
|||||||
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
predicate ssaDefReachesRead(SourceVariable v, Definition def, BasicBlock bb, int i) {
|
||||||
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
ssaDefReachesReadWithinBlock(v, def, bb, i)
|
||||||
or
|
or
|
||||||
variableRead(bb, i, v, _) and
|
ssaRef(bb, i, v, any(SsaRead k)) and
|
||||||
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
ssaDefReachesEndOfBlock(getABasicBlockPredecessor(bb), def, v) and
|
||||||
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
not ssaDefReachesReadWithinBlock(v, _, bb, i)
|
||||||
}
|
}
|
||||||
@@ -421,7 +560,7 @@ pragma[nomagic]
|
|||||||
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
predicate adjacentDefRead(Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2) {
|
||||||
exists(int rnk |
|
exists(int rnk |
|
||||||
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
rnk = ssaDefRank(def, _, bb1, i1, _) and
|
||||||
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaRead()) and
|
rnk + 1 = ssaDefRank(def, _, bb1, i2, SsaActualRead()) and
|
||||||
variableRead(bb1, i2, _, _) and
|
variableRead(bb1, i2, _, _) and
|
||||||
bb2 = bb1
|
bb2 = bb1
|
||||||
)
|
)
|
||||||
@@ -538,18 +677,15 @@ predicate lastRefRedefNoUncertainReads(Definition def, BasicBlock bb, int i, Def
|
|||||||
*/
|
*/
|
||||||
pragma[nomagic]
|
pragma[nomagic]
|
||||||
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
predicate lastRef(Definition def, BasicBlock bb, int i) {
|
||||||
|
// Can reach another definition
|
||||||
lastRefRedef(def, bb, i, _)
|
lastRefRedef(def, bb, i, _)
|
||||||
or
|
or
|
||||||
lastSsaRef(def, _, bb, i) and
|
exists(SourceVariable v | lastSsaRef(def, v, bb, i) |
|
||||||
(
|
|
||||||
// Can reach exit directly
|
// Can reach exit directly
|
||||||
bb instanceof ExitBasicBlock
|
bb instanceof ExitBasicBlock
|
||||||
or
|
or
|
||||||
// Can reach a block using one or more steps, where `def` is no longer live
|
// Can reach a block using one or more steps, where `def` is no longer live
|
||||||
exists(BasicBlock bb2 | varBlockReaches(def, bb, bb2) |
|
varBlockReachesExit(def, bb)
|
||||||
not defOccursInBlock(def, bb2, _) and
|
|
||||||
not ssaDefReachesEndOfBlock(bb2, def, _)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import Expr
|
import Expr
|
||||||
import semmle.code.csharp.dataflow.CallContext as CallContext
|
|
||||||
private import semmle.code.csharp.dataflow.internal.DelegateDataFlow
|
|
||||||
private import semmle.code.csharp.dataflow.internal.DataFlowDispatch
|
private import semmle.code.csharp.dataflow.internal.DataFlowDispatch
|
||||||
private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon
|
private import semmle.code.csharp.dataflow.internal.DataFlowImplCommon
|
||||||
private import semmle.code.csharp.dispatch.Dispatch
|
private import semmle.code.csharp.dispatch.Dispatch
|
||||||
@@ -536,19 +534,6 @@ private class DelegateLikeCall_ = @delegate_invocation_expr or @function_pointer
|
|||||||
class DelegateLikeCall extends Call, DelegateLikeCall_ {
|
class DelegateLikeCall extends Call, DelegateLikeCall_ {
|
||||||
override Callable getTarget() { none() }
|
override Callable getTarget() { none() }
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED: Use `getARuntimeTarget/0` instead.
|
|
||||||
*
|
|
||||||
* Gets a potential run-time target of this delegate or function pointer call in the given
|
|
||||||
* call context `cc`.
|
|
||||||
*/
|
|
||||||
deprecated Callable getARuntimeTarget(CallContext::CallContext cc) {
|
|
||||||
exists(DelegateLikeCallExpr call |
|
|
||||||
this = call.getCall() and
|
|
||||||
result = call.getARuntimeTarget(cc)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the delegate or function pointer expression of this call. For example, the
|
* Gets the delegate or function pointer expression of this call. For example, the
|
||||||
* delegate expression of `X()` on line 5 is the access to the field `X` in
|
* delegate expression of `X()` on line 5 is the access to the field `X` in
|
||||||
@@ -568,7 +553,7 @@ class DelegateLikeCall extends Call, DelegateLikeCall_ {
|
|||||||
final override Callable getARuntimeTarget() {
|
final override Callable getARuntimeTarget() {
|
||||||
exists(ExplicitDelegateLikeDataFlowCall call |
|
exists(ExplicitDelegateLikeDataFlowCall call |
|
||||||
this = call.getCall() and
|
this = call.getCall() and
|
||||||
result = viableCallableLambda(call, _).getUnderlyingCallable()
|
result = viableCallableLambda(call, _).asCallable()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -589,48 +574,6 @@ class DelegateLikeCall extends Call, DelegateLikeCall_ {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
class DelegateCall extends DelegateLikeCall, @delegate_invocation_expr {
|
class DelegateCall extends DelegateLikeCall, @delegate_invocation_expr {
|
||||||
/**
|
|
||||||
* DEPRECATED: Use `getARuntimeTarget/0` instead.
|
|
||||||
*
|
|
||||||
* Gets a potential run-time target of this delegate call in the given
|
|
||||||
* call context `cc`.
|
|
||||||
*/
|
|
||||||
deprecated override Callable getARuntimeTarget(CallContext::CallContext cc) {
|
|
||||||
result = DelegateLikeCall.super.getARuntimeTarget(cc)
|
|
||||||
or
|
|
||||||
exists(AddEventSource aes, CallContext::CallContext cc2 |
|
|
||||||
aes = this.getAnAddEventSource(_) and
|
|
||||||
result = aes.getARuntimeTarget(cc2)
|
|
||||||
|
|
|
||||||
aes = this.getAnAddEventSourceSameEnclosingCallable() and
|
|
||||||
cc = cc2
|
|
||||||
or
|
|
||||||
// The event is added in another callable, so the call context is not relevant
|
|
||||||
aes = this.getAnAddEventSourceDifferentEnclosingCallable() and
|
|
||||||
cc instanceof CallContext::EmptyCallContext
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
deprecated private AddEventSource getAnAddEventSource(Callable enclosingCallable) {
|
|
||||||
this.getExpr().(EventAccess).getTarget() = result.getEvent() and
|
|
||||||
enclosingCallable = result.getExpr().getEnclosingCallable()
|
|
||||||
}
|
|
||||||
|
|
||||||
deprecated private AddEventSource getAnAddEventSourceSameEnclosingCallable() {
|
|
||||||
result = this.getAnAddEventSource(this.getEnclosingCallable())
|
|
||||||
}
|
|
||||||
|
|
||||||
deprecated private AddEventSource getAnAddEventSourceDifferentEnclosingCallable() {
|
|
||||||
exists(Callable c | result = this.getAnAddEventSource(c) | c != this.getEnclosingCallable())
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DEPRECATED: use `getExpr` instead.
|
|
||||||
*
|
|
||||||
* Gets the delegate expression of this call.
|
|
||||||
*/
|
|
||||||
deprecated Expr getDelegateExpr() { result = this.getExpr() }
|
|
||||||
|
|
||||||
override string toString() { result = "delegate call" }
|
override string toString() { result = "delegate call" }
|
||||||
|
|
||||||
override string getAPrimaryQlClass() { result = "DelegateCall" }
|
override string getAPrimaryQlClass() { result = "DelegateCall" }
|
||||||
|
|||||||
@@ -1036,9 +1036,6 @@ class TupleExpr extends Expr, @tuple_expr {
|
|||||||
/** Gets an argument of this tuple. */
|
/** Gets an argument of this tuple. */
|
||||||
Expr getAnArgument() { result = this.getArgument(_) }
|
Expr getAnArgument() { result = this.getArgument(_) }
|
||||||
|
|
||||||
/** Holds if this tuple is a read access. */
|
|
||||||
deprecated predicate isReadAccess() { not this = getAnAssignOrForeachChild() }
|
|
||||||
|
|
||||||
/** Holds if this expression is a tuple construction. */
|
/** Holds if this expression is a tuple construction. */
|
||||||
predicate isConstruction() {
|
predicate isConstruction() {
|
||||||
not this = getAnAssignOrForeachChild() and
|
not this = getAnAssignOrForeachChild() and
|
||||||
|
|||||||
@@ -228,11 +228,11 @@ module JsonNET {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,Newtonsoft.Json.Linq.JsonSelectSettings);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,Newtonsoft.Json.Linq.JsonSelectSettings);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,System.Boolean);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,System.Boolean);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Newtonsoft.Json.Linq;JToken;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JToken;false;ToString;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Newtonsoft.Json.Linq;JToken;false;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JToken;false;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -253,21 +253,21 @@ module JsonNET {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;JObject;(Newtonsoft.Json.Linq.JObject);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;JObject;(System.Object[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;Parse;(System.String);;Argument[0];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JObject;false;Parse;(System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;Parse;(System.String,Newtonsoft.Json.Linq.JsonLoadSettings);;Argument[0];ReturnValue;taint;manual",
|
"Newtonsoft.Json.Linq;JObject;false;Parse;(System.String,Newtonsoft.Json.Linq.JsonLoadSettings);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;get_Item;(System.Object);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"Newtonsoft.Json.Linq;JObject;false;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -277,8 +277,8 @@ module JsonNET {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"Newtonsoft.Json.Linq;JArray;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Newtonsoft.Json.Linq;JArray;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"Newtonsoft.Json.Linq;JArray;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"Newtonsoft.Json.Linq;JArray;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -288,8 +288,8 @@ module JsonNET {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"Newtonsoft.Json.Linq;JConstructor;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Newtonsoft.Json.Linq;JConstructor;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"Newtonsoft.Json.Linq;JConstructor;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"Newtonsoft.Json.Linq;JConstructor;false;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,7 +298,7 @@ module JsonNET {
|
|||||||
private class NewtonsoftJsonLinqJContainerFlowModelCsv extends SummaryModelCsv {
|
private class NewtonsoftJsonLinqJContainerFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"Newtonsoft.Json.Linq;JContainer;true;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"Newtonsoft.Json.Linq;JContainer;true;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -282,13 +282,13 @@ private class ServiceStackXssSummaryModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.String,System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"ServiceStack;HttpResult;false;HttpResult;(System.String,System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String,System.Net.HttpStatusCode);;Argument[0];Argument[Qualifier];taint;manual",
|
"ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String,System.Net.HttpStatusCode);;Argument[0];Argument[this];taint;manual",
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"ServiceStack;HttpResult;false;HttpResult;(System.Object,System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.Object,System.Net.HttpStatusCode);;Argument[0];Argument[Qualifier];taint;manual",
|
"ServiceStack;HttpResult;false;HttpResult;(System.Object,System.Net.HttpStatusCode);;Argument[0];Argument[this];taint;manual",
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.Object);;Argument[0];Argument[Qualifier];taint;manual",
|
"ServiceStack;HttpResult;false;HttpResult;(System.Object);;Argument[0];Argument[this];taint;manual",
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.IO.Stream,System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"ServiceStack;HttpResult;false;HttpResult;(System.IO.Stream,System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"ServiceStack;HttpResult;false;HttpResult;(System.Byte[],System.String);;Argument[0];Argument[Qualifier];taint;manual"
|
"ServiceStack;HttpResult;false;HttpResult;(System.Byte[],System.String);;Argument[0];Argument[this];taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,13 +83,13 @@ private class SqlCommandSummaryModelCsv extends SummaryModelCsv {
|
|||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
// SqlCommand
|
// SqlCommand
|
||||||
"System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String,System.Data.SqlClient.SqlConnection);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String,System.Data.SqlClient.SqlConnection);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String,System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Data.SqlClient;SqlCommand;false;SqlCommand;(System.String,System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction);;Argument[0];Argument[this];taint;manual",
|
||||||
// SQLiteCommand.
|
// SQLiteCommand.
|
||||||
"System.Data.SQLite;SQLiteCommand;false;SQLiteCommand;(System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Data.SQLite;SQLiteCommand;false;SQLiteCommand;(System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Data.SQLite;SQLiteCommand;false;SQLiteCommand;(System.String,System.Data.SQLite.SQLiteConnection);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Data.SQLite;SQLiteCommand;false;SQLiteCommand;(System.String,System.Data.SQLite.SQLiteConnection);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Data.SQLite;SQLiteCommand;false;SQLiteCommand;(System.String,System.Data.SQLite.SQLiteConnection,System.Data.SQLite.SQLiteTransaction);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Data.SQLite;SQLiteCommand;false;SQLiteCommand;(System.String,System.Data.SQLite.SQLiteConnection,System.Data.SQLite.SQLiteTransaction);;Argument[0];Argument[this];taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ private class SystemArrayFlowModelCsv extends SummaryModelCsv {
|
|||||||
[
|
[
|
||||||
"System;Array;false;AsReadOnly<>;(T[]);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System;Array;false;AsReadOnly<>;(T[]);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System;Array;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System;Array;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System;Array;false;CopyTo;(System.Array,System.Int64);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System;Array;false;CopyTo;(System.Array,System.Int64);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System;Array;false;Find<>;(T[],System.Predicate<T>);;Argument[0].Element;Argument[1].Parameter[0];value;manual",
|
"System;Array;false;Find<>;(T[],System.Predicate<T>);;Argument[0].Element;Argument[1].Parameter[0];value;manual",
|
||||||
"System;Array;false;Find<>;(T[],System.Predicate<T>);;Argument[0].Element;ReturnValue;value;manual",
|
"System;Array;false;Find<>;(T[],System.Predicate<T>);;Argument[0].Element;ReturnValue;value;manual",
|
||||||
"System;Array;false;FindAll<>;(T[],System.Predicate<T>);;Argument[0].Element;Argument[1].Parameter[0];value;manual",
|
"System;Array;false;FindAll<>;(T[],System.Predicate<T>);;Argument[0].Element;Argument[1].Parameter[0];value;manual",
|
||||||
@@ -622,10 +622,10 @@ private class SystemLazyFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System;Lazy<>;false;Lazy;(System.Func<T>);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual",
|
"System;Lazy<>;false;Lazy;(System.Func<T>);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual",
|
||||||
"System;Lazy<>;false;Lazy;(System.Func<T>,System.Boolean);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual",
|
"System;Lazy<>;false;Lazy;(System.Func<T>,System.Boolean);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual",
|
||||||
"System;Lazy<>;false;Lazy;(System.Func<T>,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Lazy<>.Value];value;manual",
|
"System;Lazy<>;false;Lazy;(System.Func<T>,System.Threading.LazyThreadSafetyMode);;Argument[0].ReturnValue;Argument[this].Property[System.Lazy<>.Value];value;manual",
|
||||||
"System;Lazy<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;Lazy<>;false;get_Value;();;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -664,12 +664,12 @@ private class SystemNullableFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System;Nullable<>;false;GetValueOrDefault;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual",
|
"System;Nullable<>;false;GetValueOrDefault;();;Argument[this].Property[System.Nullable<>.Value];ReturnValue;value;manual",
|
||||||
"System;Nullable<>;false;GetValueOrDefault;(T);;Argument[0];ReturnValue;value;manual",
|
"System;Nullable<>;false;GetValueOrDefault;(T);;Argument[0];ReturnValue;value;manual",
|
||||||
"System;Nullable<>;false;GetValueOrDefault;(T);;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;value;manual",
|
"System;Nullable<>;false;GetValueOrDefault;(T);;Argument[this].Property[System.Nullable<>.Value];ReturnValue;value;manual",
|
||||||
"System;Nullable<>;false;Nullable;(T);;Argument[0];Argument[Qualifier].Property[System.Nullable<>.Value];value;manual",
|
"System;Nullable<>;false;Nullable;(T);;Argument[0];Argument[this].Property[System.Nullable<>.Value];value;manual",
|
||||||
"System;Nullable<>;false;get_HasValue;();;Argument[Qualifier].Property[System.Nullable<>.Value];ReturnValue;taint;manual",
|
"System;Nullable<>;false;get_HasValue;();;Argument[this].Property[System.Nullable<>.Value];ReturnValue;taint;manual",
|
||||||
"System;Nullable<>;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;Nullable<>;false;get_Value;();;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -885,7 +885,7 @@ private class SystemStringFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System;String;false;Clone;();;Argument[Qualifier];ReturnValue;value;manual",
|
"System;String;false;Clone;();;Argument[this];ReturnValue;value;manual",
|
||||||
"System;String;false;Concat;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;manual",
|
"System;String;false;Concat;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;manual",
|
||||||
"System;String;false;Concat;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
"System;String;false;Concat;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
||||||
"System;String;false;Concat;(System.Object,System.Object);;Argument[0];ReturnValue;taint;manual",
|
"System;String;false;Concat;(System.Object,System.Object);;Argument[0];ReturnValue;taint;manual",
|
||||||
@@ -937,10 +937,10 @@ private class SystemStringFlowModelCsv extends SummaryModelCsv {
|
|||||||
"System;String;false;Format;(System.String,System.Object,System.Object,System.Object);;Argument[3];ReturnValue;taint;manual",
|
"System;String;false;Format;(System.String,System.Object,System.Object,System.Object);;Argument[3];ReturnValue;taint;manual",
|
||||||
"System;String;false;Format;(System.String,System.Object[]);;Argument[0];ReturnValue;taint;manual",
|
"System;String;false;Format;(System.String,System.Object[]);;Argument[0];ReturnValue;taint;manual",
|
||||||
"System;String;false;Format;(System.String,System.Object[]);;Argument[1].Element;ReturnValue;taint;manual",
|
"System;String;false;Format;(System.String,System.Object[]);;Argument[1].Element;ReturnValue;taint;manual",
|
||||||
"System;String;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.CharEnumerator.Current];value;manual",
|
"System;String;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.CharEnumerator.Current];value;manual",
|
||||||
"System;String;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual",
|
"System;String;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual",
|
||||||
"System;String;false;Insert;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual",
|
"System;String;false;Insert;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual",
|
||||||
"System;String;false;Insert;(System.Int32,System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Insert;(System.Int32,System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Join;(System.Char,System.Object[]);;Argument[0];ReturnValue;taint;manual",
|
"System;String;false;Join;(System.Char,System.Object[]);;Argument[0];ReturnValue;taint;manual",
|
||||||
"System;String;false;Join;(System.Char,System.Object[]);;Argument[1].Element;ReturnValue;taint;manual",
|
"System;String;false;Join;(System.Char,System.Object[]);;Argument[1].Element;ReturnValue;taint;manual",
|
||||||
"System;String;false;Join;(System.Char,System.String[]);;Argument[0];ReturnValue;taint;manual",
|
"System;String;false;Join;(System.Char,System.String[]);;Argument[0];ReturnValue;taint;manual",
|
||||||
@@ -959,49 +959,49 @@ private class SystemStringFlowModelCsv extends SummaryModelCsv {
|
|||||||
"System;String;false;Join<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;ReturnValue;taint;manual",
|
"System;String;false;Join<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;ReturnValue;taint;manual",
|
||||||
"System;String;false;Join<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[0];ReturnValue;taint;manual",
|
"System;String;false;Join<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[0];ReturnValue;taint;manual",
|
||||||
"System;String;false;Join<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;ReturnValue;taint;manual",
|
"System;String;false;Join<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;ReturnValue;taint;manual",
|
||||||
"System;String;false;Normalize;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Normalize;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Normalize;(System.Text.NormalizationForm);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Normalize;(System.Text.NormalizationForm);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;PadLeft;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;PadLeft;(System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;PadLeft;(System.Int32,System.Char);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;PadLeft;(System.Int32,System.Char);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;PadRight;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;PadRight;(System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;PadRight;(System.Int32,System.Char);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;PadRight;(System.Int32,System.Char);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Remove;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Remove;(System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Remove;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Remove;(System.Int32,System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Replace;(System.Char,System.Char);;Argument[1];ReturnValue;taint;manual",
|
"System;String;false;Replace;(System.Char,System.Char);;Argument[1];ReturnValue;taint;manual",
|
||||||
"System;String;false;Replace;(System.Char,System.Char);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Replace;(System.Char,System.Char);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Replace;(System.String,System.String);;Argument[1];ReturnValue;taint;manual",
|
"System;String;false;Replace;(System.String,System.String);;Argument[1];ReturnValue;taint;manual",
|
||||||
"System;String;false;Replace;(System.String,System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Replace;(System.String,System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Split;(System.Char,System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.Char,System.Int32,System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.Char,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.Char,System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.Char[]);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.Char[]);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.Char[],System.Int32);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.Char[],System.Int32);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.Char[],System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.Char[],System.Int32,System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.Char[],System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.Char[],System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.String,System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.String,System.Int32,System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.String,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.String,System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.String[],System.Int32,System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.String[],System.Int32,System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;Split;(System.String[],System.StringSplitOptions);;Argument[Qualifier];ReturnValue.Element;taint;manual",
|
"System;String;false;Split;(System.String[],System.StringSplitOptions);;Argument[this];ReturnValue.Element;taint;manual",
|
||||||
"System;String;false;String;(System.Char[]);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System;String;false;String;(System.Char[]);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System;String;false;String;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System;String;false;Substring;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Substring;(System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Substring;(System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Substring;(System.Int32,System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;ToLower;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;ToLower;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;ToLower;(System.Globalization.CultureInfo);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;ToLower;(System.Globalization.CultureInfo);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;ToLowerInvariant;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;ToLowerInvariant;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;ToString;();;Argument[Qualifier];ReturnValue;value;manual",
|
"System;String;false;ToString;();;Argument[this];ReturnValue;value;manual",
|
||||||
"System;String;false;ToString;(System.IFormatProvider);;Argument[Qualifier];ReturnValue;value;manual",
|
"System;String;false;ToString;(System.IFormatProvider);;Argument[this];ReturnValue;value;manual",
|
||||||
"System;String;false;ToUpper;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;ToUpper;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;ToUpper;(System.Globalization.CultureInfo);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;ToUpper;(System.Globalization.CultureInfo);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;ToUpperInvariant;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;ToUpperInvariant;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Trim;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Trim;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Trim;(System.Char);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Trim;(System.Char);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;Trim;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;Trim;(System.Char[]);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;TrimEnd;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;TrimEnd;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;TrimEnd;(System.Char);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;TrimEnd;(System.Char);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;TrimEnd;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;TrimEnd;(System.Char[]);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;TrimStart;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;TrimStart;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;TrimStart;(System.Char);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;TrimStart;(System.Char);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;String;false;TrimStart;(System.Char[]);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;String;false;TrimStart;(System.Char[]);;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1072,13 +1072,13 @@ private class SystemUriFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System;Uri;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;Uri;false;ToString;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;Uri;false;Uri;(System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"System;Uri;false;Uri;(System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual",
|
"System;Uri;false;Uri;(System.String,System.Boolean);;Argument[0];Argument[this];taint;manual",
|
||||||
"System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];Argument[Qualifier];taint;manual",
|
"System;Uri;false;Uri;(System.String,System.UriKind);;Argument[0];Argument[this];taint;manual",
|
||||||
"System;Uri;false;get_OriginalString;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;Uri;false;get_OriginalString;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;Uri;false;get_PathAndQuery;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;Uri;false;get_PathAndQuery;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System;Uri;false;get_Query;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System;Uri;false;get_Query;();;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1364,76 +1364,76 @@ private class SystemTupleTFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item1];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[this].Property[System.Tuple<,,,,,,,>.Item1];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item2];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[this].Property[System.Tuple<,,,,,,,>.Item2];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item3];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[this].Property[System.Tuple<,,,,,,,>.Item3];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item4];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[this].Property[System.Tuple<,,,,,,,>.Item4];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item5];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[this].Property[System.Tuple<,,,,,,,>.Item5];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item6];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[this].Property[System.Tuple<,,,,,,,>.Item6];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];value;manual",
|
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[this].Property[System.Tuple<,,,,,,,>.Item7];value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item3];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item4];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item5];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item6];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item6];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,,>.Item7];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,,>.Item7];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item1];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[this].Property[System.Tuple<,,,,,,>.Item1];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item2];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[this].Property[System.Tuple<,,,,,,>.Item2];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item3];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[this].Property[System.Tuple<,,,,,,>.Item3];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item4];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[this].Property[System.Tuple<,,,,,,>.Item4];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item5];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[this].Property[System.Tuple<,,,,,,>.Item5];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[this].Property[System.Tuple<,,,,,,>.Item6];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];value;manual",
|
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[this].Property[System.Tuple<,,,,,,>.Item7];value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item3];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item4];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item5];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item6];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item6];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,,>.Item7];ReturnValue;value;manual",
|
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,,>.Item7];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item1];value;manual",
|
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[this].Property[System.Tuple<,,,,,>.Item1];value;manual",
|
||||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item2];value;manual",
|
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[this].Property[System.Tuple<,,,,,>.Item2];value;manual",
|
||||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item3];value;manual",
|
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[this].Property[System.Tuple<,,,,,>.Item3];value;manual",
|
||||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item4];value;manual",
|
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[this].Property[System.Tuple<,,,,,>.Item4];value;manual",
|
||||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];value;manual",
|
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[this].Property[System.Tuple<,,,,,>.Item5];value;manual",
|
||||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];value;manual",
|
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[this].Property[System.Tuple<,,,,,>.Item6];value;manual",
|
||||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item3];ReturnValue;value;manual",
|
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item4];ReturnValue;value;manual",
|
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item5];ReturnValue;value;manual",
|
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,,>.Item6];ReturnValue;value;manual",
|
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,,>.Item6];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,,>.Item1];value;manual",
|
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[this].Property[System.Tuple<,,,,>.Item1];value;manual",
|
||||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,,>.Item2];value;manual",
|
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[this].Property[System.Tuple<,,,,>.Item2];value;manual",
|
||||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,,>.Item3];value;manual",
|
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[this].Property[System.Tuple<,,,,>.Item3];value;manual",
|
||||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];value;manual",
|
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[this].Property[System.Tuple<,,,,>.Item4];value;manual",
|
||||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];value;manual",
|
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[this].Property[System.Tuple<,,,,>.Item5];value;manual",
|
||||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item3];ReturnValue;value;manual",
|
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item4];ReturnValue;value;manual",
|
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,,>.Item5];ReturnValue;value;manual",
|
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,,>.Item1];value;manual",
|
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];Argument[this].Property[System.Tuple<,,,>.Item1];value;manual",
|
||||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,,>.Item2];value;manual",
|
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];Argument[this].Property[System.Tuple<,,,>.Item2];value;manual",
|
||||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,,>.Item3];value;manual",
|
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];Argument[this].Property[System.Tuple<,,,>.Item3];value;manual",
|
||||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Property[System.Tuple<,,,>.Item4];value;manual",
|
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];Argument[this].Property[System.Tuple<,,,>.Item4];value;manual",
|
||||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item3];ReturnValue;value;manual",
|
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,,>.Item4];ReturnValue;value;manual",
|
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Property[System.Tuple<,,>.Item1];value;manual",
|
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];Argument[this].Property[System.Tuple<,,>.Item1];value;manual",
|
||||||
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Property[System.Tuple<,,>.Item2];value;manual",
|
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];Argument[this].Property[System.Tuple<,,>.Item2];value;manual",
|
||||||
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Property[System.Tuple<,,>.Item3];value;manual",
|
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];Argument[this].Property[System.Tuple<,,>.Item3];value;manual",
|
||||||
"System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,,>.Item3];ReturnValue;value;manual",
|
"System;Tuple<,,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];Argument[Qualifier].Property[System.Tuple<,>.Item1];value;manual",
|
"System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];Argument[this].Property[System.Tuple<,>.Item1];value;manual",
|
||||||
"System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];Argument[Qualifier].Property[System.Tuple<,>.Item2];value;manual",
|
"System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];Argument[this].Property[System.Tuple<,>.Item2];value;manual",
|
||||||
"System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item1];ReturnValue;value;manual",
|
"System;Tuple<,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,>.Item1];ReturnValue;value;manual",
|
||||||
"System;Tuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<,>.Item2];ReturnValue;value;manual",
|
"System;Tuple<,>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<,>.Item2];ReturnValue;value;manual",
|
||||||
"System;Tuple<>;false;Tuple;(T1);;Argument[0];Argument[Qualifier].Property[System.Tuple<>.Item1];value;manual",
|
"System;Tuple<>;false;Tuple;(T1);;Argument[0];Argument[this].Property[System.Tuple<>.Item1];value;manual",
|
||||||
"System;Tuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Property[System.Tuple<>.Item1];ReturnValue;value;manual",
|
"System;Tuple<>;false;get_Item;(System.Int32);;Argument[this].Property[System.Tuple<>.Item1];ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1622,76 +1622,76 @@ private class SystemValueTupleTFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item3];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item4];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item4];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item5];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item5];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item6];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];value;manual",
|
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Argument[this].Field[System.ValueTuple<,,,,,,,>.Item7];value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item3];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item4];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item5];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item6];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item6];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,,>.Item7];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,,>.Item7];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Argument[this].Field[System.ValueTuple<,,,,,,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Argument[this].Field[System.ValueTuple<,,,,,,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Argument[this].Field[System.ValueTuple<,,,,,,>.Item3];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item4];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Argument[this].Field[System.ValueTuple<,,,,,,>.Item4];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item5];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Argument[this].Field[System.ValueTuple<,,,,,,>.Item5];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Argument[this].Field[System.ValueTuple<,,,,,,>.Item6];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];value;manual",
|
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Argument[this].Field[System.ValueTuple<,,,,,,>.Item7];value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item3];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item4];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item5];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item6];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item6];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,,>.Item7];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,,>.Item7];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];value;manual",
|
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Argument[this].Field[System.ValueTuple<,,,,,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];value;manual",
|
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Argument[this].Field[System.ValueTuple<,,,,,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];value;manual",
|
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Argument[this].Field[System.ValueTuple<,,,,,>.Item3];value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item4];value;manual",
|
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Argument[this].Field[System.ValueTuple<,,,,,>.Item4];value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];value;manual",
|
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Argument[this].Field[System.ValueTuple<,,,,,>.Item5];value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];value;manual",
|
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Argument[this].Field[System.ValueTuple<,,,,,>.Item6];value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item3];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item4];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item5];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,,>.Item6];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,,>.Item6];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];value;manual",
|
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];Argument[this].Field[System.ValueTuple<,,,,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];value;manual",
|
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];Argument[this].Field[System.ValueTuple<,,,,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];value;manual",
|
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];Argument[this].Field[System.ValueTuple<,,,,>.Item3];value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];value;manual",
|
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];Argument[this].Field[System.ValueTuple<,,,,>.Item4];value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];value;manual",
|
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];Argument[this].Field[System.ValueTuple<,,,,>.Item5];value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item3];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item4];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,,>.Item5];ReturnValue;value;manual",
|
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,,>.Item5];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];value;manual",
|
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];Argument[this].Field[System.ValueTuple<,,,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];value;manual",
|
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];Argument[this].Field[System.ValueTuple<,,,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];value;manual",
|
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];Argument[this].Field[System.ValueTuple<,,,>.Item3];value;manual",
|
||||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];value;manual",
|
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];Argument[this].Field[System.ValueTuple<,,,>.Item4];value;manual",
|
||||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item3];ReturnValue;value;manual",
|
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,,>.Item4];ReturnValue;value;manual",
|
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,,>.Item4];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];value;manual",
|
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];Argument[this].Field[System.ValueTuple<,,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];value;manual",
|
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];Argument[this].Field[System.ValueTuple<,,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];value;manual",
|
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];Argument[this].Field[System.ValueTuple<,,>.Item3];value;manual",
|
||||||
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,,>.Item3];ReturnValue;value;manual",
|
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,,>.Item3];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<,>.Item1];value;manual",
|
"System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];Argument[this].Field[System.ValueTuple<,>.Item1];value;manual",
|
||||||
"System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];Argument[Qualifier].Field[System.ValueTuple<,>.Item2];value;manual",
|
"System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];Argument[this].Field[System.ValueTuple<,>.Item2];value;manual",
|
||||||
"System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,>.Item1];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<,>.Item2];ReturnValue;value;manual",
|
"System;ValueTuple<,>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<,>.Item2];ReturnValue;value;manual",
|
||||||
"System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];Argument[Qualifier].Field[System.ValueTuple<>.Item1];value;manual",
|
"System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];Argument[this].Field[System.ValueTuple<>.Item1];value;manual",
|
||||||
"System;ValueTuple<>;false;get_Item;(System.Int32);;Argument[Qualifier].Field[System.ValueTuple<>.Item1];ReturnValue;value;manual",
|
"System;ValueTuple<>;false;get_Item;(System.Int32);;Argument[this].Field[System.ValueTuple<>.Item1];ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -7,10 +7,10 @@ private class MicrosoftVisualBasicCollectionFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"Microsoft.VisualBasic;Collection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
"Microsoft.VisualBasic;Collection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
||||||
"Microsoft.VisualBasic;Collection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Microsoft.VisualBasic;Collection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"Microsoft.VisualBasic;Collection;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Microsoft.VisualBasic;Collection;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"Microsoft.VisualBasic;Collection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"Microsoft.VisualBasic;Collection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ private class MicrosoftExtensionsPrimitivesStringValuesFlowModelCsv extends Summ
|
|||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Add;(System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Add;(System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Add;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Add;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(Microsoft.Extensions.Primitives.StringValues,System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(Microsoft.Extensions.Primitives.StringValues,System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
@@ -16,12 +16,12 @@ private class MicrosoftExtensionsPrimitivesStringValuesFlowModelCsv extends Summ
|
|||||||
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Concat;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Contains;(System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Contains;(System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Contains;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Contains;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;CopyTo;(System.String[],System.Int32);;Argument[0].Element;ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;CopyTo;(System.String[],System.Int32);;Argument[0].Element;ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;CopyTo;(System.String[],System.Int32);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;CopyTo;(System.String[],System.Int32);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;CopyTo;(System.String[],System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;CopyTo;(System.String[],System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
@@ -29,38 +29,38 @@ private class MicrosoftExtensionsPrimitivesStringValuesFlowModelCsv extends Summ
|
|||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,System.String[]);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,System.String[]);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,System.String[]);;Argument[1].Element;ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(Microsoft.Extensions.Primitives.StringValues,System.String[]);;Argument[1].Element;ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.Object);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.Object);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String,Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[]);;Argument[0].Element;ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[]);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[]);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[],Microsoft.Extensions.Primitives.StringValues);;Argument[0].Element;ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[],Microsoft.Extensions.Primitives.StringValues);;Argument[0].Element;ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[],Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Equals;(System.String[],Microsoft.Extensions.Primitives.StringValues);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;GetEnumerator;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;GetEnumerator;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;GetHashCode;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;GetHashCode;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;IndexOf;(System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;IndexOf;(System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;IndexOf;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;IndexOf;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Insert;(System.Int32,System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Insert;(System.Int32,System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Insert;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Insert;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Insert;(System.Int32,System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Insert;(System.Int32,System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;IsNullOrEmpty;(Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;IsNullOrEmpty;(Microsoft.Extensions.Primitives.StringValues);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;Remove;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;RemoveAt;(System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;StringValues;(System.String[]);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;ToArray;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;ToString;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;ToString;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;get_Count;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;get_Count;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;get_IsReadOnly;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;get_IsReadOnly;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;get_Item;(System.Int32);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;get_Item;(System.Int32);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;get_Item;(System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[0];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[0];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[1];ReturnValue;taint;manual",
|
||||||
"Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"Microsoft.Extensions.Primitives;StringValues;false;set_Item;(System.Int32,System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class SystemCollectionsIEnumerableInterface extends SystemCollectionsInterface {
|
|||||||
private class SystemCollectionIEnumerableFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionIEnumerableFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections;IEnumerable;true;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual"
|
"System.Collections;IEnumerable;true;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ class SystemCollectionsICollectionInterface extends SystemCollectionsInterface {
|
|||||||
private class SystemCollectionsICollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsICollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections;ICollection;true;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.Collections;ICollection;true;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,10 +95,10 @@ private class SystemCollectionsIListFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;IList;true;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections;IList;true;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections;IList;true;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections;IList;true;Insert;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Collections;IList;true;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections;IList;true;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections;IList;true;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections;IList;true;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -113,13 +113,13 @@ private class SystemCollectionsIDictionaryFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;IDictionary;true;Add;(System.Object,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;IDictionary;true;Add;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;IDictionary;true;Add;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;IDictionary;true;Add;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;IDictionary;true;get_Item;(System.Object);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections;IDictionary;true;get_Item;(System.Object);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections;IDictionary;true;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections;IDictionary;true;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections;IDictionary;true;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections;IDictionary;true;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
"System.Collections;IDictionary;true;set_Item;(System.Object,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;IDictionary;true;set_Item;(System.Object,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;IDictionary;true;set_Item;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;IDictionary;true;set_Item;(System.Object,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -130,18 +130,18 @@ private class SystemCollectionsHashtableFlowModelCsv extends SummaryModelCsv {
|
|||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;Hashtable;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;Hashtable;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IEqualityComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;Hashtable;false;Hashtable;(System.Collections.IDictionary,System.Single,System.Collections.IHashCodeProvider,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,12 +152,12 @@ private class SystemCollectionsSortedListFlowModelCsv extends SummaryModelCsv {
|
|||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;SortedList;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;SortedList;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;SortedList;false;GetByIndex;(System.Int32);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections;SortedList;false;GetByIndex;(System.Int32);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections;SortedList;false;GetValueList;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections;SortedList;false;GetValueList;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections;SortedList;false;SortedList;(System.Collections.IDictionary,System.Collections.IComparer);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -167,13 +167,13 @@ private class SystemCollectionsArrayListFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;ArrayList;false;AddRange;(System.Collections.ICollection);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections;ArrayList;false;AddRange;(System.Collections.ICollection);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;FixedSize;(System.Collections.ArrayList);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;FixedSize;(System.Collections.ArrayList);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;FixedSize;(System.Collections.IList);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;FixedSize;(System.Collections.IList);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;GetEnumerator;(System.Int32,System.Int32);;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
"System.Collections;ArrayList;false;GetEnumerator;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
||||||
"System.Collections;ArrayList;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;InsertRange;(System.Int32,System.Collections.ICollection);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections;ArrayList;false;InsertRange;(System.Int32,System.Collections.ICollection);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;Repeat;(System.Object,System.Int32);;Argument[0];ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;Repeat;(System.Object,System.Int32);;Argument[0];ReturnValue.Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;ArrayList;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;ArrayList;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
@@ -195,7 +195,7 @@ private class SystemCollectionsQueueFlowModelCsv extends SummaryModelCsv {
|
|||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;Queue;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;Queue;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;Queue;false;Peek;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections;Queue;false;Peek;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -206,8 +206,8 @@ private class SystemCollectionsStackFlowModelCsv extends SummaryModelCsv {
|
|||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections;Stack;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections;Stack;false;Clone;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections;Stack;false;Peek;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections;Stack;false;Peek;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections;Stack;false;Pop;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections;Stack;false;Pop;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,26 +7,26 @@ private class SystemComponentModelPropertyDescriptorCollectionFlowModelCsv exten
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.ComponentModel.PropertyDescriptor);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.Object);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.Object);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.Object);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Add;(System.Object);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Find;(System.String,System.Boolean);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Find;(System.String,System.Boolean);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.PropertyDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.PropertyDescriptor);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[]);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;PropertyDescriptorCollection;(System.ComponentModel.PropertyDescriptor[],System.Boolean);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Int32);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;get_Item;(System.String);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;set_Item;(System.Int32,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;set_Item;(System.Int32,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.ComponentModel;PropertyDescriptorCollection;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel;PropertyDescriptorCollection;false;set_Item;(System.Object,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,12 +36,12 @@ private class SystemComponentModelEventDescriptorCollectionFlowModelCsv extends
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.ComponentModel;EventDescriptorCollection;false;Add;(System.ComponentModel.EventDescriptor);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel;EventDescriptorCollection;false;Add;(System.ComponentModel.EventDescriptor);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel;EventDescriptorCollection;false;Find;(System.String,System.Boolean);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;EventDescriptorCollection;false;Find;(System.String,System.Boolean);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;EventDescriptorCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
"System.ComponentModel;EventDescriptorCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
||||||
"System.ComponentModel;EventDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.EventDescriptor);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel;EventDescriptorCollection;false;Insert;(System.Int32,System.ComponentModel.EventDescriptor);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel;EventDescriptorCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;EventDescriptorCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;EventDescriptorCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;EventDescriptorCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -51,8 +51,8 @@ private class SystemComponentModelListSortDescriptionCollectionFlowModelCsv exte
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.ComponentModel;ListSortDescriptionCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel;ListSortDescriptionCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel;ListSortDescriptionCollection;false;set_Item;(System.Int32,System.ComponentModel.ListSortDescription);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel;ListSortDescriptionCollection;false;set_Item;(System.Int32,System.ComponentModel.ListSortDescription);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -61,7 +61,7 @@ private class SystemComponentModelListSortDescriptionCollectionFlowModelCsv exte
|
|||||||
private class SystemComponentModelComponentCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemComponentModelComponentCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.ComponentModel;ComponentCollection;false;CopyTo;(System.ComponentModel.IComponent[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.ComponentModel;ComponentCollection;false;CopyTo;(System.ComponentModel.IComponent[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ private class SystemComponentModelComponentCollectionFlowModelCsv extends Summar
|
|||||||
private class SystemComponentModelAttributeCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemComponentModelAttributeCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.ComponentModel;AttributeCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual"
|
"System.ComponentModel;AttributeCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,6 +77,6 @@ private class SystemComponentModelAttributeCollectionFlowModelCsv extends Summar
|
|||||||
private class SystemComponentModelIBindingListFlowModelCsv extends SummaryModelCsv {
|
private class SystemComponentModelIBindingListFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.ComponentModel;IBindingList;true;Find;(System.ComponentModel.PropertyDescriptor,System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual"
|
"System.ComponentModel;IBindingList;true;Find;(System.ComponentModel.PropertyDescriptor,System.Object);;Argument[this].Element;ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,9 +103,9 @@ private class SystemDataDataViewFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;DataView;false;Find;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;DataView;false;Find;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data;DataView;false;Find;(System.Object[]);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;DataView;false;Find;(System.Object[]);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data;DataView;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;DataView;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,8 +115,8 @@ private class SystemDataIColumnMappingCollectionFlowModelCsv extends SummaryMode
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;IColumnMappingCollection;true;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;IColumnMappingCollection;true;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data;IColumnMappingCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data;IColumnMappingCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -126,8 +126,8 @@ private class SystemDataIDataParameterCollectionFlowModelCsv extends SummaryMode
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;IDataParameterCollection;true;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;IDataParameterCollection;true;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data;IDataParameterCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data;IDataParameterCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -137,8 +137,8 @@ private class SystemDataITableMappingCollectionFlowModelCsv extends SummaryModel
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;ITableMappingCollection;true;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;ITableMappingCollection;true;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data;ITableMappingCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data;ITableMappingCollection;true;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -148,9 +148,9 @@ private class SystemDataConstraintCollectionFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;ConstraintCollection;false;Add;(System.Data.Constraint);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;ConstraintCollection;false;Add;(System.Data.Constraint);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;ConstraintCollection;false;AddRange;(System.Data.Constraint[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data;ConstraintCollection;false;AddRange;(System.Data.Constraint[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data;ConstraintCollection;false;CopyTo;(System.Data.Constraint[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data;ConstraintCollection;false;CopyTo;(System.Data.Constraint[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -160,10 +160,10 @@ private class SystemDataDataColumnCollectionFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;DataColumnCollection;false;Add;(System.Data.DataColumn);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataColumnCollection;false;Add;(System.Data.DataColumn);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataColumnCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataColumnCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -173,9 +173,9 @@ private class SystemDataDataRelationCollectionFlowModelCsv extends SummaryModelC
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Data;DataRelationCollection;true;AddRange;(System.Data.DataRelation[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data;DataRelationCollection;true;AddRange;(System.Data.DataRelation[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -185,11 +185,11 @@ private class SystemDataDataRawCollectionFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;DataRowCollection;false;Add;(System.Data.DataRow);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataRowCollection;false;Add;(System.Data.DataRow);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataRowCollection;false;Add;(System.Object[]);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataRowCollection;false;Add;(System.Object[]);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataRowCollection;false;CopyTo;(System.Data.DataRow[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data;DataRowCollection;false;CopyTo;(System.Data.DataRow[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Data;DataRowCollection;false;Find;(System.Object);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;DataRowCollection;false;Find;(System.Object);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data;DataRowCollection;false;Find;(System.Object[]);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data;DataRowCollection;false;Find;(System.Object[]);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,10 +199,10 @@ private class SystemDataDataTableCollectionFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data;DataTableCollection;false;Add;(System.Data.DataTable);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataTableCollection;false;Add;(System.Data.DataTable);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataTableCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data;DataTableCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data;DataTableCollection;false;AddRange;(System.Data.DataTable[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data;DataTableCollection;false;AddRange;(System.Data.DataTable[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data;DataTableCollection;false;CopyTo;(System.Data.DataTable[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data;DataTableCollection;false;CopyTo;(System.Data.DataTable[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -211,7 +211,7 @@ private class SystemDataDataTableCollectionFlowModelCsv extends SummaryModelCsv
|
|||||||
private class SystemDataDataViewSettingCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemDataDataViewSettingCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Data;DataViewSettingCollection;false;CopyTo;(System.Data.DataViewSetting[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.Data;DataViewSettingCollection;false;CopyTo;(System.Data.DataViewSetting[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -86,11 +86,11 @@ private class SystemDiagnosticsActivityTagsCollectionFlowModelCsv extends Summar
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Diagnostics;ActivityTagsCollection;false;ActivityTagsCollection;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Diagnostics;ActivityTagsCollection;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Diagnostics;ActivityTagsCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Diagnostics.ActivityTagsCollection+Enumerator.Current];value;manual",
|
"System.Diagnostics;ActivityTagsCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Diagnostics.ActivityTagsCollection+Enumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -100,14 +100,14 @@ private class SystemDiagnosticsTraceListenerCollectionFlowModelCsv extends Summa
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Diagnostics;TraceListenerCollection;false;Add;(System.Diagnostics.TraceListener);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;Add;(System.Diagnostics.TraceListener);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;AddRange;(System.Diagnostics.TraceListenerCollection);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;AddRange;(System.Diagnostics.TraceListenerCollection);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;AddRange;(System.Diagnostics.TraceListener[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;AddRange;(System.Diagnostics.TraceListener[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;CopyTo;(System.Diagnostics.TraceListener[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;CopyTo;(System.Diagnostics.TraceListener[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;Insert;(System.Int32,System.Diagnostics.TraceListener);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;Insert;(System.Int32,System.Diagnostics.TraceListener);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Diagnostics;TraceListenerCollection;false;set_Item;(System.Int32,System.Diagnostics.TraceListener);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Diagnostics;TraceListenerCollection;false;set_Item;(System.Int32,System.Diagnostics.TraceListener);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -116,7 +116,7 @@ private class SystemDiagnosticsTraceListenerCollectionFlowModelCsv extends Summa
|
|||||||
private class SystemDiagnosticsProcessModuleCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemDiagnosticsProcessModuleCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Diagnostics;ProcessModuleCollection;false;CopyTo;(System.Diagnostics.ProcessModule[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.Diagnostics;ProcessModuleCollection;false;CopyTo;(System.Diagnostics.ProcessModule[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,8 +125,8 @@ private class SystemDiagnosticsProcessThreadCollectionFlowModelCsv extends Summa
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Diagnostics;ProcessThreadCollection;false;Add;(System.Diagnostics.ProcessThread);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Diagnostics;ProcessThreadCollection;false;Add;(System.Diagnostics.ProcessThread);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Diagnostics;ProcessThreadCollection;false;CopyTo;(System.Diagnostics.ProcessThread[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Diagnostics;ProcessThreadCollection;false;CopyTo;(System.Diagnostics.ProcessThread[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ private class SystemDynamicExpandoObjectFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Dynamic;ExpandoObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Dynamic;ExpandoObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Dynamic;ExpandoObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Dynamic;ExpandoObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,19 +79,19 @@ private class SystemIOTextReaderFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.IO;TextReader;true;Read;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;Read;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;Read;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;Read;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;Read;(System.Span<System.Char>);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;Read;(System.Span<System.Char>);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadBlock;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadBlock;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadBlock;(System.Span<System.Char>);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadBlock;(System.Span<System.Char>);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadBlockAsync;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadBlockAsync;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadBlockAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadBlockAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadLine;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadLine;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadLineAsync;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadLineAsync;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadToEnd;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadToEnd;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.IO;TextReader;true;ReadToEndAsync;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.IO;TextReader;true;ReadToEndAsync;();;Argument[this];ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ class SystemIOStringReaderClass extends SystemIOClass {
|
|||||||
private class SystemIOStringReaderFlowModelCsv extends SummaryModelCsv {
|
private class SystemIOStringReaderFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.IO;StringReader;false;StringReader;(System.String);;Argument[0];Argument[Qualifier];taint;manual"
|
"System.IO;StringReader;false;StringReader;(System.String);;Argument[0];Argument[this];taint;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,20 +150,20 @@ private class SystemIOStreamFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.IO;Stream;false;CopyTo;(System.IO.Stream);;Argument[Qualifier];Argument[0];taint;manual",
|
"System.IO;Stream;false;CopyTo;(System.IO.Stream);;Argument[this];Argument[0];taint;manual",
|
||||||
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[Qualifier];Argument[0];taint;manual",
|
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[this];Argument[0];taint;manual",
|
||||||
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual",
|
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual",
|
||||||
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual",
|
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual",
|
||||||
"System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual",
|
"System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual",
|
||||||
"System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[Qualifier];Argument[0].Element;taint;manual",
|
"System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[this];Argument[0].Element;taint;manual",
|
||||||
"System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[Qualifier];Argument[0];taint;manual",
|
"System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[this];Argument[0];taint;manual",
|
||||||
"System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0];taint;manual",
|
"System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0];taint;manual",
|
||||||
"System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[Qualifier];Argument[0].Element;taint;manual",
|
"System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[this];Argument[0].Element;taint;manual",
|
||||||
"System.IO;Stream;true;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Element;taint;manual",
|
"System.IO;Stream;true;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[this];Argument[0].Element;taint;manual",
|
||||||
"System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;Stream;true;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[Qualifier];taint;manual"
|
"System.IO;Stream;true;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0].Element;Argument[this];taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -184,12 +184,12 @@ private class SystemIOMemoryStreamFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;Argument[Qualifier];taint;manual",
|
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0].Element;Argument[this];taint;manual",
|
||||||
"System.IO;MemoryStream;false;ToArray;();;Argument[Qualifier];ReturnValue;taint;manual"
|
"System.IO;MemoryStream;false;ToArray;();;Argument[this];ReturnValue;taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -197,7 +197,7 @@ private class SystemIOMemoryStreamFlowModelCsv extends SummaryModelCsv {
|
|||||||
/** Sources for `System.IO.FileStream`. */
|
/** Sources for `System.IO.FileStream`. */
|
||||||
private class SystemIOFileStreamSourceModelCsv extends SourceModelCsv {
|
private class SystemIOFileStreamSourceModelCsv extends SourceModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row = "System.IO;FileStream;false;FileStream;;;Argument[Qualifier];file;manual"
|
row = "System.IO;FileStream;false;FileStream;;;Argument[this];file;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,12 +206,12 @@ private class SystemIOFileStreamSummaryModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO;FileStream;false;FileStream;(System.String,System.IO.FileMode);;Argument[0];Argument[this];taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -219,6 +219,6 @@ private class SystemIOFileStreamSummaryModelCsv extends SummaryModelCsv {
|
|||||||
/** Data flow for `System.IO.StreamReader`. */
|
/** Data flow for `System.IO.StreamReader`. */
|
||||||
private class SystemIOStreamSummaryModelCsv extends SummaryModelCsv {
|
private class SystemIOStreamSummaryModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row = "System.IO;StreamReader;false;StreamReader;;;Argument[0];Argument[Qualifier];taint;manual"
|
row = "System.IO;StreamReader;false;StreamReader;;;Argument[0];Argument[this];taint;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ private class SystemLinqEnumerableFlowModelCsv extends ExternalFlow::SummaryMode
|
|||||||
private class SystemLinqEnumerableQueryFlowModelCsv extends ExternalFlow::SummaryModelCsv {
|
private class SystemLinqEnumerableQueryFlowModelCsv extends ExternalFlow::SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Linq;EnumerableQuery<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
"System.Linq;EnumerableQuery<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,7 +279,7 @@ private class SystemLinqImmutableArrayExtensionsFlowModelCsv extends ExternalFlo
|
|||||||
private class SystemLinqLookupFlowModelCsv extends ExternalFlow::SummaryModelCsv {
|
private class SystemLinqLookupFlowModelCsv extends ExternalFlow::SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Linq;Lookup<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
"System.Linq;Lookup<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,7 +287,7 @@ private class SystemLinqLookupFlowModelCsv extends ExternalFlow::SummaryModelCsv
|
|||||||
private class SystemLinqOrderedParallelQuery extends ExternalFlow::SummaryModelCsv {
|
private class SystemLinqOrderedParallelQuery extends ExternalFlow::SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Linq;OrderedParallelQuery<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
"System.Linq;OrderedParallelQuery<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,8 +77,8 @@ private class SystemNetIPHostEntryClassFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Net;IPHostEntry;false;get_Aliases;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Net;IPHostEntry;false;get_Aliases;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Net;IPHostEntry;false;get_HostName;();;Argument[Qualifier];ReturnValue;taint;manual"
|
"System.Net;IPHostEntry;false;get_HostName;();;Argument[this];ReturnValue;taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,7 +94,7 @@ class SystemNetCookieClass extends SystemNetClass {
|
|||||||
/** Data flow for `System.Net.Cookie`. */
|
/** Data flow for `System.Net.Cookie`. */
|
||||||
private class SystemNetCookieClassFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetCookieClassFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row = "System.Net;Cookie;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual"
|
row = "System.Net;Cookie;false;get_Value;();;Argument[this];ReturnValue;taint;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ private class SystemNetCookieClassFlowModelCsv extends SummaryModelCsv {
|
|||||||
private class SystemNetHttpListenerPrefixCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetHttpListenerPrefixCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Net;HttpListenerPrefixCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.Net;HttpListenerPrefixCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ private class SystemNetHttpListenerPrefixCollectionFlowModelCsv extends SummaryM
|
|||||||
private class SystemNetCookieCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetCookieCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Net;CookieCollection;false;Add;(System.Net.CookieCollection);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Net;CookieCollection;false;Add;(System.Net.CookieCollection);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,6 +118,6 @@ private class SystemNetCookieCollectionFlowModelCsv extends SummaryModelCsv {
|
|||||||
private class SystemNetWebHeaderCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetWebHeaderCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Net;WebHeaderCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Net;WebHeaderCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,88 +43,88 @@ private class SystemTextStringBuilderFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Text;StringBuilder;false;Append;(System.Boolean);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Boolean);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Byte);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Byte);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char*,System.Int32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char*,System.Int32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char,System.Int32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char,System.Int32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Decimal);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Decimal);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Double);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Double);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Int16);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Int16);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Int32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Int32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Int64);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Int64);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.ReadOnlyMemory<System.Char>);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.ReadOnlyMemory<System.Char>);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.ReadOnlySpan<System.Char>);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.ReadOnlySpan<System.Char>);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.SByte);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.SByte);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Single);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Single);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.String);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.String);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.String);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Text.StringBuilder);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Text.StringBuilder);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.Text.StringBuilder,System.Int32,System.Int32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.Text.StringBuilder,System.Int32,System.Int32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.UInt16);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.UInt16);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.UInt32);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.UInt32);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;Append;(System.UInt64);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;Append;(System.UInt64);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[2];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[2];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[2];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[2];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[3];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[3];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[2];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[2];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[4];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[4];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[2].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[2].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[2];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[2];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[2];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[2];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[3];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.Object[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.Object[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.Object[]);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.Object[]);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.String[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.String[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.String[]);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.String[]);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendLine;();;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendLine;();;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Text;StringBuilder;false;ToString;();;Argument[Qualifier].Element;ReturnValue;taint;manual",
|
"System.Text;StringBuilder;false;ToString;();;Argument[this].Element;ReturnValue;taint;manual",
|
||||||
"System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Argument[Qualifier].Element;ReturnValue;taint;manual",
|
"System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Argument[this].Element;ReturnValue;taint;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -242,8 +242,8 @@ private class SystemWebHttpCookieFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Web;HttpCookie;false;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Web;HttpCookie;false;get_Value;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Web;HttpCookie;false;get_Values;();;Argument[Qualifier];ReturnValue;taint;manual"
|
"System.Web;HttpCookie;false;get_Values;();;Argument[this];ReturnValue;taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,10 +45,10 @@ private class SystemXmlXmlDocumentFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml;XmlDocument;false;Load;(System.IO.Stream);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Xml;XmlDocument;false;Load;(System.IO.Stream);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Xml;XmlDocument;false;Load;(System.IO.TextReader);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Xml;XmlDocument;false;Load;(System.IO.TextReader);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[Qualifier];taint;manual"
|
"System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[this];taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,33 +140,33 @@ private class SystemXmlXmlNodeFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml;XmlNode;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
"System.Xml;XmlNode;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual",
|
||||||
"System.Xml;XmlNode;false;SelectNodes;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;false;SelectNodes;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;false;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;false;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;false;SelectSingleNode;(System.String);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;false;SelectSingleNode;(System.String);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;false;SelectSingleNode;(System.String,System.Xml.XmlNamespaceManager);;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;false;SelectSingleNode;(System.String,System.Xml.XmlNamespaceManager);;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_Attributes;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_Attributes;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_BaseURI;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_BaseURI;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_ChildNodes;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_ChildNodes;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_FirstChild;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_FirstChild;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_HasChildNodes;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_HasChildNodes;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_InnerText;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_InnerText;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_InnerXml;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_InnerXml;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_IsReadOnly;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_IsReadOnly;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_LastChild;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_LastChild;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_LocalName;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_LocalName;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_Name;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_Name;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_NamespaceURI;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_NamespaceURI;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_NextSibling;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_NextSibling;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_NodeType;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_NodeType;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_OuterXml;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_OuterXml;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_OwnerDocument;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_OwnerDocument;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_ParentNode;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_ParentNode;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_Prefix;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_Prefix;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_PreviousSibling;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_PreviousSibling;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_PreviousText;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_PreviousText;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_SchemaInfo;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"System.Xml;XmlNode;true;get_SchemaInfo;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"System.Xml;XmlNode;true;get_Value;();;Argument[Qualifier];ReturnValue;taint;manual"
|
"System.Xml;XmlNode;true;get_Value;();;Argument[this];ReturnValue;taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -190,8 +190,8 @@ private class SystemXmlXmlNamedNodeMapClassFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String);;Argument[Qualifier];ReturnValue;value;manual",
|
"System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String);;Argument[this];ReturnValue;value;manual",
|
||||||
"System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String,System.String);;Argument[Qualifier];ReturnValue;value;manual"
|
"System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String,System.String);;Argument[this];ReturnValue;value;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -282,6 +282,6 @@ class XmlReaderSettingsInstance extends Expr {
|
|||||||
private class SystemXmlXmlAttributeCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemXmlXmlAttributeCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Xml;XmlAttributeCollection;false;CopyTo;(System.Xml.XmlAttribute[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.Xml;XmlAttributeCollection;false;CopyTo;(System.Xml.XmlAttribute[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,16 +7,16 @@ private class SystemCollectionsConcurrentConcurrentDictionaryFlowModelCsv extend
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[1].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[1].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[1].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[1].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Concurrent;ConcurrentDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,8 +26,8 @@ private class SystemCollectionsConcurrentBlockingCollectionFlowModelCsv extends
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Concurrent;BlockingCollection<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Concurrent;BlockingCollection<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Concurrent;BlockingCollection<>;false;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Collections.Concurrent;BlockingCollection<>;false;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,7 +36,7 @@ private class SystemCollectionsConcurrentBlockingCollectionFlowModelCsv extends
|
|||||||
private class SystemCollectionsConcurrentIProducerConsumerCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsConcurrentIProducerConsumerCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Concurrent;IProducerConsumerCollection<>;true;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual"
|
"System.Collections.Concurrent;IProducerConsumerCollection<>;true;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,6 +44,6 @@ private class SystemCollectionsConcurrentIProducerConsumerCollectionFlowModelCsv
|
|||||||
private class SystemCollectionsConcurrentConcurrentBagFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsConcurrentConcurrentBagFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Concurrent;ConcurrentBag<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Collections.Concurrent;ConcurrentBag<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class SystemCollectionsGenericIEnumerableTInterface extends SystemCollectionsGen
|
|||||||
private class SystemCollectionsGenericEnumerableTFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsGenericEnumerableTFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Generic;IEnumerable<>;true;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
"System.Collections.Generic;IEnumerable<>;true;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,9 +107,9 @@ private class SystemCollectionsGenericIListTFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;IList<>;true;Insert;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Generic;IList<>;true;Insert;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Generic;IList<>;true;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;IList<>;true;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -127,17 +127,17 @@ private class SystemCollectionsGenericListFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;List<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Generic;List<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;AsReadOnly;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Generic;List<>;false;AsReadOnly;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;Find;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Generic;List<>;false;Find;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Generic;List<>;false;Find;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;List<>;false;Find;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;FindAll;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Generic;List<>;false;FindAll;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Generic;List<>;false;FindAll;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;List<>;false;FindAll;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;FindLast;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Generic;List<>;false;FindLast;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Generic;List<>;false;FindLast;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;List<>;false;FindLast;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;List<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;List<>;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Generic;List<>;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Generic;List<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Generic;List<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;List<>;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Generic;List<>;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
@@ -171,8 +171,8 @@ private class SystemCollectionsGenericKeyValuePairStructFlowModelCsv extends Sum
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Argument[this].Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Argument[Qualifier].Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual"
|
"System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Argument[this].Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,8 +196,8 @@ private class SystemCollectionsGenericICollectionFlowModelCsv extends SummaryMod
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;ICollection<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Generic;ICollection<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Generic;ICollection<>;true;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Collections.Generic;ICollection<>;true;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -220,13 +220,13 @@ private class SystemCollectionsGenericIDictionaryFlowModelCsv extends SummaryMod
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;IDictionary<,>;true;Add;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;Add;(TKey,TValue);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;IDictionary<,>;true;Add;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;Add;(TKey,TValue);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;IDictionary<,>;true;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;get_Item;(TKey);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;IDictionary<,>;true;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;IDictionary<,>;true;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;IDictionary<,>;true;set_Item;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;set_Item;(TKey,TValue);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;IDictionary<,>;true;set_Item;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;IDictionary<,>;true;set_Item;(TKey,TValue);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -236,21 +236,21 @@ private class SystemCollectionsGenericDictionaryFlowModelCsv extends SummaryMode
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;Dictionary<,>+KeyCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+KeyCollection+Enumerator.Current];value;manual",
|
"System.Collections.Generic;Dictionary<,>+KeyCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+KeyCollection+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>+ValueCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+ValueCollection+Enumerator.Current];value;manual",
|
"System.Collections.Generic;Dictionary<,>+ValueCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+ValueCollection+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;Dictionary;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Dictionary<,>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;Dictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;Dictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -260,17 +260,17 @@ private class SystemCollectionsGenericSortedDictionaryFlowModelCsv extends Summa
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;SortedDictionary<,>+KeyCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+KeyCollection+Enumerator.Current];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>+KeyCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+KeyCollection+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>+ValueCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+ValueCollection+Enumerator.Current];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>+ValueCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+ValueCollection+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary<,>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;SortedDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;SortedDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;SortedDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -280,15 +280,15 @@ private class SystemCollectionsGenericSortedListFlowModelCsv extends SummaryMode
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Generic;SortedList<,>;false;SortedList;(System.Collections.Generic.IDictionary<TKey,TValue>,System.Collections.Generic.IComparer<TKey>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;SortedList<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Generic;SortedList<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Generic;SortedList<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -298,9 +298,9 @@ private class SystemCollectionsGenericQueueFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;Queue<>;false;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Collections.Generic;Queue<>;false;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Collections.Generic;Queue<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Queue<>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;Queue<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Queue<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;Queue<>;false;Peek;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;Queue<>;false;Peek;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -310,10 +310,10 @@ private class SystemCollectionsGenericStackFlowModelCsv extends SummaryModelCsv
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;Stack<>;false;CopyTo;(T[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Collections.Generic;Stack<>;false;CopyTo;(T[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Collections.Generic;Stack<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.Stack<>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;Stack<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Stack<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;Stack<>;false;Peek;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;Stack<>;false;Peek;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;Stack<>;false;Pop;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;Stack<>;false;Pop;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -322,7 +322,7 @@ private class SystemCollectionsGenericStackFlowModelCsv extends SummaryModelCsv
|
|||||||
private class SystemCollectionsGenericHashSetFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsGenericHashSetFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Generic;HashSet<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.HashSet<>+Enumerator.Current];value;manual"
|
"System.Collections.Generic;HashSet<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.HashSet<>+Enumerator.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,7 +330,7 @@ private class SystemCollectionsGenericHashSetFlowModelCsv extends SummaryModelCs
|
|||||||
private class SystemCollectionsGenericISetFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsGenericISetFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,9 +339,9 @@ private class SystemCollectionsGenericLinkedListFlowModelCsv extends SummaryMode
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;LinkedList<>;false;Find;(T);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;LinkedList<>;false;Find;(T);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;LinkedList<>;false;FindLast;(T);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Generic;LinkedList<>;false;FindLast;(T);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Generic;LinkedList<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.LinkedList<>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;LinkedList<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.LinkedList<>+Enumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -351,7 +351,7 @@ private class SystemCollectionsGenericSortedSetFlowModelCsv extends SummaryModel
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Generic;SortedSet<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.SortedSet<>+Enumerator.Current];value;manual",
|
"System.Collections.Generic;SortedSet<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedSet<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Generic;SortedSet<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Generic;SortedSet<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ private import semmle.code.csharp.dataflow.ExternalFlow
|
|||||||
private class SystemCollectionsImmutableIImmutableDictionaryFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsImmutableIImmutableDictionaryFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Immutable;IImmutableDictionary<,>;true;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[Qualifier].Element;value;manual"
|
"System.Collections.Immutable;IImmutableDictionary<,>;true;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -15,21 +15,21 @@ private class SystemCollectionsImmutableImmutableDictionaryFlowModelCsv extends
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary<,>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary<,>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>+Builder;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary<,>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary<,>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;get_Item;(TKey);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,21 +39,21 @@ private class SystemCollectionsImmutableImmutableSortedDictionaryFlowModelCsv ex
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary<,>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary<,>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>+Builder;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(TKey,TValue);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;Add;(TKey,TValue);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;AddRange;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary<,>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary<,>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Item;(TKey);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -63,8 +63,8 @@ private class SystemCollectionsImmutableIImmutableListFlowModelCsv extends Summa
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;IImmutableList<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;IImmutableList<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;IImmutableList<>;true;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;IImmutableList<>;true;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,33 +74,33 @@ private class SystemCollectionsImmutableImmutableListFlowModelCsv extends Summar
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;Find;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindAll;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;FindLast;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>+Builder;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>+Builder;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;Find;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;FindAll;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate<T>);;Argument[Qualifier].Element;Argument[0].Parameter[0];value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate<T>);;Argument[this].Element;Argument[0].Parameter[0];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate<T>);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;FindLast;(System.Predicate<T>);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;GetRange;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;Insert;(System.Int32,T);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;Insert;(System.Int32,T);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;Reverse;(System.Int32,System.Int32);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableList<>;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableList<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -110,12 +110,12 @@ private class SystemCollectionsImmutableImmutableSortedSetFlowModelCsv extends S
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedSet<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedSet<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedSet<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedSet<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableSortedSet<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedSet<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableSortedSet<>;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableSortedSet<>;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Immutable;ImmutableSortedSet<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -124,7 +124,7 @@ private class SystemCollectionsImmutableImmutableSortedSetFlowModelCsv extends S
|
|||||||
private class SystemCollectionsImmutableIImmutableSetFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsImmutableIImmutableSetFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Immutable;IImmutableSet<>;true;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Collections.Immutable;IImmutableSet<>;true;Add;(T);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,14 +133,14 @@ private class SystemCollectionsImmutableImmutableArrayFlowModelCsv extends Summa
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Immutable.ImmutableArray<>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Immutable.ImmutableArray<>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Immutable.ImmutableArray<>+Builder);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(System.Collections.Immutable.ImmutableArray<>+Builder);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(T[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange;(T[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(System.Collections.Immutable.ImmutableArray<TDerived>);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(System.Collections.Immutable.ImmutableArray<TDerived>);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(System.Collections.Immutable.ImmutableArray<TDerived>+Builder);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(System.Collections.Immutable.ImmutableArray<TDerived>+Builder);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(TDerived[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;AddRange<>;(TDerived[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator<>.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableArray<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
"System.Collections.Immutable;ImmutableArray<>+Builder;false;Reverse;();;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -151,9 +151,9 @@ private class SystemCollectionsImmutableImmutableHashSetFlowModelCsv extends Sum
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Immutable;ImmutableHashSet<>+Builder;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet<>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableHashSet<>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet<>+Enumerator.Current];value;manual",
|
||||||
"System.Collections.Immutable;ImmutableHashSet<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Immutable;ImmutableHashSet<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Immutable;ImmutableHashSet<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet<>+Enumerator.Current];value;manual",
|
"System.Collections.Immutable;ImmutableHashSet<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet<>+Enumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -162,7 +162,7 @@ private class SystemCollectionsImmutableImmutableHashSetFlowModelCsv extends Sum
|
|||||||
private class SystemCollectionsImmutableImmutableQueueFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsImmutableImmutableQueueFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Immutable;ImmutableQueue<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableQueue<>+Enumerator.Current];value;manual"
|
"System.Collections.Immutable;ImmutableQueue<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableQueue<>+Enumerator.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,6 +170,6 @@ private class SystemCollectionsImmutableImmutableQueueFlowModelCsv extends Summa
|
|||||||
private class SystemCollectionsImmutableImmutableStackFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsImmutableImmutableStackFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.Immutable;ImmutableStack<>;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableStack<>+Enumerator.Current];value;manual"
|
"System.Collections.Immutable;ImmutableStack<>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableStack<>+Enumerator.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ private class SystemCollectionsObjectModelReadOnlyDictionaryFlowModelCsv extends
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.ObjectModel;ReadOnlyCollection<>;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;Add;(System.Collections.Generic.KeyValuePair<TKey,TValue>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;ReadOnlyDictionary;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Item;(TKey);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Item;(TKey);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Keys;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];ReturnValue.Element;value;manual",
|
||||||
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Values;();;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
"System.Collections.ObjectModel;ReadOnlyDictionary<,>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue.Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,6 +23,6 @@ private class SystemCollectionsObjectModelReadOnlyDictionaryFlowModelCsv extends
|
|||||||
private class SystemCollectionsObjectModelKeyedCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemCollectionsObjectModelKeyedCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Collections.ObjectModel;KeyedCollection<,>;false;get_Item;(TKey);;Argument[Qualifier].Element;ReturnValue;value;manual"
|
"System.Collections.ObjectModel;KeyedCollection<,>;false;get_Item;(TKey);;Argument[this].Element;ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ private class SystemCollectionsSpecializedNameValueCollectionFlowModelCsv extend
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Specialized;NameValueCollection;false;Add;(System.Collections.Specialized.NameValueCollection);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Specialized;NameValueCollection;false;Add;(System.Collections.Specialized.NameValueCollection);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Specialized;NameValueCollection;false;CopyTo;(System.Array,System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Collections.Specialized;NameValueCollection;false;CopyTo;(System.Array,System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -40,9 +40,9 @@ private class SystemCollectionsSpecializedIOrderedDictionaryFlowModelCsv extends
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Specialized;IOrderedDictionary;true;get_Item;(System.Int32);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Collections.Specialized;IOrderedDictionary;true;get_Item;(System.Int32);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Collections.Specialized;IOrderedDictionary;true;set_Item;(System.Int32,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,13 +60,13 @@ private class SystemCollectionsSpecializedStringCollectionFlowModelCsv extends S
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Collections.Specialized;StringCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Specialized;StringCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Specialized;StringCollection;false;AddRange;(System.String[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Collections.Specialized;StringCollection;false;AddRange;(System.String[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Collections.Specialized;StringCollection;false;CopyTo;(System.String[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Collections.Specialized;StringCollection;false;CopyTo;(System.String[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Collections.Specialized;StringCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.Specialized.StringEnumerator.Current];value;manual",
|
"System.Collections.Specialized;StringCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Specialized.StringEnumerator.Current];value;manual",
|
||||||
"System.Collections.Specialized;StringCollection;false;Insert;(System.Int32,System.String);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Specialized;StringCollection;false;Insert;(System.Int32,System.String);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Collections.Specialized;StringCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Collections.Specialized;StringCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Collections.Specialized;StringCollection;false;set_Item;(System.Int32,System.String);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Collections.Specialized;StringCollection;false;set_Item;(System.Int32,System.String);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ private class SystemComponentModelDesignDesignerCollectionServiceFlowModelCsv ex
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel.Design;DesignerOptionService+DesignerOptionCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,13 +18,13 @@ private class SystemComponentModelDesignDesignerVerbCollectionFlowModelCsv exten
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;Add;(System.ComponentModel.Design.DesignerVerb);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;Add;(System.ComponentModel.Design.DesignerVerb);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;AddRange;(System.ComponentModel.Design.DesignerVerbCollection);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;AddRange;(System.ComponentModel.Design.DesignerVerbCollection);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;AddRange;(System.ComponentModel.Design.DesignerVerb[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;AddRange;(System.ComponentModel.Design.DesignerVerb[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;CopyTo;(System.ComponentModel.Design.DesignerVerb[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;CopyTo;(System.ComponentModel.Design.DesignerVerb[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;Insert;(System.Int32,System.ComponentModel.Design.DesignerVerb);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;Insert;(System.Int32,System.ComponentModel.Design.DesignerVerb);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.ComponentModel.Design;DesignerVerbCollection;false;set_Item;(System.Int32,System.ComponentModel.Design.DesignerVerb);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.ComponentModel.Design;DesignerVerbCollection;false;set_Item;(System.Int32,System.ComponentModel.Design.DesignerVerb);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,6 +33,6 @@ private class SystemComponentModelDesignDesignerVerbCollectionFlowModelCsv exten
|
|||||||
private class SystemComponentModelDesignDesignerCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemComponentModelDesignDesignerCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.ComponentModel.Design;DesignerCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual"
|
"System.ComponentModel.Design;DesignerCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ private class SystemDataCommonDbConnectionStringBuilderFlowModelCsv extends Exte
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Data.Common;DbConnectionStringBuilder;false;Add;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
"System.Data.Common;DbConnectionStringBuilder;false;get_Item;(System.String);;Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
"System.Data.Common;DbConnectionStringBuilder;false;get_Item;(System.String);;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];ReturnValue;value;manual",
|
||||||
"System.Data.Common;DbConnectionStringBuilder;false;set_Item;(System.String,System.Object);;Argument[0];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Data.Common;DbConnectionStringBuilder;false;set_Item;(System.String,System.Object);;Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Data.Common;DbConnectionStringBuilder;false;set_Item;(System.String,System.Object);;Argument[1];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Data.Common;DbConnectionStringBuilder;false;set_Item;(System.String,System.Object);;Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -51,14 +51,14 @@ private class SystemDataCommonDataColumnMappingCollectionFlowModelCsv extends Ex
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;AddRange;(System.Array);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;AddRange;(System.Array);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;AddRange;(System.Data.Common.DataColumnMapping[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;AddRange;(System.Data.Common.DataColumnMapping[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;CopyTo;(System.Data.Common.DataColumnMapping[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;CopyTo;(System.Data.Common.DataColumnMapping[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;Insert;(System.Int32,System.Data.Common.DataColumnMapping);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;Insert;(System.Int32,System.Data.Common.DataColumnMapping);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;set_Item;(System.Int32,System.Data.Common.DataColumnMapping);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;set_Item;(System.Int32,System.Data.Common.DataColumnMapping);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataColumnMappingCollection;false;set_Item;(System.String,System.Data.Common.DataColumnMapping);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataColumnMappingCollection;false;set_Item;(System.String,System.Data.Common.DataColumnMapping);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -68,14 +68,14 @@ private class SystemDataCommonDataTableMappingCollectionFlowModelCsv extends Ext
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data.Common;DataTableMappingCollection;false;AddRange;(System.Array);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;AddRange;(System.Array);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;AddRange;(System.Data.Common.DataTableMapping[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;AddRange;(System.Data.Common.DataTableMapping[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;CopyTo;(System.Data.Common.DataTableMapping[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;CopyTo;(System.Data.Common.DataTableMapping[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;Insert;(System.Int32,System.Data.Common.DataTableMapping);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;Insert;(System.Int32,System.Data.Common.DataTableMapping);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;set_Item;(System.Int32,System.Data.Common.DataTableMapping);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;set_Item;(System.Int32,System.Data.Common.DataTableMapping);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DataTableMappingCollection;false;set_Item;(System.String,System.Data.Common.DataTableMapping);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DataTableMappingCollection;false;set_Item;(System.String,System.Data.Common.DataTableMapping);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -85,13 +85,13 @@ private class SystemDataCommonDbParameterCollectionFlowModelCsv extends External
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Data.Common;DbParameterCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data.Common;DbParameterCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data.Common;DbParameterCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Data.Common;DbParameterCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Data.Common;DbParameterCollection;false;set_Item;(System.Int32,System.Data.Common.DbParameter);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DbParameterCollection;false;set_Item;(System.Int32,System.Data.Common.DbParameter);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DbParameterCollection;false;set_Item;(System.String,System.Data.Common.DbParameter);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DbParameterCollection;false;set_Item;(System.String,System.Data.Common.DbParameter);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DbParameterCollection;true;Add;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DbParameterCollection;true;Add;(System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DbParameterCollection;true;AddRange;(System.Array);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DbParameterCollection;true;AddRange;(System.Array);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Data.Common;DbParameterCollection;true;Insert;(System.Int32,System.Object);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Data.Common;DbParameterCollection;true;Insert;(System.Int32,System.Object);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,10 +27,10 @@ private class SystemIOCompressionDeflateStreamFlowModelCsv extends SummaryModelC
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];Argument[Qualifier];taint;manual",
|
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];Argument[this];taint;manual",
|
||||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[Qualifier];taint;manual"
|
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];Argument[this];taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ private class SystemNetHttpHttpRequestOptionsFlowModelCsv extends SummaryModelCs
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Net.Http;HttpRequestOptions;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
"System.Net.Http;HttpRequestOptions;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Key];value;manual",
|
||||||
"System.Net.Http;HttpRequestOptions;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[Qualifier].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
"System.Net.Http;HttpRequestOptions;false;Add;(System.Collections.Generic.KeyValuePair<System.String,System.Object>);;Argument[0].Property[System.Collections.Generic.KeyValuePair<,>.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair<,>.Value];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,7 +17,7 @@ private class SystemNetHttpHttpRequestOptionsFlowModelCsv extends SummaryModelCs
|
|||||||
private class SystemNetHttpMultipartContentFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetHttpMultipartContentFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Net.Http;MultipartContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Net.Http;MultipartContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,6 +25,6 @@ private class SystemNetHttpMultipartContentFlowModelCsv extends SummaryModelCsv
|
|||||||
private class SystemNetHttpMultipartFormDataContentFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetHttpMultipartFormDataContentFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Net.Http;MultipartFormDataContent;false;Add;(System.Net.Http.HttpContent);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ class SystemNetMailMailMessageClass extends SystemNetMailClass {
|
|||||||
private class SystemNetMailMailAddressCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemNetMailMailAddressCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Net.Mail;MailAddressCollection;false;Add;(System.String);;Argument[0];Argument[Qualifier].Element;value;manual"
|
"System.Net.Mail;MailAddressCollection;false;Add;(System.String);;Argument[0];Argument[this].Element;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class SystemRuntimeCompilerServicesTaskAwaiterStruct extends SystemRuntimeCompil
|
|||||||
private class SystemRuntimeCompilerServicesTaskAwaiterFlowModelCsv extends SummaryModelCsv {
|
private class SystemRuntimeCompilerServicesTaskAwaiterFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Runtime.CompilerServices;TaskAwaiter<>;false;GetResult;();;Argument[Qualifier].SyntheticField[m_task_task_awaiter].Property[System.Threading.Tasks.Task<>.Result];ReturnValue;value;manual"
|
"System.Runtime.CompilerServices;TaskAwaiter<>;false;GetResult;();;Argument[this].SyntheticField[m_task_task_awaiter].Property[System.Threading.Tasks.Task<>.Result];ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ private class SyntheticConfiguredTaskAwaiterField extends SyntheticField {
|
|||||||
private class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTFlowModelCsv extends SummaryModelCsv {
|
private class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>;false;GetAwaiter;();;Argument[Qualifier].SyntheticField[m_configuredTaskAwaiter];ReturnValue;value;manual"
|
"System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>;false;GetAwaiter;();;Argument[this].SyntheticField[m_configuredTaskAwaiter];ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiter
|
|||||||
private class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiterFlowModelCsv extends SummaryModelCsv {
|
private class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiterFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter;false;GetResult;();;Argument[Qualifier].SyntheticField[m_task_configured_task_awaitable].Property[System.Threading.Tasks.Task<>.Result];ReturnValue;value;manual"
|
"System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter;false;GetResult;();;Argument[this].SyntheticField[m_task_configured_task_awaitable].Property[System.Threading.Tasks.Task<>.Result];ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ private class SystemSecurityCryptographyAsnEncondedDataCollectionFlowModelCsv ex
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Security.Cryptography;AsnEncodedDataCollection;false;Add;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography;AsnEncodedDataCollection;false;Add;(System.Security.Cryptography.AsnEncodedData);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography;AsnEncodedDataCollection;false;CopyTo;(System.Security.Cryptography.AsnEncodedData[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Security.Cryptography;AsnEncodedDataCollection;false;CopyTo;(System.Security.Cryptography.AsnEncodedData[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Security.Cryptography;AsnEncodedDataCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.AsnEncodedDataEnumerator.Current];value;manual",
|
"System.Security.Cryptography;AsnEncodedDataCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.AsnEncodedDataEnumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,9 +36,9 @@ private class SystemSecurityCryptographyOidCollectionFlowModelCsv extends Summar
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Security.Cryptography;OidCollection;false;Add;(System.Security.Cryptography.Oid);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography;OidCollection;false;Add;(System.Security.Cryptography.Oid);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography;OidCollection;false;CopyTo;(System.Security.Cryptography.Oid[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Security.Cryptography;OidCollection;false;CopyTo;(System.Security.Cryptography.Oid[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Security.Cryptography;OidCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.OidEnumerator.Current];value;manual",
|
"System.Security.Cryptography;OidCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.OidEnumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,14 +35,14 @@ private class SystemSecurityCryptographyX509CertificatesX509Certificate2Collecti
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Add;(System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Add;(System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate2[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate2[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Find;(System.Security.Cryptography.X509Certificates.X509FindType,System.Object,System.Boolean);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Find;(System.Security.Cryptography.X509Certificates.X509FindType,System.Object,System.Boolean);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator.Current];value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator.Current];value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Insert;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;Insert;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;set_Item;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509Certificate2Collection;false;set_Item;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate2);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -52,14 +52,14 @@ private class SystemSecurityCryptographyX509CertificatesX509CertificateCollectio
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509CertificateCollection);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate[]);;Argument[0].Element;Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;AddRange;(System.Security.Cryptography.X509Certificates.X509Certificate[]);;Argument[0].Element;Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509Certificate[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509Certificate[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509CertificateCollection+X509CertificateEnumerator.Current];value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509CertificateCollection+X509CertificateEnumerator.Current];value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Insert;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;Insert;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;set_Item;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509CertificateCollection;false;set_Item;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,8 +69,8 @@ private class SystemSecurityCryptographyX509CertificatesX509ClainElementCollecti
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509ChainElement[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509ChainElement[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];value;manual",
|
"System.Security.Cryptography.X509Certificates;X509ChainElementCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,9 +80,9 @@ private class SystemSecurityCryptographyX509CertificatesX509ExtensionCollectionF
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Extension);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;Add;(System.Security.Cryptography.X509Certificates.X509Extension);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509Extension[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;CopyTo;(System.Security.Cryptography.X509Certificates.X509Extension[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];value;manual",
|
"System.Security.Cryptography.X509Certificates;X509ExtensionCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class RegexOperation extends Call {
|
|||||||
private class SystemTextRegularExpressionsCaptureCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemTextRegularExpressionsCaptureCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Text.RegularExpressions;CaptureCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual"
|
"System.Text.RegularExpressions;CaptureCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,8 +97,8 @@ private class SystemTextRegularExpressionsGroupCollectionFlowModelCsv extends Su
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Text.RegularExpressions;GroupCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Text.RegularExpressions;GroupCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Text.RegularExpressions;GroupCollection;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Text.RegularExpressions;GroupCollection;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -107,6 +107,6 @@ private class SystemTextRegularExpressionsGroupCollectionFlowModelCsv extends Su
|
|||||||
private class SystemTextRegularExpressionsMatchCollectionFlowModelCsv extends SummaryModelCsv {
|
private class SystemTextRegularExpressionsMatchCollectionFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Text.RegularExpressions;MatchCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual"
|
"System.Text.RegularExpressions;MatchCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,61 +114,61 @@ private class SystemThreadingTasksTaskTFlowModelCsv extends SummaryModelCsv {
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Threading.Tasks;Task<>;false;ConfigureAwait;(System.Boolean);;Argument[Qualifier];ReturnValue.SyntheticField[m_configuredTaskAwaiter].SyntheticField[m_task_configured_task_awaitable];value;manual",
|
"System.Threading.Tasks;Task<>;false;ConfigureAwait;(System.Boolean);;Argument[this];ReturnValue.SyntheticField[m_configuredTaskAwaiter].SyntheticField[m_task_configured_task_awaitable];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.Tasks.TaskContinuationOptions);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Argument[0].Parameter[1];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[Qualifier];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[this];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[Qualifier];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual",
|
"System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[this];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object);;Argument[1];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Argument[0].Parameter[0];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.CancellationToken);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[Qualifier].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.Tasks.TaskCreationOptions);;Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task<>.Result];value;manual",
|
||||||
"System.Threading.Tasks;Task<>;false;get_Result;();;Argument[Qualifier];ReturnValue;taint;manual"
|
"System.Threading.Tasks;Task<>;false;get_Result;();;Argument[this];ReturnValue;taint;manual"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class SystemWebUIWebControlsTextBoxClass extends SystemWebUIWebControlsClass {
|
|||||||
private class SystebWebUIWebControlsTextBoxClassFlowModelCsv extends SummaryModelCsv {
|
private class SystebWebUIWebControlsTextBoxClassFlowModelCsv extends SummaryModelCsv {
|
||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
"System.Web.UI.WebControls;TextBox;false;get_Text;();;Argument[Qualifier];ReturnValue;taint;manual"
|
"System.Web.UI.WebControls;TextBox;false;get_Text;();;Argument[this];ReturnValue;taint;manual"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ private class SystemXmlSchemaXmlSchemaObjectCollectionFlowModelCsv extends Summa
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml.Schema;XmlSchemaObjectCollection;false;Add;(System.Xml.Schema.XmlSchemaObject);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaObjectCollection;false;Add;(System.Xml.Schema.XmlSchemaObject);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaObjectCollection;false;CopyTo;(System.Xml.Schema.XmlSchemaObject[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaObjectCollection;false;CopyTo;(System.Xml.Schema.XmlSchemaObject[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaObjectCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaObjectEnumerator.Current];value;manual",
|
"System.Xml.Schema;XmlSchemaObjectCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaObjectEnumerator.Current];value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaObjectCollection;false;Insert;(System.Int32,System.Xml.Schema.XmlSchemaObject);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaObjectCollection;false;Insert;(System.Int32,System.Xml.Schema.XmlSchemaObject);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaObjectCollection;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Schema;XmlSchemaObjectCollection;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaObjectCollection;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchemaObject);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaObjectCollection;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchemaObject);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,10 +22,10 @@ private class SystemXmlSchemaXmlSchemaCollectionFlowModelCsv extends SummaryMode
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml.Schema;XmlSchemaCollection;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaCollection;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaCollection;false;Add;(System.Xml.Schema.XmlSchemaCollection);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaCollection;false;Add;(System.Xml.Schema.XmlSchemaCollection);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaCollection;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Xml.Schema;XmlSchemaCollection;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Xml.Schema;XmlSchemaCollection;false;GetEnumerator;();;Argument[Qualifier].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];value;manual",
|
"System.Xml.Schema;XmlSchemaCollection;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ private class SystemXmlSerializationXmlAnyElementAttributesFlowModelCsv extends
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml.Serialization;XmlAnyElementAttributes;false;Add;(System.Xml.Serialization.XmlAnyElementAttribute);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlAnyElementAttributes;false;Add;(System.Xml.Serialization.XmlAnyElementAttribute);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlAnyElementAttributes;false;CopyTo;(System.Xml.Serialization.XmlAnyElementAttribute[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Xml.Serialization;XmlAnyElementAttributes;false;CopyTo;(System.Xml.Serialization.XmlAnyElementAttribute[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlAnyElementAttributes;false;Insert;(System.Int32,System.Xml.Serialization.XmlAnyElementAttribute);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlAnyElementAttributes;false;Insert;(System.Int32,System.Xml.Serialization.XmlAnyElementAttribute);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlAnyElementAttributes;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Serialization;XmlAnyElementAttributes;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Serialization;XmlAnyElementAttributes;false;set_Item;(System.Int32,System.Xml.Serialization.XmlAnyElementAttribute);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlAnyElementAttributes;false;set_Item;(System.Int32,System.Xml.Serialization.XmlAnyElementAttribute);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -21,11 +21,11 @@ private class SystemXmlSerializationXmlArrayItemAttributesFlowModelCsv extends S
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml.Serialization;XmlArrayItemAttributes;false;Add;(System.Xml.Serialization.XmlArrayItemAttribute);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlArrayItemAttributes;false;Add;(System.Xml.Serialization.XmlArrayItemAttribute);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlArrayItemAttributes;false;CopyTo;(System.Xml.Serialization.XmlArrayItemAttribute[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Xml.Serialization;XmlArrayItemAttributes;false;CopyTo;(System.Xml.Serialization.XmlArrayItemAttribute[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlArrayItemAttributes;false;Insert;(System.Int32,System.Xml.Serialization.XmlArrayItemAttribute);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlArrayItemAttributes;false;Insert;(System.Int32,System.Xml.Serialization.XmlArrayItemAttribute);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlArrayItemAttributes;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Serialization;XmlArrayItemAttributes;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Serialization;XmlArrayItemAttributes;false;set_Item;(System.Int32,System.Xml.Serialization.XmlArrayItemAttribute);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlArrayItemAttributes;false;set_Item;(System.Int32,System.Xml.Serialization.XmlArrayItemAttribute);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -35,11 +35,11 @@ private class SystemXmlSerializationXmlElementAttributesFlowModelCsv extends Sum
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml.Serialization;XmlElementAttributes;false;Add;(System.Xml.Serialization.XmlElementAttribute);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlElementAttributes;false;Add;(System.Xml.Serialization.XmlElementAttribute);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlElementAttributes;false;CopyTo;(System.Xml.Serialization.XmlElementAttribute[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Xml.Serialization;XmlElementAttributes;false;CopyTo;(System.Xml.Serialization.XmlElementAttribute[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlElementAttributes;false;Insert;(System.Int32,System.Xml.Serialization.XmlElementAttribute);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlElementAttributes;false;Insert;(System.Int32,System.Xml.Serialization.XmlElementAttribute);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlElementAttributes;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Serialization;XmlElementAttributes;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Serialization;XmlElementAttributes;false;set_Item;(System.Int32,System.Xml.Serialization.XmlElementAttribute);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlElementAttributes;false;set_Item;(System.Int32,System.Xml.Serialization.XmlElementAttribute);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -49,14 +49,14 @@ private class SystemXmlSerializationXmlSchemasFlowModelCsv extends SummaryModelC
|
|||||||
override predicate row(string row) {
|
override predicate row(string row) {
|
||||||
row =
|
row =
|
||||||
[
|
[
|
||||||
"System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Schema.XmlSchema);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Serialization.XmlSchemas);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;Add;(System.Xml.Serialization.XmlSchemas);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[Qualifier].Element;Argument[0].Element;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);;Argument[this].Element;Argument[0].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;Find;(System.Xml.XmlQualifiedName,System.Type);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;Find;(System.Xml.XmlQualifiedName,System.Type);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;Insert;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;Insert;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[this].Element;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;get_Item;(System.Int32);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;get_Item;(System.Int32);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;get_Item;(System.String);;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;get_Item;(System.String);;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"System.Xml.Serialization;XmlSchemas;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[Qualifier].Element;value;manual",
|
"System.Xml.Serialization;XmlSchemas;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Argument[this].Element;value;manual",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module InstructionConsistency {
|
|||||||
abstract Language::Location getLocation();
|
abstract Language::Location getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
||||||
private IRFunction irFunc;
|
private IRFunction irFunc;
|
||||||
|
|
||||||
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
||||||
@@ -37,6 +37,8 @@ module InstructionConsistency {
|
|||||||
result =
|
result =
|
||||||
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IRFunction getIRFunction() { result = irFunc }
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ module InstructionConsistency {
|
|||||||
abstract Language::Location getLocation();
|
abstract Language::Location getLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
class PresentIRFunction extends OptionalIRFunction, TPresentIRFunction {
|
||||||
private IRFunction irFunc;
|
private IRFunction irFunc;
|
||||||
|
|
||||||
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
PresentIRFunction() { this = TPresentIRFunction(irFunc) }
|
||||||
@@ -37,6 +37,8 @@ module InstructionConsistency {
|
|||||||
result =
|
result =
|
||||||
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
min(Language::Location loc | loc = irFunc.getLocation() | loc order by loc.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IRFunction getIRFunction() { result = irFunc }
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
private class MissingIRFunction extends OptionalIRFunction, TMissingIRFunction {
|
||||||
|
|||||||
@@ -56,16 +56,6 @@ module AliasModels {
|
|||||||
*/
|
*/
|
||||||
predicate isParameterDeref(ParameterIndex index) { none() }
|
predicate isParameterDeref(ParameterIndex index) { none() }
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if this is the input value pointed to by a pointer parameter to a function, or the input
|
|
||||||
* value referred to by a reference parameter to a function, where the parameter has index
|
|
||||||
* `index`.
|
|
||||||
* DEPRECATED: Use `isParameterDeref(index)` instead.
|
|
||||||
*/
|
|
||||||
deprecated final predicate isInParameterPointer(ParameterIndex index) {
|
|
||||||
this.isParameterDeref(index)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if this is the input value pointed to by the `this` pointer of an instance member
|
* Holds if this is the input value pointed to by the `this` pointer of an instance member
|
||||||
* function.
|
* function.
|
||||||
@@ -175,17 +165,7 @@ module AliasModels {
|
|||||||
* - There is no `FunctionOutput` for which `isParameterDeref(0)` holds, because `n` is neither a
|
* - There is no `FunctionOutput` for which `isParameterDeref(0)` holds, because `n` is neither a
|
||||||
* pointer nor a reference.
|
* pointer nor a reference.
|
||||||
*/
|
*/
|
||||||
predicate isParameterDeref(ParameterIndex i) { none() }
|
predicate isParameterDeref(ParameterIndex index) { none() }
|
||||||
|
|
||||||
/**
|
|
||||||
* Holds if this is the output value pointed to by a pointer parameter to a function, or the
|
|
||||||
* output value referred to by a reference parameter to a function, where the parameter has
|
|
||||||
* index `index`.
|
|
||||||
* DEPRECATED: Use `isParameterDeref(index)` instead.
|
|
||||||
*/
|
|
||||||
deprecated final predicate isOutParameterPointer(ParameterIndex index) {
|
|
||||||
this.isParameterDeref(index)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if this is the output value pointed to by the `this` pointer of an instance member
|
* Holds if this is the output value pointed to by the `this` pointer of an instance member
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ private import CaptureModels
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
* Captured Model:
|
* Captured Model:
|
||||||
* ```Summaries;BasicFlow;false;ReturnThis;(System.Object);Argument[Qualifier];ReturnValue;value```
|
* ```Summaries;BasicFlow;false;ReturnThis;(System.Object);Argument[this];ReturnValue;value```
|
||||||
* Capture APIs that transfer taint from an input parameter to an output return
|
* Capture APIs that transfer taint from an input parameter to an output return
|
||||||
* value or parameter.
|
* value or parameter.
|
||||||
* Allows a sequence of read steps followed by a sequence of store steps.
|
* Allows a sequence of read steps followed by a sequence of store steps.
|
||||||
@@ -36,8 +36,8 @@ private import CaptureModels
|
|||||||
* ```
|
* ```
|
||||||
* Captured Models:
|
* Captured Models:
|
||||||
* ```
|
* ```
|
||||||
* Summaries;BasicFlow;false;ReturnField;();Argument[Qualifier];ReturnValue;taint |
|
* Summaries;BasicFlow;false;ReturnField;();Argument[this];ReturnValue;taint |
|
||||||
* Summaries;BasicFlow;false;AssignFieldToArray;(System.Object[]);Argument[Qualifier];Argument[0].Element;taint
|
* Summaries;BasicFlow;false;AssignFieldToArray;(System.Object[]);Argument[this];Argument[0].Element;taint
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* ```csharp
|
* ```csharp
|
||||||
@@ -51,7 +51,7 @@ private import CaptureModels
|
|||||||
* }
|
* }
|
||||||
* ```
|
* ```
|
||||||
* Captured Model:
|
* Captured Model:
|
||||||
* ```Summaries;BasicFlow;false;SetField;(System.String);Argument[0];Argument[Qualifier];taint```
|
* ```Summaries;BasicFlow;false;SetField;(System.String);Argument[0];Argument[this];taint```
|
||||||
*
|
*
|
||||||
* ```csharp
|
* ```csharp
|
||||||
* public class BasicFlow {
|
* public class BasicFlow {
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ predicate isRelevantType(CS::Type t) {
|
|||||||
/**
|
/**
|
||||||
* Gets the CSV string representation of the qualifier.
|
* Gets the CSV string representation of the qualifier.
|
||||||
*/
|
*/
|
||||||
string qualifierString() { result = "Argument[Qualifier]" }
|
string qualifierString() { result = "Argument[this]" }
|
||||||
|
|
||||||
private string parameterAccess(CS::Parameter p) {
|
private string parameterAccess(CS::Parameter p) {
|
||||||
if Collections::isCollectionType(p.getType())
|
if Collections::isCollectionType(p.getType())
|
||||||
@@ -112,7 +112,7 @@ string returnNodeAsOutput(DataFlowImplCommon::ReturnNodeExt node) {
|
|||||||
* Gets the enclosing callable of `ret`.
|
* Gets the enclosing callable of `ret`.
|
||||||
*/
|
*/
|
||||||
CS::Callable returnNodeEnclosingCallable(DataFlowImplCommon::ReturnNodeExt ret) {
|
CS::Callable returnNodeEnclosingCallable(DataFlowImplCommon::ReturnNodeExt ret) {
|
||||||
result = DataFlowImplCommon::getNodeEnclosingCallable(ret).getUnderlyingCallable()
|
result = DataFlowImplCommon::getNodeEnclosingCallable(ret).asCallable()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ class SummaryModelTest extends SummaryModelCsv {
|
|||||||
//"namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind;provenance",
|
//"namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind;provenance",
|
||||||
"My.Qltest;D;false;StepArgRes;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
"My.Qltest;D;false;StepArgRes;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
||||||
"My.Qltest;D;false;StepArgArg;(System.Object,System.Object);;Argument[0];Argument[1];taint;manual",
|
"My.Qltest;D;false;StepArgArg;(System.Object,System.Object);;Argument[0];Argument[1];taint;manual",
|
||||||
"My.Qltest;D;false;StepArgQual;(System.Object);;Argument[0];Argument[Qualifier];taint;manual",
|
"My.Qltest;D;false;StepArgQual;(System.Object);;Argument[0];Argument[this];taint;manual",
|
||||||
"My.Qltest;D;false;StepFieldGetter;();;Argument[Qualifier].Field[My.Qltest.D.Field];ReturnValue;value;manual",
|
"My.Qltest;D;false;StepFieldGetter;();;Argument[this].Field[My.Qltest.D.Field];ReturnValue;value;manual",
|
||||||
"My.Qltest;D;false;StepFieldSetter;(System.Object);;Argument[0];Argument[Qualifier].Field[My.Qltest.D.Field];value;manual",
|
"My.Qltest;D;false;StepFieldSetter;(System.Object);;Argument[0];Argument[this].Field[My.Qltest.D.Field];value;manual",
|
||||||
"My.Qltest;D;false;StepFieldSetter;(System.Object);;Argument[Qualifier];ReturnValue.Field[My.Qltest.D.Field2];value;manual",
|
"My.Qltest;D;false;StepFieldSetter;(System.Object);;Argument[this];ReturnValue.Field[My.Qltest.D.Field2];value;manual",
|
||||||
"My.Qltest;D;false;StepPropertyGetter;();;Argument[Qualifier].Property[My.Qltest.D.Property];ReturnValue;value;manual",
|
"My.Qltest;D;false;StepPropertyGetter;();;Argument[this].Property[My.Qltest.D.Property];ReturnValue;value;manual",
|
||||||
"My.Qltest;D;false;StepPropertySetter;(System.Object);;Argument[0];Argument[Qualifier].Property[My.Qltest.D.Property];value;manual",
|
"My.Qltest;D;false;StepPropertySetter;(System.Object);;Argument[0];Argument[this].Property[My.Qltest.D.Property];value;manual",
|
||||||
"My.Qltest;D;false;StepElementGetter;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"My.Qltest;D;false;StepElementGetter;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"My.Qltest;D;false;StepElementSetter;(System.Object);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"My.Qltest;D;false;StepElementSetter;(System.Object);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"My.Qltest;D;false;Apply<,>;(System.Func<S,T>,S);;Argument[1];Argument[0].Parameter[0];value;manual",
|
"My.Qltest;D;false;Apply<,>;(System.Func<S,T>,S);;Argument[1];Argument[0].Parameter[0];value;manual",
|
||||||
"My.Qltest;D;false;Apply<,>;(System.Func<S,T>,S);;Argument[0].ReturnValue;ReturnValue;value;manual",
|
"My.Qltest;D;false;Apply<,>;(System.Func<S,T>,S);;Argument[0].ReturnValue;ReturnValue;value;manual",
|
||||||
"My.Qltest;D;false;Apply2<>;(System.Action<S>,S,S);;Argument[1].Field[My.Qltest.D.Field];Argument[0].Parameter[0];value;manual",
|
"My.Qltest;D;false;Apply2<>;(System.Action<S>,S,S);;Argument[1].Field[My.Qltest.D.Field];Argument[0].Parameter[0];value;manual",
|
||||||
@@ -29,8 +29,8 @@ class SummaryModelTest extends SummaryModelCsv {
|
|||||||
"My.Qltest;D;false;Map<,>;(S[],System.Func<S,T>);;Argument[0].Element;Argument[1].Parameter[0];value;manual",
|
"My.Qltest;D;false;Map<,>;(S[],System.Func<S,T>);;Argument[0].Element;Argument[1].Parameter[0];value;manual",
|
||||||
"My.Qltest;D;false;Map<,>;(S[],System.Func<S,T>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual",
|
"My.Qltest;D;false;Map<,>;(S[],System.Func<S,T>);;Argument[1].ReturnValue;ReturnValue.Element;value;manual",
|
||||||
"My.Qltest;D;false;Parse;(System.String,System.Int32);;Argument[0];Argument[1];taint;manual",
|
"My.Qltest;D;false;Parse;(System.String,System.Int32);;Argument[0];Argument[1];taint;manual",
|
||||||
"My.Qltest;E;true;get_MyProp;();;Argument[Qualifier].Field[My.Qltest.E.MyField];ReturnValue;value;manual",
|
"My.Qltest;E;true;get_MyProp;();;Argument[this].Field[My.Qltest.E.MyField];ReturnValue;value;manual",
|
||||||
"My.Qltest;E;true;set_MyProp;(System.Object);;Argument[0];Argument[Qualifier].Field[My.Qltest.E.MyField];value;manual",
|
"My.Qltest;E;true;set_MyProp;(System.Object);;Argument[0];Argument[this].Field[My.Qltest.E.MyField];value;manual",
|
||||||
"My.Qltest;G;false;GeneratedFlow;(System.Object);;Argument[0];ReturnValue;value;generated",
|
"My.Qltest;G;false;GeneratedFlow;(System.Object);;Argument[0];ReturnValue;value;generated",
|
||||||
"My.Qltest;G;false;GeneratedFlowArgs;(System.Object,System.Object);;Argument[0];ReturnValue;value;generated",
|
"My.Qltest;G;false;GeneratedFlowArgs;(System.Object,System.Object);;Argument[0];ReturnValue;value;generated",
|
||||||
"My.Qltest;G;false;GeneratedFlowArgs;(System.Object,System.Object);;Argument[1];ReturnValue;value;generated",
|
"My.Qltest;G;false;GeneratedFlowArgs;(System.Object,System.Object);;Argument[1];ReturnValue;value;generated",
|
||||||
|
|||||||
@@ -13,15 +13,15 @@ private class SummaryModelTest extends SummaryModelCsv {
|
|||||||
//"namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind;provenance",
|
//"namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind;provenance",
|
||||||
"My.Qltest;C;false;StepArgRes;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
"My.Qltest;C;false;StepArgRes;(System.Object);;Argument[0];ReturnValue;taint;manual",
|
||||||
"My.Qltest;C;false;StepArgArg;(System.Object,System.Object);;Argument[0];Argument[1];taint;manual",
|
"My.Qltest;C;false;StepArgArg;(System.Object,System.Object);;Argument[0];Argument[1];taint;manual",
|
||||||
"My.Qltest;C;false;StepArgQual;(System.Object);;Argument[0];Argument[Qualifier];taint;manual",
|
"My.Qltest;C;false;StepArgQual;(System.Object);;Argument[0];Argument[this];taint;manual",
|
||||||
"My.Qltest;C;false;StepQualRes;();;Argument[Qualifier];ReturnValue;taint;manual",
|
"My.Qltest;C;false;StepQualRes;();;Argument[this];ReturnValue;taint;manual",
|
||||||
"My.Qltest;C;false;StepQualArg;(System.Object);;Argument[Qualifier];Argument[0];taint;manual",
|
"My.Qltest;C;false;StepQualArg;(System.Object);;Argument[this];Argument[0];taint;manual",
|
||||||
"My.Qltest;C;false;StepFieldGetter;();;Argument[Qualifier].Field[My.Qltest.C.Field];ReturnValue;value;manual",
|
"My.Qltest;C;false;StepFieldGetter;();;Argument[this].Field[My.Qltest.C.Field];ReturnValue;value;manual",
|
||||||
"My.Qltest;C;false;StepFieldSetter;(System.Int32);;Argument[0];Argument[Qualifier].Field[My.Qltest.C.Field];value;manual",
|
"My.Qltest;C;false;StepFieldSetter;(System.Int32);;Argument[0];Argument[this].Field[My.Qltest.C.Field];value;manual",
|
||||||
"My.Qltest;C;false;StepPropertyGetter;();;Argument[Qualifier].Property[My.Qltest.C.Property];ReturnValue;value;manual",
|
"My.Qltest;C;false;StepPropertyGetter;();;Argument[this].Property[My.Qltest.C.Property];ReturnValue;value;manual",
|
||||||
"My.Qltest;C;false;StepPropertySetter;(System.Int32);;Argument[0];Argument[Qualifier].Property[My.Qltest.C.Property];value;manual",
|
"My.Qltest;C;false;StepPropertySetter;(System.Int32);;Argument[0];Argument[this].Property[My.Qltest.C.Property];value;manual",
|
||||||
"My.Qltest;C;false;StepElementGetter;();;Argument[Qualifier].Element;ReturnValue;value;manual",
|
"My.Qltest;C;false;StepElementGetter;();;Argument[this].Element;ReturnValue;value;manual",
|
||||||
"My.Qltest;C;false;StepElementSetter;(System.Int32);;Argument[0];Argument[Qualifier].Element;value;manual",
|
"My.Qltest;C;false;StepElementSetter;(System.Int32);;Argument[0];Argument[this].Element;value;manual",
|
||||||
"My.Qltest;C+Generic<,>;false;StepGeneric;(T);;Argument[0];ReturnValue;value;manual",
|
"My.Qltest;C+Generic<,>;false;StepGeneric;(T);;Argument[0];ReturnValue;value;manual",
|
||||||
"My.Qltest;C+Generic<,>;false;StepGeneric2<>;(S);;Argument[0];ReturnValue;value;manual",
|
"My.Qltest;C+Generic<,>;false;StepGeneric2<>;(S);;Argument[0];ReturnValue;value;manual",
|
||||||
"My.Qltest;C+Base<>;true;StepOverride;(T);;Argument[0];ReturnValue;value;manual"
|
"My.Qltest;C+Base<>;true;StepOverride;(T);;Argument[0];ReturnValue;value;manual"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2874,4 +2874,332 @@ public class Large
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Use(int i) { }
|
||||||
|
|
||||||
|
// Generated by quick-evaling `gen/0` below:
|
||||||
|
//
|
||||||
|
// ```ql
|
||||||
|
// string gen(int depth, string var) {
|
||||||
|
// depth in [0 .. 100] and
|
||||||
|
// var = "x" + [0 .. 100] and
|
||||||
|
// (
|
||||||
|
// if depth = 0
|
||||||
|
// then result = ""
|
||||||
|
// else else result = "if (Prop > " + depth + ") { " + gen(depth - 1, var) + " } else Use(" + var + ");"
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// string gen() {
|
||||||
|
// result =
|
||||||
|
// concat(string var, string gen | gen = gen(100, var) | "var " + var + " = 0;\n" + gen + "\n") +
|
||||||
|
// concat(string var | exists(gen(_, var)) | "Use(" + var + ");\n")
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
public void ManyBlockJoins()
|
||||||
|
{
|
||||||
|
var x0 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0); } else Use(x0);
|
||||||
|
var x1 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1); } else Use(x1);
|
||||||
|
var x10 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10); } else Use(x10);
|
||||||
|
var x100 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100); } else Use(x100);
|
||||||
|
var x11 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11); } else Use(x11);
|
||||||
|
var x12 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12); } else Use(x12);
|
||||||
|
var x13 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13); } else Use(x13);
|
||||||
|
var x14 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14); } else Use(x14);
|
||||||
|
var x15 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15); } else Use(x15);
|
||||||
|
var x16 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16); } else Use(x16);
|
||||||
|
var x17 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17); } else Use(x17);
|
||||||
|
var x18 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18); } else Use(x18);
|
||||||
|
var x19 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19); } else Use(x19);
|
||||||
|
var x2 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2); } else Use(x2);
|
||||||
|
var x20 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20); } else Use(x20);
|
||||||
|
var x21 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21); } else Use(x21);
|
||||||
|
var x22 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22); } else Use(x22);
|
||||||
|
var x23 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23); } else Use(x23);
|
||||||
|
var x24 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24); } else Use(x24);
|
||||||
|
var x25 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25); } else Use(x25);
|
||||||
|
var x26 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26); } else Use(x26);
|
||||||
|
var x27 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27); } else Use(x27);
|
||||||
|
var x28 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28); } else Use(x28);
|
||||||
|
var x29 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29); } else Use(x29);
|
||||||
|
var x3 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3); } else Use(x3);
|
||||||
|
var x30 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30); } else Use(x30);
|
||||||
|
var x31 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31); } else Use(x31);
|
||||||
|
var x32 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32); } else Use(x32);
|
||||||
|
var x33 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33); } else Use(x33);
|
||||||
|
var x34 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34); } else Use(x34);
|
||||||
|
var x35 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35); } else Use(x35);
|
||||||
|
var x36 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36); } else Use(x36);
|
||||||
|
var x37 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37); } else Use(x37);
|
||||||
|
var x38 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38); } else Use(x38);
|
||||||
|
var x39 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39); } else Use(x39);
|
||||||
|
var x4 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4); } else Use(x4);
|
||||||
|
var x40 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40); } else Use(x40);
|
||||||
|
var x41 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41); } else Use(x41);
|
||||||
|
var x42 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42); } else Use(x42);
|
||||||
|
var x43 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43); } else Use(x43);
|
||||||
|
var x44 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44); } else Use(x44);
|
||||||
|
var x45 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45); } else Use(x45);
|
||||||
|
var x46 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46); } else Use(x46);
|
||||||
|
var x47 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47); } else Use(x47);
|
||||||
|
var x48 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48); } else Use(x48);
|
||||||
|
var x49 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49); } else Use(x49);
|
||||||
|
var x5 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5); } else Use(x5);
|
||||||
|
var x50 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50); } else Use(x50);
|
||||||
|
var x51 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51); } else Use(x51);
|
||||||
|
var x52 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52); } else Use(x52);
|
||||||
|
var x53 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53); } else Use(x53);
|
||||||
|
var x54 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54); } else Use(x54);
|
||||||
|
var x55 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55); } else Use(x55);
|
||||||
|
var x56 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56); } else Use(x56);
|
||||||
|
var x57 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57); } else Use(x57);
|
||||||
|
var x58 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58); } else Use(x58);
|
||||||
|
var x59 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59); } else Use(x59);
|
||||||
|
var x6 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6); } else Use(x6);
|
||||||
|
var x60 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60); } else Use(x60);
|
||||||
|
var x61 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61); } else Use(x61);
|
||||||
|
var x62 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62); } else Use(x62);
|
||||||
|
var x63 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63); } else Use(x63);
|
||||||
|
var x64 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64); } else Use(x64);
|
||||||
|
var x65 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65); } else Use(x65);
|
||||||
|
var x66 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66); } else Use(x66);
|
||||||
|
var x67 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67); } else Use(x67);
|
||||||
|
var x68 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68); } else Use(x68);
|
||||||
|
var x69 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69); } else Use(x69);
|
||||||
|
var x7 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7); } else Use(x7);
|
||||||
|
var x70 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70); } else Use(x70);
|
||||||
|
var x71 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71); } else Use(x71);
|
||||||
|
var x72 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72); } else Use(x72);
|
||||||
|
var x73 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73); } else Use(x73);
|
||||||
|
var x74 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74); } else Use(x74);
|
||||||
|
var x75 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75); } else Use(x75);
|
||||||
|
var x76 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76); } else Use(x76);
|
||||||
|
var x77 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77); } else Use(x77);
|
||||||
|
var x78 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78); } else Use(x78);
|
||||||
|
var x79 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79); } else Use(x79);
|
||||||
|
var x8 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8); } else Use(x8);
|
||||||
|
var x80 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80); } else Use(x80);
|
||||||
|
var x81 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81); } else Use(x81);
|
||||||
|
var x82 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82); } else Use(x82);
|
||||||
|
var x83 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83); } else Use(x83);
|
||||||
|
var x84 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84); } else Use(x84);
|
||||||
|
var x85 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85); } else Use(x85);
|
||||||
|
var x86 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86); } else Use(x86);
|
||||||
|
var x87 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87); } else Use(x87);
|
||||||
|
var x88 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88); } else Use(x88);
|
||||||
|
var x89 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89); } else Use(x89);
|
||||||
|
var x9 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9); } else Use(x9);
|
||||||
|
var x90 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90); } else Use(x90);
|
||||||
|
var x91 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91); } else Use(x91);
|
||||||
|
var x92 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92); } else Use(x92);
|
||||||
|
var x93 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93); } else Use(x93);
|
||||||
|
var x94 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94); } else Use(x94);
|
||||||
|
var x95 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95); } else Use(x95);
|
||||||
|
var x96 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96); } else Use(x96);
|
||||||
|
var x97 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97); } else Use(x97);
|
||||||
|
var x98 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98); } else Use(x98);
|
||||||
|
var x99 = 0;
|
||||||
|
if (Prop > 100) { if (Prop > 99) { if (Prop > 98) { if (Prop > 97) { if (Prop > 96) { if (Prop > 95) { if (Prop > 94) { if (Prop > 93) { if (Prop > 92) { if (Prop > 91) { if (Prop > 90) { if (Prop > 89) { if (Prop > 88) { if (Prop > 87) { if (Prop > 86) { if (Prop > 85) { if (Prop > 84) { if (Prop > 83) { if (Prop > 82) { if (Prop > 81) { if (Prop > 80) { if (Prop > 79) { if (Prop > 78) { if (Prop > 77) { if (Prop > 76) { if (Prop > 75) { if (Prop > 74) { if (Prop > 73) { if (Prop > 72) { if (Prop > 71) { if (Prop > 70) { if (Prop > 69) { if (Prop > 68) { if (Prop > 67) { if (Prop > 66) { if (Prop > 65) { if (Prop > 64) { if (Prop > 63) { if (Prop > 62) { if (Prop > 61) { if (Prop > 60) { if (Prop > 59) { if (Prop > 58) { if (Prop > 57) { if (Prop > 56) { if (Prop > 55) { if (Prop > 54) { if (Prop > 53) { if (Prop > 52) { if (Prop > 51) { if (Prop > 50) { if (Prop > 49) { if (Prop > 48) { if (Prop > 47) { if (Prop > 46) { if (Prop > 45) { if (Prop > 44) { if (Prop > 43) { if (Prop > 42) { if (Prop > 41) { if (Prop > 40) { if (Prop > 39) { if (Prop > 38) { if (Prop > 37) { if (Prop > 36) { if (Prop > 35) { if (Prop > 34) { if (Prop > 33) { if (Prop > 32) { if (Prop > 31) { if (Prop > 30) { if (Prop > 29) { if (Prop > 28) { if (Prop > 27) { if (Prop > 26) { if (Prop > 25) { if (Prop > 24) { if (Prop > 23) { if (Prop > 22) { if (Prop > 21) { if (Prop > 20) { if (Prop > 19) { if (Prop > 18) { if (Prop > 17) { if (Prop > 16) { if (Prop > 15) { if (Prop > 14) { if (Prop > 13) { if (Prop > 12) { if (Prop > 11) { if (Prop > 10) { if (Prop > 9) { if (Prop > 8) { if (Prop > 7) { if (Prop > 6) { if (Prop > 5) { if (Prop > 4) { if (Prop > 3) { if (Prop > 2) { if (Prop > 1) { } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99); } else Use(x99);
|
||||||
|
Use(x0);
|
||||||
|
Use(x1);
|
||||||
|
Use(x10);
|
||||||
|
Use(x100);
|
||||||
|
Use(x11);
|
||||||
|
Use(x12);
|
||||||
|
Use(x13);
|
||||||
|
Use(x14);
|
||||||
|
Use(x15);
|
||||||
|
Use(x16);
|
||||||
|
Use(x17);
|
||||||
|
Use(x18);
|
||||||
|
Use(x19);
|
||||||
|
Use(x2);
|
||||||
|
Use(x20);
|
||||||
|
Use(x21);
|
||||||
|
Use(x22);
|
||||||
|
Use(x23);
|
||||||
|
Use(x24);
|
||||||
|
Use(x25);
|
||||||
|
Use(x26);
|
||||||
|
Use(x27);
|
||||||
|
Use(x28);
|
||||||
|
Use(x29);
|
||||||
|
Use(x3);
|
||||||
|
Use(x30);
|
||||||
|
Use(x31);
|
||||||
|
Use(x32);
|
||||||
|
Use(x33);
|
||||||
|
Use(x34);
|
||||||
|
Use(x35);
|
||||||
|
Use(x36);
|
||||||
|
Use(x37);
|
||||||
|
Use(x38);
|
||||||
|
Use(x39);
|
||||||
|
Use(x4);
|
||||||
|
Use(x40);
|
||||||
|
Use(x41);
|
||||||
|
Use(x42);
|
||||||
|
Use(x43);
|
||||||
|
Use(x44);
|
||||||
|
Use(x45);
|
||||||
|
Use(x46);
|
||||||
|
Use(x47);
|
||||||
|
Use(x48);
|
||||||
|
Use(x49);
|
||||||
|
Use(x5);
|
||||||
|
Use(x50);
|
||||||
|
Use(x51);
|
||||||
|
Use(x52);
|
||||||
|
Use(x53);
|
||||||
|
Use(x54);
|
||||||
|
Use(x55);
|
||||||
|
Use(x56);
|
||||||
|
Use(x57);
|
||||||
|
Use(x58);
|
||||||
|
Use(x59);
|
||||||
|
Use(x6);
|
||||||
|
Use(x60);
|
||||||
|
Use(x61);
|
||||||
|
Use(x62);
|
||||||
|
Use(x63);
|
||||||
|
Use(x64);
|
||||||
|
Use(x65);
|
||||||
|
Use(x66);
|
||||||
|
Use(x67);
|
||||||
|
Use(x68);
|
||||||
|
Use(x69);
|
||||||
|
Use(x7);
|
||||||
|
Use(x70);
|
||||||
|
Use(x71);
|
||||||
|
Use(x72);
|
||||||
|
Use(x73);
|
||||||
|
Use(x74);
|
||||||
|
Use(x75);
|
||||||
|
Use(x76);
|
||||||
|
Use(x77);
|
||||||
|
Use(x78);
|
||||||
|
Use(x79);
|
||||||
|
Use(x8);
|
||||||
|
Use(x80);
|
||||||
|
Use(x81);
|
||||||
|
Use(x82);
|
||||||
|
Use(x83);
|
||||||
|
Use(x84);
|
||||||
|
Use(x85);
|
||||||
|
Use(x86);
|
||||||
|
Use(x87);
|
||||||
|
Use(x88);
|
||||||
|
Use(x89);
|
||||||
|
Use(x9);
|
||||||
|
Use(x90);
|
||||||
|
Use(x91);
|
||||||
|
Use(x92);
|
||||||
|
Use(x93);
|
||||||
|
Use(x94);
|
||||||
|
Use(x95);
|
||||||
|
Use(x96);
|
||||||
|
Use(x97);
|
||||||
|
Use(x98);
|
||||||
|
Use(x99);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
| 5002 | 2500 |
|
| 15203 | 1037851 |
|
||||||
|
|||||||
@@ -154,6 +154,18 @@
|
|||||||
| Test.cs:46:16:46:18 | in | Test.cs:46:16:46:18 | in | Test.cs:48:13:48:15 | access to parameter in |
|
| Test.cs:46:16:46:18 | in | Test.cs:46:16:46:18 | in | Test.cs:48:13:48:15 | access to parameter in |
|
||||||
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | x | Test.cs:66:28:66:28 | access to parameter x |
|
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | x | Test.cs:66:28:66:28 | access to parameter x |
|
||||||
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | DivideByZeroException e | Test.cs:70:17:70:17 | access to local variable e |
|
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | DivideByZeroException e | Test.cs:70:17:70:17 | access to local variable e |
|
||||||
|
| Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | b1 | Test.cs:80:13:80:14 | access to parameter b1 |
|
||||||
|
| Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | b2 | Test.cs:84:18:84:19 | access to parameter b2 |
|
||||||
|
| Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | b3 | Test.cs:90:13:90:14 | access to parameter b3 |
|
||||||
|
| Test.cs:76:51:76:52 | b4 | Test.cs:76:51:76:52 | b4 | Test.cs:94:18:94:19 | access to parameter b4 |
|
||||||
|
| Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | b5 | Test.cs:102:13:102:14 | access to parameter b5 |
|
||||||
|
| Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | b6 | Test.cs:113:13:113:14 | access to parameter b6 |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | Int32 x = ... | Test.cs:82:17:82:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | Int32 x = ... | Test.cs:86:17:86:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | Int32 x = ... | Test.cs:92:17:92:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | Int32 x = ... | Test.cs:96:17:96:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | Int32 x = ... | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | ... = ... | Test.cs:109:17:109:17 | access to local variable x |
|
||||||
| Tuples.cs:5:9:5:13 | Field | Tuples.cs:20:9:20:34 | ... = ... | Tuples.cs:22:13:22:17 | access to field Field |
|
| Tuples.cs:5:9:5:13 | Field | Tuples.cs:20:9:20:34 | ... = ... | Tuples.cs:22:13:22:17 | access to field Field |
|
||||||
| Tuples.cs:5:9:5:13 | Field | Tuples.cs:26:9:26:33 | ... = ... | Tuples.cs:27:13:27:17 | access to field Field |
|
| Tuples.cs:5:9:5:13 | Field | Tuples.cs:26:9:26:33 | ... = ... | Tuples.cs:27:13:27:17 | access to field Field |
|
||||||
| Tuples.cs:5:9:5:13 | Field | Tuples.cs:26:9:26:33 | ... = ... | Tuples.cs:28:13:28:19 | access to field Field |
|
| Tuples.cs:5:9:5:13 | Field | Tuples.cs:26:9:26:33 | ... = ... | Tuples.cs:28:13:28:19 | access to field Field |
|
||||||
|
|||||||
@@ -111,4 +111,13 @@
|
|||||||
| Test.cs:9:13:9:13 | y | Test.cs:25:20:25:20 | access to local variable y | Test.cs:43:20:43:20 | access to local variable y |
|
| Test.cs:9:13:9:13 | y | Test.cs:25:20:25:20 | access to local variable y | Test.cs:43:20:43:20 | access to local variable y |
|
||||||
| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | access to local variable i | Test.cs:36:18:36:18 | access to local variable i |
|
| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | access to local variable i | Test.cs:36:18:36:18 | access to local variable i |
|
||||||
| Test.cs:34:18:34:18 | i | Test.cs:36:18:36:18 | access to local variable i | Test.cs:34:33:34:33 | access to local variable i |
|
| Test.cs:34:18:34:18 | i | Test.cs:36:18:36:18 | access to local variable i | Test.cs:34:33:34:33 | access to local variable i |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:82:17:82:17 | access to local variable x | Test.cs:92:17:92:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:82:17:82:17 | access to local variable x | Test.cs:96:17:96:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:82:17:82:17 | access to local variable x | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:86:17:86:17 | access to local variable x | Test.cs:92:17:92:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:86:17:86:17 | access to local variable x | Test.cs:96:17:96:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:86:17:86:17 | access to local variable x | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:92:17:92:17 | access to local variable x | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:96:17:96:17 | access to local variable x | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:99:13:99:13 | access to local variable x | Test.cs:104:17:104:17 | access to local variable x |
|
||||||
| Tuples.cs:25:13:25:13 | t | Tuples.cs:26:17:26:17 | access to local variable t | Tuples.cs:28:13:28:13 | access to local variable t |
|
| Tuples.cs:25:13:25:13 | t | Tuples.cs:26:17:26:17 | access to local variable t | Tuples.cs:28:13:28:13 | access to local variable t |
|
||||||
|
|||||||
@@ -57,3 +57,5 @@
|
|||||||
| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:33:34:35 | SSA def(i) |
|
| Test.cs:34:18:34:18 | i | Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:33:34:35 | SSA def(i) |
|
||||||
| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:50:13:50:20 | SSA def(out) |
|
| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:50:13:50:20 | SSA def(out) |
|
||||||
| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:54:13:54:20 | SSA def(out) |
|
| Test.cs:46:29:46:32 | out | Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:54:13:54:20 | SSA def(out) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:78:13:78:17 | SSA def(x) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:108:13:108:17 | SSA def(x) |
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
| DefUse.cs:63:9:63:14 | this.Field2 | DefUse.cs:80:30:80:31 | access to local variable x1 |
|
||||||
|
| Fields.cs:65:24:65:32 | this.LoopField | Fields.cs:63:16:63:28 | this access |
|
||||||
|
| Properties.cs:65:24:65:31 | this.LoopProp | Properties.cs:63:16:63:16 | access to parameter i |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:90:9:97:9 | if (...) ... |
|
||||||
6
csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql
Normal file
6
csharp/ql/test/library-tests/dataflow/ssa/SSAPhiRead.ql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import csharp
|
||||||
|
import semmle.code.csharp.dataflow.internal.SsaImplCommon
|
||||||
|
|
||||||
|
from Ssa::SourceVariable v, ControlFlow::BasicBlock bb
|
||||||
|
where phiReadExposedForTesting(bb, v)
|
||||||
|
select v, bb
|
||||||
@@ -354,6 +354,15 @@
|
|||||||
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) |
|
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) |
|
||||||
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) |
|
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) |
|
||||||
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) |
|
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) |
|
||||||
|
| Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) |
|
||||||
|
| Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) |
|
||||||
|
| Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) |
|
||||||
|
| Test.cs:76:51:76:52 | b4 | Test.cs:76:51:76:52 | SSA param(b4) |
|
||||||
|
| Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) |
|
||||||
|
| Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) |
|
||||||
|
|||||||
@@ -321,6 +321,14 @@
|
|||||||
| Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... |
|
| Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... |
|
||||||
| Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | x |
|
| Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | x |
|
||||||
| Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e |
|
| Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e |
|
||||||
|
| Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:76:24:76:25 | b1 |
|
||||||
|
| Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:76:33:76:34 | b2 |
|
||||||
|
| Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:76:42:76:43 | b3 |
|
||||||
|
| Test.cs:76:51:76:52 | SSA param(b4) | Test.cs:76:51:76:52 | b4 |
|
||||||
|
| Test.cs:76:60:76:61 | SSA param(b5) | Test.cs:76:60:76:61 | b5 |
|
||||||
|
| Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:76:69:76:70 | b6 |
|
||||||
|
| Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | Int32 x = ... |
|
||||||
|
| Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | ... = ... |
|
||||||
| Tuples.cs:10:9:10:54 | SSA def(b) | Tuples.cs:10:9:10:54 | ... = ... |
|
| Tuples.cs:10:9:10:54 | SSA def(b) | Tuples.cs:10:9:10:54 | ... = ... |
|
||||||
| Tuples.cs:10:9:10:54 | SSA def(s) | Tuples.cs:10:9:10:54 | ... = ... |
|
| Tuples.cs:10:9:10:54 | SSA def(s) | Tuples.cs:10:9:10:54 | ... = ... |
|
||||||
| Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... |
|
| Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... |
|
||||||
|
|||||||
@@ -271,6 +271,16 @@
|
|||||||
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:58:13:58:17 | access to field field |
|
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:58:13:58:17 | access to field field |
|
||||||
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:66:28:66:28 | access to parameter x |
|
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:66:28:66:28 | access to parameter x |
|
||||||
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:70:17:70:17 | access to local variable e |
|
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:70:17:70:17 | access to local variable e |
|
||||||
|
| Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:80:13:80:14 | access to parameter b1 |
|
||||||
|
| Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:84:18:84:19 | access to parameter b2 |
|
||||||
|
| Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:90:13:90:14 | access to parameter b3 |
|
||||||
|
| Test.cs:76:51:76:52 | b4 | Test.cs:76:51:76:52 | SSA param(b4) | Test.cs:94:18:94:19 | access to parameter b4 |
|
||||||
|
| Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) | Test.cs:102:13:102:14 | access to parameter b5 |
|
||||||
|
| Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:113:13:113:14 | access to parameter b6 |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:104:17:104:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:109:17:109:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:115:17:115:17 | access to local variable x |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:11:13:11:13 | access to local variable x |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:11:13:11:13 | access to local variable x |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:15:13:15:13 | access to local variable x |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:15:13:15:13 | access to local variable x |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:24:13:24:13 | access to local variable x |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:24:13:24:13 | access to local variable x |
|
||||||
|
|||||||
@@ -227,6 +227,14 @@
|
|||||||
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... |
|
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... |
|
||||||
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | x |
|
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | x |
|
||||||
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e |
|
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e |
|
||||||
|
| Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:76:24:76:25 | b1 |
|
||||||
|
| Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:76:33:76:34 | b2 |
|
||||||
|
| Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:76:42:76:43 | b3 |
|
||||||
|
| Test.cs:76:51:76:52 | b4 | Test.cs:76:51:76:52 | SSA param(b4) | Test.cs:76:51:76:52 | b4 |
|
||||||
|
| Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) | Test.cs:76:60:76:61 | b5 |
|
||||||
|
| Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:76:69:76:70 | b6 |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | Int32 x = ... |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | ... = ... |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:14:9:14:32 | ... = ... |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:14:9:14:32 | ... = ... |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:23:9:23:37 | ... = ... |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:23:9:23:37 | ... = ... |
|
||||||
|
|||||||
@@ -374,6 +374,20 @@
|
|||||||
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:58:13:58:17 | access to field field |
|
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:58:13:58:17 | access to field field |
|
||||||
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:66:28:66:28 | access to parameter x |
|
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:66:28:66:28 | access to parameter x |
|
||||||
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:70:17:70:17 | access to local variable e |
|
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:70:17:70:17 | access to local variable e |
|
||||||
|
| Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:80:13:80:14 | access to parameter b1 |
|
||||||
|
| Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:84:18:84:19 | access to parameter b2 |
|
||||||
|
| Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:90:13:90:14 | access to parameter b3 |
|
||||||
|
| Test.cs:76:51:76:52 | b4 | Test.cs:76:51:76:52 | SSA param(b4) | Test.cs:94:18:94:19 | access to parameter b4 |
|
||||||
|
| Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) | Test.cs:102:13:102:14 | access to parameter b5 |
|
||||||
|
| Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:113:13:113:14 | access to parameter b6 |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:82:17:82:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:86:17:86:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:92:17:92:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:96:17:96:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:99:13:99:13 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:104:17:104:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:109:17:109:17 | access to local variable x |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:115:17:115:17 | access to local variable x |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:11:13:11:13 | access to local variable x |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:11:13:11:13 | access to local variable x |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:15:13:15:13 | access to local variable x |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:15:13:15:13 | access to local variable x |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:24:13:24:13 | access to local variable x |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:24:13:24:13 | access to local variable x |
|
||||||
|
|||||||
@@ -468,6 +468,16 @@
|
|||||||
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | SSA def(this.field) |
|
| Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | SSA def(this.field) |
|
||||||
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | SSA param(x) |
|
| Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | SSA param(x) |
|
||||||
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) |
|
| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) |
|
||||||
|
| Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:76:24:76:25 | SSA param(b1) |
|
||||||
|
| Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:76:33:76:34 | SSA param(b2) |
|
||||||
|
| Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:76:42:76:43 | SSA param(b3) |
|
||||||
|
| Test.cs:76:51:76:52 | b4 | Test.cs:76:51:76:52 | SSA param(b4) | Test.cs:76:51:76:52 | SSA param(b4) |
|
||||||
|
| Test.cs:76:60:76:61 | b5 | Test.cs:76:60:76:61 | SSA param(b5) | Test.cs:76:60:76:61 | SSA param(b5) |
|
||||||
|
| Test.cs:76:69:76:70 | b6 | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:76:69:76:70 | SSA param(b6) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | SSA def(x) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | SSA def(x) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:78:13:78:17 | SSA def(x) |
|
||||||
|
| Test.cs:78:13:78:13 | x | Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:108:13:108:17 | SSA def(x) |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | SSA def(x) |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | SSA def(x) |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:14:9:14:32 | SSA def(x) |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:14:9:14:32 | SSA def(x) | Tuples.cs:14:9:14:32 | SSA def(x) |
|
||||||
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:23:9:23:37 | SSA def(x) |
|
| Tuples.cs:10:14:10:14 | x | Tuples.cs:23:9:23:37 | SSA def(x) | Tuples.cs:23:9:23:37 | SSA def(x) |
|
||||||
|
|||||||
@@ -72,4 +72,48 @@ class Test
|
|||||||
}
|
}
|
||||||
|
|
||||||
void use<T>(T x) { }
|
void use<T>(T x) { }
|
||||||
|
|
||||||
|
void phiReads(bool b1, bool b2, bool b3, bool b4, bool b5, bool b6)
|
||||||
|
{
|
||||||
|
var x = 0;
|
||||||
|
|
||||||
|
if (b1)
|
||||||
|
{
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
else if (b2)
|
||||||
|
{
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
// phi_use for `x`
|
||||||
|
|
||||||
|
if (b3)
|
||||||
|
{
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
else if (b4)
|
||||||
|
{
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
// no phi_use for `x`, because actual use exists in the block
|
||||||
|
use(x);
|
||||||
|
|
||||||
|
|
||||||
|
if (b5)
|
||||||
|
{
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x = 1;
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
// no phi_use (normal phi instead)
|
||||||
|
|
||||||
|
if (b6)
|
||||||
|
{
|
||||||
|
use(x);
|
||||||
|
}
|
||||||
|
// no phi_use for `x`, because not live
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,136 +1,136 @@
|
|||||||
summary
|
summary
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChanges;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.AddressId];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.PersonId];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Address].Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Addresses].Element.Property[EFCoreTests.Address.Street];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Id];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFCoreTests.PersonAddressMap.Person].Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
| Microsoft.EntityFrameworkCore;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFCoreTests.MyContext.Persons].Element.Property[EFCoreTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFCoreTests.Person.Name];value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;AddAsync;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;AddAsync;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;AddRangeAsync;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;AddRangeAsync;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;Attach;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;Attach;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;AttachRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;AttachRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;Update;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;Update;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| Microsoft.EntityFrameworkCore;DbSet<>;false;UpdateRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| Microsoft.EntityFrameworkCore;DbSet<>;false;UpdateRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChanges;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.AddressId];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.PersonId];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Address].Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Addresses].Element.Property[EFTests.Address.Street];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Id];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Id];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_PersonAddresses].Element.Property[EFTests.PersonAddressMap.Person].Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[Qualifier].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
| System.Data.Entity;DbContext;false;SaveChangesAsync;();;Argument[this].Property[EFTests.MyContext.Persons].Element.Property[EFTests.Person.Name];ReturnValue[jump to get_Persons].Element.Property[EFTests.Person.Name];value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;Add;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;Add;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;AddAsync;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;AddAsync;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;AddRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;AddRangeAsync;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;AddRangeAsync;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;Attach;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;Attach;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;AttachRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;AttachRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;Update;(T);;Argument[0];Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;Update;(T);;Argument[0];Argument[this].Element;value;manual |
|
||||||
| System.Data.Entity;DbSet<>;false;UpdateRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[Qualifier].Element;value;manual |
|
| System.Data.Entity;DbSet<>;false;UpdateRange;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this].Element;value;manual |
|
||||||
sourceNode
|
sourceNode
|
||||||
sinkNode
|
sinkNode
|
||||||
| EntityFrameworkCore.cs:72:36:72:40 | "sql" | sql |
|
| EntityFrameworkCore.cs:72:36:72:40 | "sql" | sql |
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
| Sinks;NewSinks;false;WrapFieldResponseWriteFile;();;Argument[Qualifier];html;generated |
|
| Sinks;NewSinks;false;WrapFieldResponseWriteFile;();;Argument[this];html;generated |
|
||||||
| Sinks;NewSinks;false;WrapPropResponseWriteFile;();;Argument[Qualifier];html;generated |
|
| Sinks;NewSinks;false;WrapPropResponseWriteFile;();;Argument[this];html;generated |
|
||||||
| Sinks;NewSinks;false;WrapResponseWrite;(System.Object);;Argument[0];html;generated |
|
| Sinks;NewSinks;false;WrapResponseWrite;(System.Object);;Argument[0];html;generated |
|
||||||
| Sinks;NewSinks;false;WrapResponseWriteFile;(System.String);;Argument[0];html;generated |
|
| Sinks;NewSinks;false;WrapResponseWriteFile;(System.String);;Argument[0];html;generated |
|
||||||
|
|||||||
@@ -1,33 +1,33 @@
|
|||||||
| NoSummaries;PublicClassFlow;false;PublicReturn;(System.Object);;Argument[0];ReturnValue;taint;generated |
|
| NoSummaries;PublicClassFlow;false;PublicReturn;(System.Object);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnField;();;Argument[Qualifier];ReturnValue;taint;generated |
|
| Summaries;BasicFlow;false;ReturnField;();;Argument[this];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;generated |
|
| Summaries;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;generated |
|
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;BasicFlow;false;ReturnThis;(System.Object);;Argument[Qualifier];ReturnValue;value;generated |
|
| Summaries;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;generated |
|
||||||
| Summaries;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[Qualifier];taint;generated |
|
| Summaries;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this];taint;generated |
|
||||||
| Summaries;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[Qualifier];Argument[0].Element;taint;generated |
|
| Summaries;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this];Argument[0].Element;taint;generated |
|
||||||
| Summaries;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;generated |
|
| Summaries;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;generated |
|
||||||
| Summaries;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[Qualifier];Argument[0].Element;taint;generated |
|
| Summaries;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this];Argument[0].Element;taint;generated |
|
||||||
| Summaries;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;generated |
|
| Summaries;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;generated |
|
||||||
| Summaries;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;generated |
|
| Summaries;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;generated |
|
||||||
| Summaries;CollectionFlow;false;ReturnFieldInAList;();;Argument[Qualifier];ReturnValue;taint;generated |
|
| Summaries;CollectionFlow;false;ReturnFieldInAList;();;Argument[this];ReturnValue;taint;generated |
|
||||||
| Summaries;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;generated |
|
| Summaries;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;generated |
|
||||||
| Summaries;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;generated |
|
| Summaries;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;generated |
|
||||||
| Summaries;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;DerivedClass2Flow;false;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;DerivedClass2Flow;false;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[Qualifier];Argument[0].Element;taint;generated |
|
| Summaries;GenericFlow<>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this];Argument[0].Element;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;AddToGenericList<>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;generated |
|
| Summaries;GenericFlow<>;false;AddToGenericList<>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;ReturnFieldInGenericList;();;Argument[Qualifier];ReturnValue;taint;generated |
|
| Summaries;GenericFlow<>;false;ReturnFieldInGenericList;();;Argument[this];ReturnValue;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;ReturnGenericElement<>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;generated |
|
| Summaries;GenericFlow<>;false;ReturnGenericElement<>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;ReturnGenericField;();;Argument[Qualifier];ReturnValue;taint;generated |
|
| Summaries;GenericFlow<>;false;ReturnGenericField;();;Argument[this];ReturnValue;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;ReturnGenericParam<>;(S);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;GenericFlow<>;false;ReturnGenericParam<>;(S);;Argument[0];ReturnValue;taint;generated |
|
||||||
| Summaries;GenericFlow<>;false;SetGenericField;(T);;Argument[0];Argument[Qualifier];taint;generated |
|
| Summaries;GenericFlow<>;false;SetGenericField;(T);;Argument[0];Argument[this];taint;generated |
|
||||||
| Summaries;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[Qualifier];ReturnValue;taint;generated |
|
| Summaries;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this];ReturnValue;taint;generated |
|
||||||
| Summaries;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;generated |
|
| Summaries;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;generated |
|
||||||
| Summaries;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;generated |
|
| Summaries;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;generated |
|
||||||
| Summaries;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[Qualifier];taint;generated |
|
| Summaries;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this];taint;generated |
|
||||||
| Summaries;OperatorFlow;false;op_Addition;(Summaries.OperatorFlow,Summaries.OperatorFlow);;Argument[0];ReturnValue;taint;generated |
|
| Summaries;OperatorFlow;false;op_Addition;(Summaries.OperatorFlow,Summaries.OperatorFlow);;Argument[0];ReturnValue;taint;generated |
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
category: minorAnalysis
|
||||||
|
---
|
||||||
|
* Most deprecated predicates/classes/modules that have been deprecated for over a year have been
|
||||||
|
deleted.
|
||||||
|
|
||||||
@@ -28,12 +28,12 @@ class AstNode extends @node, Locatable {
|
|||||||
/**
|
/**
|
||||||
* Gets a child node of this node.
|
* Gets a child node of this node.
|
||||||
*/
|
*/
|
||||||
AstNode getAChild() { result = getChild(_) }
|
AstNode getAChild() { result = this.getChild(_) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of child nodes of this node.
|
* Gets the number of child nodes of this node.
|
||||||
*/
|
*/
|
||||||
int getNumChild() { result = count(getAChild()) }
|
int getNumChild() { result = count(this.getAChild()) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a child with the given index and of the given kind, if one exists.
|
* Gets a child with the given index and of the given kind, if one exists.
|
||||||
@@ -63,7 +63,7 @@ class AstNode extends @node, Locatable {
|
|||||||
AstNode getUniquelyNumberedChild(int index) {
|
AstNode getUniquelyNumberedChild(int index) {
|
||||||
result =
|
result =
|
||||||
rank[index + 1](AstNode child, string kind, int i |
|
rank[index + 1](AstNode child, string kind, int i |
|
||||||
child = getChildOfKind(kind, i)
|
child = this.getChildOfKind(kind, i)
|
||||||
|
|
|
|
||||||
child order by kind, i
|
child order by kind, i
|
||||||
)
|
)
|
||||||
@@ -74,17 +74,17 @@ class AstNode extends @node, Locatable {
|
|||||||
|
|
||||||
/** Gets the parent node of this AST node, but without crossing function boundaries. */
|
/** Gets the parent node of this AST node, but without crossing function boundaries. */
|
||||||
private AstNode parentInSameFunction() {
|
private AstNode parentInSameFunction() {
|
||||||
result = getParent() and
|
result = this.getParent() and
|
||||||
not this instanceof FuncDef
|
not this instanceof FuncDef
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the innermost function definition to which this AST node belongs, if any. */
|
/** Gets the innermost function definition to which this AST node belongs, if any. */
|
||||||
FuncDef getEnclosingFunction() { result = getParent().parentInSameFunction*() }
|
FuncDef getEnclosingFunction() { result = this.getParent().parentInSameFunction*() }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.
|
* Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.
|
||||||
*/
|
*/
|
||||||
final string getPrimaryQlClasses() { result = concat(getAPrimaryQlClass(), ",") }
|
final string getPrimaryQlClasses() { result = concat(this.getAPrimaryQlClass(), ",") }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the name of a primary CodeQL class to which this node belongs.
|
* Gets the name of a primary CodeQL class to which this node belongs.
|
||||||
@@ -116,12 +116,12 @@ class ExprParent extends @exprparent, AstNode {
|
|||||||
/**
|
/**
|
||||||
* Gets an expression that is a child node of this node in the AST.
|
* Gets an expression that is a child node of this node in the AST.
|
||||||
*/
|
*/
|
||||||
Expr getAChildExpr() { result = getChildExpr(_) }
|
Expr getAChildExpr() { result = this.getChildExpr(_) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of child expressions of this node.
|
* Gets the number of child expressions of this node.
|
||||||
*/
|
*/
|
||||||
int getNumChildExpr() { result = count(getAChildExpr()) }
|
int getNumChildExpr() { result = count(this.getAChildExpr()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -139,12 +139,12 @@ class GoModExprParent extends @modexprparent, AstNode {
|
|||||||
/**
|
/**
|
||||||
* Gets an expression that is a child node of this node in the AST.
|
* Gets an expression that is a child node of this node in the AST.
|
||||||
*/
|
*/
|
||||||
GoModExpr getAChildGoModExpr() { result = getChildGoModExpr(_) }
|
GoModExpr getAChildGoModExpr() { result = this.getChildGoModExpr(_) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of child expressions of this node.
|
* Gets the number of child expressions of this node.
|
||||||
*/
|
*/
|
||||||
int getNumChildGoModExpr() { result = count(getAChildGoModExpr()) }
|
int getNumChildGoModExpr() { result = count(this.getAChildGoModExpr()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -162,12 +162,12 @@ class StmtParent extends @stmtparent, AstNode {
|
|||||||
/**
|
/**
|
||||||
* Gets a statement that is a child node of this node in the AST.
|
* Gets a statement that is a child node of this node in the AST.
|
||||||
*/
|
*/
|
||||||
Stmt getAChildStmt() { result = getChildStmt(_) }
|
Stmt getAChildStmt() { result = this.getChildStmt(_) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of child statements of this node.
|
* Gets the number of child statements of this node.
|
||||||
*/
|
*/
|
||||||
int getNumChildStmt() { result = count(getAChildStmt()) }
|
int getNumChildStmt() { result = count(this.getAChildStmt()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -185,12 +185,12 @@ class DeclParent extends @declparent, AstNode {
|
|||||||
/**
|
/**
|
||||||
* Gets a child declaration of this node in the AST.
|
* Gets a child declaration of this node in the AST.
|
||||||
*/
|
*/
|
||||||
Decl getADecl() { result = getDecl(_) }
|
Decl getADecl() { result = this.getDecl(_) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of child declarations of this node.
|
* Gets the number of child declarations of this node.
|
||||||
*/
|
*/
|
||||||
int getNumDecl() { result = count(getADecl()) }
|
int getNumDecl() { result = count(this.getADecl()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -208,12 +208,12 @@ class FieldParent extends @fieldparent, AstNode {
|
|||||||
/**
|
/**
|
||||||
* Gets a child field of this node in the AST.
|
* Gets a child field of this node in the AST.
|
||||||
*/
|
*/
|
||||||
FieldBase getAField() { result = getField(_) }
|
FieldBase getAField() { result = this.getField(_) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of child fields of this node.
|
* Gets the number of child fields of this node.
|
||||||
*/
|
*/
|
||||||
int getNumFields() { result = count(getAField()) }
|
int getNumFields() { result = count(this.getAField()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -787,7 +787,7 @@ class InterfaceType extends @interfacetype, CompositeType {
|
|||||||
* Note that the indexes are not contiguous.
|
* Note that the indexes are not contiguous.
|
||||||
*/
|
*/
|
||||||
TypeSetLiteralType getDirectlyEmbeddedTypeSetLiteral(int index) {
|
TypeSetLiteralType getDirectlyEmbeddedTypeSetLiteral(int index) {
|
||||||
hasDirectlyEmbeddedType(index, result)
|
this.hasDirectlyEmbeddedType(index, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -798,7 +798,7 @@ class InterfaceType extends @interfacetype, CompositeType {
|
|||||||
TypeSetLiteralType getAnEmbeddedTypeSetLiteral() {
|
TypeSetLiteralType getAnEmbeddedTypeSetLiteral() {
|
||||||
result = this.getDirectlyEmbeddedTypeSetLiteral(_) or
|
result = this.getDirectlyEmbeddedTypeSetLiteral(_) or
|
||||||
result =
|
result =
|
||||||
getADirectlyEmbeddedInterface()
|
this.getADirectlyEmbeddedInterface()
|
||||||
.getUnderlyingType()
|
.getUnderlyingType()
|
||||||
.(InterfaceType)
|
.(InterfaceType)
|
||||||
.getAnEmbeddedTypeSetLiteral()
|
.getAnEmbeddedTypeSetLiteral()
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user