func init // adds using namespace sys.add_use('System.Numerics') // initialize instance if(linked("Result") and linked("doModPow")) sys.add_var(this.name, 'BigInteger') end end func doModPow(data) if(linked('Result')) blk.println(this.codename, ' = ', this.make_result(data), ';') event('onResult', this.codename) else event('onResult', this.make_result(data)) end end func make_result(data) return('BigInteger.ModPow(' + (isdef("Value") ? d("Value") : sys.get_undef_manager("Value")) + ', ' + (isdef("Exponent") ? d("Exponent") : sys.get_undef_manager("Exponent")) + ', ' + (isdef("Modulus") ? d("Modulus") : sys.get_undef_manager("Modulus")) + ')') end func Result if(linked("doModPow")) return(this.codename) else return(make_result()) end end