nx_ipdock_lib.nx
buildroot/runtime/nx_ipdock_lib.nx
about
nx_ipdock_lib.nx -- IP DOCKETING: patent and trademark deadlines, and which of them are survivable.
The category malpractice insurers price highest. Most litigation deadlines can be extended, refiled or
forgiven. IP deadlines mostly cannot: miss the Paris Convention priority year and the priority claim is
gone permanently, worldwide, with no petition available. So the load-bearing distinction here is not
"late or not" but u2605WHICH DEADLINES HAVE A GRACE PERIOD AND WHICH ARE IRRECOVERABLE.
Paris Convention (Art 4): 12 months from the priority date to file abroad. IRRECOVERABLE.
PCT national phase: 30 months from priority. Late entry is possible in some offices but never assumed
here -- treated as irrecoverable so the docket never quietly relies on a discretionary remedy.
US patent maintenance fees: due at 3.5 / 7.5 / 11.5 years from grant, each with a SIX-MONTH GRACE
window at a surcharge. Late-but-within-grace is PAYABLE, not lost -- calling it lost abandons a
live patent, which is the mirror-image error and just as expensive.
US trademark s8 declaration: between years 5 and 6 from registration, six-month grace.
US trademark s9 renewal: between years 9 and 10, six-month grace.
u2605FAIL-CLOSED ON DATES: an unknown priority, grant or registration date yields IPD_UNKNOWN -- never a
computed deadline. A fabricated IP deadline is worse than none, because it will be trusted.
All periods are DATA (rule 11) as named constants in days, not literals buried in branches.
STRUCTURE: pure decision core, zero I/O. license_tier: ORIGINAL LIB.
dependencies 1 imports · 2 importers
imports: nx_matter_lib.nx
imported by: nx_ipdock_gate.nxnx_legal_svc.nx
structs
| none |
consts
| 24 | const IPD_UNSET: i64 = 0 - 2000000002 |
| 25 | const IPD_UNKNOWN: i64 = 0 - 1 |
| 27 | const IPD_OPEN: i64 = 0 |
| 28 | const IPD_GRACE: i64 = 1 |
| 29 | const IPD_LOST: i64 = 2 |
| 31 | const IPD_PARIS_DAYS: i64 = 365 |
| 32 | const IPD_PCT_DAYS: i64 = 913 |
| 33 | const IPD_MAINT1_DAYS: i64 = 1278 |
| 34 | const IPD_MAINT2_DAYS: i64 = 2739 |
| 35 | const IPD_MAINT3_DAYS: i64 = 4200 |
| 36 | const IPD_GRACE_DAYS: i64 = 182 |
| 37 | const IPD_TM_S8_OPEN_DAYS: i64 = 1826 |
| 38 | const IPD_TM_S8_DUE_DAYS: i64 = 2191 |
| 39 | const IPD_TM_S9_OPEN_DAYS: i64 = 3287 |
| 40 | const IPD_TM_S9_DUE_DAYS: i64 = 3652 |
functions
| 43 | func ipd_deadline_pure(anchor: i64, period_days: i64) -> i64 |
| 49 | func ipd_paris_pure(priority: i64) -> i64 { return ipd_deadline_pure(priority, IPD_PARIS_DAYS) } |
| 50 | func ipd_pct_pure(priority: i64) -> i64 { return ipd_deadline_pure(priority, IPD_PCT_DAYS) } |
| 53 | func ipd_status_hard_pure(deadline: i64, asof: i64) -> i64 |
| 61 | func ipd_status_grace_pure(deadline: i64, asof: i64, grace_days: i64) -> i64 |
| 71 | func ipd_surcharge_due_pure(status: i64) -> i64 |
| 77 | func ipd_recoverable_pure(status: i64) -> i64 |
| 84 | func ipd_days_remaining_pure(deadline: i64, asof: i64, grace_days: i64) -> i64 called by 1: main |
| 93 | func ipd_window_status_pure(open_day: i64, due_day: i64, asof: i64, grace_days: i64) -> i64 |
| 102 | func ipd_tm_filable_pure(open_day: i64, due_day: i64, asof: i64, grace_days: i64) -> i64 |
| 111 | func ipd_exposure_pure(lost: i64, unknown: i64) -> i64 { return lost + unknown } called by 1: main |
| 113 | func ipd_status_label(s: i64, out: *u8) -> i64 |